drm/i915: fix link rates reported for SKL
authorThulasimani,Sivakumar <sivakumar.thulasimani@intel.com>
Tue, 18 Aug 2015 05:37:59 +0000 (11:07 +0530)
committerJani Nikula <jani.nikula@intel.com>
Mon, 24 Aug 2015 07:17:51 +0000 (10:17 +0300)
This patch fixes the bug that SKL SKUs before B0 might return
HBR2 as supported even though it is not supposed to be enabled
on such platforms.

v2: optimize if else condition (Jani)

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
[Jani: minor whitespace fix.]
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_dp.c

index d0f4eb793cf56c1a52157d96ef98f3a8dfaebe8c..260ff8b084377728cff7ef80c0b30e14be7bb638 100644 (file)
@@ -1223,21 +1223,24 @@ static bool intel_dp_source_supports_hbr2(struct drm_device *dev)
 static int
 intel_dp_source_rates(struct drm_device *dev, const int **source_rates)
 {
+       int size;
+
        if (IS_BROXTON(dev)) {
                *source_rates = bxt_rates;
-               return ARRAY_SIZE(bxt_rates);
+               size = ARRAY_SIZE(bxt_rates);
        } else if (IS_SKYLAKE(dev)) {
                *source_rates = skl_rates;
-               return ARRAY_SIZE(skl_rates);
+               size = ARRAY_SIZE(skl_rates);
+       } else {
+               *source_rates = default_rates;
+               size = ARRAY_SIZE(default_rates);
        }
 
-       *source_rates = default_rates;
-
        /* This depends on the fact that 5.4 is last value in the array */
-       if (intel_dp_source_supports_hbr2(dev))
-               return (DP_LINK_BW_5_4 >> 3) + 1;
-       else
-               return (DP_LINK_BW_2_7 >> 3) + 1;
+       if (!intel_dp_source_supports_hbr2(dev))
+               size--;
+
+       return size;
 }
 
 static void