FAILED: patch "[PATCH] drm/i915/psr: Compute PSR entry_setup_frames into" failed to apply to 6.18-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.18-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.18.y
git checkout FETCH_HEAD
git cherry-pick -x 7caac659a837af9fd4cad85be851982b88859484
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026032135-causation-partner-6f47@gregkh' --subject-prefix 'PATCH 6.18.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 7caac659a837af9fd4cad85be851982b88859484 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jouni=20H=C3=B6gander?= <[email protected]>
Date: Thu, 12 Mar 2026 10:37:10 +0200
Subject: [PATCH] drm/i915/psr: Compute PSR entry_setup_frames into
intel_crtc_state
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
PSR entry_setup_frames is currently computed directly into struct intel_dp:intel_psr:entry_setup_frames. This causes a problem if mode change gets rejected after PSR compute config: Psr_entry_setup_frames computed for this rejected state is in intel_dp:intel_psr:entry_setup_frame. Fix this by computing it into intel_crtc_state and copy the value into intel_dp:intel_psr:entry_setup_frames on PSR enable.
drivers/gpu/drm/i915/display/intel_display_types.h +1 -0
@@ -1186,6 +1186,7 @@ struct intel_crtc_state {u32 dc3co_exitline;u16 su_y_granularity;u8 active_non_psr_pipes; +u8 entry_setup_frames;const char *no_psr_reason;/*
drivers/gpu/drm/i915/display/intel_psr.c +3 -2
@@ -1717,7 +1717,7 @@ static bool _psr_compute_config(struct intel_dp *intel_dp, entry_setup_frames =intel_psr_entry_setup_frames (intel_dp, conn_state, adjusted_mode);if (entry_setup_frames >=0 ) { - intel_dp->psr.entry_setup_frames = entry_setup_frames; + crtc_state->entry_setup_frames = entry_setup_frames; }else { crtc_state->no_psr_reason ="PSR setup timing not met" ; drm_dbg_kms(display->drm,
@@ -1815,7 +1815,7 @@ static bool intel_psr_needs_wa_18037818876(struct intel_dp *intel_dp, {struct intel_display *display =to_intel_display (intel_dp); -return (DISPLAY_VER (display) ==20 && intel_dp->psr.entry_setup_frames >0 && +return (DISPLAY_VER (display) ==20 && crtc_state->entry_setup_frames >0 && !crtc_state->has_sel_update); }
@@ -2189,6 +2189,7 @@ static void intel_psr_enable_locked(struct intel_dp *intel_dp, intel_dp->psr.pkg_c_latency_used = crtc_state->pkg_c_latency_used; intel_dp->psr.io_wake_lines = crtc_state->alpm_state.io_wake_lines; intel_dp->psr.fast_wake_lines = crtc_state->alpm_state.fast_wake_lines; + intel_dp->psr.entry_setup_frames = crtc_state->entry_setup_frames;if (!psr_interrupt_error_check (intel_dp))return ;
Sasha Levin
maintainerPATCH 1/1 drm/i915/psr: Compute PSR entry_setup_frames into intel_crtc_state
From: Jouni Högander <[email protected]>
[ Upstream commit 7caac659a837af9fd4cad85be851982b88859484 ]
PSR entry_setup_frames is currently computed directly into struct intel_dp:intel_psr:entry_setup_frames. This causes a problem if mode change gets rejected after PSR compute config: Psr_entry_setup_frames computed for this rejected state is in intel_dp:intel_psr:entry_setup_frame. Fix this by computing it into intel_crtc_state and copy the value into intel_dp:intel_psr:entry_setup_frames on PSR enable.
--- drivers/gpu/drm/i915/display/intel_display_types.h | 1 + drivers/gpu/drm/i915/display/intel_psr.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-)
drivers/gpu/drm/i915/display/intel_display_types.h +1 -0
@@ -1127,6 +1127,7 @@ struct intel_crtc_state {u32 dc3co_exitline;u16 su_y_granularity;u8 active_non_psr_pipes; +u8 entry_setup_frames;/* * Frequency the dpll for the port should run at. Differs from the
drivers/gpu/drm/i915/display/intel_psr.c +3 -2
@@ -1584,7 +1584,7 @@ static bool _psr_compute_config(struct intel_dp *intel_dp, entry_setup_frames =intel_psr_entry_setup_frames (intel_dp, adjusted_mode);if (entry_setup_frames >=0 ) { - intel_dp->psr.entry_setup_frames = entry_setup_frames; + crtc_state->entry_setup_frames = entry_setup_frames; }else {drm_dbg_kms (display->drm,"PSR condition failed: PSR setup timing not met\n" );
@@ -1656,7 +1656,7 @@ static bool intel_psr_needs_wa_18037818876(struct intel_dp *intel_dp, {struct intel_display *display =to_intel_display (intel_dp); -return (DISPLAY_VER (display) ==20 && intel_dp->psr.entry_setup_frames >0 && +return (DISPLAY_VER (display) ==20 && crtc_state->entry_setup_frames >0 && !crtc_state->has_sel_update); }
@@ -2026,6 +2026,7 @@ static void intel_psr_enable_locked(struct intel_dp *intel_dp, crtc_state->req_psr2_sdp_prior_scanline; intel_dp->psr.active_non_psr_pipes = crtc_state->active_non_psr_pipes; intel_dp->psr.pkg_c_latency_used = crtc_state->pkg_c_latency_used; + intel_dp->psr.entry_setup_frames = crtc_state->entry_setup_frames;if (!psr_interrupt_error_check (intel_dp))return ;
Signature · 1 line
2.51.0