linux/drivers/usb/typec
Christian A. Ehrhardt 1675aae9e1 usb: ucsi_acpi: Quirk to ack a connector change ack cmd
[ Upstream commit f3be347ea4 ]

The PPM on some Dell laptops seems to expect that the ACK_CC_CI
command to clear the connector change notification is in turn
followed by another ACK_CC_CI to acknowledge the ACK_CC_CI command
itself. This is in violation of the UCSI spec that states:

    "The only notification that is not acknowledged by the OPM is
     the command completion notification for the ACK_CC_CI or the
     PPM_RESET command."

Add a quirk to send this ack anyway.
Apply the quirk to all Dell systems.

On the first command that acks a connector change send a dummy
command to determine if it runs into a timeout. Only activate
the quirk if it does. This ensure that we do not break Dell
systems that do not need the quirk.

Signed-off-by: "Christian A. Ehrhardt" <lk@c--e.de>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240121204123.275441-4-lk@c--e.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-03-01 13:26:27 +01:00
..
altmodes usb: typec: altmodes/displayport: Signal hpd low when exiting mode 2023-10-19 23:08:58 +02:00
mux usb: typec: intel_pmc_mux: Don't leak the ACPI device reference count 2023-03-10 09:33:31 +01:00
tcpm usb: typec: tcpm: Skip hard reset when in error recovery 2023-12-03 07:32:12 +01:00
tipd usb: typec: tipd: Fix typec_unregister_port error paths 2022-12-31 13:32:39 +01:00
ucsi usb: ucsi_acpi: Quirk to ack a connector change ack cmd 2024-03-01 13:26:27 +01:00
anx7411.c USB/Thunderbolt changes for 6.1-rc1 2022-10-07 16:48:26 -07:00
bus.c usb: typec: bus: verify partner exists in typec_altmode_attention 2023-09-13 09:43:04 +02:00
bus.h usb: typec: Organize the private headers properly 2021-04-05 09:07:41 +02:00
class.c usb: typec: class: fix typec_altmode_put_partner to put plugs 2024-01-25 15:27:40 -08:00
class.h usb: typec: Add retimer handle to port 2022-07-14 16:24:05 +02:00
hd3ss3220.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
Kconfig usb: typec: anx7411: Fix build error without CONFIG_POWER_SUPPLY 2022-09-22 15:21:03 +02:00
Makefile usb: typec: Add support for retimers 2022-07-14 16:24:05 +02:00
mux.c usb: typec: Replace custom implementation of device_match_fwnode() 2022-09-30 13:55:13 +02:00
mux.h usb: typec: mux: Introduce indirection 2022-04-26 13:47:13 +02:00
pd.c usb: typec: Fix fast_role_swap_current show function 2023-06-21 16:00:57 +02:00
pd.h usb: typec: Separate USB Power Delivery from USB Type-C 2022-06-12 06:49:47 +02:00
port-mapper.c ACPI: bus: Introduce acpi_bus_for_each_dev() 2022-03-02 20:55:47 +01:00
qcom-pmic-typec.c usb: typec: qcom-pmic-typec: Switch to use dev_err_probe() helper 2022-09-27 10:35:46 +02:00
retimer.c usb: typec: Replace custom implementation of device_match_fwnode() 2022-09-30 13:55:13 +02:00
retimer.h usb: typec: Add support for retimers 2022-07-14 16:24:05 +02:00
rt1719.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
stusb160x.c USB/Thunderbolt changes for 6.1-rc1 2022-10-07 16:48:26 -07:00
wusb3801.c usb: typec: wusb3801: fix fwnode refcount leak in wusb3801_probe() 2022-12-31 13:32:42 +01:00