diff mbox series

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

Message ID 20241216-dpu-fix-catalog-v1-1-15bf0807dba1@linaro.org (mailing list archive)
State Superseded
Headers show
Series drm/msm/dpu: catalog corrections | expand

Commit Message

Dmitry Baryshkov Dec. 16, 2024, 8:27 a.m. UTC
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@linaro.org>
---
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h | 2 ++
 1 file changed, 2 insertions(+)

Comments

Abhinav Kumar Dec. 16, 2024, 9:11 p.m. UTC | #1
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@linaro.org>
> ---
>   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@quicinc.com>

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.
Dmitry Baryshkov Dec. 16, 2024, 10:21 p.m. UTC | #2
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@linaro.org>
> > ---
> >   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@quicinc.com>
> 
> 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
Abhinav Kumar Dec. 16, 2024, 10:46 p.m. UTC | #3
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@linaro.org>
>>> ---
>>>    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@quicinc.com>
>>
>> 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.
diff mbox series

Patch

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,