Re: [PM] powering down special devices

Benjamin Herrenschmidt
2003-08-25T19:53:49Z

On Mon, 2003-08-25 at 21:05, Patrick Mochel wrote:

> How about a flag in the power struct, which would place the device on a
> completely separate list from the beginning. The drivers should know
> whether a device needs special handling a priori, so we don't even need to
> touch it during the first iteration of the lists.
>
> This would eliminate the need to check in the drivers, have no impact on
> the majority of drivers, and allow us to easily determine whether or not
> the device supports runtime power management.

Not sure if we don't actually want both iterations :) It's difficult to
knwo for sure as I lack such a device actually... But I can imagine your
need to run with IRQs enabled to properly "flush" pending requests, then
have IRQs disabled to do the HW shutdown.

For example, if you are a block device, then you need IRQ enabled so you
can send a SUSPEND request down your request queue like IDE does (that's
the best way to get proper synchronisation) and wait on it to complete.
But if your HW is then broken enough that when you actually want to turn
it off (after the queue has been properly suspended) it will leave a
dangling interrupt, then you need to do that last part with IRQs disabled.

Of course, the above only comes out of my imagination, I don't have such
a device, I suspect Alan may know more about the kind of devices we may
expect with an IRQ problem on suspend..

Ben.