diff mbox

[v2] PM: Print pending wakeup IRQ preventing suspend

Message ID 1411082555-4425-1-git-send-email-amit.pundir@linaro.org
State New
Headers show

Commit Message

Amit Pundir Sept. 18, 2014, 11:22 p.m. UTC
From: Todd Poynor <toddpoynor@google.com>

Currently when a pending wakeup irq stops suspend, it can be difficult
to determine why suspend was prevented and which IRQ was actually
responsible. In order to help debug such situation, this patch prints the
IRQ number and action name of that pending wakeup irq.

Cc: Pavel Machek <pavel@ucw.cz>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Len Brown <len.brown@intel.com>
Cc: linux-pm@vger.kernel.org
Cc: Android Kernel Team <kernel-team@android.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Todd Poynor <toddpoynor@google.com>
[Amit Pundir: Reworded the commit message]
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
---
Resending this patch assuming that it might have got lost in between merge
window rush last time and now people might have some time to look at it.
 
 kernel/irq/pm.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Pavel Machek Sept. 19, 2014, 11:21 a.m. UTC | #1
On Fri 2014-09-19 04:52:35, Amit Pundir wrote:
> From: Todd Poynor <toddpoynor@google.com>
> 
> Currently when a pending wakeup irq stops suspend, it can be difficult
> to determine why suspend was prevented and which IRQ was actually
> responsible. In order to help debug such situation, this patch prints the
> IRQ number and action name of that pending wakeup irq.
> 

Acked-by: Pavel Machek <pavel@ucw.cz>
Rafael J. Wysocki Sept. 21, 2014, 12:08 a.m. UTC | #2
On Friday, September 19, 2014 04:52:35 AM Amit Pundir wrote:
> From: Todd Poynor <toddpoynor@google.com>
> 
> Currently when a pending wakeup irq stops suspend, it can be difficult
> to determine why suspend was prevented and which IRQ was actually
> responsible. In order to help debug such situation, this patch prints the
> IRQ number and action name of that pending wakeup irq.
> 
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Len Brown <len.brown@intel.com>
> Cc: linux-pm@vger.kernel.org
> Cc: Android Kernel Team <kernel-team@android.com>
> Acked-by: Pavel Machek <pavel@ucw.cz>
> Signed-off-by: Todd Poynor <toddpoynor@google.com>
> [Amit Pundir: Reworded the commit message]
> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
> ---
> Resending this patch assuming that it might have got lost in between merge
> window rush last time and now people might have some time to look at it.
>  
>  kernel/irq/pm.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
> index abcd6ca..c2bc8d9 100644
> --- a/kernel/irq/pm.c
> +++ b/kernel/irq/pm.c
> @@ -109,8 +109,13 @@ int check_wakeup_irqs(void)

check_wakeup_irqs() is going away in 3.18, please see linux-next (or the
pm-genirq branch of linux-pm.git) for details.

>  		 * can abort suspend.
>  		 */
>  		if (irqd_is_wakeup_set(&desc->irq_data)) {
> -			if (desc->depth == 1 && desc->istate & IRQS_PENDING)
> +			if (desc->depth == 1 && desc->istate & IRQS_PENDING) {
> +				pr_info("Wakeup IRQ %d %s pending, suspend aborted\n",
> +					irq,
> +					desc->action && desc->action->name ?
> +					desc->action->name : "");
>  				return -EBUSY;
> +			}
>  			continue;
>  		}
>  		/*
>
diff mbox

Patch

diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
index abcd6ca..c2bc8d9 100644
--- a/kernel/irq/pm.c
+++ b/kernel/irq/pm.c
@@ -109,8 +109,13 @@  int check_wakeup_irqs(void)
 		 * can abort suspend.
 		 */
 		if (irqd_is_wakeup_set(&desc->irq_data)) {
-			if (desc->depth == 1 && desc->istate & IRQS_PENDING)
+			if (desc->depth == 1 && desc->istate & IRQS_PENDING) {
+				pr_info("Wakeup IRQ %d %s pending, suspend aborted\n",
+					irq,
+					desc->action && desc->action->name ?
+					desc->action->name : "");
 				return -EBUSY;
+			}
 			continue;
 		}
 		/*