Loading drivers/base/power/power.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -98,6 +98,8 @@ extern int pm_async_enabled; /* drivers/base/power/main.c */ /* drivers/base/power/main.c */ extern struct list_head dpm_list; /* The active device list */ extern struct list_head dpm_list; /* The active device list */ extern int msm_show_resume_irq_mask; static inline struct device *to_device(struct list_head *entry) static inline struct device *to_device(struct list_head *entry) { { return container_of(entry, struct device, power.entry); return container_of(entry, struct device, power.entry); Loading drivers/base/power/wakeup.c +17 −0 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,9 @@ #include <linux/debugfs.h> #include <linux/debugfs.h> #include <linux/pm_wakeirq.h> #include <linux/pm_wakeirq.h> #include <trace/events/power.h> #include <trace/events/power.h> #include <linux/irq.h> #include <linux/interrupt.h> #include <linux/irqdesc.h> #include "power.h" #include "power.h" Loading Loading @@ -881,7 +884,21 @@ void pm_wakeup_clear(bool reset) void pm_system_irq_wakeup(unsigned int irq_number) void pm_system_irq_wakeup(unsigned int irq_number) { { struct irq_desc *desc; const char *name = "null"; if (pm_wakeup_irq == 0) { 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_wakeup_irq = irq_number; pm_system_wakeup(); pm_system_wakeup(); } } Loading Loading
drivers/base/power/power.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -98,6 +98,8 @@ extern int pm_async_enabled; /* drivers/base/power/main.c */ /* drivers/base/power/main.c */ extern struct list_head dpm_list; /* The active device list */ extern struct list_head dpm_list; /* The active device list */ extern int msm_show_resume_irq_mask; static inline struct device *to_device(struct list_head *entry) static inline struct device *to_device(struct list_head *entry) { { return container_of(entry, struct device, power.entry); return container_of(entry, struct device, power.entry); Loading
drivers/base/power/wakeup.c +17 −0 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,9 @@ #include <linux/debugfs.h> #include <linux/debugfs.h> #include <linux/pm_wakeirq.h> #include <linux/pm_wakeirq.h> #include <trace/events/power.h> #include <trace/events/power.h> #include <linux/irq.h> #include <linux/interrupt.h> #include <linux/irqdesc.h> #include "power.h" #include "power.h" Loading Loading @@ -881,7 +884,21 @@ void pm_wakeup_clear(bool reset) void pm_system_irq_wakeup(unsigned int irq_number) void pm_system_irq_wakeup(unsigned int irq_number) { { struct irq_desc *desc; const char *name = "null"; if (pm_wakeup_irq == 0) { 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_wakeup_irq = irq_number; pm_system_wakeup(); pm_system_wakeup(); } } Loading