Re: calling runtime PM from system PM methods
From: Alan Stern <stern@rowland.harvard.edu>
Date: 2011-06-12 15:59:28
On Sun, 12 Jun 2011, Rafael J. Wysocki wrote:
quoted
Basically, I think what Rafael was saying before referred to the general case, where you don't know anything about the subsystem and can't afford to make assumptions. But in the real world you'll be writing a driver for a particular subsystem and you'll know how that subsystem works. If the subsystem permits runtime PM calls to be nested within the system PM routines, feel free to go ahead and use them.But then we get the problem that user space may echo "on" to the device's "control" file in sysfs and the whole clever plan basically goes south.
That would indeed be a problem if we used pm_runtime_suspend() in the system suspend code. But it doesn't prevent us from calling pm_runtime_resume() during system suspend.
Moreover, on some systems devices will belong to PM domains and their drivers may potentially be used with different PM domains on different platforms. This means that drivers really should not make any assumptions about whether or not they can use runtime PM in their system suspend/resume routines. They can't.
Yes, clearly one mustn't make assumptions about unknown subsystems or PM domains. Alan Stern