Messages in this thread Patch in this message | | | Date | Mon, 30 Jan 2023 20:36:34 +0200 | Subject | Re: [v1 2/3] drm/msm/disp/dpu1: add dspps into reservation if there is a ctm request | From | Dmitry Baryshkov <> |
| |
On 30/01/2023 17:21, Kalyan Thota wrote: > Add dspp blocks into the topology for reservation, if there is a ctm > request for that composition. > > Changes in v1: > - Minor nits (Dmitry) > > Signed-off-by: Kalyan Thota <quic_kalyant@quicinc.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c > index 9c6817b..3bd46b4 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c > @@ -545,7 +545,8 @@ bool dpu_encoder_use_dsc_merge(struct drm_encoder *drm_enc) > static struct msm_display_topology dpu_encoder_get_topology( > struct dpu_encoder_virt *dpu_enc, > struct dpu_kms *dpu_kms, > - struct drm_display_mode *mode) > + struct drm_display_mode *mode, > + struct drm_crtc_state *crtc_state) > { > struct msm_display_topology topology = {0}; > int i, intf_count = 0; > @@ -573,11 +574,9 @@ static struct msm_display_topology dpu_encoder_get_topology( > else > topology.num_lm = (mode->hdisplay > MAX_HDISPLAY_SPLIT) ? 2 : 1; > > - if (dpu_enc->disp_info.intf_type == DRM_MODE_ENCODER_DSI) { > - if (dpu_kms->catalog->dspp && > - (dpu_kms->catalog->dspp_count >= topology.num_lm)) > - topology.num_dspp = topology.num_lm; > - } > + if (dpu_kms->catalog->dspp && > + crtc_state->ctm && (dpu_kms->catalog->dspp_count >= topology.num_lm))
This condition doesn't look correct anymore for the following reasons: - if there are no DSPPs we will completely ignore the ctm property - if there are not enough DSPPs, the CTM property will be ignore
I think, this should be just:
if (crtc_state->ctm) topology.num_dspp = topology.num_lm;
> + topology.num_dspp = topology.num_lm; > > topology.num_enc = 0; > topology.num_intf = intf_count; > @@ -643,7 +642,7 @@ static int dpu_encoder_virt_atomic_check( > } > } > > - topology = dpu_encoder_get_topology(dpu_enc, dpu_kms, adj_mode); > + topology = dpu_encoder_get_topology(dpu_enc, dpu_kms, adj_mode, crtc_state); > > /* Reserve dynamic resources now. */ > if (!ret) {
-- With best wishes Dmitry
| |