summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Perelet <operelet@codeaurora.org>2016-07-18 14:57:07 -0700
committerOleg Perelet <operelet@codeaurora.org>2016-07-18 15:01:01 -0700
commit4d229df28f62970b01519ce974a281ef3ac91503 (patch)
tree2b8ce0a7fa46ec8188d7a495cceb4bbfd360bad0
parentd60cc823911d671153e4ebf527abc484f542afe4 (diff)
msm: kgsl: Add 5usec delay for idle check on A540
CRC idle throttling effectively slows down GPU 10x, internal GPU idle hysteresis does not account for this and may take up to 3usec to expire. Make host delay. CRs-Fixed: 1028293 Change-Id: I0a80e49a3fea6e0e8d9e8b82847188b0a4452943 Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
-rw-r--r--drivers/gpu/msm/adreno.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c
index 26e341a876e8..44ff881a5f5b 100644
--- a/drivers/gpu/msm/adreno.c
+++ b/drivers/gpu/msm/adreno.c
@@ -2051,6 +2051,14 @@ bool adreno_hw_isidle(struct adreno_device *adreno_dev)
const struct adreno_gpu_core *gpucore = adreno_dev->gpucore;
unsigned int reg_rbbm_status;
+ if (adreno_is_a540(adreno_dev))
+ /**
+ * Due to CRC idle throttling GPU
+ * idle hysteresys can take up to
+ * 3usec for expire - account for it
+ */
+ udelay(5);
+
adreno_readreg(adreno_dev, ADRENO_REG_RBBM_STATUS,
&reg_rbbm_status);