Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
	"Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
Cc: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"Manna,  Animesh" <animesh.manna@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 08/14] drm/i915/dp: Add AS SDP support for PR with link ON
Date: Fri, 27 Feb 2026 05:46:49 +0000	[thread overview]
Message-ID: <2b2697b9c8bc5f74b8ec50468a0388d5136c40dd.camel@intel.com> (raw)
In-Reply-To: <aaEfeDSkYNU5M92U@intel.com>

On Fri, 2026-02-27 at 06:37 +0200, Ville Syrjälä wrote:
> On Thu, Feb 26, 2026 at 06:10:34PM +0200, Ville Syrjälä wrote:
> > On Mon, Feb 23, 2026 at 07:14:25PM +0530, Ankit Nautiyal wrote:
> > > Adaptive Sync SDP (AS SDP) is also used for Panel Replay (PR).
> > > For PR with Link ON, the AS SDP version V1 is used. When using
> > > AS SDP Version 1, AS SDP payload and parity bytes are all set to
> > > zeroes.
> > 
> > I don't think we should need to transmit any AS SDP in link ON
> > mode.
> 
> Hmm, maybe we do. While the DP spec is is extremely confusing here
> (mostly just talking about the ALPM+AS SDP combo and ignoring the
> link ON case), I think what it might be hinting at is that the sink
> tells us whether it needs the AS SDP, via
> ASYNC_VIDEO_TIMING_NOT_SUPPORTED_IN_PR.

This sounds reasonable. It seems I have been reading only the mention
"Source device may choose to disable Adaptive-Sync SDP transmission
during a PR Active state." There is also a note saying in case of eDP
this should be 0 always.

Maybe instead of just checking Panel Replay we could add a helper
checking this bit and use that as a enabler for AS SDP? Unless we are
enabling AS SDP always when supported.

BR,
Jouni Högander

> 
> > 
> > > 
> > > Bspec: 75639
> > > Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_dp.c | 17 ++++++++++++++++-
> > >  1 file changed, 16 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> > > b/drivers/gpu/drm/i915/display/intel_dp.c
> > > index d08db4938638..5952db6197cf 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > > @@ -3115,7 +3115,8 @@ static bool intel_dp_needs_as_sdp(struct
> > > intel_dp *intel_dp,
> > >  				  struct intel_crtc_state
> > > *crtc_state)
> > >  {
> > >  	return crtc_state->vrr.enable ||
> > > -	       crtc_state->cmrr.enable;
> > > +	       crtc_state->cmrr.enable ||
> > > +	       crtc_state->has_panel_replay;
> > >  }
> > >  
> > >  static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
> > > @@ -3137,6 +3138,16 @@ static void intel_dp_compute_as_sdp(struct
> > > intel_dp *intel_dp,
> > >  	as_sdp->length = 0x9;
> > >  	as_sdp->duration_incr_ms = 0;
> > >  	as_sdp->version = 0x2;
> > > +
> > > +	if (crtc_state->vrr.enable)
> > > +		as_sdp->version = 0x2;
> > 
> > I think we rather need some versions checks or something to
> > make sure the device actually supports v2. VRR itself shouldn't
> > need v2 since the v1 was originally added exactly for VRR+PCON
> > use cases. PR+ALPM definitely does need v2, but not sure anything
> > else actually needs it.
> > 
> > > +	else
> > > +		as_sdp->version = 0x1;
> > > +
> > > +	/* No payload data bytes for Version 1 */
> > > +	if (as_sdp->version == 0x1)
> > > +		return;
> > > +
> > >  	as_sdp->vtotal = intel_vrr_vmin_vtotal(crtc_state);
> > >  
> > >  	if (crtc_state->cmrr.enable) {
> > > @@ -5005,6 +5016,10 @@ static ssize_t intel_dp_as_sdp_pack(const
> > > struct drm_dp_as_sdp *as_sdp,
> > >  	sdp->sdp_header.HB2 = as_sdp->version;
> > >  	sdp->sdp_header.HB3 = as_sdp->length;
> > >  
> > > +	/* No Payload Data bytes for Version 1 */
> > > +	if (as_sdp->version == 0x1)
> > > +		return length;
> > > +
> > >  	/* Fill AS (Adaptive Sync) SDP Payload */
> > >  	sdp->db[0] = as_sdp->mode;
> > >  	sdp->db[1] = as_sdp->vtotal & 0xFF;
> > > -- 
> > > 2.45.2
> > 
> > -- 
> > Ville Syrjälä
> > Intel
> 


  reply	other threads:[~2026-02-27  5:46 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-23 13:44 [PATCH 00/14] Fix Adaptive Sync SDP for PR with Link ON + Auxless ALPM Ankit Nautiyal
2026-02-23 13:44 ` [PATCH 01/14] drm/i915/dp: Fix readback for target_rr in Adaptive Sync SDP Ankit Nautiyal
2026-02-23 13:44 ` [PATCH 02/14] drm/i915/vrr: Avoid vrr for PCON with HDMI2.1 sink Ankit Nautiyal
2026-02-26 15:22   ` Ville Syrjälä
2026-02-23 13:44 ` [PATCH 03/14] drm/i915/dp: Add a helper to decide if AS SDP is needed Ankit Nautiyal
2026-02-26 15:29   ` Ville Syrjälä
2026-02-26 16:01     ` Ville Syrjälä
2026-02-27 11:08       ` Nautiyal, Ankit K
2026-02-23 13:44 ` [PATCH 04/14] drm/i915/dp: Update the helper intel_dp_needs_as_sdp() for CMRR Ankit Nautiyal
2026-02-23 13:44 ` [PATCH 05/14] include/drm/display/dp: Add field for storing AS SDP version Ankit Nautiyal
2026-02-26 15:34   ` Ville Syrjälä
2026-02-27 11:13     ` Nautiyal, Ankit K
2026-02-23 13:44 ` [PATCH 06/14] drm/i915/dp: Use version field of AS SDP data structure Ankit Nautiyal
2026-02-23 13:44 ` [PATCH 07/14] drm/i915/dp: Compute AS SDP after PSR and LOBF Ankit Nautiyal
2026-02-23 13:44 ` [PATCH 08/14] drm/i915/dp: Add AS SDP support for PR with link ON Ankit Nautiyal
2026-02-26 16:10   ` Ville Syrjälä
2026-02-27  4:37     ` Ville Syrjälä
2026-02-27  5:46       ` Hogander, Jouni [this message]
2026-02-27  5:49       ` Ville Syrjälä
2026-02-27 10:57         ` Nautiyal, Ankit K
2026-02-23 13:44 ` [PATCH 09/14] drm/i915/psr: Add helper to check if PR is with link OFF Ankit Nautiyal
2026-02-26 16:12   ` Ville Syrjälä
2026-02-27 11:23     ` Nautiyal, Ankit K
2026-02-23 13:44 ` [PATCH 10/14] drm/i915/dp: Set relevant Downspread Ctrl DPCD bits for PR + Auxless ALPM Ankit Nautiyal
2026-02-23 13:44 ` [PATCH 11/14] drm/i915/dp: Program AS SDP DB[1:0] for PR with Link off Ankit Nautiyal
2026-02-26 16:14   ` Ville Syrjälä
2026-02-27 11:25     ` Nautiyal, Ankit K
2026-02-23 13:44 ` [PATCH 12/14] include/drm/display/dp: Add DPCD registers for configuring Panel Replay + VRR Ankit Nautiyal
2026-02-26 16:44   ` Ville Syrjälä
2026-02-23 13:44 ` [PATCH 13/14] drm/i915/display: Add member to store AS SDP transmission time Ankit Nautiyal
2026-02-26 17:00   ` Ville Syrjälä
2026-02-27 12:22     ` Nautiyal, Ankit K
2026-02-23 13:44 ` [PATCH 14/14] drm/i915/dp: Account for AS_SDP guardband only when enabled Ankit Nautiyal
2026-02-23 14:26 ` ✓ CI.KUnit: success for Fix Adaptive Sync SDP for PR with Link ON + Auxless ALPM Patchwork
2026-02-23 15:08 ` ✓ Xe.CI.BAT: " Patchwork
2026-02-24  8:12 ` ✗ Xe.CI.FULL: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2025-11-11  9:30 [PATCH 2/4] drm/i915/vrr: Avoid vrr for PCON with HDMI2.1 sink Ankit Nautiyal
2026-02-23 13:14 ` [PATCH 00/14] Fix Adaptive Sync SDP for Panel Replay Ankit Nautiyal
2026-02-23 13:14   ` [PATCH 08/14] drm/i915/dp: Add AS SDP support for PR with link ON 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=2b2697b9c8bc5f74b8ec50468a0388d5136c40dd.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox