ALSA: add virtio sound driver

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
 
 Link: https://lore.kernel.org/r/20210302164709.3142702-1-anton.yakovlev@opensynergy.com
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAmBEi8UOHHRpd2FpQHN1
 c2UuZGUACgkQLtJE4w1nLE9TPQ/+P2GPl+lTQKx1MWGcVWAAdECd8jVkwiNdzTB3
 jbO39a/4B1QlXo83uMwfN7r5Apk6b8iuEKww2YUEBmMG9BI/gOkWZWe+Dc/LWxaC
 MjeBxq0OsA9jvw8akJfDYZGfKeLcBDgfJYMiqbRE+k/bQc+ld68AUr748hsJ26ER
 aje+iF/Aja7WSYwhoMVtqsWkK4/nSGtSQyuWeXqBM6sFm89dpH6BrfTG4fHgIYz3
 n6qOtGYBHSxYL7tQTKvQIJJwCZM2Mk0oAOE/xrjO4dgXq2+TWNwhFHNzTLfzAibq
 izJ3EpWmpSs0uRjUhkblrkP6PxUCMOaSIFPM9VIa5ULqaddLwQWyo0l3oj75CVJK
 L/LgLFMWK+VacxxPiLIfTxicJhXAbLyuJ06gmqbpeHitG/iLMcDBZIHrvmj84EED
 v5Zecud3t1w7ze6ArO7y2FAZqW0mjIkzs/C3qvQlu7rHruytq17CiGso+RdwhMYb
 JISqmVvBmvEVQk7niQohehI6tINpVz/XpCUeDGDPWFYpw1VAWXsBTO7lVuX+aXbj
 s/xjGanAn4lnRCA0rLaQQzKElMAhraWmS73lOiCOrxTAAU7Nob/tuKerei6NgGkN
 9G9hnwh24G9d1WexY9Bs4Nhjv4qBYnfv64S39NzHlEcaML7d5lJk2gfZ9pFCpIKt
 lIDFOVs=
 =O9k3
 -----END PGP SIGNATURE-----

Merge tag 'tags/virtio_snd-5.12-rc2' into for-next

ALSA: add virtio sound driver

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

Link: https://lore.kernel.org/r/20210302164709.3142702-1-anton.yakovlev@opensynergy.com
This commit is contained in:
Takashi Iwai 2021-03-07 09:16:24 +01:00
commit 59117306e0
176 changed files with 6340 additions and 1874 deletions

Some files were not shown because too many files have changed in this diff Show more