diff options
Diffstat (limited to 'kernel/irq/pm.c')
| -rw-r--r-- | kernel/irq/pm.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c index 3ca532592704..5204a6d1b985 100644 --- a/kernel/irq/pm.c +++ b/kernel/irq/pm.c | |||
| @@ -43,9 +43,12 @@ void irq_pm_install_action(struct irq_desc *desc, struct irqaction *action) | |||
| 43 | 43 | ||
| 44 | if (action->flags & IRQF_NO_SUSPEND) | 44 | if (action->flags & IRQF_NO_SUSPEND) |
| 45 | desc->no_suspend_depth++; | 45 | desc->no_suspend_depth++; |
| 46 | else if (action->flags & IRQF_COND_SUSPEND) | ||
| 47 | desc->cond_suspend_depth++; | ||
| 46 | 48 | ||
| 47 | WARN_ON_ONCE(desc->no_suspend_depth && | 49 | WARN_ON_ONCE(desc->no_suspend_depth && |
| 48 | desc->no_suspend_depth != desc->nr_actions); | 50 | (desc->no_suspend_depth + |
| 51 | desc->cond_suspend_depth) != desc->nr_actions); | ||
| 49 | } | 52 | } |
| 50 | 53 | ||
| 51 | /* | 54 | /* |
| @@ -61,6 +64,8 @@ void irq_pm_remove_action(struct irq_desc *desc, struct irqaction *action) | |||
| 61 | 64 | ||
| 62 | if (action->flags & IRQF_NO_SUSPEND) | 65 | if (action->flags & IRQF_NO_SUSPEND) |
| 63 | desc->no_suspend_depth--; | 66 | desc->no_suspend_depth--; |
| 67 | else if (action->flags & IRQF_COND_SUSPEND) | ||
| 68 | desc->cond_suspend_depth--; | ||
| 64 | } | 69 | } |
| 65 | 70 | ||
| 66 | static bool suspend_device_irq(struct irq_desc *desc, int irq) | 71 | static bool suspend_device_irq(struct irq_desc *desc, int irq) |
