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.syrj...@linux.intel.com>
> Cc: Vandita Kulkarni <vandita.kulka...@intel.com>
> Cc: Paulo Zanoni <paulo.r.zan...@intel.com>
> Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
> Signed-off-by: Imre Deak <imre.d...@intel.com>

Seems sensible.

Reviewed-by: Ville Syrjälä <ville.syrj...@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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to