Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Cc: "ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
	"Manna, Animesh" <animesh.manna@intel.com>
Subject: Re: [PATCH v8 00/13] PSR DSB support
Date: Fri, 14 Feb 2025 07:34:29 +0000	[thread overview]
Message-ID: <752677b09d3cbed81af11ede9066edebf7024a1b.camel@intel.com> (raw)
In-Reply-To: <20250213064804.2077127-1-jouni.hogander@intel.com>

On Thu, 2025-02-13 at 08:47 +0200, Jouni Högander wrote:
> 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.

These are now pushed to drm-intel-next. Thank you Ville and Animesh for
your reviews.

BR,

Jouni Högander

> 
> v8:
>   - rebase
> 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(-)
> 


      parent reply	other threads:[~2025-02-14  7:35 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-13  6:47 [PATCH v8 00/13] PSR DSB support Jouni Högander
2025-02-13  6:47 ` [PATCH v8 01/13] drm/i915/psr: Use PSR2_MAN_TRK_CTL CFF bit only to send full update Jouni Högander
2025-02-13  6:47 ` [PATCH v8 02/13] drm/i915/psr: Rename psr_force_hw_tracking_exit as intel_psr_force_update Jouni Högander
2025-02-13  6:47 ` [PATCH v8 03/13] drm/i915/psr: Split setting sff and cff bits away from intel_psr_force_update Jouni Högander
2025-02-13  6:47 ` [PATCH v8 04/13] drm/i915/psr: Add register definitions for SFF_CTL and CFF_CTL registers Jouni Högander
2025-02-13  6:47 ` [PATCH v8 05/13] drm/i915/psr: Use SFF_CTL on invalidate/flush for LunarLake onwards Jouni Högander
2025-02-13  6:47 ` [PATCH v8 06/13] drm/i915/psr: Allow writing PSR2_MAN_TRK_CTL using DSB Jouni Högander
2025-02-13  6:47 ` [PATCH v8 07/13] drm/i915/psr: Write PSR2_MAN_TRK_CTL on DSB commit as well Jouni Högander
2025-02-13  6:47 ` [PATCH v8 08/13] drm/i915/display: Warn on use_dsb in non-dsb pipe update functions Jouni Högander
2025-02-13  6:48 ` [PATCH v8 09/13] drm/i915/psr: Remove DSB_SKIP_WAITS_EN chicken bit Jouni Högander
2025-02-13  6:48 ` [PATCH v8 10/13] drm/i915/display: Evade scanline 0 as well if PSR1 or PSR2 is enabled Jouni Högander
2025-02-13  6:48 ` [PATCH v8 11/13] drm/i915/psr: Add function for triggering "Frame Change" event Jouni Högander
2025-02-13  6:48 ` [PATCH v8 12/13] drm/i915/display: Ensure we have "Frame Change" event in DSB commit Jouni Högander
2025-02-13  6:48 ` [PATCH v8 13/13] drm/i915/psr: Allow DSB usage when PSR is enabled Jouni Högander
2025-02-13  7:27 ` ✗ Fi.CI.SPARSE: warning for PSR DSB support (rev10) Patchwork
2025-02-13  7:46 ` ✓ i915.CI.BAT: success " Patchwork
2025-02-13 14:34 ` ✗ i915.CI.Full: failure " Patchwork
2025-02-14  7:07   ` Hogander, Jouni
2025-02-14  7:34 ` Hogander, Jouni [this message]

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=752677b09d3cbed81af11ede9066edebf7024a1b.camel@intel.com \
    --to=jouni.hogander@intel.com \
    --cc=animesh.manna@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /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