mbox series

[v7,0/9] ALSA: add virtio sound driver

Message ID 20210302164709.3142702-1-anton.yakovlev@opensynergy.com (mailing list archive)
Headers show
Series ALSA: add virtio sound driver | expand

Message

Anton Yakovlev March 2, 2021, 4:47 p.m. UTC
This series implements a driver part of the virtio sound device
specification v8 [1].

The driver supports PCM playback and capture substreams, jack and
channel map controls. A message-based transport is used to write/read
PCM frames to/from a device.

As a device part was used OpenSynergy proprietary implementation.

v7 changes:
 - Moved the snd_pcm_period_elapsed() call from the interrupt handler to the
   kernel worker for being consistent with the non-atomic mode of the PCM
   device.
 - Removed SNDRV_PCM_INFO_RESUME flag. Now ops->prepare() sets the parameters
   for the substream if it was previously suspended.
 - Some additional code readability improvements/comments.

[1] https://lists.oasis-open.org/archives/virtio-dev/202003/msg00185.html


Anton Yakovlev (9):
  uapi: virtio_ids: add a sound device type ID from OASIS spec
  ALSA: virtio: add virtio sound driver
  ALSA: virtio: handling control messages
  ALSA: virtio: build PCM devices and substream hardware descriptors
  ALSA: virtio: handling control and I/O messages for the PCM device
  ALSA: virtio: PCM substream operators
  ALSA: virtio: introduce jack support
  ALSA: virtio: introduce PCM channel map support
  ALSA: virtio: introduce device suspend/resume support

 MAINTAINERS                     |   9 +
 include/uapi/linux/virtio_ids.h |   1 +
 include/uapi/linux/virtio_snd.h | 334 +++++++++++++++++++++
 sound/Kconfig                   |   2 +
 sound/Makefile                  |   3 +-
 sound/virtio/Kconfig            |  10 +
 sound/virtio/Makefile           |  13 +
 sound/virtio/virtio_card.c      | 449 ++++++++++++++++++++++++++++
 sound/virtio/virtio_card.h      | 111 +++++++
 sound/virtio/virtio_chmap.c     | 219 ++++++++++++++
 sound/virtio/virtio_ctl_msg.c   | 310 +++++++++++++++++++
 sound/virtio/virtio_ctl_msg.h   |  78 +++++
 sound/virtio/virtio_jack.c      | 233 +++++++++++++++
 sound/virtio/virtio_pcm.c       | 513 ++++++++++++++++++++++++++++++++
 sound/virtio/virtio_pcm.h       | 124 ++++++++
 sound/virtio/virtio_pcm_msg.c   | 414 ++++++++++++++++++++++++++
 sound/virtio/virtio_pcm_ops.c   | 464 +++++++++++++++++++++++++++++
 17 files changed, 3286 insertions(+), 1 deletion(-)
 create mode 100644 include/uapi/linux/virtio_snd.h
 create mode 100644 sound/virtio/Kconfig
 create mode 100644 sound/virtio/Makefile
 create mode 100644 sound/virtio/virtio_card.c
 create mode 100644 sound/virtio/virtio_card.h
 create mode 100644 sound/virtio/virtio_chmap.c
 create mode 100644 sound/virtio/virtio_ctl_msg.c
 create mode 100644 sound/virtio/virtio_ctl_msg.h
 create mode 100644 sound/virtio/virtio_jack.c
 create mode 100644 sound/virtio/virtio_pcm.c
 create mode 100644 sound/virtio/virtio_pcm.h
 create mode 100644 sound/virtio/virtio_pcm_msg.c
 create mode 100644 sound/virtio/virtio_pcm_ops.c

Comments

Takashi Iwai March 7, 2021, 8:22 a.m. UTC | #1
On Tue, 02 Mar 2021 17:47:00 +0100,
Anton Yakovlev wrote:
> 
> This series implements a driver part of the virtio sound device
> specification v8 [1].
> 
> The driver supports PCM playback and capture substreams, jack and
> channel map controls. A message-based transport is used to write/read
> PCM frames to/from a device.
> 
> As a device part was used OpenSynergy proprietary implementation.
> 
> v7 changes:
>  - Moved the snd_pcm_period_elapsed() call from the interrupt handler to the
>    kernel worker for being consistent with the non-atomic mode of the PCM
>    device.
>  - Removed SNDRV_PCM_INFO_RESUME flag. Now ops->prepare() sets the parameters
>    for the substream if it was previously suspended.
>  - Some additional code readability improvements/comments.
> 
> [1] https://lists.oasis-open.org/archives/virtio-dev/202003/msg00185.html
> 
> 
> Anton Yakovlev (9):
>   uapi: virtio_ids: add a sound device type ID from OASIS spec
>   ALSA: virtio: add virtio sound driver
>   ALSA: virtio: handling control messages
>   ALSA: virtio: build PCM devices and substream hardware descriptors
>   ALSA: virtio: handling control and I/O messages for the PCM device
>   ALSA: virtio: PCM substream operators
>   ALSA: virtio: introduce jack support
>   ALSA: virtio: introduce PCM channel map support
>   ALSA: virtio: introduce device suspend/resume support

Now applied all patches to sound.git tree for-next branch.

I put those into a new immutable branch (based on 5.12-rc2),
topic/virtio, and tagged it as virtio_snd-5.12-rc2.

Michael, if you need to pull the stuff into your tree for further
changes, feel free to take from
 git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/virtio_snd-5.12-rc2


Thanks!

Takashi