diff options
author | Anton Yakovlev <anton.yakovlev@opensynergy.com> | 2021-03-02 17:47:05 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2021-03-07 09:07:44 +0100 |
commit | f40a28679e0b7cb3a9cc6627a8dbb40961990f0a (patch) | |
tree | f3666982bba98fc53612b03b559b80206d6bd7c9 /sound/virtio/virtio_card.h | |
parent | 29b96bf50ba958eb5f097cdc3fbd4c1acf9547a2 (diff) | |
download | lwn-f40a28679e0b7cb3a9cc6627a8dbb40961990f0a.tar.gz lwn-f40a28679e0b7cb3a9cc6627a8dbb40961990f0a.zip |
ALSA: virtio: handling control and I/O messages for the PCM device
The driver implements a message-based transport for I/O substream
operations. Before the start of the substream, the hardware buffer is
sliced into I/O messages, the number of which is equal to the current
number of periods. The size of each message is equal to the current
size of one period.
I/O messages are organized in an ordered queue. The completion of the
I/O message indicates an elapsed period (the only exception is the end
of the stream for the capture substream). Upon completion, the message
is automatically re-added to the end of the queue.
Signed-off-by: Anton Yakovlev <anton.yakovlev@opensynergy.com>
Link: https://lore.kernel.org/r/20210302164709.3142702-6-anton.yakovlev@opensynergy.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/virtio/virtio_card.h')
-rw-r--r-- | sound/virtio/virtio_card.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/virtio/virtio_card.h b/sound/virtio/virtio_card.h index 77a1b7255370..c43f9744d362 100644 --- a/sound/virtio/virtio_card.h +++ b/sound/virtio/virtio_card.h @@ -79,4 +79,13 @@ virtsnd_rx_queue(struct virtio_snd *snd) return &snd->queues[VIRTIO_SND_VQ_RX]; } +static inline struct virtio_snd_queue * +virtsnd_pcm_queue(struct virtio_pcm_substream *vss) +{ + if (vss->direction == SNDRV_PCM_STREAM_PLAYBACK) + return virtsnd_tx_queue(vss->snd); + else + return virtsnd_rx_queue(vss->snd); +} + #endif /* VIRTIO_SND_CARD_H */ |