Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
	<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 4/4] drm/i915/display: Compute and Enable AS SDP
Date: Tue, 13 Feb 2024 10:37:00 +0530	[thread overview]
Message-ID: <c92a3d24-44b7-4416-bf7b-b302833f13d8@intel.com> (raw)
In-Reply-To: <20240212173623.1464540-5-mitulkumar.ajitkumar.golani@intel.com>


On 2/12/2024 11:06 PM, Mitul Golani wrote:
> Add necessary functions definitions to enable
> and compute AS SDP data. The new `intel_dp_compute_as_sdp`
> function computes AS SDP values based on the display
> configuration, ensuring proper handling of Variable Refresh
> Rate (VRR).
>
> --v2:
> - Add DP_SDP_ADAPTIVE_SYNC to infoframe_type_to_idx().[Ankit]
> - separate patch for intel_read/write_dp_sdp [Ankit].
> - _HSW_VIDEO_DIP_ASYNC_DATA_A should be from ADL onward [Ankit]
> - To fix indentation [Ankit]
>
> --v3:
> - Add VIDEO_DIP_ENABLE_AS_HSW flag to intel_dp_set_infoframes.
>
> --v4:
> - Add HAS_VRR check before write as sdp.
>
> --v5:
> - Add missed HAS_VRR check before read as sdp.
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_ddi.c |  3 +++
>   drivers/gpu/drm/i915/display/intel_dp.c  | 23 +++++++++++++++++++++++
>   2 files changed, 26 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index bea441590204..47dfe727e98a 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3972,6 +3972,9 @@ static void intel_ddi_get_config(struct intel_encoder *encoder,
>   	intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA);
>   	intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC);
>   
> +	if ((DISPLAY_VER(dev_priv) >= 13) && HAS_VRR(dev_priv))
> +		intel_read_dp_sdp(encoder, pipe_config, DP_SDP_ADAPTIVE_SYNC);
> +
>   	intel_audio_codec_get_config(encoder, pipe_config);
>   }
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 6e9180ce069a..7ecbe9f48847 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -2615,6 +2615,25 @@ static void intel_dp_compute_vsc_colorimetry(const struct intel_crtc_state *crtc
>   	vsc->content_type = DP_CONTENT_TYPE_NOT_DEFINED;
>   }
>   
> +static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
> +				    struct intel_crtc_state *crtc_state,
> +				    const struct drm_connector_state *conn_state)
> +{
> +	struct drm_dp_as_sdp *as_sdp = &crtc_state->infoframes.as_sdp;
> +	struct intel_connector *connector = intel_dp->attached_connector;
> +	const struct drm_display_mode *adjusted_mode =
> +		&crtc_state->hw.adjusted_mode;
> +	int vrefresh = drm_mode_vrefresh(adjusted_mode);
> +
> +	if (!intel_vrr_is_in_range(connector, vrefresh))
> +		return;
> +
> +	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
> +	as_sdp->sdp_type = DP_SDP_ADAPTIVE_SYNC;
> +	as_sdp->length = 0x9;
> +	as_sdp->vtotal = adjusted_mode->vtotal;
> +}
> +
>   static void intel_dp_compute_vsc_sdp(struct intel_dp *intel_dp,
>   				     struct intel_crtc_state *crtc_state,
>   				     const struct drm_connector_state *conn_state)
> @@ -2940,6 +2959,7 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>   		g4x_dp_set_clock(encoder, pipe_config);
>   
>   	intel_vrr_compute_config(pipe_config, conn_state);
> +	intel_dp_compute_as_sdp(intel_dp, pipe_config, conn_state);
>   	intel_psr_compute_config(intel_dp, pipe_config, conn_state);
>   	intel_dp_drrs_compute_config(connector, pipe_config, link_bpp_x16);
>   	intel_dp_compute_vsc_sdp(intel_dp, pipe_config, conn_state);
> @@ -4325,6 +4345,9 @@ void intel_dp_set_infoframes(struct intel_encoder *encoder,
>   
>   	intel_write_dp_sdp(encoder, crtc_state, DP_SDP_VSC);
>   
> +	if ((DISPLAY_VER(dev_priv) >= 13) && HAS_VRR(dev_priv))
> +		intel_write_dp_sdp(encoder, crtc_state, DP_SDP_ADAPTIVE_SYNC);

I think we need to check whether adaptive sync SDP is supported by the 
sink or not from 2214h.

It would be good to have functions to get AS SDP capability for both 
sink and source, which can be used before read and write dp_sdps

Regards,

Ankit


> +
>   	intel_write_dp_sdp(encoder, crtc_state, HDMI_PACKET_TYPE_GAMUT_METADATA);
>   }
>   

  reply	other threads:[~2024-02-13  5:07 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-12 17:36 [PATCH 0/4] Enable Adaptive Sync SDP Support for DP Mitul Golani
2024-02-12 17:36 ` [PATCH 1/4] drm/i915/display: Compute TRANS_VRR_VSYNC Mitul Golani
2024-02-13  5:50   ` Nautiyal, Ankit K
2024-02-12 17:36 ` [PATCH 2/4] drm: Add Adaptive Sync SDP logging Mitul Golani
2024-02-13  6:04   ` Nautiyal, Ankit K
2024-02-12 17:36 ` [PATCH 3/4] drm/i915/dp: Add Read/Write support for Adaptive Sync SDP Mitul Golani
2024-02-13 10:21   ` Nautiyal, Ankit K
2024-02-12 17:36 ` [PATCH 4/4] drm/i915/display: Compute and Enable AS SDP Mitul Golani
2024-02-13  5:07   ` Nautiyal, Ankit K [this message]
2024-02-12 18:20 ` ✗ Fi.CI.CHECKPATCH: warning for Enable Adaptive Sync SDP Support for DP (rev7) Patchwork
2024-02-12 18:20 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-02-12 18:37 ` ✗ Fi.CI.BAT: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2024-02-12 16:43 [PATCH 0/4] Enable Adaptive Sync SDP Support for DP Mitul Golani
2024-02-12 16:43 ` [PATCH 4/4] drm/i915/display: Compute and Enable AS SDP Mitul Golani

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=c92a3d24-44b7-4416-bf7b-b302833f13d8@intel.com \
    --to=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox