[PATCH v8 01/11] drm/i915/psr: Rename has_psr2 as has_sel_update

Hogander, Jouni jouni.hogander at intel.com
Tue Apr 30 06:44:13 UTC 2024


On Mon, 2024-04-29 at 19:08 +0000, Manna, Animesh wrote:
> 
> 
> > -----Original Message-----
> > From: Manna, Animesh
> > Sent: Tuesday, April 30, 2024 12:24 AM
> > To: Hogander, Jouni <jouni.hogander at intel.com>; intel-
> > gfx at lists.freedesktop.org
> > Subject: RE: [PATCH v8 01/11] drm/i915/psr: Rename has_psr2 as
> > has_sel_update
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: Hogander, Jouni <jouni.hogander at intel.com>
> > > Sent: Monday, April 29, 2024 5:38 PM
> > > To: intel-gfx at lists.freedesktop.org
> > > Cc: Manna, Animesh <animesh.manna at intel.com>; Hogander, Jouni
> > > <jouni.hogander at intel.com>
> > > Subject: [PATCH v8 01/11] drm/i915/psr: Rename has_psr2 as
> > > has_sel_update
> > > 
> > > We are going to reuse has_psr2 for panel_replay as well. Rename
> > > it as
> > > has_sel_update to avoid confusion.
> > > 
> > > v2: Rebase
> > > 
> > > Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> > > Reviewed-by: Animesh Manna <animesh.manna at intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_crtc_state_dump.c | 10 +++++-
> > > ----
> > >  drivers/gpu/drm/i915/display/intel_display.c         |  2 +-
> > >  drivers/gpu/drm/i915/display/intel_display_types.h   |  2 +-
> > >  drivers/gpu/drm/i915/display/intel_dp.c              |  2 +-
> > >  drivers/gpu/drm/i915/display/intel_fbc.c             |  2 +-
> > >  drivers/gpu/drm/i915/display/intel_psr.c             | 10 +++++-
> > > ----
> > >  6 files changed, 14 insertions(+), 14 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
> > > b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
> > > index ccaa4cb2809b..2c391714f28e 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
> > > @@ -251,11 +251,11 @@ void intel_crtc_state_dump(const struct
> > > intel_crtc_state *pipe_config,
> > >                 drm_printf(&p, "sdp split: %s\n",
> > >                            str_enabled_disabled(pipe_config-
> > > > sdp_split_enable));
> > > 
> > > -               drm_printf(&p, "psr: %s, psr2: %s, panel replay:
> > > %s, selective
> > > fetch: %s\n",
> > > -                          str_enabled_disabled(pipe_config-
> > > >has_psr),
> > > -                          str_enabled_disabled(pipe_config-
> > > >has_psr2),
> > > -                          str_enabled_disabled(pipe_config-
> > > > has_panel_replay),
> > > -                          str_enabled_disabled(pipe_config-
> > > > enable_psr2_sel_fetch));
> > > +               drm_printf(&p, "psr: %s, selective update: %s,
> > > panel replay:
> > > %s, selective fetch: %s\n",
> > > +                           str_enabled_disabled(pipe_config-
> > > >has_psr),
> > > +                           str_enabled_disabled(pipe_config-
> > > > has_sel_update),
> > > +                           str_enabled_disabled(pipe_config-
> > > > has_panel_replay),
> > > +                           str_enabled_disabled(pipe_config-
> > > > enable_psr2_sel_fetch));
> > 
> > During panel-replay has_psr flag also will be true. So will get
> > print as psr
> > enabled.
> > Something below may give correct info,
> >                 if (pipe_config->has_panel_replay)
> >                         drm_printf(&p, "psr: disabled, panel
> > replay: enabled");
> >                 else
> >                         drm_printf(&p, "psr: %s, panel replay:
> > disabled",
> >                                             
> > str_enabled_disabled(pipe_config->has_psr));
> > 
> >                 drm_printf(&p, "selective update: %s, selective
> > fetch: %s\n",
> >                                     
> > str_enabled_disabled(pipe_config->has_sel_update),
> >                                     
> > str_enabled_disabled(pipe_config-
> > > enable_psr2_sel_fetch));
> > 
> > Regards,
> > Animesh
> > 
> > >         }
> > > 
> > >         drm_printf(&p, "framestart delay: %d, MSA timing delay:
> > > %d\n", diff
> > > --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index f45e5f02096d..c1aba4e8ac54 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -5319,7 +5319,7 @@ intel_pipe_config_compare(const struct
> > > intel_crtc_state *current_config,
> > >          */
> > >         if (current_config->has_panel_replay || pipe_config-
> > > > has_panel_replay) {
> > >                 PIPE_CONF_CHECK_BOOL(has_psr);
> > > -               PIPE_CONF_CHECK_BOOL(has_psr2);
> > > +               PIPE_CONF_CHECK_BOOL(has_sel_update);
> > >                 PIPE_CONF_CHECK_BOOL(enable_psr2_sel_fetch);
> > >                 PIPE_CONF_CHECK_BOOL(enable_psr2_su_region_et);
> > >                 PIPE_CONF_CHECK_BOOL(has_panel_replay);
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > > index 62f7a30c37dc..6747c10da298 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > > @@ -1189,7 +1189,7 @@ struct intel_crtc_state {
> > > 
> > >         /* PSR is supported but might not be enabled due the lack
> > > of enabled
> > > planes */
> > >         bool has_psr;
> > > -       bool has_psr2;
> > > +       bool has_sel_update;
> > >         bool enable_psr2_sel_fetch;
> > >         bool enable_psr2_su_region_et;
> > >         bool req_psr2_sdp_prior_scanline;
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> > > b/drivers/gpu/drm/i915/display/intel_dp.c
> > > index e05e25cd4a94..a7c406a9695f 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > > @@ -2660,7 +2660,7 @@ static void intel_dp_compute_vsc_sdp(struct
> > > intel_dp *intel_dp,
> > >         if (intel_dp_needs_vsc_sdp(crtc_state, conn_state)) {
> > >                 intel_dp_compute_vsc_colorimetry(crtc_state,
> > > conn_state,
> > >                                                  vsc);
> > > -       } else if (crtc_state->has_psr2) {
> > > +       } else if (crtc_state->has_psr && crtc_state-
> > > >has_sel_update) {
> 
> has_psr check may not be needed if patch2 of this series is placed at
> 1st position.

I can drop has_psr check without order change as at this point
selective update is not possible with Panel Replay.

BR,

Jouni Högander

> 
> Regards,
> Animesh
> > >                 /*
> > >                  * [PSR2 without colorimetry]
> > >                  * Prepare VSC Header for SU as per eDP 1.4 spec,
> > > Table 6-11
> > diff
> > > --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > index 151dcd0c45b6..984f13d8c0c8 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > @@ -1251,7 +1251,7 @@ static int intel_fbc_check_plane(struct
> > > intel_atomic_state *state,
> > >          * Recommendation is to keep this combination disabled
> > >          * Bspec: 50422 HSD: 14010260002
> > >          */
> > > -       if (IS_DISPLAY_VER(i915, 12, 14) && crtc_state->has_psr2)
> > > {
> > > +       if (IS_DISPLAY_VER(i915, 12, 14) && crtc_state-
> > > >has_sel_update) {
> > >                 plane_state->no_fbc_reason = "PSR2 enabled";
> > >                 return 0;
> > >         }
> > > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > > b/drivers/gpu/drm/i915/display/intel_psr.c
> > > index f5b33335a9ae..a2f7d998d342 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > > @@ -651,7 +651,7 @@ void intel_psr_enable_sink(struct intel_dp
> > *intel_dp,
> > >         struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> > >         u8 dpcd_val = DP_PSR_ENABLE;
> > > 
> > > -       if (crtc_state->has_psr2) {
> > > +       if (crtc_state->has_sel_update) {
> > >                 /* Enable ALPM at sink for psr2 */
> > >                 if (!crtc_state->has_panel_replay) {
> > >                         drm_dp_dpcd_writeb(&intel_dp->aux,
> > > @@ -1639,7 +1639,7 @@ void intel_psr_compute_config(struct
> > > intel_dp
> > > *intel_dp,
> > >         if (!crtc_state->has_psr)
> > >                 return;
> > > 
> > > -       crtc_state->has_psr2 = intel_psr2_config_valid(intel_dp,
> > > crtc_state);
> > > +       crtc_state->has_sel_update =
> > > intel_psr2_config_valid(intel_dp,
> > > +crtc_state);
> > >  }
> > > 
> > >  void intel_psr_get_config(struct intel_encoder *encoder, @@ -
> > > 1672,7
> > > +1672,7 @@ void intel_psr_get_config(struct intel_encoder
> > > *encoder,
> > >                 pipe_config->has_psr = true;
> > >         }
> > > 
> > > -       pipe_config->has_psr2 = intel_dp->psr.psr2_enabled;
> > > +       pipe_config->has_sel_update = intel_dp->psr.psr2_enabled;
> > >         pipe_config->infoframes.enable |=
> > > intel_hdmi_infoframe_enable(DP_SDP_VSC);
> > > 
> > >         if (!intel_dp->psr.psr2_enabled)
> > > @@ -1960,7 +1960,7 @@ static void intel_psr_enable_locked(struct
> > > intel_dp *intel_dp,
> > > 
> > >         drm_WARN_ON(&dev_priv->drm, intel_dp->psr.enabled);
> > > 
> > > -       intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
> > > +       intel_dp->psr.psr2_enabled = crtc_state->has_sel_update;
> > >         intel_dp->psr.panel_replay_enabled = crtc_state-
> > > >has_panel_replay;
> > >         intel_dp->psr.busy_frontbuffer_bits = 0;
> > >         intel_dp->psr.pipe = to_intel_crtc(crtc_state-
> > > >uapi.crtc)->pipe;
> > > @@ -2688,7 +2688,7 @@ void intel_psr_pre_plane_update(struct
> > > intel_atomic_state *state,
> > >                 needs_to_disable |=
> > > intel_crtc_needs_modeset(new_crtc_state);
> > >                 needs_to_disable |= !new_crtc_state->has_psr;
> > >                 needs_to_disable |= !new_crtc_state-
> > > >active_planes;
> > > -               needs_to_disable |= new_crtc_state->has_psr2 !=
> > > psr-
> > > > psr2_enabled;
> > > +               needs_to_disable |= new_crtc_state-
> > > >has_sel_update !=
> > > +psr->psr2_enabled;
> > >                 needs_to_disable |= DISPLAY_VER(i915) < 11 &&
> > >                         new_crtc_state->wm_level_disabled;
> > > 
> > > --
> > > 2.34.1
> 



More information about the Intel-gfx mailing list