diff options
author | Ayan Kumar Halder <ayan.halder@arm.com> | 2018-05-15 12:04:17 -0400 |
---|---|---|
committer | Liviu Dudau <Liviu.Dudau@arm.com> | 2018-07-05 10:19:08 -0400 |
commit | fbcc454e8a350b929cb04fbcfdfa72fab37acf38 (patch) | |
tree | 586e55af768a8c0a1a6608f0538477410897e6c0 /drivers/gpu | |
parent | ff8fc26a764acdf5e0a2f86430bcb96c7b4eebec (diff) |
drm/arm/malidp: Enable/disable interrupts in runtime pm
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>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/arm/malidp_drv.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c index 16fa089fa8be..125be226bf6c 100644 --- a/drivers/gpu/drm/arm/malidp_drv.c +++ b/drivers/gpu/drm/arm/malidp_drv.c | |||
@@ -582,6 +582,8 @@ static int malidp_runtime_pm_suspend(struct device *dev) | |||
582 | /* we can only suspend if the hardware is in config mode */ | 582 | /* we can only suspend if the hardware is in config mode */ |
583 | WARN_ON(!hwdev->hw->in_config_mode(hwdev)); | 583 | WARN_ON(!hwdev->hw->in_config_mode(hwdev)); |
584 | 584 | ||
585 | malidp_se_irq_fini(hwdev); | ||
586 | malidp_de_irq_fini(hwdev); | ||
585 | hwdev->pm_suspended = true; | 587 | hwdev->pm_suspended = true; |
586 | clk_disable_unprepare(hwdev->mclk); | 588 | clk_disable_unprepare(hwdev->mclk); |
587 | clk_disable_unprepare(hwdev->aclk); | 589 | clk_disable_unprepare(hwdev->aclk); |
@@ -600,6 +602,8 @@ static int malidp_runtime_pm_resume(struct device *dev) | |||
600 | clk_prepare_enable(hwdev->aclk); | 602 | clk_prepare_enable(hwdev->aclk); |
601 | clk_prepare_enable(hwdev->mclk); | 603 | clk_prepare_enable(hwdev->mclk); |
602 | hwdev->pm_suspended = false; | 604 | hwdev->pm_suspended = false; |
605 | malidp_de_irq_hw_init(hwdev); | ||
606 | malidp_se_irq_hw_init(hwdev); | ||
603 | 607 | ||
604 | return 0; | 608 | return 0; |
605 | } | 609 | } |