diff options
author | Sameer Pujar <spujar@nvidia.com> | 2019-03-22 15:13:05 +0300 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2019-04-29 17:45:01 +0300 |
commit | 960164f7141e8a974035db9ab03d93f46656ea81 (patch) | |
tree | 1236ecd5355be46c57e052197867bd08bb77fa74 /drivers/irqchip/irq-gic-pm.c | |
parent | fe00f8900ca71a991849b9413f0bfa0ec50f0ad4 (diff) | |
download | linux-960164f7141e8a974035db9ab03d93f46656ea81.tar.xz |
irqchip/gic-pm: Fix suspend handling
If interrupts are enabled for a non-root GIC device that uses the
gic-pm driver, when system suspend occurs, the current interrupt
state is not saved and restored correctly and so interrupts do not
work again on resuming the system. Add a late suspend handler to
save and restore the state for these devices.
Suggested-by: Jonathan Hunter <jonathanh@nvidia.com>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/irqchip/irq-gic-pm.c')
-rw-r--r-- | drivers/irqchip/irq-gic-pm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-gic-pm.c b/drivers/irqchip/irq-gic-pm.c index 069cf4c0f614..c4aac0977d8a 100644 --- a/drivers/irqchip/irq-gic-pm.c +++ b/drivers/irqchip/irq-gic-pm.c @@ -142,6 +142,8 @@ irq_dispose: static const struct dev_pm_ops gic_pm_ops = { SET_RUNTIME_PM_OPS(gic_runtime_suspend, gic_runtime_resume, NULL) + SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) }; static const char * const gic400_clocks[] = { |