Hi Stephen,

On Fri, Mar 15, 2019 at 11:51:12AM -0700, Stephen Boyd wrote:
> If we encounter a failure during suspend where this RTC was programmed
> to wakeup the system from suspend, but that wakeup couldn't be
> configured because the system didn't support wakeup interrupts, we'll
> run into the following warning:
> 
>       Unbalanced IRQ 166 wake disable
>       WARNING: CPU: 7 PID: 3071 at kernel/irq/manage.c:669 
> irq_set_irq_wake+0x108/0x278
> 
> This happens because the suspend process isn't aborted when the RTC
> fails to configure the wakeup IRQ. Instead, we continue suspending the
> system and then another suspend callback fails the suspend process and
> "unwinds" the previously suspended drivers by calling their resume
> callbacks. When we get back to resuming this RTC driver, we'll call
> disable_irq_wake() on an IRQ that hasn't been configured for wake.
> 
> Let's just fail suspend/resume here if we can't configure the system to
> wake and the user has chosen to wakeup with this device. This fixes this
> warning and makes the code more robust in case there are systems out
> there that can't wakeup from suspend on this line but the user has
> chosen to do so.
> 
> Cc: Enric Balletbo i Serra <enric.balle...@collabora.com>
> Cc: Evan Green <evgr...@chromium.org>
> Cc: Benson Leung <ble...@chromium.org>
> Cc: Guenter Roeck <gro...@chromium.org>
> Signed-off-by: Stephen Boyd <swb...@chromium.org>

Acked-By: Benson Leung <ble...@chromium.org>


-- 
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
ble...@google.com
Chromium OS Project
ble...@chromium.org

Attachment: signature.asc
Description: PGP signature

Reply via email to