summaryrefslogtreecommitdiff
path: root/drivers/clk/eswin/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorWei-Cheng Chen <weichengc@nvidia.com>2026-05-05 19:26:30 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-05-22 10:35:50 +0200
commit5a4c828b8b29b47534814ade26d9aee09d5101fc (patch)
tree15b1c17039ac172a7a688c2af3ce0d8b8df872b8 /drivers/clk/eswin/git@git.tavy.me:linux.git
parent68aa70648b625fa684bc0b71bbfd905f4943ca20 (diff)
xhci: tegra: Fix ghost USB device on dual-role port unplug
When a USB device is unplugged from the dual-role port, the device-mode path in tegra_xhci_id_work() explicitly clears both SS and HS port power via direct hub_control ClearPortFeature(POWER) calls. This preempts the xHCI controller's normal disconnect processing -- PORT_CSC is never generated, the USB core never sees the disconnect, and the device remains in its internal tree as a ghost visible in lsusb. Add an otg_set_port_power flag to control whether the dual-role switch path performs explicit port power management. SoCs that need it (Tegra124 / Tegra210 / Tegra186) set the flag; later SoCs (Tegra194 and beyond) rely on the PHY mode change to handle disconnect naturally and skip all port power calls. Within the port power path, otg_reset_sspi additionally gates the SSPI reset sequence on host-mode entry for SoCs that require it. Flags set per SoC: Tegra124, Tegra186 -> otg_set_port_power Tegra210 -> otg_set_port_power, otg_reset_sspi Tegra194 and later -> (none) Fixes: f836e7843036 ("usb: xhci-tegra: Add OTG support") Cc: stable <stable@kernel.org> Signed-off-by: Wei-Cheng Chen <weichengc@nvidia.com> Link: https://patch.msgid.link/20260505112630.217704-1-weichengc@nvidia.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/clk/eswin/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions