[Intel-gfx] [PATCH 3/5] drm/i915/ddi: Check transcoder instead of port when setting HDMI infoframe
Ville Syrjälä
ville.syrjala at linux.intel.com
Wed Jun 13 17:47:28 UTC 2018
On Wed, Jun 13, 2018 at 08:07:08PM +0300, Imre Deak wrote:
> The only requirement by BSpec for setting the HDMI infoframes is on DDI
> platforms to do that before enabling the HDMI transcoder function, see
> VIDEO_DIP_CTL bit 16. Accordingly check for the transcoder function
> disabled state instead of the port's disabled state on DDI platforms.
> This is needed by the next patch as it will set the infoframe during
> crtc disabling where the port is still enabled.
>
> Suggested-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Vandita Kulkarni <vandita.kulkarni at intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
Seems sensible.
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_hdmi.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index b7a95fd0663b..29d586f5cedb 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -59,6 +59,15 @@ assert_hdmi_port_disabled(struct intel_hdmi *intel_hdmi)
> "HDMI port enabled, expecting disabled\n");
> }
>
> +static void
> +assert_hdmi_transcoder_func_disabled(struct drm_i915_private *dev_priv,
> + enum transcoder cpu_transcoder)
> +{
> + WARN(I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)) &
> + TRANS_DDI_FUNC_ENABLE,
> + "HDMI transcoder function enabled, expecting disabled\n");
> +}
> +
> struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
> {
> struct intel_digital_port *intel_dig_port =
> @@ -838,11 +847,11 @@ static void hsw_set_infoframes(struct drm_encoder *encoder,
> const struct drm_connector_state *conn_state)
> {
> struct drm_i915_private *dev_priv = to_i915(encoder->dev);
> - struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
> i915_reg_t reg = HSW_TVIDEO_DIP_CTL(crtc_state->cpu_transcoder);
> u32 val = I915_READ(reg);
>
> - assert_hdmi_port_disabled(intel_hdmi);
> + assert_hdmi_transcoder_func_disabled(dev_priv,
> + crtc_state->cpu_transcoder);
>
> val &= ~(VIDEO_DIP_ENABLE_VSC_HSW | VIDEO_DIP_ENABLE_AVI_HSW |
> VIDEO_DIP_ENABLE_GCP_HSW | VIDEO_DIP_ENABLE_VS_HSW |
> --
> 2.13.2
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list