On Fri, Jun 21, 2024 at 01:55:19AM +0300, Dmitry Baryshkov wrote: > The interface between UCSI and the glue driver is very low-level. It > allows reading the UCSI data from any offset (but in reality the UCSI > driver reads only VERSION, CCI an MESSAGE_IN data). All event handling > is to be done by the glue driver (which already resulted in several > similar-but-slightly different implementations). It leaves no place to > optimize the write-read-read sequence for the command execution (which > might be beneficial for some of the drivers), etc. > > The patchseries attempts to restructure the UCSI glue driver interface > in order to provide sensible operations instead of a low-level read / > write calls. > > If this approach is found to be acceptable, I plan to further rework the > command interface, moving reading CCI and MESSAGE_IN to the common > control code, which should simplify driver's implementation and remove > necessity to split quirks between sync_control and read_message_in e.g. > as implemented in the ucsi_ccg.c. > > Note, the series was tested only on the ucsi_glink platforms. Further > testing is appreciated. I can run a few tests against these tomorrow. I don't have have any objections with this approach, but you'll need to do another rebase. Now these don't apply cleanly because of 9e3caa9dd51b ("usb: typec: ucsi_acpi: Add LG Gram quirk"). thanks, > Depends: [1], [2] > > [1] https://lore.kernel.org/linux-usb/20240612124656.2305603-1-fabrice.gasnier@xxxxxxxxxxx/ > > [2] https://lore.kernel.org/linux-usb/20240621-ucsi-yoga-ec-driver-v8-1-e03f3536b8c6@xxxxxxxxxx/ > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > --- > Changes in v2: > - Dropped the RFC prefix > - Rebased on top of the fixed STM32 patch > - Included the pending Yoga C630 driver into the cleanup. > - Link to v1: https://lore.kernel.org/r/20240603-ucsi-rework-interface-v1-0-99a6d544cec8@xxxxxxxxxx > > --- > Dmitry Baryshkov (7): > usb: typec: ucsi: move ucsi_acknowledge() from ucsi_read_error() > usb: typec: ucsi: simplify command sending API > usb: typec: ucsi: split read operation > usb: typec: ucsi: rework command execution functions > usb: typec: ucsi: inline ucsi_read_message_in > usb: typec: ucsi: extract common code for command handling > usb: typec: ucsi: reorder operations in ucsi_run_command() > > drivers/usb/typec/ucsi/ucsi.c | 215 +++++++++++++++++--------------- > drivers/usb/typec/ucsi/ucsi.h | 26 ++-- > drivers/usb/typec/ucsi/ucsi_acpi.c | 100 +++++++-------- > drivers/usb/typec/ucsi/ucsi_ccg.c | 103 +++++++-------- > drivers/usb/typec/ucsi/ucsi_glink.c | 74 ++++------- > drivers/usb/typec/ucsi/ucsi_stm32g0.c | 79 ++++-------- > drivers/usb/typec/ucsi/ucsi_yoga_c630.c | 104 +++++---------- > 7 files changed, 309 insertions(+), 392 deletions(-) > --- > base-commit: f0dbf09a40c8100a895f675d619db5ed1f58f7ac > change-id: 20240525-ucsi-rework-interface-5ff2264f6aec > > Best regards, > -- > Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> -- heikki