There are cases when UCSI drivers either want to mangle UCSI commands or its response or to completely emulate some of the commands in software. Currently code to handle such situations is split between sync_control(), read_cci() and read_message_in() callbacks. Make sync_control() also return CCI and MESSAGE_IN data, simplifying this kind of handling. This series reworks CCG driver and LG Gram quirks. If the approach is considered to be acceptable, it will be used to emulate AltMode support in the GLINK and Yoga C630 drivers: on these platforms DisplayPort AltMode is handled via the non-UCSI messages, however in the past reviewers suggested reusing UCSI displayport driver and just emulate necessary commands (mostly GET_CURRENT_CAM). Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> --- Changes in v2: - Fixed build error in CrOS UCSI driver. - Link to v1: https://lore.kernel.org/r/20250117-ucsi-merge-commands-v1-0-e20c19934d59@xxxxxxxxxx --- Dmitry Baryshkov (3): usb: typec: ucsi: return CCI and message from sync_control callback usb: typec: ucsi: ccg: move command quirks to ucsi_ccg_sync_control() usb: typec: ucsi: acpi: move LG Gram quirk to ucsi_gram_sync_control() drivers/usb/typec/ucsi/cros_ec_ucsi.c | 5 +-- drivers/usb/typec/ucsi/ucsi.c | 19 +++++----- drivers/usb/typec/ucsi/ucsi.h | 6 ++-- drivers/usb/typec/ucsi/ucsi_acpi.c | 29 +++++---------- drivers/usb/typec/ucsi/ucsi_ccg.c | 67 +++++++++++++++++------------------ 5 files changed, 59 insertions(+), 67 deletions(-) --- base-commit: 0907e7fb35756464aa34c35d6abb02998418164b change-id: 20250116-ucsi-merge-commands-f2f6f5c93466 Best regards, -- Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>