On Fri, Oct 12, 2018 at 01:14:45PM -0700, [email protected] wrote:
> From: Clint Taylor <[email protected]>
> 
> Initialize SCDC Source Version and TDMS_Config_0 registers to nominal
> values during intel_hdmi_detect(). The i915 driver currently doesn't
> implement features that require polling of the status update bits. Once
> FRL, DSC, or Source Test is enabled in the driver the status flags will
> need to be read by the source according to specification.
> 
> Cc: Ville Syrjälä <[email protected]>
> Signed-off-by: Clint Taylor <[email protected]>
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
> b/drivers/gpu/drm/i915/intel_hdmi.c
> index 2c53efc..ab3eac5 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1910,6 +1910,8 @@ bool intel_hdmi_compute_config(struct intel_encoder 
> *encoder,
>       struct drm_i915_private *dev_priv = to_i915(connector->dev);
>       struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
>       struct intel_encoder *encoder = &hdmi_to_dig_port(intel_hdmi)->base;
> +     struct i2c_adapter *adapter =
> +             intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
>  
>       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
>                     connector->base.id, connector->name);
> @@ -1925,6 +1927,16 @@ bool intel_hdmi_compute_config(struct intel_encoder 
> *encoder,
>       if (intel_hdmi_set_edid(connector))
>               status = connector_status_connected;
>  
> +     if (connector->display_info.hdmi.scdc.supported) {
> +             /* SCDC source version HDMI 2.1 Sec. 10.4.1.2 */
> +             if (drm_scdc_writeb(adapter, SCDC_SOURCE_VERSION, 0x01) < 0)
> +                     DRM_DEBUG_KMS("Unable to set SCDC Source Version 
> register\n");
> +
> +             /* Clear SCDC CONFIG_0 HDMI 2.1 Sec. 10.4.1.6 - RR_Enable 
> Polling Only */
> +             if (drm_scdc_writeb(adapter, SCDC_CONFIG_0, 0x00) < 0)
> +                     DRM_DEBUG_KMS("Unable to set SCDC CONFIG_0 register\n");
> +     }

I'd probably put this into intel_hdmi_set_edid() so that we'll do it for
the ->force() path as well. Or maybe a separate function called from
both places.

> +
>  out:
>       intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
>  
> -- 
> 1.9.1

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to