diff --git a/drivers/gpu/msm/adreno_a6xx_gmu.c b/drivers/gpu/msm/adreno_a6xx_gmu.c index edd48127fe52..ecc5461e2ee7 100644 --- a/drivers/gpu/msm/adreno_a6xx_gmu.c +++ b/drivers/gpu/msm/adreno_a6xx_gmu.c @@ -3168,8 +3168,12 @@ static void a6xx_gmu_touch_wakeup(struct adreno_device *adreno_dev) struct a6xx_gmu_device *gmu = to_a6xx_gmu(adreno_dev); int ret; - /* Do not wake up a suspended device through touch event */ - if (test_bit(GMU_PRIV_PM_SUSPEND, &gmu->flags)) + /* + * Do not wake up a suspended device or until the first boot sequence + * has been completed. + */ + if (test_bit(GMU_PRIV_PM_SUSPEND, &gmu->flags) || + !test_bit(GMU_PRIV_FIRST_BOOT_DONE, &gmu->flags)) return; if (test_bit(GMU_PRIV_GPU_STARTED, &gmu->flags)) diff --git a/drivers/gpu/msm/adreno_a6xx_rgmu.c b/drivers/gpu/msm/adreno_a6xx_rgmu.c index e1f0dde2f9d8..0b0846230a2d 100644 --- a/drivers/gpu/msm/adreno_a6xx_rgmu.c +++ b/drivers/gpu/msm/adreno_a6xx_rgmu.c @@ -897,8 +897,12 @@ static void a6xx_rgmu_touch_wakeup(struct adreno_device *adreno_dev) struct a6xx_rgmu_device *rgmu = to_a6xx_rgmu(adreno_dev); int ret; - /* Do not wake up a suspended device through touch event */ - if (test_bit(RGMU_PRIV_PM_SUSPEND, &rgmu->flags)) + /* + * Do not wake up a suspended device or until the first boot sequence + * has been completed. + */ + if (test_bit(RGMU_PRIV_PM_SUSPEND, &rgmu->flags) || + !test_bit(RGMU_PRIV_FIRST_BOOT_DONE, &rgmu->flags)) return; if (test_bit(RGMU_PRIV_GPU_STARTED, &rgmu->flags))