From f78d8b73b269592cd514c2fb3fb6d94a2c2dd5bd Mon Sep 17 00:00:00 2001 From: Kyle Yan Date: Fri, 11 Aug 2017 14:51:41 -0700 Subject: [PATCH] PM / wakeup: Add msm_show_resume_irq_mask to print off wakeup irq Utilitize the msm_show_resume_irq_mask to print off the actual wakeup irq in order to help debug. [eberman@codeaurora.org: Squashed in "PM / wakeup: Fix error when CONFIG_QCOM_SHOW_RESUME_IRQ not defined"] Change-Id: I0e9e4225d1274bb20e1ed682059432a8161a5a71 Signed-off-by: Maria Yu Signed-off-by: Kyle Yan Signed-off-by: Elliot Berman --- drivers/base/power/power.h | 6 ++++++ drivers/base/power/wakeup.c | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h index ec33fbdb919b..b9402548c797 100644 --- a/drivers/base/power/power.h +++ b/drivers/base/power/power.h @@ -99,6 +99,12 @@ extern int pm_async_enabled; /* drivers/base/power/main.c */ extern struct list_head dpm_list; /* The active device list */ +#ifdef CONFIG_QCOM_SHOW_RESUME_IRQ +extern int msm_show_resume_irq_mask; +#else +#define msm_show_resume_irq_mask 0 +#endif + static inline struct device *to_device(struct list_head *entry) { return container_of(entry, struct device, power.entry); diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index f5b97b1cd3d9..9ac60a1db55e 100644 --- a/drivers/base/power/wakeup.c +++ b/drivers/base/power/wakeup.c @@ -17,6 +17,9 @@ #include #include #include +#include +#include +#include #include "power.h" @@ -903,7 +906,21 @@ void pm_wakeup_clear(bool reset) void pm_system_irq_wakeup(unsigned int irq_number) { + struct irq_desc *desc; + const char *name = "null"; + if (pm_wakeup_irq == 0) { + if (msm_show_resume_irq_mask) { + desc = irq_to_desc(irq_number); + if (desc == NULL) + name = "stray irq"; + else if (desc->action && desc->action->name) + name = desc->action->name; + + pr_warn("%s: %d triggered %s\n", __func__, + irq_number, name); + + } pm_wakeup_irq = irq_number; pm_system_wakeup(); }