[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <dbb1f64b-8112-4a2f-9138-616e04bdc53c@linux.intel.com>
Date: Tue, 17 Oct 2023 17:33:25 -0500
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Wesley Cheng <quic_wcheng@...cinc.com>, mathias.nyman@...el.com,
gregkh@...uxfoundation.org, lgirdwood@...il.com,
broonie@...nel.org, perex@...ex.cz, tiwai@...e.com,
agross@...nel.org, andersson@...nel.org, konrad.dybcio@...aro.org,
robh+dt@...nel.org, krzysztof.kozlowski+dt@...aro.org,
conor+dt@...nel.org, srinivas.kandagatla@...aro.org,
bgoswami@...cinc.com, Thinh.Nguyen@...opsys.com
Cc: linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
alsa-devel@...a-project.org, linux-arm-msm@...r.kernel.org,
devicetree@...r.kernel.org
Subject: Re: [PATCH v9 21/34] ASoC: usb: Add PCM format check API for USB
backend
On 10/17/23 15:00, Wesley Cheng wrote:
> Introduce a check for if a particular PCM format is supported by the USB
Introduce a helper to check if a ...
> audio device connected. If the USB audio device does not have an audio
> profile which can support the requested format, then notify the USB
> backend.
>
> Signed-off-by: Wesley Cheng <quic_wcheng@...cinc.com>
> ---
> include/sound/soc-usb.h | 3 +++
> sound/soc/soc-usb.c | 13 +++++++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/include/sound/soc-usb.h b/include/sound/soc-usb.h
> index 58c686f4f7ba..c6ddc055c4cd 100644
> --- a/include/sound/soc-usb.h
> +++ b/include/sound/soc-usb.h
> @@ -37,6 +37,9 @@ struct snd_soc_usb {
> void *priv_data;
> };
>
> +int snd_soc_usb_find_format(int card_idx, struct snd_pcm_hw_params *params,
> + int direction);
> +
> int snd_soc_usb_connect(struct device *usbdev, struct snd_soc_usb_device *sdev);
> int snd_soc_usb_disconnect(struct device *usbdev, struct snd_soc_usb_device *sdev);
> void *snd_soc_usb_find_priv_data(struct device *usbdev);
> diff --git a/sound/soc/soc-usb.c b/sound/soc/soc-usb.c
> index 73b1bcc3b506..7407678a993e 100644
> --- a/sound/soc/soc-usb.c
> +++ b/sound/soc/soc-usb.c
> @@ -63,6 +63,19 @@ void *snd_soc_usb_find_priv_data(struct device *dev)
> }
> EXPORT_SYMBOL_GPL(snd_soc_usb_find_priv_data);
>
> +int snd_soc_usb_find_format(int card_idx, struct snd_pcm_hw_params *params,
> + int direction)
> +{
> + struct snd_usb_stream *as;
> +
> + as = snd_usb_find_suppported_substream(card_idx, params, direction);
> + if (!as)
> + return -EOPNOTSUPP;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(snd_soc_usb_find_format);
Is this the right way to check for formats?
formats are defined within the scope of an endpoint, and those endpoints
are themselves defined within the scope of an interface?
I don't see a notion of endpoint here. Does this assume all endpoints
are valid, or maybe the existence of a single endpoint in a device?
Confused.
Powered by blists - more mailing lists