From: "Jouni Högander" <jouni.hogander@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: "Jouni Högander" <jouni.hogander@intel.com>, stable@vger.kernel.org
Subject: [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used
Date: Wed, 15 Apr 2026 08:39:59 +0300 [thread overview]
Message-ID: <20260415054000.400070-4-jouni.hogander@intel.com> (raw)
In-Reply-To: <20260415054000.400070-1-jouni.hogander@intel.com>
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)
{
+ 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_MASK;
+
+ 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-04-15 5:40 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 ` Jouni Högander [this message]
2026-05-06 7:24 ` [PATCH 3/4] drm/i915/psr: Apply Intel DPCD workaround when SDP on prior line used Kandpal, Suraj
2026-05-07 12:42 ` Hogander, Jouni
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=20260415054000.400070-4-jouni.hogander@intel.com \
--to=jouni.hogander@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=stable@vger.kernel.org \
/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.