mirror of
https://github.com/LineageOS/android_kernel_samsung_msm8226.git
synced 2026-10-17 00:00:30 +02:00
A disabled IRQ that is configured as a wakeup interrupt will trigger a system resume, however since it is disabled, its handler will never get called and its status register is never cleared. Thus upon subsequent suspends it causes the system to immediately resume. This was happening in the EHCI HSIC controller, in which remote wakeup signaling on the STROBE line is treated as a wakeup IRQ. After the first successful wakeup sequence, when the HSIC bus goes back into low power mode the lingering uncleared interrupt prevents a system suspend from executing successfully. This is fixed by enabling the IRQ in the system suspend_noirq callback. The IRQ is subsequently disabled in either the IRQ handler or the resume callback, whichever occurs first. CRs-fixed: 343414 Change-Id: Ifc1c267408e76b98b8d848abde6eb44df9e0cdc0 Signed-off-by: Jack Pham <jackp@codeaurora.org>