[Intel-gfx] [PATCH] drm/i915/dp: Check for Low voltage IO only for eDP

Ankit Nautiyal ankit.k.nautiyal at intel.com
Fri Jun 24 03:46:31 UTC 2022


The low voltage sku check can be ignored as OEMs need to consider that
when designing the board and then put any limits in VBT.

Due to this check many DP sink that can be run with higher link rate,
are run at lower link rate, thereby pruning the resolutions that are
intended to be working as per bspec.

However, some eDP panels are getting issues [1] with higher link rate.
So keep the low voltage check for eDP, but ignore for DP sinks.
[1] https://gitlab.freedesktop.org/drm/intel/-/issues/6205

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5272

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 32292c0be2bd..c31ea2b418cf 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -405,7 +405,8 @@ static int icl_max_source_rate(struct intel_dp *intel_dp)
 	enum phy phy = intel_port_to_phy(dev_priv, dig_port->base.port);
 
 	if (intel_phy_is_combo(dev_priv, phy) &&
-	    (is_low_voltage_sku(dev_priv, phy) || !intel_dp_is_edp(intel_dp)))
+	    intel_dp_is_edp(intel_dp) &&
+	    is_low_voltage_sku(dev_priv, phy))
 		return 540000;
 
 	return 810000;
@@ -413,11 +414,7 @@ static int icl_max_source_rate(struct intel_dp *intel_dp)
 
 static int ehl_max_source_rate(struct intel_dp *intel_dp)
 {
-	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
-	struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
-	enum phy phy = intel_port_to_phy(dev_priv, dig_port->base.port);
-
-	if (intel_dp_is_edp(intel_dp) || is_low_voltage_sku(dev_priv, phy))
+	if (intel_dp_is_edp(intel_dp))
 		return 540000;
 
 	return 810000;
@@ -429,7 +426,9 @@ static int dg1_max_source_rate(struct intel_dp *intel_dp)
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
 	enum phy phy = intel_port_to_phy(i915, dig_port->base.port);
 
-	if (intel_phy_is_combo(i915, phy) && is_low_voltage_sku(i915, phy))
+	if (intel_phy_is_combo(i915, phy) &&
+	    intel_dp_is_edp(intel_dp) &&
+	    is_low_voltage_sku(i915, phy))
 		return 540000;
 
 	return 810000;
-- 
2.25.1



More information about the Intel-gfx mailing list