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);