On 19/04/2023 17:41, Arnaud Vrac wrote:
This avoids using lm blocks that support DSPP when not needed, to
keep those resources available.

This will break some of the platforms. Consider qcm2290 which has a single LM with DSPP. So, _dpu_rm_check_lm_and_get_connected_blks should be performed in two steps: first skip non-DSPP-enabled LMs when DSPP is not required. Then, if the LM (pair) is not found, look for any suitable LM(pair).


Signed-off-by: Arnaud Vrac <av...@freebox.fr>
---
  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
index f4dda88a73f7d..4b393d46c743f 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
@@ -362,7 +362,7 @@ static bool _dpu_rm_check_lm_and_get_connected_blks(struct 
dpu_rm *rm,
        *pp_idx = idx;
if (!reqs->topology.num_dspp)
-               return true;
+               return !lm_cfg->dspp;
idx = lm_cfg->dspp - DSPP_0;
        if (idx < 0 || idx >= ARRAY_SIZE(rm->dspp_blks)) {


--
With best wishes
Dmitry

Reply via email to