]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915: Split intel_attach_colorspace_property() into HDMI vs. DP variants
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 30 Nov 2020 20:47:30 +0000 (02:17 +0530)
committerUma Shankar <uma.shankar@intel.com>
Tue, 1 Dec 2020 19:59:31 +0000 (01:29 +0530)
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.

Cc: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201130204738.2443-8-uma.shankar@intel.com
drivers/gpu/drm/i915/display/intel_connector.c
drivers/gpu/drm/i915/display/intel_connector.h
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_hdmi.c

index 406e96785c763760cf422f9cbcb72cf5c8a721e2..d5ceb7bdc14b396b75c36fad562910d7bc47e798 100644 (file)
@@ -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);
 }
index 93a7375c8196dab2faa358c33506ee0228b6a944..661a37a3c6d834893c094e0b5cb66c0593ee0436 100644 (file)
@@ -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__ */
index 69de163be776c5b0843263560760642be9869aa8..f066031af162480fa1395c0c3f1e034af5db142b 100644 (file)
@@ -7193,7 +7193,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 (intel_bios_is_lspcon_present(dev_priv, port))
                drm_connector_attach_content_type_property(connector);
index 0f2cc40cc7922391e1740e473072248cc1c99da2..0dcf6cd5a2536f942d454e7a6c47283728d7b71e 100644 (file)
@@ -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);