Re: [RFC/RFT][PATCH -mm 1/8][bugfix] PM: Introduce set_target method in pm_ops

Rafael J. Wysocki
2007-06-27T20:20:54Z

On Tuesday, 26 June 2007 00:41, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> The at91 platform code incorrectly assumes that pm_ops->prepare() will be called
> before devices are suspended and uses it to make the PM core set the target
> system sleep state used by the platform when suspending devices. Thus, at91
> needs a new member function in 'struct pm_ops' that will be used by the PM core
> to convey the target system sleep state to the platform code before devices are
> suspended.
>
> Moreover, in the future some drivers may need to use ACPI to determine the low
> power states in which to place their devices, but to provide the drivers with
> this information the ACPI core needs to know what sleep state the system is
> going to enter. Namely, the device's state should not be too high power for
> given system sleep state and, if the device is supposed to be able to wake up
> the system, its state should not be too low power for the wake up to be
> possible). However, pm_ops->prepare() is only called after the drivers'
> .suspend() callbacks have been executed, so we need an additional means to
> convey the target system sleep state to the ACPI core. The new member function
> in 'struct pm_ops', set_target(), can be used for this purpose.

If there are no objections to this patch, I'd like to push it for merging into
2.6.22, because at91 suspend will be broken without it.

Greetings,
Rafael

--
"Premature optimization is the root of all evil." - Donald Knuth