[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190320103805.GN29054@piout.net>
Date: Wed, 20 Mar 2019 11:38:05 +0100
From: Alexandre Belloni <alexandre.belloni@...tlin.com>
To: Stephen Boyd <swboyd@...omium.org>
Cc: Alessandro Zummo <a.zummo@...ertech.it>,
linux-kernel@...r.kernel.org, linux-rtc@...r.kernel.org,
Enric Balletbo i Serra <enric.balletbo@...labora.com>,
Evan Green <evgreen@...omium.org>,
Benson Leung <bleung@...omium.org>,
Guenter Roeck <groeck@...omium.org>
Subject: Re: [PATCH] rtc: cros-ec: Fail suspend/resume if wake IRQ can't be
configured
On 15/03/2019 11:51:12-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.balletbo@...labora.com>
> Cc: Evan Green <evgreen@...omium.org>
> Cc: Benson Leung <bleung@...omium.org>
> Cc: Guenter Roeck <groeck@...omium.org>
> Signed-off-by: Stephen Boyd <swboyd@...omium.org>
> ---
> drivers/rtc/rtc-cros-ec.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
Applied, thanks.
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists