[Intel-gfx] [PATCH 2/3] drm/i915/ehl: Make icp_digital_port_connected() use phy instead of port

Souza, Jose jose.souza at intel.com
Tue Nov 26 21:34:03 UTC 2019


On Tue, 2019-11-26 at 13:07 -0800, Matt Roper wrote:
> When looking at SDEISR to determine the connection status of combo
> outputs, we should use the phy index rather than the port index.
> Although they're usually the same thing, EHL's DDI-D (port D) is
> attached to PHY-A and SDEISR doesn't even have bits for a "D" output.
> It's also possible that future platforms may map DDIs (the internal
> display engine programming units) to PHYs (the output handling on the
> IO
> side) in ways where port!=phy, so let's look at the PHY index by
> default.

Reviewed-by: José Roberto de Souza <jose.souza at intel.com>

> 
> Fixes: 719d24002602 ("drm/i915/ehl: Enable DDI-D")
> Cc: José Roberto de Souza <jose.souza at intel.com>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index ddf5bad1b969..59c5fd7bf27d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5477,14 +5477,12 @@ static bool bxt_digital_port_connected(struct
> intel_encoder *encoder)
>  }
>  
>  static bool icl_combo_port_connected(struct drm_i915_private
> *dev_priv,
> -				     struct intel_digital_port
> *intel_dig_port)
> +				     enum phy phy)
>  {
> -	enum port port = intel_dig_port->base.port;
> -
> -	if (HAS_PCH_MCC(dev_priv) && port == PORT_C)
> +	if (HAS_PCH_MCC(dev_priv) && phy == PHY_C)
>  		return I915_READ(SDEISR) &
> SDE_TC_HOTPLUG_ICP(PORT_TC1);
>  
> -	return I915_READ(SDEISR) & SDE_DDI_HOTPLUG_ICP(port);
> +	return I915_READ(SDEISR) & SDE_DDI_HOTPLUG_ICP(phy);
>  }
>  
>  static bool icp_digital_port_connected(struct intel_encoder
> *encoder)
> @@ -5494,7 +5492,7 @@ static bool icp_digital_port_connected(struct
> intel_encoder *encoder)
>  	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>  
>  	if (intel_phy_is_combo(dev_priv, phy))
> -		return icl_combo_port_connected(dev_priv, dig_port);
> +		return icl_combo_port_connected(dev_priv, phy);
>  	else if (intel_phy_is_tc(dev_priv, phy))
>  		return intel_tc_port_connected(dig_port);
>  	else


More information about the Intel-gfx mailing list