| Message ID | 20260826015535.1472776-2-an.wu@canonical.com |
|---|---|
| State | New |
| Headers | show |
| Series | UBUNTU: SAUCE: drm/i915/tc: Revert forced DP-alt connected workaround | expand |
diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c index 87b635c0667a..18218e450b16 100644 --- a/drivers/gpu/drm/i915/display/intel_tc.c +++ b/drivers/gpu/drm/i915/display/intel_tc.c @@ -1733,11 +1733,6 @@ bool intel_tc_port_connected(struct intel_encoder *encoder) if (tc->mode != TC_PORT_DISCONNECTED) mask = BIT(tc->mode); - if (tc->link_refcount > 0 && - tc->mode == TC_PORT_DP_ALT && - tc_phy_is_owned(tc)) - return true; - return tc_phy_hpd_live_status(tc) & mask; }
BugLink: https://bugs.launchpad.net/bugs/2160082 The reverted workaround made intel_tc_port_connected() return true when a TC port has an active link reference, is in DP-alt mode, and the display still owns the PHY. That was added to avoid a false disconnect during a long HPD pulse from the HP Type-C to HDMI dongle tracked by LP: #2143879. The original issue is now fixed in TC firmware, so the kernel workaround is no longer required. It is also too broad: TC PHY ownership and link_refcount are driver/ownership state, not proof that the sink is still present. During a real USB-C/TBT dock unplug the PHY can remain owned while the sink is already gone, causing the port to be reported connected incorrectly. When the port is forced connected, the disconnected-port AUX fast-fail path does not run. The driver then attempts real AUX transactions against a removed sink and can spend seconds in repeated -ETIMEDOUT retries, causing display stalls/freezes. Revert the workaround so TC port connected state is again based on live status. This lets real disconnects return -ENXIO from the AUX guard while relying on the firmware fix for the original transient HPD issue. This reverts commit e9cdae7685d79e4cb30337a9f771a245febd5557. Signed-off-by: ChunAn Wu <an.wu@canonical.com> --- drivers/gpu/drm/i915/display/intel_tc.c | 5 ----- 1 file changed, 5 deletions(-)