PMIC GLINK platforms handle the altmode support via OOB messages rather than by fully following the UCSI standard. Currently altmode handling is implemented in a separate driver, which has to duplicate significant part of the USB-C stack to control USB-C muxes, switches and retimers. Also this potentially introduces race conditions, since both UCSI and pmic-glink-altmode will drive those components. Last but not least, there is no connection betnween the altmode's aux-hpd-bridge and corresponding typec_port instance. Merge the pmic-glink-altmode driver into the ucsi-glink, streamling the altmode support for Qualcomm platforms. Depends: https://lore.kernel.org/linux-usb/20240411-ucsi-orient-aware-v2-0-d4b1cb22a33f@xxxxxxxxxx/ Merge strategy: since the series involves both UCSI and soc/qcom drivers, I'd kindly ask to ack merging the whole patchset through the USB tree. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> --- Dmitry Baryshkov (8): usb: typec: Handle retimers in typec_set_mode() usb: typec: altmode: add low level altmode configuration helper usb: typec: ucsi: glink: check message data sizes usb: typec: ucsi: glink: use le32 for message data usb: typec: ucsi: glink: simplify notification handling usb: typec: ucsi: add ucsi_registered() callback usb: typec: ucsi: glink: merge pmic_glink_altmode driver soc: qcom: pmic-glink: drop separate altmode driver support drivers/soc/qcom/Makefile | 1 - drivers/soc/qcom/pmic_glink.c | 15 +- drivers/soc/qcom/pmic_glink_altmode.c | 546 ------------------------------ drivers/usb/typec/bus.c | 34 ++ drivers/usb/typec/class.c | 9 +- drivers/usb/typec/ucsi/ucsi.c | 3 + drivers/usb/typec/ucsi/ucsi.h | 2 + drivers/usb/typec/ucsi/ucsi_glink.c | 615 +++++++++++++++++++++++++++++++--- include/linux/usb/typec_altmode.h | 3 + 9 files changed, 619 insertions(+), 609 deletions(-) --- base-commit: 7f3fd687151a552038967f31993f1bc7e447b99e change-id: 20240408-ucsi-glink-altmode-293cdbf3270c Best regards, -- Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>