drm/i915: Move platform checks into intel_hdmi_bpc_possible()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 11 May 2021 16:05:29 +0000 (19:05 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 26 May 2021 14:56:10 +0000 (17:56 +0300)
Let's put the platform checks into intel_hdmi_bpc_possible() so that
it'll confirm both the source and sink capabilities.

Cc: Werner Sembach <wse@tuxedocomputers.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210511160532.21446-4-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
drivers/gpu/drm/i915/display/intel_hdmi.c

index c2a1bbc6caf2a18de33669846cb6b99a8ef7704f..0ba0e48f23e2221dd9c66ea3436b7ef22a40182d 100644 (file)
@@ -1868,11 +1868,15 @@ static int intel_hdmi_port_clock(int clock, int bpc)
 static bool intel_hdmi_bpc_possible(struct drm_connector *connector,
                                    int bpc, bool has_hdmi_sink, bool ycbcr420_output)
 {
+       struct drm_i915_private *i915 = to_i915(connector->dev);
        const struct drm_display_info *info = &connector->display_info;
        const struct drm_hdmi_info *hdmi = &info->hdmi;
 
        switch (bpc) {
        case 12:
+               if (HAS_GMCH(i915))
+                       return false;
+
                if (!has_hdmi_sink)
                        return false;
 
@@ -1881,6 +1885,9 @@ static bool intel_hdmi_bpc_possible(struct drm_connector *connector,
                else
                        return info->edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_36;
        case 10:
+               if (DISPLAY_VER(i915) < 11)
+                       return false;
+
                if (!has_hdmi_sink)
                        return false;
 
@@ -2000,12 +2007,6 @@ static bool hdmi_deep_color_possible(const struct intel_crtc_state *crtc_state,
        const struct drm_display_mode *adjusted_mode =
                &crtc_state->hw.adjusted_mode;
 
-       if (HAS_GMCH(dev_priv))
-               return false;
-
-       if (bpc == 10 && DISPLAY_VER(dev_priv) < 11)
-               return false;
-
        /*
         * HDMI deep color affects the clocks, so it's only possible
         * when not cloning with other encoder types.