public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: "Jouni Högander" <jouni.hogander@intel.com>,
	intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v9 4/8] drm/i915/dsb: Set DSB_SKIP_WAITS_EN chicken bit for LunarLake and onwards
Date: Fri, 23 Jan 2026 10:11:54 +0530	[thread overview]
Message-ID: <36c19548-c76d-4f0c-98e5-937db6532573@intel.com> (raw)
In-Reply-To: <20251223105120.21505-5-jouni.hogander@intel.com>


On 12/23/2025 4:21 PM, Jouni Högander wrote:
> On LunarLake we are using TRANS_PUSH mechanism to trigger "Frame Change"
> event. This way we have more control on when PSR HW is woken up. I.e. not
> every display register write is triggering sending update. This allows us
> setting DSB_SKIP_WAITS_EN chicken bit as well.
>
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_dsb.c | 15 +++++++++++----
>   1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
> index ec2a3fb171ab..19a99f82f413 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsb.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsb.c
> @@ -17,6 +17,7 @@
>   #include "intel_dsb.h"
>   #include "intel_dsb_buffer.h"
>   #include "intel_dsb_regs.h"
> +#include "intel_psr.h"
>   #include "intel_vblank.h"
>   #include "intel_vrr.h"
>   #include "skl_watermark.h"
> @@ -166,18 +167,24 @@ static int dsb_scanline_to_hw(struct intel_atomic_state *state,
>    * definitely do not want to skip vblank wait. We also have concern what comes
>    * to skipping vblank evasion. I.e. arming registers are latched before we have
>    * managed writing them. Due to these reasons we are not setting
> - * DSB_SKIP_WAITS_EN.
> + * DSB_SKIP_WAITS_EN except when using TRANS_PUSH mechanism to trigger
> + * "frame change" event.
>    */
>   static u32 dsb_chicken(struct intel_atomic_state *state,
>   		       struct intel_crtc *crtc)
>   {
> +	const struct intel_crtc_state *new_crtc_state =
> +		intel_atomic_get_new_crtc_state(state, crtc);
> +	u32 chicken = intel_psr_use_trans_push(new_crtc_state) ?
> +		DSB_SKIP_WAITS_EN : 0;


I have a query regarding Panel Replay. Let's say Panel Replay is enabled.

crtc_state->has_psr will be set for Panel Replay as well so 
DSB_SKIP_WAITS_EN bit gets set.

As per the bspec: "When set, this will enable the DSB to jump from WAIT 
for Vblank, wait for scanline number, in range and out of range states 
to IDLE state when PSR and PSR2 is entered."

When it says "PSR and PSR2 is entered", does this apply to Panel Replay 
as well? Meaning in case of Panel Replay will the wait be skipped?


Regards,

Ankit

> +
>   	if (pre_commit_is_vrr_active(state, crtc))
> -		return DSB_CTRL_WAIT_SAFE_WINDOW |
> +		chicken |= DSB_CTRL_WAIT_SAFE_WINDOW |
>   			DSB_CTRL_NO_WAIT_VBLANK |
>   			DSB_INST_WAIT_SAFE_WINDOW |
>   			DSB_INST_NO_WAIT_VBLANK;
> -	else
> -		return 0;
> +
> +	return chicken;
>   }
>   
>   static bool assert_dsb_has_room(struct intel_dsb *dsb)

  reply	other threads:[~2026-01-23  4:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-23 10:51 [PATCH v9 0/8] Use trans push mechanism to generate frame change event Jouni Högander
2025-12-23 10:51 ` [PATCH v9 1/8] drm/i915/psr: Add TRANS_PUSH register bit definition for PSR Jouni Högander
2025-12-23 10:51 ` [PATCH v9 2/8] drm/i915/psr: Add intel_psr_use_trans_push to query if TRANS_PUSH is used Jouni Högander
2025-12-23 10:51 ` [PATCH v9 3/8] drm/i915/vrr: Prepare to Use TRANS_PUSH mechanism for PSR frame change Jouni Högander
2026-01-22 11:04   ` Nautiyal, Ankit K
2026-01-22 11:39     ` Hogander, Jouni
2025-12-23 10:51 ` [PATCH v9 4/8] drm/i915/dsb: Set DSB_SKIP_WAITS_EN chicken bit for LunarLake and onwards Jouni Högander
2026-01-23  4:41   ` Nautiyal, Ankit K [this message]
2026-01-23  6:19     ` Hogander, Jouni
2025-12-23 10:51 ` [PATCH v9 5/8] drm/i915/display: Wait for vblank in case of PSR is using trans push Jouni Högander
2025-12-23 10:51 ` [PATCH v9 6/8] drm/i915/psr: Wait for idle only after possible send push Jouni Högander
2026-01-23  5:12   ` Nautiyal, Ankit K
2026-01-23  6:37     ` Hogander, Jouni
2026-01-23 11:33       ` Nautiyal, Ankit K
2025-12-23 10:51 ` [PATCH v9 7/8] drm/i915/psr: Do PSR exit on frontbuffer flush on LunarLake and onwards Jouni Högander
2026-01-23  6:18   ` Nautiyal, Ankit K
2025-12-23 10:51 ` [PATCH v9 8/8] drm/i915/psr: Use TRANS_PUSH to trigger frame change event Jouni Högander
2026-01-22 11:04   ` Nautiyal, Ankit K
2026-01-22 11:43     ` Hogander, Jouni
2025-12-23 12:23 ` ✓ i915.CI.BAT: success for Use trans push mechanism to generate " Patchwork
2025-12-24 17:26 ` ✓ i915.CI.Full: " 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=36c19548-c76d-4f0c-98e5-937db6532573@intel.com \
    --to=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jouni.hogander@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