Re: [RESEND] input: keyboard: imx: make sure keyboard can always wake up system
From: "dmitry.torokhov@gmail.com" <dmitry.torokhov@gmail.com>
Date: 2019-05-21 05:30:57
Also in:
linux-input, lkml
From: "dmitry.torokhov@gmail.com" <dmitry.torokhov@gmail.com>
Date: 2019-05-21 05:30:57
Also in:
linux-input, lkml
Hi Anson, On Thu, Apr 04, 2019 at 01:40:16AM +0000, Anson Huang wrote:
There are several scenarios that keyboard can NOT wake up system from suspend, e.g., if a keyboard is depressed between system device suspend phase and device noirq suspend phase, the keyboard ISR will be called and both keyboard depress and release interrupts will be disabled, then keyboard will no longer be able to wake up system. Another scenario would be, if a keyboard is kept depressed, and then system goes into suspend, the expected behavior would be when keyboard is released, system will be waked up, but current implementation can NOT achieve that, because both depress and release interrupts are disabled in ISR, and the event check is still in progress. To fix these issues, need to make sure keyboard's depress or release interrupt is enabled after noirq device suspend phase, this patch moves the suspend/resume callback to noirq suspend/resume phase, and enable the corresponding interrupt according to current keyboard status.
I believe it is possible for IRQ to be disabled and still being enabled as wakeup source. What happens if you call disable_irq() before disabling the clock? Thanks. -- Dmitry _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel