Re: [PATCH v30 00/30] Introduce QC USB SND audio offloading support

Cezary Rojewski
2024-12-03T16:16:38Z

On 2024-11-15 11:42 PM, Wesley Cheng wrote:
> Hi,
>
> On 11/6/2024 11:33 AM, Wesley Cheng wrote:
>> Requesting to see if we can get some Acked-By tags, and merge on usb-next.
>

Hi Cheng,

I'd consider reordering the series and splitting it up so it's easier to
review, 30 patches is a lot. Right now, the QCOM parts are mixed with
the framework changes. While obviously we want to see user/usage of the
new additions, it is probably better to see QCOM-specifics last so that
we can concentrate on what impacts all of us - the framework changes.

I believe that without much work one could simplify the set so that the
output of:
git log --oneline -n 30

looks like below. At least that's what I've done on my machine. Notice
that the top 7 patches target QCOM directly and make easy candidates for
being removed from the current series and put into a standalone one
instead AKA a follow up. Feel free to correct me if I'm wrong in any of
these.

ASoC: qcom: qdsp6: Fetch USB offload mapped card and PCM device
ASoC: qcom: qdsp6: Add headphone jack for offload connection status
ASoC: qcom: qdsp6: Add USB backend ASoC driver for Q6
ASoC: qcom: qdsp6: q6afe: Increase APR timeout
ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp
ASoC: dt-bindings: Update example for enabling USB offload on SM8250
ASoC: dt-bindings: qcom,q6dsp-lpass-ports: Add USB_RX port
ASoC: usb: Rediscover USB SND devices on USB port add
ALSA: usb-audio: Allow for rediscovery of connected USB SND devices
ALSA: usb-audio: Add USB offload route kcontrol
ALSA: usb-audio: qcom: Don't allow USB offload path if PCM device is in use
ALSA: usb-audio: qcom: Introduce QC USB SND offloading support
ALSA: usb-audio: qcom: Add USB QMI definitions
ALSA: usb-audio: Introduce USB SND platform op callbacks
ASoC: doc: Add documentation for SOC USB
ASoC: usb: Fetch ASoC card and pcm device information
ASoC: usb: Create SOC USB SND jack kcontrol
ASoC: usb: Add PCM format check API for USB backend
ASoC: Add SOC USB APIs for adding an USB backend
ALSA: usb-audio: Prevent starting of audio stream if in use
ALSA: usb-audio: Save UAC sample size information
ALSA: usb-audio: Check for support for requested audio format
ALSA: usb-audio: Export USB SND APIs for modules
ALSA: Add USB audio device jack type
usb: dwc3: Specify maximum number of XHCI interrupters
usb: host: xhci-plat: Set XHCI max interrupters if property is present
usb: host: xhci-mem: Allow for interrupter clients to choose specific index
usb: host: xhci-mem: Cleanup pending secondary event ring events
xhci: sec-intr: add initial api to register a secondary interrupter entity
usb: host: xhci: Repurpose event handler for skipping interrupter events

