public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
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>
Subject: [PATCH v10 00/10] Use trans push mechanism to generate frame change event
Date: Mon, 26 Jan 2026 09:59:49 +0200	[thread overview]
Message-ID: <20260126075959.925413-1-jouni.hogander@intel.com> (raw)

Currently we are using "automatic" frame change event generation. The
event is generated by any access to plane or pipe registers.

We have option to use "PSR PR Frame Change Enable" bit in TRANS_PUSH
register to enable frame change event generation only when doing trans
push. When this bit is set "automatic" frame change event generation
doesn't work anymore. Benfit from this is more controled updates send
by PSR HW.

This patch set is taking trans push mechanism into use.

v10:
  - added patch implementing helper for parsing value to be written
    into TRANS_PUSH
  - Adding HAS_PSR_FRAME_CHANGE macro moved to separate patch and
    renamed as HAS_PSR_TRANS_PUSH_FRAME_CHANGE
  - use intel_psr_use_trans_push instead of HAS_PSR_FRAME_CHANGE in
    intel_psr_trigger_frame_change
  - moved calling intel_vrr_psr_frame_change_enable away from this
    patch
  -
v9: always do PSR exit on frontbuffer flush for LunarLake and onwards
v8:
  - rebase
  - Wait for idle only after possible send
v7:
  - added bspec references
  - add HAS_PSR_FRAME_CHANGE macro
  - use TRANS_PUSH in instead of TRAN_VRR_CTL
  - "Do not trigger Frame Change events from frontbuffer flush" patch
    already merged
v6: use AND instead of OR in intel_psr_use_trans_push
v5: add missing patch
v4:
  - add intel_psr_use_trans_push to query if TRANS_PUSH is used
  - set DSB_SKIP_WAITS_EN chicken bit when TRANS_PUSH is used
  - Wait for vblank in case of PSR is using trans push
v3:
  - use rmw when enabling disabling transh push for PSR or VRR
  - rely on crtc_state->has_psr/has_vrr to keep trans push enabled
  - modify frontbuffer flush/invalidate to use disable/enable also for
    SU/SF on recent platforms.
  - send push before waiting for vblank
v2: implement intel_vrr_trans_push_enabled_set_clear and use that
    instead of rmw

Jouni Högander (10):
  drm/i915/psr: Add TRANS_PUSH register bit definition for PSR
  drm/i915/psr: Add intel_psr_use_trans_push to query if TRANS_PUSH is
    used
  drm/i915/vrr: Add helper for parsing value to be written into
    TRANS_PUSH
  drm/i915/vrr: Prepare to Use TRANS_PUSH mechanism for PSR frame change
  drm/i915/dsb: Set DSB_SKIP_WAITS_EN chicken bit for LunarLake and
    onwards
  drm/i915/display: Wait for vblank in case of PSR is using trans push
  drm/i915/psr: Wait for idle only after possible send push
  drm/i915/psr: Do PSR exit on frontbuffer flush on LunarLake and
    onwards
  drm/i915/display: Add HAS_PSR_TRANS_PUSH_FRAME_CHANGE macro
  drm/i915/psr: Use TRANS_PUSH to trigger frame change event

 drivers/gpu/drm/i915/display/intel_crtc.c     |  4 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 33 ++++++++++++++--
 .../drm/i915/display/intel_display_device.h   |  1 +
 drivers/gpu/drm/i915/display/intel_dsb.c      | 15 +++++--
 drivers/gpu/drm/i915/display/intel_psr.c      | 36 +++++++++++------
 drivers/gpu/drm/i915/display/intel_psr.h      |  1 +
 drivers/gpu/drm/i915/display/intel_vrr.c      | 39 ++++++++++++++++---
 drivers/gpu/drm/i915/display/intel_vrr.h      |  1 +
 drivers/gpu/drm/i915/display/intel_vrr_regs.h |  1 +
 9 files changed, 106 insertions(+), 25 deletions(-)

-- 
2.43.0


             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 Jouni Högander [this message]
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 ` [PATCH v10 07/10] drm/i915/psr: Wait for idle only after possible send push Jouni Högander
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-1-jouni.hogander@intel.com \
    --to=jouni.hogander@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