msm: kgsl: Use the first command to initiate busy

There may be multiple command submissions per-frame.  Start your
busy count only on the first one.

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 0d3120f..37e5d2d 100644
--- a/drivers/gpu/msm/kgsl_pwrscale.c
+++ b/drivers/gpu/msm/kgsl_pwrscale.c
@@ -221,13 +221,21 @@
 void kgsl_pwrscale_busy(struct kgsl_device *device)
 {
 	if (device->pwrscale.policy && device->pwrscale.policy->busy)
-		device->pwrscale.policy->busy(device, &device->pwrscale);
+		if (!device->pwrscale.gpu_busy) {
+			device->pwrscale.policy->busy(device,
+					&device->pwrscale);
+			device->pwrscale.gpu_busy = 1;
+		}
 }
 
 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->pwrscale.gpu_busy) {
+			device->pwrscale.policy->idle(device,
+					&device->pwrscale);
+			device->pwrscale.gpu_busy = 0;
+		}
 }
 EXPORT_SYMBOL(kgsl_pwrscale_idle);
 
diff --git a/drivers/gpu/msm/kgsl_pwrscale.h b/drivers/gpu/msm/kgsl_pwrscale.h
index 6904608..2046f78 100644
--- a/drivers/gpu/msm/kgsl_pwrscale.h
+++ b/drivers/gpu/msm/kgsl_pwrscale.h
@@ -36,6 +36,7 @@
 	struct kgsl_pwrscale_policy *policy;
 	struct kobject kobj;
 	void *priv;
+	int gpu_busy;
 };
 
 struct kgsl_pwrscale_policy_attribute {