[linux-pm] [RFC][PATCH 2/2] PM: Rework handling of interrupts during suspend-resume

Ingo Molnar mingo at elte.hu
Wed Feb 25 19:00:50 PST 2009


* Linus Torvalds <torvalds at linux-foundation.org> wrote:

> 
> 
> On Wed, 25 Feb 2009, Arve Hjønnevåg wrote:
> >
> > On the msm platform the keyboard driver currently leave the interrupts
> > enabled when suspended. If the interrupt handler is called, we use a
> > wakelock to abort suspend (without wakelocks you would need to set a
> > flag and abort in suspend_late instead). If the interrupt occurs after
> > local_irq_disable, it will still be pending when we get to the suspend
> > enter hook and suspend will be aborted there.
> > 
> > As far as I can tell, this change breaks this. If you press a key at
> > the right time, it will be ignored.
> 
> Is the irq on a private non-shared interrupt line? If so, you 
> could just mark it as IRQF_TIMER, and the irq disable logic 
> won't touch it.

Hm, if that solves the problem then it would be nice to have a 
new IRQF_NO_SUSPEND flag for it, in addition to IRQF_TIMER:

./interrupt.h: * IRQF_TIMER - Flag to mark this interrupt as timer interrupt
./interrupt.h:#define IRQF_TIMER		0x00000200

to express such quirks cleanly.

and the suspend code can check the (IRQF_TIMER | 
IRQF_NO_SUSPEND) mask - so no extra cost.

Right now we have a clean enumeration of timer interrupts, would 
be nice to keep that.

	Ingo


More information about the linux-pm mailing list