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>,
"Ankit Nautiyal" <ankit.k.nautiyal@intel.com>
Subject: [PATCH v10 07/10] drm/i915/psr: Wait for idle only after possible send push
Date: Mon, 26 Jan 2026 09:59:56 +0200 [thread overview]
Message-ID: <20260126075959.925413-8-jouni.hogander@intel.com> (raw)
In-Reply-To: <20260126075959.925413-1-jouni.hogander@intel.com>
We are planning to move using trans push mechanism to trigger the Frame
Change event. In that case we can't wait PSR to idle before send push
happens. Due to this move wait for idle to be done after possible send push
is done.
This should be ok for Frame Change event triggered by register write as
well. Wait for idle is needed only for corner case where PSR is
transitioning into DEEP_SLEEP when Frame Change event is triggered. It just
has to be before wait for vblank. Otherwise we may have vblank before PSR
enters DEEP_SLEEP and still using old frame buffers for first frame after
wake up.
v2: some typos fixed
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index b47c9d3d0d85..d7267c926c40 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7357,9 +7357,6 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
intel_psr_trigger_frame_change_event(new_crtc_state->dsb_commit,
state, crtc);
- intel_psr_wait_for_idle_dsb(new_crtc_state->dsb_commit,
- new_crtc_state);
-
if (new_crtc_state->use_dsb)
intel_dsb_vblank_evade(state, new_crtc_state->dsb_commit);
@@ -7399,6 +7396,16 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
intel_vrr_send_push(new_crtc_state->dsb_commit, new_crtc_state);
+ /*
+ * Wait for idle is needed for corner case where PSR HW
+ * is transitioning into DEEP_SLEEP/SRDENT_OFF when
+ * new Frame Change event comes in. It is ok to do it
+ * here for both Frame Change mechanism (trans push
+ * and register write).
+ */
+ intel_psr_wait_for_idle_dsb(new_crtc_state->dsb_commit,
+ new_crtc_state);
+
/*
* In case PSR uses trans push as a "frame change" event and
* VRR is not in use we need to wait vblank. Othervise we may
--
2.43.0
next prev parent reply other threads:[~2026-01-26 8:00 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-26 7:59 [PATCH v10 00/10] Use trans push mechanism to generate frame change event Jouni Högander
2026-01-26 7:59 ` [PATCH v10 01/10] drm/i915/psr: Add TRANS_PUSH register bit definition for PSR Jouni Högander
2026-01-26 7:59 ` [PATCH v10 02/10] drm/i915/psr: Add intel_psr_use_trans_push to query if TRANS_PUSH is used Jouni Högander
2026-01-27 5:20 ` Nautiyal, Ankit K
2026-01-26 7:59 ` [PATCH v10 03/10] drm/i915/vrr: Add helper for parsing value to be written into TRANS_PUSH Jouni Högander
2026-01-27 5:25 ` Nautiyal, Ankit K
2026-01-26 7:59 ` [PATCH v10 04/10] drm/i915/vrr: Prepare to Use TRANS_PUSH mechanism for PSR frame change Jouni Högander
2026-01-27 5:18 ` Nautiyal, Ankit K
2026-01-26 7:59 ` [PATCH v10 05/10] drm/i915/dsb: Set DSB_SKIP_WAITS_EN chicken bit for LunarLake and onwards Jouni Högander
2026-01-27 5:32 ` Nautiyal, Ankit K
2026-01-26 7:59 ` [PATCH v10 06/10] drm/i915/display: Wait for vblank in case of PSR is using trans push Jouni Högander
2026-01-27 5:41 ` Nautiyal, Ankit K
2026-01-26 7:59 ` Jouni Högander [this message]
2026-01-26 7:59 ` [PATCH v10 08/10] drm/i915/psr: Do PSR exit on frontbuffer flush on LunarLake and onwards Jouni Högander
2026-01-26 7:59 ` [PATCH v10 09/10] drm/i915/display: Add HAS_PSR_TRANS_PUSH_FRAME_CHANGE macro Jouni Högander
2026-01-27 7:48 ` Nautiyal, Ankit K
2026-01-26 7:59 ` [PATCH v10 10/10] drm/i915/psr: Use TRANS_PUSH to trigger frame change event Jouni Högander
2026-01-27 8:35 ` Nautiyal, Ankit K
2026-01-26 8:44 ` ✓ i915.CI.BAT: success for Use trans push mechanism to generate " Patchwork
2026-01-26 10:32 ` ✗ i915.CI.Full: failure " Patchwork
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=20260126075959.925413-8-jouni.hogander@intel.com \
--to=jouni.hogander@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox