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 v7 00/13] PSR DSB support
Date: Wed, 12 Feb 2025 09:57:28 +0200 [thread overview]
Message-ID: <20250212075742.995022-1-jouni.hogander@intel.com> (raw)
This patch set is doing necessary modifications to support PSR update
using DSB on LunarLake onwards
It is not necessary to wait for PSR1 to idle or PSR2 to exit DEEP
sleep at the begin of commit This is left out from DSB commit. There
might be room for optimization for non-DSB as well because such wait
is not supposed to be necessary at the begin of update.
PSR mutex is not locked when performing DSB commit. It is not
necessary as we are currently using DSB only when sending updates
towards panel. I.e. not using it when changing PSR mode. Also
necessary changes are made to use PSR2_MAN_TRK_CTL only in
DSB. Frontbuffer updates and legacy cursor updates are using SFF_CTL
register to perform full frame updates.
DSB_SKIP_WAITS_EN is removed to ensure all waits are performed when
PSR is active. PSR "Frame Change" event is manually triggered at the
begin of each DSB commit by adding CURSURFLIVE register write.
Possibe problem with DSB commit when PSR is already waking up is
avoided by evading scanline 0.
v7:
- Rename "drm/i915/psr: Changes for PSR2_MAN_TRK_CTL handling when
DSB is in use" as "drm/i915/psr: Write PSR2_MAN_TRK_CTL on DSB
commit" due to scope changes.
- Warn on use_dsb in non-dsb pipe update functions
- dsb as a first parameter in intel_psr_trigger_frame_change_event
v6:
- add comment explaining why we are not setting DSB_SKIP_WAITS_EN
- add separate function to generate the "Frame change"evant.
- use intel_dsb_emit_wait_dsl
- add evasion of scanline 0 also for Panel Replay
v5:
- rebase
v4:
- remove DSB_SKIP_WAITS_EN
- Add CURSURFLIVE register write at the begin of DSB commit
- evade scanline 0
v3:
- do not use DSB when PSR mode is changing
v2:
- use _MMIO_TRANS instead of _MMIO_TRANS2
- drop evasion from intel_psr_configure_full_frame_update
Jouni Högander (13):
drm/i915/psr: Use PSR2_MAN_TRK_CTL CFF bit only to send full update
drm/i915/psr: Rename psr_force_hw_tracking_exit as
intel_psr_force_update
drm/i915/psr: Split setting sff and cff bits away from
intel_psr_force_update
drm/i915/psr: Add register definitions for SFF_CTL and CFF_CTL
registers
drm/i915/psr: Use SFF_CTL on invalidate/flush for LunarLake onwards
drm/i915/psr: Allow writing PSR2_MAN_TRK_CTL using DSB
drm/i915/psr: Write PSR2_MAN_TRK_CTL on DSB commit as well
drm/i915/display: Warn on use_dsb in non-dsb pipe update functions
drm/i915/psr: Remove DSB_SKIP_WAITS_EN chicken bit
drm/i915/display: Evade scanline 0 as well if PSR1 or PSR2 is enabled
drm/i915/psr: Add function for triggering "Frame Change" event
drm/i915/display: Ensure we have "Frame Change" event in DSB commit
drm/i915/psr: Allow DSB usage when PSR is enabled
drivers/gpu/drm/i915/display/intel_crtc.c | 4 +
drivers/gpu/drm/i915/display/intel_display.c | 21 ++-
drivers/gpu/drm/i915/display/intel_dsb.c | 27 +++-
drivers/gpu/drm/i915/display/intel_psr.c | 141 +++++++++---------
drivers/gpu/drm/i915/display/intel_psr.h | 7 +-
drivers/gpu/drm/i915/display/intel_psr_regs.h | 10 ++
6 files changed, 136 insertions(+), 74 deletions(-)
--
2.43.0
next reply other threads:[~2025-02-12 7:57 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-12 7:57 Jouni Högander [this message]
2025-02-12 7:57 ` [PATCH v7 01/13] drm/i915/psr: Use PSR2_MAN_TRK_CTL CFF bit only to send full update Jouni Högander
2025-02-12 10:25 ` Manna, Animesh
2025-02-12 7:57 ` [PATCH v7 02/13] drm/i915/psr: Rename psr_force_hw_tracking_exit as intel_psr_force_update Jouni Högander
2025-02-12 7:57 ` [PATCH v7 03/13] drm/i915/psr: Split setting sff and cff bits away from intel_psr_force_update Jouni Högander
2025-02-12 7:57 ` [PATCH v7 04/13] drm/i915/psr: Add register definitions for SFF_CTL and CFF_CTL registers Jouni Högander
2025-02-12 7:57 ` [PATCH v7 05/13] drm/i915/psr: Use SFF_CTL on invalidate/flush for LunarLake onwards Jouni Högander
2025-02-12 7:57 ` [PATCH v7 06/13] drm/i915/psr: Allow writing PSR2_MAN_TRK_CTL using DSB Jouni Högander
2025-02-12 7:57 ` [PATCH v7 07/13] drm/i915/psr: Changes for PSR2_MAN_TRK_CTL handling when DSB is in use Jouni Högander
2025-02-12 7:57 ` [PATCH v7 07/13] drm/i915/psr: Write PSR2_MAN_TRK_CTL on DSB commit as well Jouni Högander
2025-02-12 7:57 ` [PATCH v7 08/13] drm/i915/display: Warn on use_dsb in non-dsb pipe update functions Jouni Högander
2025-02-12 14:51 ` Ville Syrjälä
2025-02-12 7:57 ` [PATCH v7 09/13] drm/i915/psr: Remove DSB_SKIP_WAITS_EN chicken bit Jouni Högander
2025-02-12 7:57 ` [PATCH v7 10/13] drm/i915/display: Evade scanline 0 as well if PSR1 or PSR2 is enabled Jouni Högander
2025-02-12 7:57 ` [PATCH v7 11/13] drm/i915/psr: Add function for triggering "Frame Change" event Jouni Högander
2025-02-12 7:57 ` [PATCH v7 12/13] drm/i915/display: Ensure we have "Frame Change" event in DSB commit Jouni Högander
2025-02-12 7:57 ` [PATCH v7 13/13] drm/i915/psr: Allow DSB usage when PSR is enabled Jouni Högander
2025-02-12 14:52 ` Ville Syrjälä
2025-02-12 18:22 ` Hogander, Jouni
2025-02-12 18:52 ` Ville Syrjälä
2025-02-12 9:06 ` ✗ Fi.CI.SPARSE: warning for PSR DSB support (rev9) Patchwork
2025-02-12 9:34 ` ✓ i915.CI.BAT: success " Patchwork
2025-02-12 14:33 ` ✗ i915.CI.Full: failure " Patchwork
2025-02-13 6:08 ` Hogander, Jouni
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=20250212075742.995022-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