msm: kgsl: Fix preemption fault handling for A6xx GPU

In preemption fault handler, check only the STOP bit of
ADRENO_REG_CP_PREEMPT register to see if the preemption is complete.

Change-Id: Id1f2d0947412e996d6028558124c3e528527cec6
Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org>
Signed-off-by: Sebanti Das <sebadas@codeaurora.org>
This commit is contained in:
Akhil P Oommen 2019-03-13 13:03:21 +05:30 • committed by Gerrit - the friendly Code Review server
commit 2d6f044f6b

View file

@ -139,7 +139,7 @@ static void _a6xx_preemption_fault(struct adreno_device *adreno_dev)
if (kgsl_state_is_awake(device)) {
kgsl_regread(device, A6XX_CP_CONTEXT_SWITCH_CNTL, &status);
if (status == 0) {
if (!(status & 0x1)) {
adreno_set_preempt_state(adreno_dev,
ADRENO_PREEMPT_COMPLETE);
@ -149,7 +149,7 @@ static void _a6xx_preemption_fault(struct adreno_device *adreno_dev)
}
dev_err(device->dev,
"Preemption timed out: cur=%d R/W=%X/%X, next=%d R/W=%X/%X\n",
"Preemption Fault: cur=%d R/W=0x%x/0x%x, next=%d R/W=0x%x/0x%x\n",
adreno_dev->cur_rb->id,
adreno_get_rptr(adreno_dev->cur_rb),
adreno_dev->cur_rb->wptr,