linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] usb: typec: ucsi: rework glue driver interface
@ 2024-06-20 22:55 Dmitry Baryshkov
  2024-06-20 22:55 ` [PATCH v2 1/7] usb: typec: ucsi: move ucsi_acknowledge() from ucsi_read_error() Dmitry Baryshkov
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2024-06-20 22:55 UTC (permalink / raw)
  To: Heikki Krogerus, Greg Kroah-Hartman, Maxime Coquelin,
	Alexandre Torgue
  Cc: Nikita Travkin, Neil Armstrong, linux-usb, linux-kernel,
	linux-stm32, linux-arm-kernel

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.

Depends: [1], [2]

[1] https://lore.kernel.org/linux-usb/20240612124656.2305603-1-fabrice.gasnier@foss.st.com/

[2] https://lore.kernel.org/linux-usb/20240621-ucsi-yoga-ec-driver-v8-1-e03f3536b8c6@linaro.org/

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
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@linaro.org

---
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@linaro.org>



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2024-06-28  9:29 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-20 22:55 [PATCH v2 0/7] usb: typec: ucsi: rework glue driver interface Dmitry Baryshkov
2024-06-20 22:55 ` [PATCH v2 1/7] usb: typec: ucsi: move ucsi_acknowledge() from ucsi_read_error() Dmitry Baryshkov
2024-06-20 22:55 ` [PATCH v2 2/7] usb: typec: ucsi: simplify command sending API Dmitry Baryshkov
2024-06-20 22:55 ` [PATCH v2 3/7] usb: typec: ucsi: split read operation Dmitry Baryshkov
2024-06-20 22:55 ` [PATCH v2 4/7] usb: typec: ucsi: rework command execution functions Dmitry Baryshkov
2024-06-20 22:55 ` [PATCH v2 5/7] usb: typec: ucsi: inline ucsi_read_message_in Dmitry Baryshkov
2024-06-20 22:55 ` [PATCH v2 6/7] usb: typec: ucsi: extract common code for command handling Dmitry Baryshkov
2024-06-25 15:24   ` [Linux-stm32] " Fabrice Gasnier
2024-06-25 16:49     ` Dmitry Baryshkov
2024-06-27 15:49       ` Fabrice Gasnier
2024-06-27 15:58         ` Dmitry Baryshkov
2024-06-27 16:49           ` Fabrice Gasnier
2024-06-27 20:14             ` Dmitry Baryshkov
2024-06-28  9:27               ` Fabrice Gasnier
2024-06-20 22:55 ` [PATCH v2 7/7] usb: typec: ucsi: reorder operations in ucsi_run_command() Dmitry Baryshkov
2024-06-25 14:28 ` [PATCH v2 0/7] usb: typec: ucsi: rework glue driver interface Heikki Krogerus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).