From: "Amadeusz Sławiński" <amadeuszx.slawinski@linux.intel.com>
To: Wesley Cheng <quic_wcheng@quicinc.com>,
srinivas.kandagatla@linaro.org, mathias.nyman@intel.com,
perex@perex.cz, conor+dt@kernel.org, corbet@lwn.net,
broonie@kernel.org, lgirdwood@gmail.com, krzk+dt@kernel.org,
Thinh.Nguyen@synopsys.com, bgoswami@quicinc.com, tiwai@suse.com,
robh@kernel.org, gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-sound@vger.kernel.org, linux-usb@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-doc@vger.kernel.org,
alsa-devel@alsa-project.org
Subject: Re: [PATCH v23 32/32] ASoC: doc: Add documentation for SOC USB
Date: Wed, 12 Jun 2024 16:47:34 +0200 [thread overview]
Message-ID: <5be51e1f-70c9-4bbc-96fa-1e50e441bd35@linux.intel.com> (raw)
In-Reply-To: <20240610235808.22173-33-quic_wcheng@quicinc.com>
On 6/11/2024 1:58 AM, Wesley Cheng wrote:
(...)
> +In the case where the USB offload driver is unbounded, while USB SND is
unbounded -> unbound
(...)
> +SOC USB and USB Sound Kcontrols
> +===============================
> +Details
> +-------
> +SOC USB and USB sound expose a set of SND kcontrols for applications to select
> +and fetch the current offloading status for the ASoC platform sound card. Kcontrols
> +are split between two layers:
> +
> + - USB sound - Notifies the sound card number for the ASoC platform sound
> + card that it is registered to for supporting audio offload.
> +
> + - SOC USB - Maintains the current status of the offload path, and device
> + (USB sound card and PCM device) information. This would be the main
> + card that applications can read to determine offloading capabilities.
> +
> +Implementation
> +--------------
> +
> +**Example:**
> +
> + **Sound Cards**:
> +
> + ::
> +
> + 0 [SM8250MTPWCD938]: sm8250 - SM8250-MTP-WCD9380-WSA8810-VA-D
> + SM8250-MTP-WCD9380-WSA8810-VA-DMIC
> + 1 [C320M ]: USB-Audio - Plantronics C320-M
> + Plantronics Plantronics C320-M at usb-xhci-hcd.1.auto-1, full speed
> +
> +
> + **Platform Sound Card** - card#0:
> +
> + ::
> +
> + USB Offload Playback Route Card Select 1 (range -1->32)
> + USB Offload Playback Route PCM Select 0 (range -1->255)
> + USB Offload Playback Route Card Status -1 (range -1->32)
> + USB Offload Playback Route PCM Status -1 (range -1->255)
> +
> +
> + **USB Sound Card** - card#1:
> +
> + ::
> +
> + USB Offload Playback Capable Card 0 (range -1->32)
> +
> +
> +The platform sound card(card#0) kcontrols are created as part of adding the SOC
> +USB device using **snd_soc_usb_add_port()**. The following kcontrols are defined
> +as:
> +
> + - ``USB Offload Playback Route Card Status`` **(R)**: USB sound card device index
> + that defines which USB SND resources are currently offloaded. If -1 is seen, it
> + signifies that offload is not active.
> + - ``USB Offload Playback Route PCM Status`` **(R)**: USB PCM device index
> + that defines which USB SND resources are currently offloaded. If -1 is seen, it
> + signifies that offload is not active.
> + - ``USB Offload Playback Route Card Select`` **(R/W)**: USB sound card index which
> + selects the USB device to initiate offloading on. If no value is written to the
> + kcontrol, then the last USB device discovered card index will be chosen.
I see only one kcontrol, what if hardware is capable of offloading on
more cards, is it possible to do offloading on more than one device?
> + - ``USB Offload Playback Route PCM Select`` **(R/W)**: USB PCM index which selects
> + the USB device to initiate offloading on. If no value is written to the
> + kcontrol, then the last USB device discovered PCM zero index will be chosen.
> +
> +The USB sound card(card#1) kcontrols are created as USB audio devices are plugged
> +into the physical USB port and enumerated. The kcontrols are defined as:
> +
> + - ``USB Offload Playback Capable Card`` **(R)**: Provides the sound card
> + number/index that supports USB offloading. Further/follow up queries about
> + the current offload state can be handled by reading the offload status
> + kcontrol exposed by the platform card.
> +
Why do we need to some magic between cards? I feel like whole kcontrol
thing is overengineered a bit - I'm not sure I understand the need to do
linking between cards. It would feel a lot simpler if USB card exposed
one "USB Offload" kcontrol on USB card if USB controller supports
offloading and allowed to set it to true/false to allow user to choose
if they want to do offloading on device.
(...)
> +Mixer Examples
> +--------------
> +
> + ::
> +
> + tinymix -D 0 set 'USB Offload Playback Route Card Select' 2
> + tinymix -D 0 set 'USB Offload Playback Route PCM Select' 0
> +
> +
> + ::
> +
> + tinymix -D 0 get 'USB Offload Playback Route Card Select'
> + --> 2 (range -1->32)
> + tinymix -D 0 get 'USB Offload Playback Route PCM Select'
> + --> 0 (range -1->255)
> +
> + ::
> +
> + tinymix -D 0 get 'USB Offload Playback Route Card Status'
> + --> 2 (range -1->32) [OFFLD active]
> + --> -1 (range -1->32) [OFFLD idle]
> + tinymix -D 0 get 'USB Offload Playback Route PCM Status'
> + --> 0 (range -1->255) [OFFLD active]
> + --> -1 (range -1->255) [OFFLD idle]
> +
> + ::
> +
> + tinymix -D 1 get 'USB Offload Playback Capable Card'
> + --> 0 (range -1->32)
>
Yes, looking at examples again, I'm still not sure I understand. There
are two cards and you do linking between them, this feels broken by
design. From my point of view USB Offload should be property of USB card
and not involve any other card in a system.
next prev parent reply other threads:[~2024-06-12 14:47 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 23:57 [PATCH v23 00/32] Introduce QC USB SND audio offloading support Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 01/32] ASoC: Add SOC USB APIs for adding an USB backend Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 02/32] ASoC: dt-bindings: qcom,q6dsp-lpass-ports: Add USB_RX port Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 03/32] ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 04/32] ASoC: qdsp6: q6afe: Increase APR timeout Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 05/32] ASoC: qcom: qdsp6: Add USB backend ASoC driver for Q6 Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 06/32] ALSA: usb-audio: Introduce USB SND platform op callbacks Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 07/32] ALSA: usb-audio: Export USB SND APIs for modules Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 08/32] ALSA: usb-audio: Save UAC sample size information Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 09/32] usb: dwc3: Specify maximum number of XHCI interrupters Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 10/32] usb: host: xhci-plat: Set XHCI max interrupters if property is present Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 11/32] ALSA: usb-audio: qcom: Add USB QMI definitions Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 12/32] ALSA: usb-audio: qcom: Introduce QC USB SND offloading support Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 13/32] ALSA: usb-audio: Check for support for requested audio format Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 14/32] ASoC: usb: Add PCM format check API for USB backend Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 15/32] ASoC: qcom: qdsp6: Ensure PCM format is supported by USB audio device Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 16/32] ALSA: usb-audio: Prevent starting of audio stream if in use Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 17/32] ALSA: usb-audio: Do not allow USB offload path if PCM device is " Wesley Cheng
2024-06-12 14:57 ` Amadeusz Sławiński
2024-06-10 23:57 ` [PATCH v23 18/32] ASoC: dt-bindings: Update example for enabling USB offload on SM8250 Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 19/32] ALSA: usb-audio: qcom: Populate PCM and USB chip information Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 20/32] ASoC: qcom: qdsp6: Add support to track available USB PCM devices Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 21/32] ASoC: Introduce SND kcontrols to select sound card and PCM device Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 22/32] ASoC: qcom: qdsp6: Add SOC USB offload select get/put callbacks Wesley Cheng
2024-06-10 23:57 ` [PATCH v23 23/32] ASoC: Introduce SND kcontrols to track USB offloading state Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 24/32] ASoC: qcom: qdsp6: Add PCM ops to track current state Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 25/32] ASoC: usb: Create SOC USB SND jack kcontrol Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 26/32] ASoC: qcom: qdsp6: Add headphone jack for offload connection status Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 27/32] ASoC: usb: Fetch ASoC sound card information Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 28/32] ALSA: usb-audio: Add USB offloading capable kcontrol Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 29/32] ALSA: usb-audio: Allow for rediscovery of connected USB SND devices Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 30/32] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 31/32] ASoC: usb: Rediscover USB SND devices on USB port add Wesley Cheng
2024-06-10 23:58 ` [PATCH v23 32/32] ASoC: doc: Add documentation for SOC USB Wesley Cheng
2024-06-12 12:25 ` Bagas Sanjaya
2024-06-12 19:30 ` Wesley Cheng
2024-06-12 14:47 ` Amadeusz Sławiński [this message]
2024-06-12 19:28 ` Wesley Cheng
2024-06-13 7:46 ` Amadeusz Sławiński
2024-06-17 17:02 ` Wesley Cheng
2024-06-18 11:42 ` Amadeusz Sławiński
2024-06-18 20:52 ` Wesley Cheng
2024-06-19 7:52 ` Amadeusz Sławiński
2024-06-20 22:04 ` Wesley Cheng
2024-06-21 8:27 ` Pierre-Louis Bossart
2024-06-28 0:59 ` Wesley Cheng
2024-07-02 8:30 ` Pierre-Louis Bossart
2024-07-02 23:34 ` Wesley Cheng
2024-07-03 8:49 ` Pierre-Louis Bossart
2024-07-03 9:13 ` Amadeusz Sławiński
2024-07-03 9:50 ` Pierre-Louis Bossart
2024-07-03 22:05 ` Wesley Cheng
2024-07-04 10:01 ` Amadeusz Sławiński
2024-07-04 11:25 ` Pierre-Louis Bossart
2024-07-08 23:16 ` Wesley Cheng
2024-07-26 19:52 ` Wesley Cheng
2024-06-12 14:50 ` [PATCH v23 00/32] Introduce QC USB SND audio offloading support Amadeusz Sławiński
2024-06-12 14:59 ` Pierre-Louis Bossart
2024-06-12 19:41 ` Wesley Cheng
2024-06-12 19:38 ` Wesley Cheng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5be51e1f-70c9-4bbc-96fa-1e50e441bd35@linux.intel.com \
--to=amadeuszx.slawinski@linux.intel.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=alsa-devel@alsa-project.org \
--cc=bgoswami@quicinc.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=perex@perex.cz \
--cc=quic_wcheng@quicinc.com \
--cc=robh@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).