Re: [RFC] PCI: Runtime power management
From: Alan Stern <stern@rowland.harvard.edu>
Date: 2009-08-15 15:53:27
On Sat, 15 Aug 2009, Rafael J. Wysocki wrote:
quoted
quoted
Why don't we add a flag indicating whether or not the device is allowed to be power managed at run time, something like runtime_forbidden, that the user space will be able to set through sysfs?I think even having a runtime_wakeup flag (which defaults to on) would be sufficient.Perhaps it would, but then unsetting runtime_wakeup would effectively disable runtime PM for devices that need it to be power managed at run time (probably all input devices). Also there may be situations in which user space may really want to disable runtime PM for some devices (think of broken hardware for one example).
It sounds like there are really three choices here, and the decision should largely be left up to the user: 1. don't use runtime PM, 2. allow runtime PM but disable remote wakeup, 3. allow runtime PM with remote wakeup enabled. Now, a driver may say "I can't do my job without remote wakeup". Such a driver would refuse to do runtime_suspend in case 2. But otherwise we should follow the preference of the user. The only remaining question is how to expose this in sysfs in a way that won't be confusing and that won't be confused with the "wakeup" attribute. One possibility is to use the "level" attribute introduced in USB; possible levels are "on" (no runtime PM) and "auto" (runtime PM allowed). Then a new "runtime_wakeup" attribute could contain nothing (if wakeup is not available), "enabled", or "disabled". Alan Stern