Files
omarchy-pkgs/pkgbuilds/linux-ptl/0027-drm-i915-trans-push-frame-change-for-panel-replay.patch
T
Spencer BullandGitHub dc44a71eab Update linux-ptl to 7.1.3.arch1 (#116)
* Update linux-ptl to 7.1.2.arch3

Refresh the linux-ptl package against Arch Linux 7.1.2.arch3-1 sources and config.

Keep the existing Panther Lake patch stack after revalidating each patch against upstream, with 0027 reduced to the remaining Panel Replay TRANS_PUSH policy delta now that Linux 7.1 carries the common infrastructure.

* Drop linux-ptl PSR with VRR patch

Remove the linux-ptl patch that allowed plain PSR/PSR2 with VRR. Failing logs showed Panel Replay disabled by quirk and VRR triggering DSB poll errors followed by PSR idle timeouts. Upstream's VRR guard is the correct behavior for the plain PSR path; Panel Replay remains handled by the existing TRANS_PUSH policy patch.

Validated with: ./bin/build --package linux-ptl

* Update linux-ptl to 7.1.3.arch1
2026-07-13 12:08:43 -07:00

47 lines
1.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Gaggery Tsai <gaggery.tsai@intel.com>
Date: Tue, 28 Apr 2026 16:10:00 -0500
Subject: [PATCH] drm/i915: limit TRANS_PUSH frame changes to Panel Replay
Linux 7.1 carries the TRANS_PUSH frame-change infrastructure that
linux-ptl previously backported. Keep only the remaining linux-ptl
policy delta: use TRANS_PUSH for Panel Replay, but not for plain PSR2.
Plain PSR2 must keep using the old CURSURFLIVE frame-change path so
systems still boot when Panel Replay is disabled with
xe.enable_panel_replay=0.
Signed-off-by: Gaggery Tsai <gaggery.tsai@intel.com>
---
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2171,7 +2171,7 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp,
intel_alpm_configure(intel_dp, crtc_state);
- if (HAS_PSR_TRANS_PUSH_FRAME_CHANGE(display))
+ if (intel_psr_use_trans_push(crtc_state))
intel_vrr_psr_frame_change_enable(crtc_state);
}
@@ -4658,5 +4658,5 @@ bool intel_psr_use_trans_push(const struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
- return HAS_PSR_TRANS_PUSH_FRAME_CHANGE(display) && crtc_state->has_psr;
+ return HAS_PSR_TRANS_PUSH_FRAME_CHANGE(display) && crtc_state->has_panel_replay;
}
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -703,7 +703,7 @@ static u32 trans_vrr_push(const struct intel_crtc_state *crtc_state,
if (send_push)
trans_vrr_push |= TRANS_PUSH_SEND;
- if (HAS_PSR_TRANS_PUSH_FRAME_CHANGE(display))
+ if (intel_psr_use_trans_push(crtc_state))
trans_vrr_push |= LNL_TRANS_PUSH_PSR_PR_EN;
return trans_vrr_push;