Message ID | 1411082555-4425-1-git-send-email-amit.pundir@linaro.org |
---|---|
State | New |
Headers | show |
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>
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 --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; } /*