Re: [PATCH 1/8] drm/msm/dpu: link DSPP_2/_3 blocks on SM8150

From: Abhinav Kumar
Date: Mon Dec 16 2024 - 17:46:36 EST




On 12/16/2024 2:21 PM, Dmitry Baryshkov wrote:
On Mon, Dec 16, 2024 at 01:11:35PM -0800, Abhinav Kumar wrote:


On 12/16/2024 12:27 AM, Dmitry Baryshkov wrote:
Link DSPP_2 to the LM_2 and DSPP_3 to the LM_3 mixer blocks.

Fixes: 05ae91d960fd ("drm/msm/dpu: enable DSPP support on SM8[12]50")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
---
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h | 2 ++
1 file changed, 2 insertions(+)


Change looks fine

Reviewed-by: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>

One question below (not tied to the change but arose due to it):

diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h
index 6ccfde82fecdb4e3612df161814b16f7af40ca5f..421afacb7248039abd9fb66bcb73b756ae0d640a 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h
@@ -164,6 +164,7 @@ static const struct dpu_lm_cfg sm8150_lm[] = {
.sblk = &sdm845_lm_sblk,
.lm_pair = LM_3,
.pingpong = PINGPONG_2,
+ .dspp = DSPP_2,
}, {
.name = "lm_3", .id = LM_3,
.base = 0x47000, .len = 0x320,
@@ -171,6 +172,7 @@ static const struct dpu_lm_cfg sm8150_lm[] = {
.sblk = &sdm845_lm_sblk,
.lm_pair = LM_2,
.pingpong = PINGPONG_3,
+ .dspp = DSPP_3,
}, {
.name = "lm_4", .id = LM_4,
.base = 0x48000, .len = 0x320,


the consumer of .dspp seems to be in the RM code which is used to map the
DSPP to encoder_id but is there really any case where lm_id != dspp_id ... I
guess I am missing the context of why DSPP id needs to be tracked as LMs and
DSPPs go together. Let me also check this part internally.

For example check the SDM845, the LM_5 is tied to DSPP_3.

LM | DSPP
---------
0 | 0
1 | 1
2 | 2
5 | 3


Ah ... yes ... seems like sdm845 is the only one having this anomaly.

Thanks for clarifying.