diff --git a/src/freedreno/decode/cffdec.c b/src/freedreno/decode/cffdec.c
index 57d8a66addd..17b43eca3de 100644
--- a/src/freedreno/decode/cffdec.c
+++ b/src/freedreno/decode/cffdec.c
@@ -2764,11 +2764,15 @@ cp_compute_checkpoint(uint32_t *dwords, uint32_t sizedwords, int level)
assert(is_64b());
assert(options->gpu_id >= 500);
- assert(sizedwords == 8);
-
- addr = dwords[5];
- addr |= ((uint64_t)dwords[6]) << 32;
- len = dwords[7];
+ if (sizedwords == 8) {
+ addr = dwords[5];
+ addr |= ((uint64_t)dwords[6]) << 32;
+ len = dwords[7];
+ } else {
+ addr = dwords[5];
+ addr |= ((uint64_t)dwords[6]) << 32;
+ len = dwords[4];
+ }
printl(3, "%saddr: 0x%016" PRIx64 "\n", levels[level], addr);
printl(3, "%slen: 0x%x\n", levels[level], len);
diff --git a/src/freedreno/registers/adreno/adreno_pm4.xml b/src/freedreno/registers/adreno/adreno_pm4.xml
index 2450929ddcb..0857c5aada4 100644
--- a/src/freedreno/registers/adreno/adreno_pm4.xml
+++ b/src/freedreno/registers/adreno/adreno_pm4.xml
@@ -1580,11 +1580,11 @@ opcode: CP_LOAD_STATE4 (30) (4 dwords)
+
-
+
-