[PATCH] drm/i915/psr: Do not trigger Frame Change events from frontbuffer flush
Hogander, Jouni
jouni.hogander at intel.com
Thu Aug 7 12:08:57 UTC 2025
On Thu, 2025-08-07 at 07:18 +0000, Kandpal, Suraj wrote:
>
>
> > -----Original Message-----
> > From: Hogander, Jouni <jouni.hogander at intel.com>
> > Sent: Thursday, August 7, 2025 10:56 AM
> > To: Kandpal, Suraj <suraj.kandpal at intel.com>;
> > intel-xe at lists.freedesktop.org;
> > intel-gfx at lists.freedesktop.org
> > Cc: janna.martl109 at gmail.com
> > Subject: Re: [PATCH] drm/i915/psr: Do not trigger Frame Change
> > events from
> > frontbuffer flush
> >
> > On Thu, 2025-08-07 at 04:38 +0000, Kandpal, Suraj wrote:
> > > > Subject: [PATCH] drm/i915/psr: Do not trigger Frame Change
> > > > events
> > > > from frontbuffer flush
> > > >
> > > > We want to get rid of triggering "Frame Change" events from
> > > > frontbuffer flush calls. We are about to move using TRANS_PUSH
> > > > register for this on LunarLake and onwards. Touching TRANS_PUSH
> > > > register from fronbuffer flush would be problematic as it's
> > > > written
> > > > by DSB as well.
> > > >
> > > > Fix this by using intel_psr_exit when flush or invalidate is
> > > > done on
> > > > LunarLake and onwards. This is not possible on AlderLake and
> > > > MeteorLake due to HW bug in PSR2 disable.
> > > >
> > > > This patch is also fixing problems with cursor plane where
> > > > cursor is
> > > > disappearing or duplicate cursor is seen on the screen.
> > > >
> > >
> > > Any Bspec link that documents this tried to look through the
> > > patch
> > > series this was plucked of from
> > > Didn’t find any there either.
> >
> > I can add following:
> >
> > Bspec: 68927, 68934, 66624
> >
> > BR,
> >
> > Jouni Högander
> >
> > >
> > > Regards,
> > > Suraj Kandpal
> > >
> > > > v2: Commit message updated
>
> LGTM,
> Reviewed-by: Suraj Kandpal <suraj.kandpal at intel.com>
Thank you Janna for the report and testing support. Thank you Suraj for
the review. Patch is now pushed to drm-intel-next with those bspec
references added.
BR,
Jouni Högander
>
> > > >
> > > > Reported-by: Janna Martl <janna.martl109 at gmail.com>
> > > > Closes:
> > > > https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/5522
> > > > Fixes: 411ad63877bb ("drm/i915/psr: Use SFF_CTL on
> > > > invalidate/flush
> > > > for
> > > > LunarLake onwards")
> > > > Tested-by: Janna Martl <janna.martl109 at gmail.com>
> > > > Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> > > > ---
> > > > drivers/gpu/drm/i915/display/intel_psr.c | 14 +++++++++-----
> > > > 1 file changed, 9 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > > > b/drivers/gpu/drm/i915/display/intel_psr.c
> > > > index 6bd3454bb00e..4279c28ae27c 100644
> > > > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > > > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > > > @@ -3254,7 +3254,9 @@ static void
> > > > intel_psr_configure_full_frame_update(struct intel_dp
> > > > *intel_dp)
> > > >
> > > > static void _psr_invalidate_handle(struct intel_dp *intel_dp)
> > > > {
> > > > - if (intel_dp->psr.psr2_sel_fetch_enabled) {
> > > > + struct intel_display *display =
> > > > to_intel_display(intel_dp);
> > > > +
> > > > + if (DISPLAY_VER(display) < 20 && intel_dp-
> > > > > psr.psr2_sel_fetch_enabled)
> > > > +{
> > > > if (!intel_dp->psr.psr2_sel_fetch_cff_enabled)
> > > > {
> > > > intel_dp-
> > > > >psr.psr2_sel_fetch_cff_enabled =
> > > > true;
> > > > intel_psr_configure_full_frame_update(
> > > > inte
> > > > l_dp);
> > > > @@ -3340,7 +3342,7 @@ static void _psr_flush_handle(struct
> > > > intel_dp
> > > > *intel_dp) {
> > > > struct intel_display *display =
> > > > to_intel_display(intel_dp);
> > > >
> > > > - if (intel_dp->psr.psr2_sel_fetch_enabled) {
> > > > + if (DISPLAY_VER(display) < 20 && intel_dp-
> > > > > psr.psr2_sel_fetch_enabled)
> > > > +{
> > > > if (intel_dp->psr.psr2_sel_fetch_cff_enabled)
> > > > {
> > > > /* can we turn CFF off? */
> > > > if (intel_dp-
> > > > >psr.busy_frontbuffer_bits ==
> > > > 0) @@ -
> > > > 3357,11 +3359,13 @@ static void _psr_flush_handle(struct
> > > > intel_dp
> > > > *intel_dp)
> > > > * existing SU configuration
> > > > */
> > > > intel_psr_configure_full_frame_update(intel_dp
> > > > );
> > > > - }
> > > >
> > > > - intel_psr_force_update(intel_dp);
> > > > + intel_psr_force_update(intel_dp);
> > > > + } else {
> > > > + intel_psr_exit(intel_dp);
> > > > + }
> > > >
> > > > - if (!intel_dp->psr.psr2_sel_fetch_enabled &&
> > > > !intel_dp-
> > > > > psr.active &&
> > > > + if ((!intel_dp->psr.psr2_sel_fetch_enabled ||
> > > > DISPLAY_VER(display) >=
> > > > +20) &&
> > > > !intel_dp->psr.busy_frontbuffer_bits)
> > > > queue_work(display->wq.unordered, &intel_dp-
> > > > > psr.work); }
> > > > --
> > > > 2.43.0
> > >
>
More information about the Intel-xe
mailing list