aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Crouse <jcrouse@codeaurora.org>2014-03-10 14:49:04 -0600
committerJordan Crouse <jcrouse@codeaurora.org>2014-03-13 08:42:47 -0600
commitf6febdbf53bc89a82956c74723a06eb0d735aa07 (patch)
treecd6b41b0d886ae7870d2f9ab45e5aa3e777bce15
parent8784b2854acdde208c4bf47876f43cf7073304cb (diff)
msm: kgsl: Reduce the delay time for A4XX HLSQ reset in snapshot
The HLSQ reset routine during snapshot read only needs a few cycles to complete - an AHB register read should do the trick. Change-Id: Ic0dedbadbdc4dd529a04fd6c363a7eb5f9548eba Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
-rw-r--r--drivers/gpu/msm/adreno_a4xx_snapshot.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/gpu/msm/adreno_a4xx_snapshot.c b/drivers/gpu/msm/adreno_a4xx_snapshot.c
index 0b05b9f3751..b7f68771517 100644
--- a/drivers/gpu/msm/adreno_a4xx_snapshot.c
+++ b/drivers/gpu/msm/adreno_a4xx_snapshot.c
@@ -305,26 +305,20 @@ static void *a4xx_snapshot_debugbus(struct kgsl_device *device,
static void a4xx_reset_hlsq(struct kgsl_device *device)
{
- unsigned long waittime;
- unsigned int val;
+ unsigned int val, dummy = 0;
/* reset cp */
kgsl_regwrite(device, A4XX_RBBM_BLOCK_SW_RESET_CMD, 1 << 20);
- waittime = jiffies + 100;
- while (time_before(jiffies, waittime))
- ;
+ kgsl_regread(device, A4XX_RBBM_BLOCK_SW_RESET_CMD, &dummy);
/* reset hlsq */
kgsl_regwrite(device, A4XX_RBBM_BLOCK_SW_RESET_CMD, 1 << 25);
- waittime = jiffies + 100;
- while (time_before(jiffies, waittime))
- ;
+ kgsl_regread(device, A4XX_RBBM_BLOCK_SW_RESET_CMD, &dummy);
/* clear reset bits */
kgsl_regwrite(device, A4XX_RBBM_BLOCK_SW_RESET_CMD, 0);
- waittime = jiffies + 100;
- while (time_before(jiffies, waittime))
- ;
+ kgsl_regread(device, A4XX_RBBM_BLOCK_SW_RESET_CMD, &dummy);
+
/* set HLSQ_TIMEOUT_THRESHOLD.cycle_timeout_limit_sp to 26 */
kgsl_regread(device, A4XX_HLSQ_TIMEOUT_THRESHOLD, &val);