소스 검색

drm/i915: fix link rates reported for SKL

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>
Thulasimani,Sivakumar 10 년 전
부모
커밋
af7080f555
1개의 변경된 파일11개의 추가작업 그리고 8개의 파일을 삭제
  1. 11 8
      drivers/gpu/drm/i915/intel_dp.c

+ 11 - 8
drivers/gpu/drm/i915/intel_dp.c

@@ -1223,21 +1223,24 @@ static bool intel_dp_source_supports_hbr2(struct drm_device *dev)
 static int
 static int
 intel_dp_source_rates(struct drm_device *dev, const int **source_rates)
 intel_dp_source_rates(struct drm_device *dev, const int **source_rates)
 {
 {
+	int size;
+
 	if (IS_BROXTON(dev)) {
 	if (IS_BROXTON(dev)) {
 		*source_rates = bxt_rates;
 		*source_rates = bxt_rates;
-		return ARRAY_SIZE(bxt_rates);
+		size = ARRAY_SIZE(bxt_rates);
 	} else if (IS_SKYLAKE(dev)) {
 	} else if (IS_SKYLAKE(dev)) {
 		*source_rates = skl_rates;
 		*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 */
 	/* 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
 static void