On ADL-P the PHY ready/complete flag is always set even in TBT-alt mode.
To avoid taking the PHY ownership and the following spurious "PHY sudden
disconnect" messages on this platform when connecting the PHY in TBT
mode, check if there is any DP-alt or legacy sink connected before
taking the ownership.

Cc: José Roberto de Souza <[email protected]>
Signed-off-by: Imre Deak <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_tc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_tc.c 
b/drivers/gpu/drm/i915/display/intel_tc.c
index 0d3555437b0b1..1f76c11d70834 100644
--- a/drivers/gpu/drm/i915/display/intel_tc.c
+++ b/drivers/gpu/drm/i915/display/intel_tc.c
@@ -432,6 +432,13 @@ static void icl_tc_phy_connect(struct intel_digital_port 
*dig_port,
                goto out_set_tbt_alt_mode;
        }
 
+       if (!(tc_port_live_status_mask(dig_port) &
+             (BIT(TC_PORT_DP_ALT) | BIT(TC_PORT_LEGACY)))) {
+               drm_dbg_kms(&i915->drm, "Port %s: nothing is connected\n",
+                           dig_port->tc_port_name);
+               goto out_set_tbt_alt_mode;
+       }
+
        if (!tc_phy_take_ownership(dig_port, true) &&
            !drm_WARN_ON(&i915->drm, dig_port->tc_legacy_port))
                goto out_set_tbt_alt_mode;
-- 
2.27.0

Reply via email to