mbox series

[0/3] support USB offload feature

Message ID 1643857054-112415-1-git-send-email-dh10.jung@samsung.com (mailing list archive)
Headers show
Series support USB offload feature | expand

Message

Jung Daehwan Feb. 3, 2022, 2:57 a.m. UTC
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.

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@google.com>
Jack Pham <jackp@codeaurora.org>
Puma Hsu <pumahsu@google.com>
J. Avila <elavila@google.com>
chihhao.chen <chihhao.chen@mediatek.com>)

Daehwan Jung (3):
  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

 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 ++++++++++++
 7 files changed, 368 insertions(+), 28 deletions(-)

Comments

Greg KH Feb. 3, 2022, 7:21 a.m. UTC | #1
On Thu, Feb 03, 2022 at 11:57:31AM +0900, Daehwan Jung wrote:
> 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.
> 
> 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@google.com>
> Jack Pham <jackp@codeaurora.org>
> Puma Hsu <pumahsu@google.com>
> J. Avila <elavila@google.com>
> chihhao.chen <chihhao.chen@mediatek.com>)
> 
> Daehwan Jung (3):
>   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

We need a user for these offload hooks, can you also submit them at the
same time?  Otherwise for obvious reaons, I can not take these without
any user.

thanks,

greg k-h
Mathias Nyman Feb. 3, 2022, 9:33 a.m. UTC | #2
On 3.2.2022 4.57, Daehwan Jung wrote:
> 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.

Can you share the full USB offload support series?

I'd like to see the big picture before taking any exporting and override
patches.

Thanks
-Mathias
Macpaul Lin Feb. 7, 2022, 3:48 a.m. UTC | #3
On 2/3/22 5:33 PM, Mathias Nyman wrote:
> On 3.2.2022 4.57, Daehwan Jung wrote:
>> 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.
> 
> Can you share the full USB offload support series?
> 
> I'd like to see the big picture before taking any exporting and override
> patches.
> 
> Thanks
> -Mathias
>   
> 

Dear Daehwan,

I'm very appreciate for your upstream work.

We know that, USB offload (especially for headset - USB Audio) is a very 
important feature in current smart phone devices. It is able to improve 
both audio latency and power consumption under music playing or phone 
call scenarios. However, the solution varies between different SOC 
vendors, because the implementations are different in both software and 
hardware interfaces.

I think a design description (document) to your implementation is 
important for introducing this feature to Linux community. Maybe a 
configuration how-to is required for not only maintainers but also 
developers to understand these modifications. And I think other vendors 
should follow up if they likes to upstream their solutions. :)

Thanks!
MAcpaul Lin