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.
The series is based (and was actually tested) on Linus's master branch [2], on top of
commit 1e2a199f6ccd ("Merge tag 'spi-fix-v5.11-rc4' of ...")
As a device part was used OpenSynergy proprietary implementation.
Any comments are very welcome.
[1] https://lists.oasis-open.org/archives/virtio-dev/202003/msg00185.html [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Anton Yakovlev (7): uapi: virtio_ids: add a sound device type ID from OASIS spec uapi: virtio_snd: add the sound device header file ALSA: virtio: add virtio sound driver 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 device suspend/resume support
MAINTAINERS | 8 + include/uapi/linux/virtio_ids.h | 1 + include/uapi/linux/virtio_snd.h | 361 +++++++++++++++++++ sound/Kconfig | 2 + sound/Makefile | 3 +- sound/virtio/Kconfig | 10 + sound/virtio/Makefile | 13 + sound/virtio/virtio_card.c | 593 ++++++++++++++++++++++++++++++++ sound/virtio/virtio_card.h | 121 +++++++ sound/virtio/virtio_chmap.c | 237 +++++++++++++ sound/virtio/virtio_ctl_msg.c | 293 ++++++++++++++++ sound/virtio/virtio_ctl_msg.h | 122 +++++++ sound/virtio/virtio_jack.c | 255 ++++++++++++++ sound/virtio/virtio_pcm.c | 582 +++++++++++++++++++++++++++++++ sound/virtio/virtio_pcm.h | 132 +++++++ sound/virtio/virtio_pcm_msg.c | 317 +++++++++++++++++ sound/virtio/virtio_pcm_ops.c | 524 ++++++++++++++++++++++++++++ 17 files changed, 3573 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