From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "Kandpal, Suraj" <suraj.kandpal@intel.com>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>
Cc: "stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used
Date: Thu, 7 May 2026 12:42:00 +0000 [thread overview]
Message-ID: <76f39de9d27f63eec50af48af4cb2bd0691b6eb5.camel@intel.com> (raw)
In-Reply-To: <DM3PPF208195D8D312A4D274ECBF86DE84FE33F2@DM3PPF208195D8D.namprd11.prod.outlook.com>
On Wed, 2026-05-06 at 07:24 +0000, Kandpal, Suraj wrote:
> > Subject: [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when
> > SDP on
> > prior line used
> >
> > There is Intel specific workaround DPCD address containing
> > workaround for
> > case where SDP is on prior line. Apply this workaround according to
> > values in
> > the offset.
> >
> > Fixes: 61e887329e33 ("drm/i915/xelpd: Handle PSR2 SDP indication in
> > the prior
> > scanline")
> > Cc: <stable@vger.kernel.org> # v5.15+
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_psr.c | 36
> > +++++++++++++++++++++---
> > 1 file changed, 32 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 1f3f0d35d52a..341186622ed4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -1385,9 +1385,36 @@ static bool psr2_granularity_check(struct
> > intel_crtc_state *crtc_state,
> > return true;
> > }
> >
> > -static bool _compute_psr2_sdp_prior_scanline_indication(struct
> > intel_dp
> > *intel_dp,
> > - struct
> > intel_crtc_state
> > *crtc_state)
> > +static bool apply_scanline_indication_wa(struct intel_crtc_state
> > *crtc_state,
> > + struct intel_connector
> > *connector)
>
> Should the name be apply_scanline_indicate, since you are not
> applying the wa here just sort of checking if it needs to be done
It is actually appying WA. I.e. disabling req_psr2_sdp_prior_scanline
if panel is not inline with the eDP1.4b SDP on prior scanline
implementation in intel HW. What do you think?
BR,
Jouni Högander
>
> Regards,
> Suraj Kandpal
>
> > {
> > + struct intel_dp *intel_dp = intel_attached_dp(connector);
> > + u8 early_scanline_support = connector-
> > >dp.psr_caps.intel_wa_dpcd &
> > +
> > INTEL_WA_REGISTER_CAPS_PSR2_EARLYSCANLINE_SDP_SUPPORT_MA
> > SK;
> > +
> > + if (intel_dp->edp_dpcd[0] >= DP_EDP_15)
> > + return true;
> > +
> > + switch(early_scanline_support)
> > + {
> > + case INTEL_WA_REGISTER_CAPS_FALL_BACK_TO_PSR1:
> > + crtc_state->req_psr2_sdp_prior_scanline = false;
> > + return false;
> > + case INTEL_WA_REGISTER_CAPS_PSR2_WITH_EARLY_SCANLINE:
> > + return true;
> > + case INTEL_WA_REGISTER_CAPS_PSR2_WITHOUT_EARLY_SCANLINE:
> > + crtc_state->req_psr2_sdp_prior_scanline = false;
> > + return true;
> > + default:
> > + MISSING_CASE(early_scanline_support);
> > + return false;
> > + }
> > +}
> > +
> > +static bool _compute_psr2_sdp_prior_scanline_indication(struct
> > intel_crtc_state *crtc_state,
> > + struct
> > intel_connector
> > *connector) {
> > + struct intel_dp *intel_dp = intel_attached_dp(connector);
> > struct intel_display *display =
> > to_intel_display(intel_dp);
> > const struct drm_display_mode *adjusted_mode =
> > &crtc_state-
> > > uapi.adjusted_mode;
> > u32 hblank_total, hblank_ns, req_ns;
> > @@ -1406,7 +1433,8 @@ static bool
> > _compute_psr2_sdp_prior_scanline_indication(struct intel_dp
> > *intel_d
> > return false;
> >
> > crtc_state->req_psr2_sdp_prior_scanline = true;
> > - return true;
> > +
> > + return apply_scanline_indication_wa(crtc_state,
> > connector);
> > }
> >
> > static int intel_psr_entry_setup_frames(struct intel_dp *intel_dp,
> > @@ -1687,7
> > +1715,7 @@ static bool intel_sel_update_config_valid(struct
> > intel_crtc_state
> > *crtc_state,
> >
> > conn_state))
> > goto unsupported;
> >
> > - if (!_compute_psr2_sdp_prior_scanline_indication(intel_dp,
> > crtc_state)) {
> > + if
> > (!_compute_psr2_sdp_prior_scanline_indication(crtc_state,
> > +connector)) {
> > drm_dbg_kms(display->drm,
> > "Selective update not enabled, SDP
> > indication do not
> > fit in hblank\n");
> > goto unsupported;
> > --
> > 2.43.0
>
next prev parent reply other threads:[~2026-05-07 12:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-15 5:39 [PATCH 0/4] PSR2 SDP on Prior Scanline workarounds Jouni Högander
2026-04-15 5:39 ` [PATCH 1/4] drm/i915/psr: Add defininitions for INTEL_WA_REGISTER_CAPS DPCD register Jouni Högander
2026-04-15 7:28 ` Jani Nikula
2026-05-14 6:01 ` Kandpal, Suraj
2026-04-15 5:39 ` [PATCH 2/4] drm/i915/psr: Read Intel DPCD workaround register Jouni Högander
2026-05-06 6:39 ` Kandpal, Suraj
2026-05-07 12:35 ` Hogander, Jouni
2026-05-14 4:22 ` Kandpal, Suraj
2026-04-15 5:39 ` [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used Jouni Högander
2026-05-06 7:24 ` Kandpal, Suraj
2026-05-07 12:42 ` Hogander, Jouni [this message]
2026-05-14 4:26 ` Kandpal, Suraj
2026-04-15 5:40 ` [PATCH 4/4] drm/i915/psr: Apply SDP on prior scanline workaround for NVL Jouni Högander
2026-05-06 7:29 ` Kandpal, Suraj
2026-05-07 12:52 ` Hogander, Jouni
2026-05-14 4:30 ` Kandpal, Suraj
2026-04-15 5:49 ` ✗ CI.checkpatch: warning for PSR2 SDP on Prior Scanline workarounds Patchwork
2026-04-15 5:50 ` ✓ CI.KUnit: success " Patchwork
2026-04-15 6:34 ` ✓ i915.CI.BAT: " Patchwork
2026-04-15 6:54 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-15 7:40 ` ✓ Xe.CI.FULL: " Patchwork
2026-04-15 8:50 ` ✗ i915.CI.Full: failure " Patchwork
[not found] <20260414112008.329217-1-jouni.hogander@intel.com>
2026-04-14 11:20 ` [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used Jouni Högander
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=76f39de9d27f63eec50af48af4cb2bd0691b6eb5.camel@intel.com \
--to=jouni.hogander@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=stable@vger.kernel.org \
--cc=suraj.kandpal@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.