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