From 817655d509ea7935ce47430cd66bd42004cb883e Mon Sep 17 00:00:00 2001 From: Harshdeep Dhatt Date: Mon, 28 Sep 2020 11:03:35 -0600 Subject: [PATCH] msm: kgsl: Fix error handling during gmu boot Need to turn off interrupts if we encounter an error other than a gmu fault or timeout. Change-Id: If4261f5a2c8ce63bceede3a460faca0353817a39 Signed-off-by: Harshdeep Dhatt --- drivers/gpu/msm/adreno_a6xx_gmu.c | 4 ++++ drivers/gpu/msm/adreno_a6xx_hwsched.c | 14 ++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/msm/adreno_a6xx_gmu.c b/drivers/gpu/msm/adreno_a6xx_gmu.c index 1d821e57cdb6..44bdd90893bc 100644 --- a/drivers/gpu/msm/adreno_a6xx_gmu.c +++ b/drivers/gpu/msm/adreno_a6xx_gmu.c @@ -2302,6 +2302,8 @@ err: return ret; } + a6xx_gmu_irq_disable(adreno_dev); + clks_gdsc_off: clk_bulk_disable_unprepare(gmu->num_clks, gmu->clks); @@ -2379,6 +2381,8 @@ err: return ret; } + a6xx_gmu_irq_disable(adreno_dev); + clks_gdsc_off: clk_bulk_disable_unprepare(gmu->num_clks, gmu->clks); diff --git a/drivers/gpu/msm/adreno_a6xx_hwsched.c b/drivers/gpu/msm/adreno_a6xx_hwsched.c index 50d79cc41c1b..322cb5c376fc 100644 --- a/drivers/gpu/msm/adreno_a6xx_hwsched.c +++ b/drivers/gpu/msm/adreno_a6xx_hwsched.c @@ -204,10 +204,13 @@ static int a6xx_hwsched_gmu_first_boot(struct adreno_device *adreno_dev) return 0; err: - if (device->gmu_fault) + if (device->gmu_fault) { a6xx_gmu_suspend(adreno_dev); - return ret; + return ret; + } + + a6xx_gmu_irq_disable(adreno_dev); clks_gdsc_off: clk_bulk_disable_unprepare(gmu->num_clks, gmu->clks); @@ -262,10 +265,13 @@ static int a6xx_hwsched_gmu_boot(struct adreno_device *adreno_dev) return 0; err: - if (device->gmu_fault) + if (device->gmu_fault) { a6xx_gmu_suspend(adreno_dev); - return ret; + return ret; + } + + a6xx_gmu_irq_disable(adreno_dev); clks_gdsc_off: clk_bulk_disable_unprepare(gmu->num_clks, gmu->clks);