On Wed, 2026-03-04 at 17:33 +0530, Nautiyal, Ankit K wrote:
> 
> On 3/4/2026 5:00 PM, Jouni Högander wrote:
> > There are slice row per frame and pic height parameters in DSC that
> > needs
> > to be configured on every Selective Update in Early Transport mode.
> > Use
> > helper provided by DSC code to configure these on Selective Update
> > when in
> > Early Transport mode. Also fill crtc_state->psr2_su_area with full
> > frame
> > area on full frame update for DSC calculation.
> > 
> > v2: move psr2_su_area under skip_sel_fetch_set_loop label
> > 
> > Bspec: 68927, 71709
> > Fixes: 467e4e061c44 ("drm/i915/psr: Enable psr2 early transport as
> > possible")
> > Cc: <[email protected]> # v6.9+
> > Signed-off-by: Jouni Högander <[email protected]>
> 
> Makes sense to, make the su area full at the end, if full_frame
> update 
> is needed.
> 
> Reviewed-by: Ankit Nautiyal <[email protected]>

Thank you Ankit for the review. These are now pushed to drm-intel-next.

BR,
Jouni Högander

> 
> > ---
> >   drivers/gpu/drm/i915/display/intel_psr.c | 10 ++++++++++
> >   1 file changed, 10 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 7b197e84e77d..cb3df2611515 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -2618,6 +2618,12 @@ void
> > intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
> >   
> >     intel_de_write_dsb(display, dsb, PIPE_SRCSZ_ERLY_TPT(crtc-
> > >pipe),
> >                        crtc_state->pipe_srcsz_early_tpt);
> > +
> > +   if (!crtc_state->dsc.compression_enable)
> > +           return;
> > +
> > +   intel_dsc_su_et_parameters_configure(dsb, encoder,
> > crtc_state,
> > +                                       
> > drm_rect_height(&crtc_state->psr2_su_area));
> >   }
> >   
> >   static void psr2_man_trk_ctl_calc(struct intel_crtc_state
> > *crtc_state,
> > @@ -3039,6 +3045,10 @@ int intel_psr2_sel_fetch_update(struct
> > intel_atomic_state *state,
> >     }
> >   
> >   skip_sel_fetch_set_loop:
> > +   if (full_update)
> > +           clip_area_update(&crtc_state->psr2_su_area,
> > &crtc_state->pipe_src,
> > +                            &crtc_state->pipe_src);
> > +
> >     psr2_man_trk_ctl_calc(crtc_state, full_update);
> >     crtc_state->pipe_srcsz_early_tpt =
> >             psr2_pipe_srcsz_early_tpt_calc(crtc_state,
> > full_update);

Reply via email to