linux/drivers/usb/typec
Mark Pearson 58941bbb00 usb: typec: ucsi: Handle incorrect num_connectors capability
[ Upstream commit 30cd2cb1ab ]

The UCSI spec states that the num_connectors field is 7 bits, and the
8th bit is reserved and should be set to zero.
Some buggy FW has been known to set this bit, and it can lead to a
system not booting.
Flag that the FW is not behaving correctly, and auto-fix the value
so that the system boots correctly.

Found on Lenovo P1 G8 during Linux enablement program. The FW will
be fixed, but seemed worth addressing in case it hit platforms that
aren't officially Linux supported.

Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20250821185319.2585023-1-mpearson-lenovo@squebb.ca
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-01-19 13:09:48 +01:00
..
altmodes usb: typec: displayport: Fix potential deadlock 2025-07-10 15:57:50 +02:00
mux usb: typec: intel_pmc_mux: Defer probe if SCU IPC isn't present 2025-08-28 16:24:19 +02:00
tcpm usb: typec: fusb302: cache PD RX state 2025-08-28 16:24:31 +02:00
tipd usb: typec: tipd: Fix spurious fwnode_handle_put in error path 2022-12-31 13:14:27 +01:00
ucsi usb: typec: ucsi: Handle incorrect num_connectors capability 2026-01-19 13:09:48 +01:00
bus.c usb: typec: bus: verify partner exists in typec_altmode_attention 2023-09-19 12:22:53 +02:00
bus.h usb: typec: Organize the private headers properly 2021-04-05 09:07:41 +02:00
class.c usb: typec: fix unreleased fwnode_handle in typec_port_register_altmodes() 2024-11-08 16:25:54 +01:00
class.h usb: typec: Link all ports during connector registration 2021-04-09 16:00:00 +02:00
hd3ss3220.c usb: typec: hd3ss3220: Use OF graph API to get the connector fwnode 2020-10-02 15:28:18 +02:00
Kconfig usb: typec: STUSB160X should select REGMAP_I2C 2021-11-18 19:16:54 +01:00
Makefile usb: typec: Port mapping utility 2021-04-09 16:00:00 +02:00
mux.c usb: typec: mux: Check dev_set_name() return value 2022-06-14 18:36:05 +02:00
mux.h usb: typec: mux: Use device type instead of device name for matching 2021-05-27 09:23:57 +02:00
port-mapper.c usb: typec: silence a static checker warning 2021-04-14 15:15:40 +02:00
qcom-pmic-typec.c usb: typec: Add QCOM PMIC typec detection driver 2020-10-09 15:14:43 +02:00
stusb160x.c usb: typec: stusb160x: Don't block probing of consumer of "connector" nodes 2021-07-21 09:16:40 +02:00