All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: Vinod Govindapillai <vinod.govindapillai@intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v3] drm/i915: Enable SDP split for DP2.0
Date: Tue, 22 Nov 2022 12:53:03 +0200	[thread overview]
Message-ID: <87a64jz2eo.fsf@intel.com> (raw)
In-Reply-To: <20221121150718.1117628-1-vinod.govindapillai@intel.com>

On Mon, 21 Nov 2022, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote:
> Enable the SDP split configuration for DP2.0.
>
> v2: Move the register handling out of compute config function (JaniN)
>
> v3: Patch styling and register access based on platform support (JaniN)
>
> v4: Rebased
>
> v5: Use unconditional clear bit in intel_de_rmw (Jani Nikula)
>
> Bspec: 67768
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Pushed to drm-intel-next, thanks for the patch.

BR,
Jani.

> ---
>  drivers/gpu/drm/i915/display/intel_audio.c    | 11 +++++++++++
>  drivers/gpu/drm/i915/display/intel_audio.h    |  2 ++
>  drivers/gpu/drm/i915/display/intel_ddi.c      |  3 +++
>  .../drm/i915/display/intel_display_types.h    |  2 ++
>  drivers/gpu/drm/i915/display/intel_dp.c       | 19 +++++++++++++++++++
>  5 files changed, 37 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
> index 98c3322b4549..626c47e96a6d 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -798,6 +798,17 @@ static void ilk_audio_codec_enable(struct intel_encoder *encoder,
>  	mutex_unlock(&i915->display.audio.mutex);
>  }
>  
> +void intel_audio_sdp_split_update(struct intel_encoder *encoder,
> +				  const struct intel_crtc_state *crtc_state)
> +{
> +	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> +	enum transcoder trans = crtc_state->cpu_transcoder;
> +
> +	if (HAS_DP20(i915))
> +		intel_de_rmw(i915, AUD_DP_2DOT0_CTRL(trans), AUD_ENABLE_SDP_SPLIT,
> +			     crtc_state->sdp_split_enable ? AUD_ENABLE_SDP_SPLIT : 0);
> +}
> +
>  /**
>   * intel_audio_codec_enable - Enable the audio codec for HD audio
>   * @encoder: encoder on which to enable audio
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.h b/drivers/gpu/drm/i915/display/intel_audio.h
> index 63b22131dc45..1b87257c6a17 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.h
> +++ b/drivers/gpu/drm/i915/display/intel_audio.h
> @@ -22,5 +22,7 @@ void intel_audio_cdclk_change_pre(struct drm_i915_private *dev_priv);
>  void intel_audio_cdclk_change_post(struct drm_i915_private *dev_priv);
>  void intel_audio_init(struct drm_i915_private *dev_priv);
>  void intel_audio_deinit(struct drm_i915_private *dev_priv);
> +void intel_audio_sdp_split_update(struct intel_encoder *encoder,
> +				  const struct intel_crtc_state *crtc_state);
>  
>  #endif /* __INTEL_AUDIO_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 0f1ec2a98cc8..5f9a2410fc4c 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -2948,6 +2948,9 @@ static void intel_enable_ddi(struct intel_atomic_state *state,
>  
>  	intel_vrr_enable(encoder, crtc_state);
>  
> +	/* Enable/Disable DP2.0 SDP split config before transcoder */
> +	intel_audio_sdp_split_update(encoder, crtc_state);
> +
>  	intel_enable_transcoder(crtc_state);
>  
>  	intel_crtc_vblank_on(crtc_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index f07395065a69..ff3ef37d099e 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1295,6 +1295,8 @@ struct intel_crtc_state {
>  	/* Forward Error correction State */
>  	bool fec_enable;
>  
> +	bool sdp_split_enable;
> +
>  	/* Pointer to master transcoder in case of tiled displays */
>  	enum transcoder master_transcoder;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 67089711d9e2..cf8a2f644bab 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -2009,6 +2009,23 @@ intel_dp_compute_output_format(struct intel_encoder *encoder,
>  	return ret;
>  }
>  
> +static void
> +intel_dp_audio_compute_config(struct intel_encoder *encoder,
> +			      struct intel_crtc_state *pipe_config,
> +			      struct drm_connector_state *conn_state)
> +{
> +	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
> +	struct drm_connector *connector = conn_state->connector;
> +
> +	pipe_config->sdp_split_enable =
> +		intel_dp_has_audio(encoder, pipe_config, conn_state) &&
> +		intel_dp_is_uhbr(pipe_config);
> +
> +	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] SDP split enable: %s\n",
> +		    connector->base.id, connector->name,
> +		    str_yes_no(pipe_config->sdp_split_enable));
> +}
> +
>  int
>  intel_dp_compute_config(struct intel_encoder *encoder,
>  			struct intel_crtc_state *pipe_config,
> @@ -2092,6 +2109,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  		adjusted_mode->crtc_clock /= n;
>  	}
>  
> +	intel_dp_audio_compute_config(encoder, pipe_config, conn_state);
> +
>  	intel_link_compute_m_n(output_bpp,
>  			       pipe_config->lane_count,
>  			       adjusted_mode->crtc_clock,

-- 
Jani Nikula, Intel Open Source Graphics Center

      parent reply	other threads:[~2022-11-22 10:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-21 15:07 [Intel-gfx] [PATCH v3] drm/i915: Enable SDP split for DP2.0 Vinod Govindapillai
2022-11-21 16:33 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Enable SDP split for DP2.0 (rev3) Patchwork
2022-11-21 19:07 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2022-11-22 10:53 ` Jani Nikula [this message]

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=87a64jz2eo.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=vinod.govindapillai@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.