diff options
Diffstat (limited to 'kernel/irq')
-rw-r--r-- | kernel/irq/pm.c | 9 |
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 | ||
52 | static void suspend_device_irq(struct irq_desc *desc, int irq) | 52 | static 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 ! */ |