On Wed, Feb 25, 2009 at 7:37 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > On Wed, 25 Feb 2009, Arve Hjønnevåg wrote: >> >> That would not work without wakelocks support, since the interrupt >> could occur after suspend_late which is the last chance for the driver >> to abort sleep. (The patch also breaks my current wakelock >> implementation since I use a suspend_late hook to abort sleep, but >> this should be easy to fix) > > Since this must be some very deep arch-specific thing anyway, just make > the dang thing be a "sysdev". At that point, its "suspend" function gets > called way later (at which point CPU interrupts are off). Wakelocks can use a sysdev, but I don't think a keyboard driver should be a sysdev. > >> > 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: >> >> I think the right fix is for any interrupt that has IRQ_WAKEUP set to >> abort suspend if it is pending. I don't know if anyone relies on these >> interrupts being dropped now though. > > We could add something like that, but quite frankly, I'd hate to unless > there is some seriously common case. If it's just an oddball hacky special > case, it's easier to just say "hey, you have that crazy system device, you > handle it yourself". I don't think this is a oddball case. It is very common to connect keys or keypads to gpios. If these keys are wakeup keys, it is not OK to loose interrupts during the suspend phase. -- Arve Hjønnevåg _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm