On Wed 2008-04-02 02:09:46, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rjw@xxxxxxx> > > Introduce 'struct pm_ops' and 'struct pm_ext_ops' ('ext' meaning > 'extended') representing suspend and hibernation operations for bus > types, device classes, device types and device drivers. > > Modify the PM core to use 'struct pm_ops' and 'struct pm_ext_ops' > objects, if defined, instead of the ->suspend() and ->resume(), > ->suspend_late(), and ->resume_early() callbacks (the old callbacks > will be considered as legacy and gradually phased out). > > The main purpose of doing this is to separate suspend (aka S2RAM and > standby) callbacks from hibernation callbacks in such a way that the > new callbacks won't take arguments and the semantics of each of them > will be clearly specified. This has been requested for multiple > times by many people, including Linus himself, and the reason is that > within the current scheme if ->resume() is called, for example, it's > difficult to say why it's been called (ie. is it a resume from RAM or > from hibernation or a suspend/hibernation failure etc.?). > > The second purpose is to make the suspend/hibernation callbacks more > flexible so that device drivers can handle more than they can within > the current scheme. For example, some drivers may need to prevent > new children of the device from being registered before their > ->suspend() callbacks are executed or they may want to carry out some > operations requiring the availability of some other devices, not > directly bound via the parent-child relationship, in order to prepare > for the execution of ->suspend(), etc. > > Ultimately, we'd like to stop using the freezing of tasks for suspend > and therefore the drivers' suspend/hibernation code will have to take > care of the handling of the user space during suspend/hibernation. > That, in turn, would be difficult within the current scheme, without > the new ->prepare() and ->complete() callbacks. > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> ACK. -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm