All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Subject: Re: [PATCH 06/15] drm/i915/dp: Add SDP latency computation helper
Date: Thu, 11 Sep 2025 17:14:36 +0300	[thread overview]
Message-ID: <aMLZTPfiC3__iUbY@intel.com> (raw)
In-Reply-To: <20250911024554.692469-7-ankit.k.nautiyal@intel.com>

On Thu, Sep 11, 2025 at 08:15:45AM +0530, Ankit Nautiyal wrote:
> Add a helper to compute vblank time needed for transmitting specific
> DisplayPort SDPs like PPS, GAMUT_METADATA, and VSC_EXT. Latency is
> based on line count per packet type and current line time.
> 
> Used to ensure adequate vblank when features like DSC/HDR are enabled.
> 
> Bspec: 70151
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 47 +++++++++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_dp.h |  2 ++
>  2 files changed, 49 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 2eab591a8ef5..83c46e4680b3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -6857,3 +6857,50 @@ void intel_dp_mst_resume(struct intel_display *display)
>  		}
>  	}
>  }
> +
> +static
> +int intel_dp_get_sdp_latency(u32 type, int linetime_us)

The "get" in the name is redundant.

> +{
> +	int lines;
> +
> +	switch (type) {
> +	case DP_SDP_VSC_EXT_VESA:
> +	case DP_SDP_VSC_EXT_CEA:
> +		lines = 10;
> +		break;
> +	case HDMI_PACKET_TYPE_GAMUT_METADATA:
> +		lines = 8;
> +		break;
> +	case DP_SDP_PPS:
> +		lines = 6;
> +		break;
> +	default:
> +		lines = 0;
> +		break;
> +	}

We should probably calculate these properly instead of
just hardcoding annoying magic numbers. But I suppose
these are supposed to be some kind of semi worst case
numbers so perhaps OK for now.

> +
> +	return lines * linetime_us;
> +}
> +
> +int intel_dp_compute_sdp_latency(const struct intel_crtc_state *crtc_state,
> +				 bool assume_all_enabled)
> +{
> +	const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
> +	int sdp_latency = 0;
> +	int linetime_us;
> +
> +	linetime_us = DIV_ROUND_UP(adjusted_mode->crtc_htotal * 1000,
> +				   adjusted_mode->crtc_clock);
> +	if (assume_all_enabled ||
> +	    crtc_state->infoframes.enable &
> +	    intel_hdmi_infoframe_enable(HDMI_PACKET_TYPE_GAMUT_METADATA))
> +		sdp_latency = max(sdp_latency,
> +				  intel_dp_get_sdp_latency(HDMI_PACKET_TYPE_GAMUT_METADATA,
> +							   linetime_us));
> +
> +	if (assume_all_enabled || crtc_state->dsc.compression_enable)
> +		sdp_latency = max(sdp_latency,
> +				  intel_dp_get_sdp_latency(DP_SDP_PPS, linetime_us));
> +
> +	return sdp_latency;
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h
> index f90cfd1dbbd0..d222749b191c 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.h
> +++ b/drivers/gpu/drm/i915/display/intel_dp.h
> @@ -215,5 +215,7 @@ int intel_dp_compute_min_hblank(struct intel_crtc_state *crtc_state,
>  int intel_dp_dsc_bpp_step_x16(const struct intel_connector *connector);
>  void intel_dp_dpcd_set_probe(struct intel_dp *intel_dp, bool force_on_external);
>  bool intel_dp_in_hdr_mode(const struct drm_connector_state *conn_state);
> +int intel_dp_compute_sdp_latency(const struct intel_crtc_state *crtc_state,
> +				 bool assume_all_enabled);
>  
>  #endif /* __INTEL_DP_H__ */
> -- 
> 2.45.2

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2025-09-11 14:14 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-11  2:45 [PATCH 00/15] Optimize vrr.guardband and fix LRR Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 01/15] drm/i915/vrr: Use crtc_vsync_start/end for computing vrr.vsync_start/end Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 02/15] drm/i915/skl_watermark: Fix the scaling factor for chroma subsampling Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 03/15] drm/i915/skl_watermark: Pass linetime as argument to latency helpers Ankit Nautiyal
2025-09-11 13:58   ` Ville Syrjälä
2025-09-14  6:00     ` Nautiyal, Ankit K
2025-09-11  2:45 ` [PATCH 04/15] drm/i915/skl_scaler: Introduce helper for chroma downscale factor Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 05/15] drm/i915/display: Extract helpers to set dsc/scaler prefill latencies Ankit Nautiyal
2025-09-11 14:01   ` Ville Syrjälä
2025-09-14  6:02     ` Nautiyal, Ankit K
2025-09-11  2:45 ` [PATCH 06/15] drm/i915/dp: Add SDP latency computation helper Ankit Nautiyal
2025-09-11 14:14   ` Ville Syrjälä [this message]
2025-09-14  6:03     ` Nautiyal, Ankit K
2025-09-11  2:45 ` [PATCH 07/15] drm/i915/alpm: Add function to compute max link-wake latency Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 08/15] drm/i915/vrr: Use vrr.sync_start for getting vtotal Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 09/15] drm/i915/display: Add guardband check for feature latencies Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 10/15] drm/i915/skl_watermark: Remove redundant latency checks from vblank validation Ankit Nautiyal
2025-09-11 14:22   ` Ville Syrjälä
2025-09-14  6:04     ` Nautiyal, Ankit K
2025-09-11  2:45 ` [PATCH 11/15] drm/i915/display: Use vrr.guardband to derive vblank_start Ankit Nautiyal
2025-09-11 14:25   ` Ville Syrjälä
2025-09-14  5:59     ` Nautiyal, Ankit K
2025-09-15 12:32       ` Ville Syrjälä
2025-09-16 14:30         ` Nautiyal, Ankit K
2025-09-16 14:38           ` Nautiyal, Ankit K
2025-09-16 18:56             ` Ville Syrjälä
2025-09-17 10:38               ` Nautiyal, Ankit K
2025-09-17 12:36                 ` Ville Syrjälä
2025-09-17 10:51               ` Ville Syrjälä
2025-09-17 12:07                 ` Shankar, Uma
2025-09-17 20:51                 ` Ville Syrjälä
2025-09-17 21:12                   ` Ville Syrjälä
2025-09-11  2:45 ` [PATCH 12/15] drm/i915/vrr: Introduce helper to compute min static guardband Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 13/15] drm/i915/display: Use optimized guardband to set vblank start Ankit Nautiyal
2025-09-11  2:45 ` [PATCH 14/15] drm/i915/panel: Refactor helper to get highest fixed mode Ankit Nautiyal
2025-09-11 14:37   ` Ville Syrjälä
2025-09-14  6:08     ` Nautiyal, Ankit K
2025-09-11  2:45 ` [PATCH 15/15] drm/i915/vrr: Fix seamless_mn drrs for PTL Ankit Nautiyal
2025-09-11 14:41   ` Ville Syrjälä
2025-09-14  6:07     ` Nautiyal, Ankit K
2025-09-15 13:25       ` Ville Syrjälä
2025-09-11  3:11 ` ✓ CI.KUnit: success for Optimize vrr.guardband and fix LRR (rev11) Patchwork
2025-09-11  3:47 ` ✓ Xe.CI.BAT: " Patchwork
2025-09-11  6:06 ` ✓ i915.CI.BAT: success for Optimize vrr.guardband and fix LRR (rev10) Patchwork
2025-09-11  9:27 ` ✓ Xe.CI.Full: success for Optimize vrr.guardband and fix LRR (rev11) Patchwork
2025-09-11 19:16 ` ✗ i915.CI.Full: failure for Optimize vrr.guardband and fix LRR (rev10) Patchwork
2025-09-12 14:03 ` [PATCH 00/15] Optimize vrr.guardband and fix LRR Ville Syrjälä
2025-09-14  6:24   ` Nautiyal, Ankit K
  -- strict thread matches above, loose matches on Subject: below --
2025-09-28  7:05 Ankit Nautiyal
2025-09-28  7:05 ` [PATCH 06/15] drm/i915/dp: Add SDP latency computation helper Ankit Nautiyal
2025-08-04 13:24 [PATCH 00/15] Optimize vrr.guardband and fix LRR Ankit Nautiyal
2025-08-04 13:24 ` [PATCH 06/15] drm/i915/dp: Add SDP latency computation helper 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=aMLZTPfiC3__iUbY@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=mitulkumar.ajitkumar.golani@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.