msm: kgsl: Make sure first boot sequence is complete during touch event

It's possible that a touch event may happen before the first kgsl
instance is opened, which triggers the first boot sequence. This sequence
must happen before touch event can trigger a power on sequence.

Change-Id: I21af7865f4b02408d4f00814b4af6c9b9e8f5545
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This commit is contained in:
Harshdeep Dhatt 2020-07-16 13:10:51 -06:00
commit fd1a8ee78e
2 changed files with 12 additions and 4 deletions

View file

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

View file

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