|
@@ -321,7 +321,8 @@ void dev_pm_arm_wake_irq(struct wake_irq *wirq)
|
|
|
return;
|
|
|
|
|
|
if (device_may_wakeup(wirq->dev)) {
|
|
|
- if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED)
|
|
|
+ if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED &&
|
|
|
+ !pm_runtime_status_suspended(wirq->dev))
|
|
|
enable_irq(wirq->irq);
|
|
|
|
|
|
enable_irq_wake(wirq->irq);
|
|
@@ -343,7 +344,8 @@ void dev_pm_disarm_wake_irq(struct wake_irq *wirq)
|
|
|
if (device_may_wakeup(wirq->dev)) {
|
|
|
disable_irq_wake(wirq->irq);
|
|
|
|
|
|
- if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED)
|
|
|
+ if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED &&
|
|
|
+ !pm_runtime_status_suspended(wirq->dev))
|
|
|
disable_irq_nosync(wirq->irq);
|
|
|
}
|
|
|
}
|