linux/drivers/usb/typec
Andrei Kuchynski 3b8ae98176 usb: typec: thunderbolt: Set enter_vdo during initialization
In the current implementation, if a cable's alternate mode enter operation
is not supported, the tbt->plug[TYPEC_PLUG_SOP_P] pointer is cleared by the
time tbt_enter_mode() is called. This prevents the driver from identifying
the cable's VDO.

As a result, the Thunderbolt connection falls back to the default
TBT_CABLE_USB3_PASSIVE speed, even if the cable supports higher speeds.
To ensure the correct VDO value is used during mode entry, calculate and
store the enter_vdo earlier during the initialization phase in tbt_ready().

Cc: stable <stable@kernel.org>
Fixes: 100e257386 ("usb: typec: Add driver for Thunderbolt 3 Alternate Mode")
Tested-by: Madhu M <madhu.m@intel.corp-partner.google.com>
Signed-off-by: Andrei Kuchynski <akuchynski@chromium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Benson Leung <bleung@chromium.org>
Link: https://patch.msgid.link/20260324103012.1417616-1-akuchynski@chromium.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-30 17:17:40 +02:00
..
altmodes usb: typec: thunderbolt: Set enter_vdo during initialization 2026-03-30 17:17:40 +02:00
mux usb: typec: ps883x: Fix missing mutex_unlock() 2025-10-23 10:42:27 +02:00
tcpm Revert "tcpm: allow looking for role_sw device in the main node" 2026-03-11 16:22:18 +01:00
tipd usb: typec: tipd: mark as orientation aware 2025-11-21 15:10:58 +01:00
ucsi usb: typec: ucsi: validate connector number in ucsi_notify_common() 2026-03-18 16:15:49 +01:00
Kconfig
Makefile usb: typec: Implement mode selection 2026-01-23 17:18:01 +01:00
anx7411.c usb: typec: anx7411: add WQ_PERCPU to alloc_workqueue users 2025-11-21 15:17:36 +01:00
bus.c usb: typec: Export typec bus and typec altmode device type 2025-12-17 14:42:34 +01:00
bus.h usb: typec: Export typec bus and typec altmode device type 2025-12-17 14:42:34 +01:00
class.c usb: typec: Remove alt->adev.dev.class assignment 2026-03-30 17:17:21 +02:00
class.h usb: typec: Implement mode selection 2026-01-23 17:18:01 +01:00
hd3ss3220.c usb: typec: hd3ss3220: Check if regulator needs to be switched 2026-02-06 11:23:50 +01:00
mode_selection.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mux.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mux.h
pd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pd.h
port-mapper.c usb: typec: Connect Type-C port with associated USB4 port 2025-04-17 12:21:45 +03:00
retimer.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
retimer.h
rt1719.c
stusb160x.c
wusb3801.c