msm: kgsl: Don't call through pwrscale functions when entering SLUMBER
No additional calls to pwrscale idle or busy should be allowed when
transitioning to SLUMBER state.
Change-Id: I9488569758d263752c9778b8603f8e80bbc41ea1
Signed-off-by: Lucille Sylvester <lsylvest@codeaurora.org>
diff --git a/drivers/gpu/msm/kgsl_pwrscale.c b/drivers/gpu/msm/kgsl_pwrscale.c
index 1cecbc7..ddc641d 100644
--- a/drivers/gpu/msm/kgsl_pwrscale.c
+++ b/drivers/gpu/msm/kgsl_pwrscale.c
@@ -227,7 +227,8 @@
void kgsl_pwrscale_busy(struct kgsl_device *device)
{
if (device->pwrscale.policy && device->pwrscale.policy->busy)
- if (!device->pwrscale.gpu_busy)
+ if ((!device->pwrscale.gpu_busy) &&
+ (device->requested_state != KGSL_STATE_SLUMBER))
device->pwrscale.policy->busy(device,
&device->pwrscale);
device->pwrscale.gpu_busy = 1;
@@ -236,7 +237,10 @@
void kgsl_pwrscale_idle(struct kgsl_device *device)
{
if (device->pwrscale.policy && device->pwrscale.policy->idle)
- device->pwrscale.policy->idle(device, &device->pwrscale);
+ if (device->requested_state !=
+ (KGSL_STATE_SLUMBER | KGSL_STATE_SLEEP))
+ device->pwrscale.policy->idle(device,
+ &device->pwrscale);
device->pwrscale.gpu_busy = 0;
}
EXPORT_SYMBOL(kgsl_pwrscale_idle);