On DPU 13 the SSPP block is only 0x84 long and the fetch registers
(source address, size, format, multirect) live in the rec0/rec1
sub-blocks at 0x1000 and 0x3000. The snapshot dumps the SSPP block and
its scaler and CSC sub-blocks, but not rec0/rec1, so the plane fetch
state is missing from the devcoredump and from debugfs dri/N/kms.

Add the rec0/rec1 sub-blocks to the snapshot.

Tested on a Lenovo Legion Tab Y700 gen 5 (SM8850).

Fixes: 688c7734002a ("drm/msm/dpu: Add Kaanapali SSPP sub-block support")
Assisted-by: LLM
Signed-off-by: Joonhoe Kim <[email protected]>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index da3556eb6ecc..dba8a07d34bb 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -1006,6 +1006,20 @@ static void dpu_kms_mdp_snapshot(struct msm_disp_state 
*disp_state, struct msm_k
                                                    base + 
cat->sspp[i].sblk->csc_blk.base,
                                                    "%s_%s", cat->sspp[i].name,
                                                    
cat->sspp[i].sblk->csc_blk.name);
+
+               if (cat->sspp[i].sblk && cat->sspp[i].sblk->sspp_rec0_blk.len > 
0)
+                       msm_disp_snapshot_add_block(disp_state,
+                                                   
cat->sspp[i].sblk->sspp_rec0_blk.len,
+                                                   base + 
cat->sspp[i].sblk->sspp_rec0_blk.base,
+                                                   "%s_%s", cat->sspp[i].name,
+                                                   
cat->sspp[i].sblk->sspp_rec0_blk.name);
+
+               if (cat->sspp[i].sblk && cat->sspp[i].sblk->sspp_rec1_blk.len > 
0)
+                       msm_disp_snapshot_add_block(disp_state,
+                                                   
cat->sspp[i].sblk->sspp_rec1_blk.len,
+                                                   base + 
cat->sspp[i].sblk->sspp_rec1_blk.base,
+                                                   "%s_%s", cat->sspp[i].name,
+                                                   
cat->sspp[i].sblk->sspp_rec1_blk.name);
        }
 
        /* dump LM sub-blocks HW regs info */

base-commit: 6375e61c01e93e35ee7acd336a689ac1fae4b509
-- 
2.43.0

Reply via email to