[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46b8ab98-47aa-d639-be78-d6087555d04f@jusst.de>
Date: Fri, 26 May 2017 17:52:33 +0200
From: Julian Scheel <julian@...st.de>
To: Ruslan Bilovol <ruslan.bilovol@...il.com>,
Felipe Balbi <balbi@...nel.org>
Cc: Daniel Mack <zonque@...il.com>,
Jassi Brar <jassisinghbrar@...il.com>,
Clemens Ladisch <clemens@...isch.de>,
Jonathan Corbet <corbet@....net>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Peter Chen <hzpeterchen@...il.com>, linux-usb@...r.kernel.org,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 3/3] usb: gadget: add f_uac1 variant based on a new
u_audio api
On 18.05.2017 00:37, Ruslan Bilovol wrote:
> This patch adds a new function 'f_uac1_acard'
> (f_uac1 with virtual "ALSA card") that
> uses recently created u_audio API. Comparing
> to legacy f_uac1 function implementation it
> doesn't require any real Audio codec to be
> present on the device. In f_uac1_acard audio
> streams are simply sinked to and sourced
> from a virtual ALSA sound card created
> using u_audio API.
>
> Legacy f_uac1 approach is to write audio
> samples directly to existing ALSA sound
> card
>
> f_uac1_acard approach is more generic/flexible
> one - create an ALSA sound card that
> represents USB Audio function and allows to
> be used by userspace application that
> may choose to do whatever it wants with the
> data received from the USB Host and choose
> to provide whatever it wants as audio data
> to the USB Host.
>
> f_uac1_acard also has capture support (gadget->host)
> thanks to easy implementation via u_audio.
> By default, capture interface has 48000kHz/2ch
> configuration, same as playback channel has.
>
> f_uac1_acard descriptors naming convention
> uses f_uac2 driver naming convention that
> makes it more common and meaningful.
>
> Comparing to f_uac1, the f_uac1_acard doesn't
> have volume/mute functionality. This is because
> the f_uac1 volume/mute feature unit was dummy
> implementation since that driver creation (2009)
> and never had any real volume control or mute
> functionality, so there is no any difference
> here.
>
> Since f_uac1_acard functionality, exposed
> interface to userspace (virtual ALSA card),
> input parameters are so different comparing
> to legace f_uac1, that there is no any
> reason to keep them in the same file/module,
> and separate function was created.
>
> g_audio can be built using one of existing
> UAC functions (f_uac1, f_uac1_acard or f_uac2)
>
> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@...il.com>
> ---
> .../ABI/testing/configfs-usb-gadget-uac1_acard | 14 +
> Documentation/usb/gadget-testing.txt | 45 ++
> drivers/usb/gadget/Kconfig | 21 +
> drivers/usb/gadget/function/Makefile | 2 +
> drivers/usb/gadget/function/f_uac1_acard.c | 803 +++++++++++++++++++++
> drivers/usb/gadget/function/u_uac1_acard.h | 41 ++
> drivers/usb/gadget/legacy/Kconfig | 15 +-
> drivers/usb/gadget/legacy/audio.c | 53 ++
> 8 files changed, 992 insertions(+), 2 deletions(-)
> create mode 100644 Documentation/ABI/testing/configfs-usb-gadget-uac1_acard
> create mode 100644 drivers/usb/gadget/function/f_uac1_acard.c
> create mode 100644 drivers/usb/gadget/function/u_uac1_acard.h
>
Tested on iMX7D using chipidea usb gadget controller. Tested Windows 10
and Linux 4.11 as host. Both work fine.
Tested-by: Julian Scheel <julian@...st.de>
Powered by blists - more mailing lists