Commit 9d1bb6f0 authored by Gwan-gyeong Mun's avatar Gwan-gyeong Mun Committed by Ville Syrjälä

drm/i915/dp: Attach colorspace property

It attaches the colorspace connector property to a DisplayPort connector.
Based on colorspace change, modeset will be triggered to switch to a new
colorspace.

And in order to distinguish colorspace bwtween DP and HDMI connector, it
adds a handling of drm_mode_create_dp_colorspace_property() to
intel_attach_colorspace_property().

Based on colorspace property value create a VSC SDP packet with appropriate
colorspace. This would help to enable wider color gamut like BT2020 on a
sink device.

v9: Addressed review comments from Ville
  - Add a handling of drm_mode_create_dp_colorspace_property() to
    intel_attach_colorspace_property(). This hunk moved from the previous
    commit.
Signed-off-by: default avatarGwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Reviewed-by: default avatarUma Shankar <uma.shankar@intel.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190919195311.13972-6-gwan-gyeong.mun@intel.com
parent 0c06fa15
...@@ -277,7 +277,22 @@ intel_attach_aspect_ratio_property(struct drm_connector *connector) ...@@ -277,7 +277,22 @@ intel_attach_aspect_ratio_property(struct drm_connector *connector)
void void
intel_attach_colorspace_property(struct drm_connector *connector) intel_attach_colorspace_property(struct drm_connector *connector)
{ {
if (!drm_mode_create_hdmi_colorspace_property(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:
DRM_DEBUG_KMS("Colorspace property not supported\n");
return;
}
drm_object_attach_property(&connector->base, drm_object_attach_property(&connector->base,
connector->colorspace_property, 0); connector->colorspace_property, 0);
} }
...@@ -6476,6 +6476,8 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect ...@@ -6476,6 +6476,8 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect
else if (INTEL_GEN(dev_priv) >= 5) else if (INTEL_GEN(dev_priv) >= 5)
drm_connector_attach_max_bpc_property(connector, 6, 12); drm_connector_attach_max_bpc_property(connector, 6, 12);
intel_attach_colorspace_property(connector);
if (intel_dp_is_edp(intel_dp)) { if (intel_dp_is_edp(intel_dp)) {
u32 allowed_scalers; u32 allowed_scalers;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment