Loading drivers/irqchip/irq-gic-common.h +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ struct gic_quirk { u32 iidr; u32 mask; }; extern bool from_suspend; extern struct irq_chip gic_arch_extn; int gic_configure_irq(unsigned int irq, unsigned int type, void __iomem *base, void (*sync_access)(void)); Loading drivers/irqchip/irq-gic-v3.c +3 −0 Original line number Diff line number Diff line Loading @@ -689,6 +689,9 @@ static bool gic_dist_security_disabled(void) static int gic_cpu_pm_notifier(struct notifier_block *self, unsigned long cmd, void *v) { if (from_suspend) return NOTIFY_OK; if (cmd == CPU_PM_EXIT) { if (gic_dist_security_disabled()) gic_enable_redist(true); Loading kernel/cpu_pm.c +4 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include <linux/spinlock.h> #include <linux/syscore_ops.h> bool from_suspend; static DEFINE_RWLOCK(cpu_pm_notifier_lock); static RAW_NOTIFIER_HEAD(cpu_pm_notifier_chain); Loading Loading @@ -208,6 +210,7 @@ static int cpu_pm_suspend(void) { int ret; from_suspend = true; ret = cpu_pm_enter(); if (ret) return ret; Loading @@ -218,6 +221,7 @@ static int cpu_pm_suspend(void) static void cpu_pm_resume(void) { from_suspend = false; cpu_cluster_pm_exit(0); cpu_pm_exit(); } Loading Loading
drivers/irqchip/irq-gic-common.h +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ struct gic_quirk { u32 iidr; u32 mask; }; extern bool from_suspend; extern struct irq_chip gic_arch_extn; int gic_configure_irq(unsigned int irq, unsigned int type, void __iomem *base, void (*sync_access)(void)); Loading
drivers/irqchip/irq-gic-v3.c +3 −0 Original line number Diff line number Diff line Loading @@ -689,6 +689,9 @@ static bool gic_dist_security_disabled(void) static int gic_cpu_pm_notifier(struct notifier_block *self, unsigned long cmd, void *v) { if (from_suspend) return NOTIFY_OK; if (cmd == CPU_PM_EXIT) { if (gic_dist_security_disabled()) gic_enable_redist(true); Loading
kernel/cpu_pm.c +4 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include <linux/spinlock.h> #include <linux/syscore_ops.h> bool from_suspend; static DEFINE_RWLOCK(cpu_pm_notifier_lock); static RAW_NOTIFIER_HEAD(cpu_pm_notifier_chain); Loading Loading @@ -208,6 +210,7 @@ static int cpu_pm_suspend(void) { int ret; from_suspend = true; ret = cpu_pm_enter(); if (ret) return ret; Loading @@ -218,6 +221,7 @@ static int cpu_pm_suspend(void) static void cpu_pm_resume(void) { from_suspend = false; cpu_cluster_pm_exit(0); cpu_pm_exit(); } Loading