msm: kgsl: Kick dcvs in idle thread for gmu targets

This ensures that dcvs runs while the gpu is still actively working
on the same submission for longer than the idle timer.

Change-Id: I85f2ff21dc19a9e589d6ed918bebea4c42b2a39d
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This commit is contained in:
Harshdeep Dhatt 2020-08-11 18:24:19 -06:00
commit c56b6599e3
2 changed files with 5 additions and 2 deletions

View file

@ -3115,6 +3115,7 @@ static void gmu_idle_check(struct work_struct *work)
if (test_bit(GMU_PRIV_GPU_STARTED, &gmu->flags))
a6xx_power_off(adreno_dev);
} else {
kgsl_pwrscale_update(device);
mod_timer(&device->idle_timer,
jiffies + device->pwrctrl.interval_timeout);
}

View file

@ -852,11 +852,13 @@ static void rgmu_idle_check(struct work_struct *work)
if (test_bit(GMU_DISABLE_SLUMBER, &device->gmu_core.flags))
goto done;
if (!atomic_read(&device->active_cnt))
if (!atomic_read(&device->active_cnt)) {
a6xx_power_off(adreno_dev);
else
} else {
kgsl_pwrscale_update(device);
mod_timer(&device->idle_timer,
jiffies + device->pwrctrl.interval_timeout);
}
done:
mutex_unlock(&device->mutex);