OSDN Git Service

drm/i915: Disconnect PHYs left connected by BIOS on disabled ports
authorImre Deak <imre.deak@intel.com>
Thu, 17 Feb 2022 15:22:37 +0000 (17:22 +0200)
committerImre Deak <imre.deak@intel.com>
Fri, 18 Feb 2022 10:39:20 +0000 (12:39 +0200)
commited0ccf349ffd9c80e7376d4d8c608643de990e86
tree8248bb47e5bcaf95ac9b99d62766806adb6a2523
parent77f4ec2a4111f1dce0c5903d6db7887413a0a750
drm/i915: Disconnect PHYs left connected by BIOS on disabled ports

BIOS may leave a TypeC PHY in a connected state even though the
corresponding port is disabled. This will prevent any hotplug events
from being signalled (after the monitor deasserts and then reasserts its
HPD) until the PHY is disconnected and so the driver will not detect a
connected sink. Rebooting with the PHY in the connected state also
results in a system hang.

Fix the above by disconnecting TypeC PHYs on disabled ports.

Before commit 64851a32c463e5 the PHY connected state was read out even
for disabled ports and later the PHY got disconnected as a side effect
of a tc_port_lock/unlock() sequence (during connector probing), hence
recovering the port's hotplug functionality.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5014
Fixes: 64851a32c463 ("drm/i915/tc: Add a mode for the TypeC PHY's disconnected state")
Cc: <stable@vger.kernel.org> # v5.16+
Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220217152237.670220-1-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_tc.c