Message ID | 20230419-dpu-tweaks-v1-11-d1bac46db075@freebox.fr (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/msm/dpu: tweaks for better hardware resources allocation | expand |
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 <avrac@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)) { >
Le jeu. 20 avr. 2023 à 01:18, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> a écrit : > > 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). Good point, I'll add the change. > > > > > Signed-off-by: Arnaud Vrac <avrac@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 >
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)) {
This avoids using lm blocks that support DSPP when not needed, to keep those resources available. Signed-off-by: Arnaud Vrac <avrac@freebox.fr> --- drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)