msm: kgsl: Update snapshot ringbuffer parser for type7 ibs
Fix the wraparound logic when searching for ibs in the ringbuffer. The ibs can either be type3 or type7 packets so handle both cases. CRs-Fixed: 971163 Change-Id: I9bc4b4a72cddfe7f3d3892612c6e28861fdd0324 Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
This commit is contained in:
parent
3c53e0c1bf
commit
d2e98e8037
1 changed files with 17 additions and 4 deletions
|
@ -322,7 +322,10 @@ static void snapshot_rb_ibs(struct kgsl_device *device,
|
|||
index--;
|
||||
|
||||
if (index < 0) {
|
||||
index = KGSL_RB_DWORDS - 3;
|
||||
if (ADRENO_LEGACY_PM4(adreno_dev))
|
||||
index = KGSL_RB_DWORDS - 3;
|
||||
else
|
||||
index = KGSL_RB_DWORDS - 4;
|
||||
|
||||
/* We wrapped without finding what we wanted */
|
||||
if (index < rb->wptr) {
|
||||
|
@ -331,9 +334,19 @@ static void snapshot_rb_ibs(struct kgsl_device *device,
|
|||
}
|
||||
}
|
||||
|
||||
if (adreno_cmd_is_ib(adreno_dev, rbptr[index]) &&
|
||||
rbptr[index + 1] == ibbase)
|
||||
break;
|
||||
if (adreno_cmd_is_ib(adreno_dev, rbptr[index])) {
|
||||
if (ADRENO_LEGACY_PM4(adreno_dev)) {
|
||||
if (rbptr[index + 1] == ibbase)
|
||||
break;
|
||||
} else {
|
||||
uint64_t ibaddr;
|
||||
|
||||
ibaddr = rbptr[index + 2];
|
||||
ibaddr = ibaddr << 32 | rbptr[index + 1];
|
||||
if (ibaddr == ibbase)
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (index != rb->wptr);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue