[Intel-gfx] [PATCH] drm/i915: Split intel_attach_colorspace_property() into HDMI vs. DP variants

Shankar, Uma uma.shankar at intel.com
Thu Nov 26 20:27:08 UTC 2020



> -----Original Message-----
> From: Ville Syrjala <ville.syrjala at linux.intel.com>
> Sent: Thursday, November 26, 2020 10:41 PM
> To: intel-gfx at lists.freedesktop.org
> Cc: Shankar, Uma <uma.shankar at intel.com>
> Subject: [PATCH] drm/i915: Split intel_attach_colorspace_property() into HDMI
> vs. DP variants
> 
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> With LSPCON we use the AVI infoframe to convey the colorimetry information (as
> opposed to DP MSA/SDP), so the property we expose should match the values
> we can stuff into the infoframe. Ie. we must use the HDMI variant of the
> property, even though we drive LSPCON in PCON mode. To that end just split
> intel_attach_colorspace_property() into HDMI and DP variants and let the caller
> worry about which one it wants to use.

Thanks Ville for this change. 
Reviewed-by: Uma Shankar <uma.shankar at intel.com>

> Cc: Uma Shankar <uma.shankar at intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  .../gpu/drm/i915/display/intel_connector.c    | 29 +++++++------------
>  .../gpu/drm/i915/display/intel_connector.h    |  3 +-
>  drivers/gpu/drm/i915/display/intel_dp.c       |  2 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c     |  2 +-
>  4 files changed, 15 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.c
> b/drivers/gpu/drm/i915/display/intel_connector.c
> index 406e96785c76..d5ceb7bdc14b 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.c
> +++ b/drivers/gpu/drm/i915/display/intel_connector.c
> @@ -279,24 +279,17 @@ intel_attach_aspect_ratio_property(struct
> drm_connector *connector)  }
> 
>  void
> -intel_attach_colorspace_property(struct drm_connector *connector)
> +intel_attach_hdmi_colorspace_property(struct drm_connector *connector)
>  {
> -	switch (connector->connector_type) {
> -	case DRM_MODE_CONNECTOR_HDMIA:
> -	case DRM_MODE_CONNECTOR_HDMIB:
> -		if (drm_mode_create_hdmi_colorspace_property(connector))
> -			return;
> -		break;
> -	case DRM_MODE_CONNECTOR_DisplayPort:
> -	case DRM_MODE_CONNECTOR_eDP:
> -		if (drm_mode_create_dp_colorspace_property(connector))
> -			return;
> -		break;
> -	default:
> -		MISSING_CASE(connector->connector_type);
> -		return;
> -	}
> +	if (!drm_mode_create_hdmi_colorspace_property(connector))
> +		drm_object_attach_property(&connector->base,
> +					   connector->colorspace_property, 0); }
> 
> -	drm_object_attach_property(&connector->base,
> -				   connector->colorspace_property, 0);
> +void
> +intel_attach_dp_colorspace_property(struct drm_connector *connector) {
> +	if (!drm_mode_create_dp_colorspace_property(connector))
> +		drm_object_attach_property(&connector->base,
> +					   connector->colorspace_property, 0);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.h
> b/drivers/gpu/drm/i915/display/intel_connector.h
> index 93a7375c8196..661a37a3c6d8 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.h
> +++ b/drivers/gpu/drm/i915/display/intel_connector.h
> @@ -30,6 +30,7 @@ int intel_ddc_get_modes(struct drm_connector *c, struct
> i2c_adapter *adapter);  void intel_attach_force_audio_property(struct
> drm_connector *connector);  void intel_attach_broadcast_rgb_property(struct
> drm_connector *connector);  void intel_attach_aspect_ratio_property(struct
> drm_connector *connector); -void intel_attach_colorspace_property(struct
> drm_connector *connector);
> +void intel_attach_hdmi_colorspace_property(struct drm_connector
> +*connector); void intel_attach_dp_colorspace_property(struct
> +drm_connector *connector);
> 
>  #endif /* __INTEL_CONNECTOR_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 3896d08c4177..0723246f1b19 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -7175,7 +7175,7 @@ intel_dp_add_properties(struct intel_dp *intel_dp,
> struct drm_connector *connect
>  	else if (INTEL_GEN(dev_priv) >= 5)
>  		drm_connector_attach_max_bpc_property(connector, 6, 12);
> 
> -	intel_attach_colorspace_property(connector);
> +	intel_attach_dp_colorspace_property(connector);
> 
>  	if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 11)
>  		drm_object_attach_property(&connector->base,
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c
> b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 82674a8853c6..061534e71f14 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2963,7 +2963,7 @@ intel_hdmi_add_properties(struct intel_hdmi
> *intel_hdmi, struct drm_connector *c
>  	 * as well. Will be implemented separately.
>  	 */
>  	if (!dig_port->lspcon.active)
> -		intel_attach_colorspace_property(connector);
> +		intel_attach_hdmi_colorspace_property(connector);
> 
>  	drm_connector_attach_content_type_property(connector);
> 
> --
> 2.26.2



More information about the Intel-gfx mailing list