>>
>> Mathias Nyman (1):
>> xhci: sec-intr: add initial api to register a secondary interrupter
>> entity
>>
>> Wesley Cheng (29):
>> usb: host: xhci: Repurpose event handler for skipping interrupter
>> events
>> usb: host: xhci-mem: Cleanup pending secondary event ring events
>> usb: host: xhci-mem: Allow for interrupter clients to choose specific
>> index
>> usb: host: xhci-plat: Set XHCI max interrupters if property is present
>> usb: dwc3: Specify maximum number of XHCI interrupters
>> ALSA: Add USB audio device jack type
>> ALSA: usb-audio: Export USB SND APIs for modules
>> ALSA: usb-audio: Check for support for requested audio format
>> ALSA: usb-audio: Save UAC sample size information
>> ALSA: usb-audio: Prevent starting of audio stream if in use
>> ASoC: Add SOC USB APIs for adding an USB backend
>> ASoC: usb: Add PCM format check API for USB backend
>> ASoC: usb: Create SOC USB SND jack kcontrol
>> ASoC: usb: Fetch ASoC card and pcm device information
>> ASoC: doc: Add documentation for SOC USB
>> ASoC: dt-bindings: qcom,q6dsp-lpass-ports: Add USB_RX port
>> ASoC: dt-bindings: Update example for enabling USB offload on SM8250
>> ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp
>> ASoC: qcom: qdsp6: q6afe: Increase APR timeout
>> ASoC: qcom: qdsp6: Add USB backend ASoC driver for Q6
>> ASoC: qcom: qdsp6: Add headphone jack for offload connection status
>> ASoC: qcom: qdsp6: Fetch USB offload mapped card and PCM device
>> ALSA: usb-audio: Introduce USB SND platform op callbacks
>> ALSA: usb-audio: qcom: Add USB QMI definitions
>> ALSA: usb-audio: qcom: Introduce QC USB SND offloading support
>> ALSA: usb-audio: qcom: Don't allow USB offload path if PCM device is
>> in use
>> ALSA: usb-audio: Add USB offload route kcontrol
>> ALSA: usb-audio: Allow for rediscovery of connected USB SND devices
>> ASoC: usb: Rediscover USB SND devices on USB port add
>>
>> .../bindings/sound/qcom,sm8250.yaml | 15 +
>> Documentation/sound/soc/index.rst | 1 +
>> Documentation/sound/soc/usb.rst | 491 ++++
>> drivers/usb/dwc3/core.c | 12 +
>> drivers/usb/dwc3/core.h | 2 +
>> drivers/usb/dwc3/host.c | 3 +
>> drivers/usb/host/Kconfig | 11 +
>> drivers/usb/host/Makefile | 2 +
>> drivers/usb/host/xhci-mem.c | 31 +-
>> drivers/usb/host/xhci-plat.c | 2 +
>> drivers/usb/host/xhci-ring.c | 54 +-
>> drivers/usb/host/xhci-sec-intr.c | 439 ++++
>> drivers/usb/host/xhci.c | 2 +-
>> drivers/usb/host/xhci.h | 14 +-
>> .../sound/qcom,q6dsp-lpass-ports.h | 1 +
>> include/linux/mod_devicetable.h | 2 +-
>> include/linux/usb/xhci-sec-intr.h | 70 +
>> include/sound/jack.h | 4 +-
>> include/sound/q6usboffload.h | 20 +
>> include/sound/soc-usb.h | 147 ++
>> include/uapi/linux/input-event-codes.h | 3 +-
>> sound/core/jack.c | 6 +-
>> sound/soc/Kconfig | 10 +
>> sound/soc/Makefile | 2 +
>> sound/soc/qcom/Kconfig | 15 +
>> sound/soc/qcom/Makefile | 2 +
>> sound/soc/qcom/qdsp6/Makefile | 1 +
>> sound/soc/qcom/qdsp6/q6afe-dai.c | 60 +
>> sound/soc/qcom/qdsp6/q6afe.c | 194 +-
>> sound/soc/qcom/qdsp6/q6afe.h | 36 +-
>> sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 23 +
>> sound/soc/qcom/qdsp6/q6dsp-lpass-ports.h | 1 +
>> sound/soc/qcom/qdsp6/q6routing.c | 32 +-
>> sound/soc/qcom/qdsp6/q6usb.c | 391 ++++
>> sound/soc/qcom/sm8250.c | 24 +-
>> sound/soc/qcom/usb_offload_utils.c | 56 +
>> sound/soc/qcom/usb_offload_utils.h | 30 +
>> sound/soc/soc-usb.c | 369 +++
>> sound/usb/Kconfig | 25 +
>> sound/usb/Makefile | 4 +-
>> sound/usb/card.c | 106 +
>> sound/usb/card.h | 17 +
>> sound/usb/endpoint.c | 1 +
>> sound/usb/format.c | 1 +
>> sound/usb/helper.c | 1 +
>> sound/usb/mixer_usb_offload.c | 102 +
>> sound/usb/mixer_usb_offload.h | 17 +
>> sound/usb/pcm.c | 104 +-
>> sound/usb/pcm.h | 11 +
>> sound/usb/qcom/Makefile | 2 +
>> sound/usb/qcom/qc_audio_offload.c | 1974 +++++++++++++++++
>> sound/usb/qcom/usb_audio_qmi_v01.c | 863 +++++++
>> sound/usb/qcom/usb_audio_qmi_v01.h | 164 ++
>> 53 files changed, 5915 insertions(+), 55 deletions(-)
>> create mode 100644 Documentation/sound/soc/usb.rst
>> create mode 100644 drivers/usb/host/xhci-sec-intr.c
>> create mode 100644 include/linux/usb/xhci-sec-intr.h
>> create mode 100644 include/sound/q6usboffload.h
>> create mode 100644 include/sound/soc-usb.h
>> create mode 100644 sound/soc/qcom/qdsp6/q6usb.c
>> create mode 100644 sound/soc/qcom/usb_offload_utils.c
>> create mode 100644 sound/soc/qcom/usb_offload_utils.h
>> create mode 100644 sound/soc/soc-usb.c
>> create mode 100644 sound/usb/mixer_usb_offload.c
>> create mode 100644 sound/usb/mixer_usb_offload.h
>> create mode 100644 sound/usb/qcom/Makefile
>> create mode 100644 sound/usb/qcom/qc_audio_offload.c
>> create mode 100644 sound/usb/qcom/usb_audio_qmi_v01.c
>> create mode 100644 sound/usb/qcom/usb_audio_qmi_v01.h
>>
>