[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