{
        struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
        struct intel_encoder *encoder = &dig_port->base;
+       intel_wakeref_t tc_cold_wref;
+       enum intel_display_power_domain domain;
        int active_links = 0;
 
        mutex_lock(&dig_port->tc_lock);
 
        drm_WARN_ON(&i915->drm, dig_port->tc_mode != TC_PORT_DISCONNECTED);
        drm_WARN_ON(&i915->drm, dig_port->tc_lock_wakeref);
-       if (active_links) {
-               enum intel_display_power_domain domain;
-               intel_wakeref_t tc_cold_wref = tc_cold_block(dig_port, &domain);
 
-               dig_port->tc_mode = intel_tc_port_get_current_mode(dig_port);
+       tc_cold_wref = tc_cold_block(dig_port, &domain);
 
+       dig_port->tc_mode = intel_tc_port_get_current_mode(dig_port);
+       if (active_links) {
                if (!icl_tc_phy_is_connected(dig_port))
                        drm_dbg_kms(&i915->drm,
                                    "Port %s: PHY disconnected with %d active link(s)\n",
 
                dig_port->tc_lock_wakeref = tc_cold_block(dig_port,
                                                          &dig_port->tc_lock_power_domain);
-
-               tc_cold_unblock(dig_port, domain, tc_cold_wref);
+       } else {
+               /*
+                * TBT-alt is the default mode in any case the PHY ownership is not
+                * held (regardless of the sink's connected live state), so
+                * we'll just switch to disconnected mode from it here without
+                * a note.
+                */
+               if (dig_port->tc_mode != TC_PORT_TBT_ALT)
+                       drm_dbg_kms(&i915->drm,
+                                   "Port %s: PHY left in %s mode on disabled port, disconnecting it\n",
+                                   dig_port->tc_port_name,
+                                   tc_port_mode_name(dig_port->tc_mode));
+               icl_tc_phy_disconnect(dig_port);
        }
 
+       tc_cold_unblock(dig_port, domain, tc_cold_wref);
+
        drm_dbg_kms(&i915->drm, "Port %s: sanitize mode (%s)\n",
                    dig_port->tc_port_name,
                    tc_port_mode_name(dig_port->tc_mode));