Re: [linux-pm] [patch update 2 fix] PM: Introduce core framework for run-time PM of I/O devices

Magnus Damm
2009-06-22T07:33:49Z

On Mon, Jun 22, 2009 at 3:43 PM, Arjan van de Ven<arjan@infradead.org> wrote:
> On Mon, 22 Jun 2009 15:20:43 +0900
> Magnus Damm <magnus.damm@gmail.com> wrote:
>
>> On Sat, Jun 20, 2009 at 11:30 PM, Alan
>> Stern<stern@rowland.harvard.edu> wrote:
>> > Some more thoughts...
>> >
>> > Magnus, you might have some insights here.  It occurred to me that
>> > some devices can switch power levels very quickly, and the drivers
>> > might therefore want the runtime suspend and resume methods to be
>> > called as soon as possible, even in interrupt context.
>>
>> I'd like to call pm_request_suspend() from interrupt context. I don't
>
> there are some really strong reasons to at least be able to call the
> resume function from an interrupt handler.... shared interrupts are one
> of them.

I suppose you mean that you need to resume the hardware device before
you can check if it has a pending interrupt source? If so then you
also mean that suspended hardware devices may generate interrupts, no?

My plan for SuperH SoC is that runtime suspend always stops the clock,
but register save and power off may happen. Regardless, interrupts are
not generated from suspended hardware devices.

In the rare case of shared interrupts on SuperH we can just skip over
the platform devices that have been runtime suspended since they will
not have generated any interrupt.

But yes, if there is hardware than can generate interrupts from
suspended state then we need to resume from interrupt context. This
probably means that the entire bus hierarchy must resume from
interrupt context as well.

/ magnus