drm/arm/malidp: Enable/disable interrupts in runtime pm
authorAyan Kumar Halder <ayan.halder@arm.com>
Tue, 15 May 2018 16:04:17 +0000 (17:04 +0100)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Thu, 5 Jul 2018 14:19:08 +0000 (15:19 +0100)
Display and scaling engine interrupts need to be disabled when the
runtime pm invokes malidp_runtime_pm_suspend(). Conversely, they
need to be enabled in malidp_runtime_pm_resume().

This patch depends on:
https://lkml.org/lkml/2017/5/15/695

Reported-by: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
Signed-off-by: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
Signed-off-by: Ayan Kumar Halder <ayan.halder@arm.com>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
drivers/gpu/drm/arm/malidp_drv.c

index 16fa089fa8be5ad31960a81f1a7623c219a79261..125be226bf6c9712697e4cc5e705f8d4aa0b92ba 100644 (file)
@@ -582,6 +582,8 @@ static int malidp_runtime_pm_suspend(struct device *dev)
        /* we can only suspend if the hardware is in config mode */
        WARN_ON(!hwdev->hw->in_config_mode(hwdev));
 
+       malidp_se_irq_fini(hwdev);
+       malidp_de_irq_fini(hwdev);
        hwdev->pm_suspended = true;
        clk_disable_unprepare(hwdev->mclk);
        clk_disable_unprepare(hwdev->aclk);
@@ -600,6 +602,8 @@ static int malidp_runtime_pm_resume(struct device *dev)
        clk_prepare_enable(hwdev->aclk);
        clk_prepare_enable(hwdev->mclk);
        hwdev->pm_suspended = false;
+       malidp_de_irq_hw_init(hwdev);
+       malidp_se_irq_hw_init(hwdev);
 
        return 0;
 }