[PATCH v1 0/4] support USB offload feature

From: Daehwan Jung
Date: Fri Mar 04 2022 - 01:30:13 EST


This patchset is for USB offload feature, 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 also gives vendors flexibilty of memory management.
Below pathches have been merged in AOSP kernel(android12-5.10) and I put
together and split into 3 patches. Plus let me add user(xhci-exynos) module
to see how user could use it.

To sum up, it's for providing xhci memories to Co-Processor.
It would cover DCBAA, Device Context, Tranfer Ring, Event Ring, ERST.
It needs xhci hooks and to export some xhci symbols.

ANDROID: usb: host: fix slab-out-of-bounds in xhci_vendor_get_ops
ANDROID: usb: export built-in tracepoint functions
ANDROID: usb: host: Use old init scheme when hook unavailable
ANDROID: usb: host: free the offload TR by vendor hook
ANDROID: usb: host: xhci: provide function prototype for xhci_address_device
ANDROID: usb: host: add bus_suspend/bus_resume to xhci overrides
ANDROID: usb: host: add address_device to xhci overrides
ANDROID: usb: host: add max packet parameter on alloc_transfer_ring hook
ANDROID: usb: host: add xhci hooks for vendor specific container context
ANDROID: usb: host: export xhci symbols for ring management
ANDROID: usb: host: export additional xhci symbols for ring management
FROMLIST: usb: xhci-plat: add xhci_plat_priv_overwrite
FROMLIST: usb: host: export symbols for xhci hooks usage
FROMLIST: usb: host: add xhci hooks for USB offload

Below are owners of patches.

Howard Yen <howardyen@xxxxxxxxxx>
Jack Pham <jackp@xxxxxxxxxxxxxx>
Puma Hsu <pumahsu@xxxxxxxxxx>
J. Avila <elavila@xxxxxxxxxx>
chihhao.chen <chihhao.chen@xxxxxxxxxxxx>

Daehwan Jung (4):
usb: host: export symbols for xhci hooks usage
usb: host: add xhci hooks for USB offload
usb: host: add some to xhci overrides for USB offload
usb: host: add xhci-exynos module

drivers/usb/host/xhci-exynos.c | 2025 ++++++++++++++++++++++++++++++++
drivers/usb/host/xhci-exynos.h | 150 +++
drivers/usb/host/xhci-hub.c | 7 +
drivers/usb/host/xhci-mem.c | 160 ++-
drivers/usb/host/xhci-plat.c | 43 +-
drivers/usb/host/xhci-plat.h | 8 +
drivers/usb/host/xhci-ring.c | 22 +-
drivers/usb/host/xhci.c | 104 +-
drivers/usb/host/xhci.h | 52 +
9 files changed, 2543 insertions(+), 28 deletions(-)
create mode 100644 drivers/usb/host/xhci-exynos.c
create mode 100644 drivers/usb/host/xhci-exynos.h

--
2.31.1