[PATCH v5 0/6] Add xhci-exynos for Exynos SOC

Daehwan Jung
2022-05-06T06:33:29Z

This patchset is for Samsung Exynos xHCI host conroller. It uses xhci
platform driver and extends some functions by xhci hooks and overrides.

This driver supports USB offload which makes Co-processor to use
some memories of xhci. Especially it's useful for USB Audio scenario.
Audio stream would get shortcut because Co-processor directly write/read
data in xhci memories. It could get speed-up using faster memory like SRAM.
That's why this gives vendors flexibilty of memory management. This feature
is done with xhci hooks and overrides.

It supports USB offload only for first connected device. It follows normal
sequence from 2nd device.

Changes in v2 :
- Fix commit message by adding Signed-off-by in each patch.
- Fix conflict on latest.

Changes in v3 :
- Remove export symbols and xhci hooks which xhci-exynos don't need.
- Modify commit message to clarify why it needs to export symbols.
- Check compiling of xhci-exynos.

Changes in v4 :
- Modify commit message to clarify why it needs to export symbols.
- Add a function for override of hc driver in xhci-plat.
- Make xhci-exynos extending xhci-plat by xhci hooks and overrides.
(vendor_init / vendor_cleanup hooks are useful from here v4)
- Change the term (USB offload -> xhci-exynos) on subject of patches.

Changes in v5 :
- Rename subject of cover-letter.
- Add code in xhci_alloc_segments_for_uram.
- Add code for supporting several devices.
- Move adding xhci_address_device to other commit.
(usb: host: add some to xhci overrides for xhci-exynos
-> usb: host: export symbols for xhci-exynos to use xhci hooks)
- Add new commit (usb: dwc3: dwc3-exynos: add host init)

Daehwan Jung (6):
usb: host: export symbols for xhci-exynos to use xhci hooks
usb: host: add xhci hooks for xhci-exynos
usb: host: xhci-plat: support override of hc driver
usb: host: add some to xhci overrides for xhci-exynos
usb: host: add xhci-exynos driver
usb: dwc3: dwc3-exynos: add host init

drivers/usb/dwc3/dwc3-exynos.c | 100 ++++-
drivers/usb/host/Kconfig | 8 +
drivers/usb/host/Makefile | 1 +
drivers/usb/host/xhci-exynos.c | 775 +++++++++++++++++++++++++++++++++
drivers/usb/host/xhci-hub.c | 7 +
drivers/usb/host/xhci-mem.c | 150 ++++++-
drivers/usb/host/xhci-plat.c | 50 ++-
drivers/usb/host/xhci-plat.h | 9 +
drivers/usb/host/xhci-ring.c | 1 +
drivers/usb/host/xhci.c | 90 +++-
drivers/usb/host/xhci.h | 57 +++
11 files changed, 1222 insertions(+), 26 deletions(-)
create mode 100644 drivers/usb/host/xhci-exynos.c

--
2.31.1