On Fri, Aug 30, 2024 at 07:42:52PM GMT, Dmitry Baryshkov wrote: > On Thu, Aug 29, 2024 at 01:48:26PM GMT, Jessica Zhang wrote: > > From: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > > > > All resource allocation is centered around the LMs. Then other blocks > > (except DSCs) are allocated basing on the LMs that was selected, and LM > > powers up the CRTC rather than the encoder. > > > > Moreover if at some point the driver supports encoder cloning, > > allocating resources from the encoder will be incorrect, as all clones > > will have different encoder IDs, while LMs are to be shared by these > > encoders. > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > > [quic_abhinavk@xxxxxxxxxxx: Refactored resource allocation for CDM] > > Signed-off-by: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx> > > [quic_jesszhan@xxxxxxxxxxx: Changed to grabbing exising global state and > > dropped clearing num_mixers in crtc_disable] > > Hmm, I still see the chunk in dpu_crtc_disable(). I think the chunk is > correct so that if there is a disable/enable pair of calls with no > intermediate mode_set then num_mixers carry over the correct value. As a second thought: maybe it should be moved to the next patch. > > > Signed-off-by: Jessica Zhang <quic_jesszhan@xxxxxxxxxxx> > > --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 89 +++++++++++- > > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 201 +++++++++++----------------- > > drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 19 +++ > > 3 files changed, 183 insertions(+), 126 deletions(-) > > > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > > index 4c1be2f0555f..3296b0650056 100644 > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > > @@ -1091,9 +1091,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc, > > > > dpu_core_perf_crtc_update(crtc, 0); > > > > - memset(cstate->mixers, 0, sizeof(cstate->mixers)); > > - cstate->num_mixers = 0; > > - > > /* disable clk & bw control until clk & bw properties are set */ > > cstate->bw_control = false; > > cstate->bw_split_vote = false; > > -- > With best wishes > Dmitry -- With best wishes Dmitry