From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
"Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>,
"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 06/10] drm/i915/psr: Introduce helper intel_psr_set_non_psr_pipes()
Date: Wed, 15 Oct 2025 07:57:13 +0000 [thread overview]
Message-ID: <d385cd74ebdbc8d1843bc17eaae670ec5007d7de.camel@intel.com> (raw)
In-Reply-To: <20251015072217.1710717-7-ankit.k.nautiyal@intel.com>
On Wed, 2025-10-15 at 12:52 +0530, Ankit Nautiyal wrote:
> Add a function to set non-psr pipes in crtc_state based on psr
> features.
> This will help to move this part later where we re-evaluate psr
> features
> and update the non-psr pipes.
>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_psr.c | 49 ++++++++++++++--------
> --
> 1 file changed, 29 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index 1d06011a97ce..e97dcfa7673c 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1711,15 +1711,40 @@ static bool
> intel_psr_needs_wa_18037818876(struct intel_dp *intel_dp,
> !crtc_state->has_sel_update);
> }
>
> +static
> +void intel_psr_set_non_psr_pipes(struct intel_dp *intel_dp,
> + struct intel_crtc_state
> *crtc_state)
> +{
> + struct intel_display *display = to_intel_display(intel_dp);
> + struct intel_atomic_state *state =
> to_intel_atomic_state(crtc_state->uapi.state);
> + struct intel_crtc *crtc;
> + u8 active_pipes = 0;
> +
> + /* Wa_16025596647 */
> + if (DISPLAY_VER(display) != 20 &&
> + !IS_DISPLAY_VERx100_STEP(display, 3000, STEP_A0,
> STEP_B0))
> + return;
> +
> + /* Not needed by Panel Replay */
> + if (crtc_state->has_panel_replay)
> + return;
> +
> + /* We ignore possible secondary PSR/Panel Replay capable eDP
> */
> + for_each_intel_crtc(display->drm, crtc)
> + active_pipes |= crtc->active ? BIT(crtc->pipe) : 0;
> +
> + active_pipes = intel_calc_active_pipes(state, active_pipes);
> +
> + crtc_state->active_non_psr_pipes = active_pipes &
> + ~BIT(to_intel_crtc(crtc_state->uapi.crtc)->pipe);
> +}
> +
> void intel_psr_compute_config(struct intel_dp *intel_dp,
> struct intel_crtc_state *crtc_state,
> struct drm_connector_state
> *conn_state)
> {
> struct intel_display *display = to_intel_display(intel_dp);
> const struct drm_display_mode *adjusted_mode = &crtc_state-
> >hw.adjusted_mode;
> - struct intel_atomic_state *state =
> to_intel_atomic_state(crtc_state->uapi.state);
> - struct intel_crtc *crtc;
> - u8 active_pipes = 0;
>
> if (!psr_global_enabled(intel_dp)) {
> drm_dbg_kms(display->drm, "PSR disabled by flag\n");
> @@ -1768,23 +1793,7 @@ void intel_psr_compute_config(struct intel_dp
> *intel_dp,
> "PSR disabled to workaround PSR FSM hang
> issue\n");
> }
>
> - /* Rest is for Wa_16025596647 */
> - if (DISPLAY_VER(display) != 20 &&
> - !IS_DISPLAY_VERx100_STEP(display, 3000, STEP_A0,
> STEP_B0))
> - return;
> -
> - /* Not needed by Panel Replay */
> - if (crtc_state->has_panel_replay)
> - return;
> -
> - /* We ignore possible secondary PSR/Panel Replay capable eDP
> */
> - for_each_intel_crtc(display->drm, crtc)
> - active_pipes |= crtc->active ? BIT(crtc->pipe) : 0;
> -
> - active_pipes = intel_calc_active_pipes(state, active_pipes);
> -
> - crtc_state->active_non_psr_pipes = active_pipes &
> - ~BIT(to_intel_crtc(crtc_state->uapi.crtc)->pipe);
> + intel_psr_set_non_psr_pipes(intel_dp, crtc_state);
> }
>
> void intel_psr_get_config(struct intel_encoder *encoder,
next prev parent reply other threads:[~2025-10-15 7:57 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-15 7:22 [PATCH 00/10] Preparatory patches for guardband optimization Ankit Nautiyal
2025-10-15 7:22 ` [PATCH 01/10] drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end Ankit Nautiyal
2025-10-15 7:22 ` [PATCH 02/10] drm/i915/display: Move intel_dpll_crtc_compute_clock early Ankit Nautiyal
2025-10-15 7:22 ` [PATCH 03/10] drm/i915/vrr: s/intel_vrr_compute_config_late/intel_vrr_compute_guardband Ankit Nautiyal
2025-10-15 7:22 ` [PATCH 04/10] drm/i915/vblank: Add helper to get correct vblank length Ankit Nautiyal
2025-10-15 7:22 ` [PATCH 05/10] drm/i915/psr: Consider SCL lines when validating vblank for wake latency Ankit Nautiyal
2025-10-15 7:22 ` [PATCH 06/10] drm/i915/psr: Introduce helper intel_psr_set_non_psr_pipes() Ankit Nautiyal
2025-10-15 7:57 ` Hogander, Jouni [this message]
2025-10-15 7:22 ` [PATCH 07/10] drm/i915/display: Introduce dp/psr_compute_config_late() Ankit Nautiyal
2025-10-15 7:59 ` Hogander, Jouni
2025-10-15 7:22 ` [PATCH 08/10] drm/i915/psr: Check if final vblank is sufficient for PSR features Ankit Nautiyal
2025-10-15 8:23 ` Hogander, Jouni
2025-10-15 8:33 ` Hogander, Jouni
2025-10-15 9:14 ` Ankit Nautiyal
2025-10-15 9:32 ` Hogander, Jouni
2025-10-15 7:22 ` [PATCH 09/10] drm/i915/display: Add vblank_start adjustment logic for always-on VRR TG Ankit Nautiyal
2025-10-15 13:54 ` Ville Syrjälä
2025-10-15 7:22 ` [PATCH 10/10] drm/i915/display: Prepare for vblank_delay for LRR Ankit Nautiyal
2025-10-15 15:00 ` Ville Syrjälä
2025-10-15 8:18 ` ✓ CI.KUnit: success for Preparatory patches for guardband optimization (rev6) Patchwork
2025-10-15 8:33 ` ✗ CI.checksparse: warning " Patchwork
2025-10-15 9:42 ` ✓ Xe.CI.BAT: success " Patchwork
2025-10-15 11:07 ` ✓ i915.CI.BAT: success for Preparatory patches for guardband optimization (rev7) Patchwork
2025-10-15 13:59 ` ✓ CI.KUnit: " Patchwork
2025-10-15 14:14 ` ✗ CI.checksparse: warning " Patchwork
2025-10-15 14:36 ` ✓ Xe.CI.BAT: success " Patchwork
2025-10-15 17:12 ` ✗ i915.CI.Full: failure " Patchwork
2025-10-15 18:46 ` ✗ Xe.CI.Full: failure for Preparatory patches for guardband optimization (rev6) Patchwork
2025-10-15 23:29 ` ✗ Xe.CI.Full: failure for Preparatory patches for guardband optimization (rev7) Patchwork
2025-10-16 5:24 ` ✓ i915.CI.Full: success " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2025-10-16 5:54 [PATCH 00/10] Preparatory patches for guardband optimization Ankit Nautiyal
2025-10-16 5:54 ` [PATCH 06/10] drm/i915/psr: Introduce helper intel_psr_set_non_psr_pipes() Ankit Nautiyal
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=d385cd74ebdbc8d1843bc17eaae670ec5007d7de.camel@intel.com \
--to=jouni.hogander@intel.com \
--cc=animesh.manna@intel.com \
--cc=ankit.k.nautiyal@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.