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

Jani Nikula jani.nikula at linux.intel.com
Wed Aug 3 14:15:31 UTC 2022


On Tue, 26 Jul 2022, Ankit Nautiyal <ankit.k.nautiyal at intel.com> wrote:
> 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.

What's the root cause? This seems like guess work.

BR,
Jani.


> [1] https://gitlab.freedesktop.org/drm/intel/-/issues/6205
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5272
>
> v2: Added comment about eDP HBR2 restriction for JSL/EHL (Arun).
>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> Reviewed-by: Arun R Murthy <arun.r.murthy at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 14 +++++++-------
>  1 file changed, 7 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..e50bba14e8c5 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,8 @@ 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))
> +	/* For JSL/EHL, eDP supports only HBR2 5.4 (SOC PHY restriction) */
> +	if (intel_dp_is_edp(intel_dp))
>  		return 540000;
>  
>  	return 810000;
> @@ -429,7 +427,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;

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list