summaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/irq')
-rw-r--r--kernel/irq/pm.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
index 1b1b67a73218..74ca6bb541d5 100644
--- a/kernel/irq/pm.c
+++ b/kernel/irq/pm.c
@@ -51,7 +51,7 @@ void irq_pm_remove_action(struct irq_desc *desc, struct irqaction *action)
51 51
52static void suspend_device_irq(struct irq_desc *desc, int irq) 52static void suspend_device_irq(struct irq_desc *desc, int irq)
53{ 53{
54 if (!desc->action || (desc->action->flags & IRQF_NO_SUSPEND)) 54 if (!desc->action || desc->no_suspend_depth)
55 return; 55 return;
56 56
57 desc->istate |= IRQS_SUSPENDED; 57 desc->istate |= IRQS_SUSPENDED;
@@ -94,11 +94,8 @@ static void resume_irq(struct irq_desc *desc, int irq)
94 if (desc->istate & IRQS_SUSPENDED) 94 if (desc->istate & IRQS_SUSPENDED)
95 goto resume; 95 goto resume;
96 96
97 if (!desc->action) 97 /* Force resume the interrupt? */
98 return; 98 if (!desc->force_resume_depth)
99
100 /* Interrupts marked with that flag are force reenabled */
101 if (!(desc->action->flags & IRQF_FORCE_RESUME))
102 return; 99 return;
103 100
104 /* Pretend that it got disabled ! */ 101 /* Pretend that it got disabled ! */