* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> 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 _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm