[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