linux-stable/Documentation/sound/cards
Ivan Orlov f091ec768c docs: sound: add 'pcmtest' driver documentation
Add documentation for the new Virtual PCM Test Driver. It covers all
possible usage cases: errors and delay injections, random and
pattern-based data generation, playback and ioctl redefinition
functionalities testing.

We have a lot of different virtual media drivers, which can be used for
testing of the userspace applications and media subsystem middle layer.
However, all of them are aimed at testing the video functionality and
simulating the video devices. For audio devices we have only snd-dummy
module, which is good in simulating the correct behavior of an ALSA device.
I decided to write a tool, which would help to test the userspace ALSA
programs (and the PCM middle layer as well) under unusual circumstances
to figure out how they would behave. So I came up with this Virtual PCM
Test Driver.

This new Virtual PCM Test Driver has several features which can be useful
during the userspace ALSA applications testing/fuzzing, or testing/fuzzing
of the PCM middle layer. Not all of them can be implemented using the
existing virtual drivers (like dummy or loopback). Here is what can this
driver do:

- Simulate both capture and playback processes
- Check the playback stream for containing the looped pattern
- Generate random or pattern-based capture data
- Inject delays into the playback and capturing processes
- Inject errors during the PCM callbacks

Also, this driver can check the playback stream for containing the
predefined pattern, which is used in the corresponding selftest to check
the PCM middle layer data transferring functionality. Additionally, this
driver redefines the default RESET ioctl, and the selftest covers this PCM
API functionality as well.

The driver supports both interleaved and non-interleaved access modes, and
have separate pattern buffers for each channel. The driver supports up to
4 channels and up to 8 substreams.

Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
Acked-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230606193254.20791-1-ivan.orlov0322@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-07 13:08:35 +02:00
..
audigy-mixer.rst ALSA: emu10k1: straighten out FX send init 2023-05-17 17:04:31 +02:00
audiophile-usb.rst ALSA: doc: ReSTize Audiophile-USB.txt 2016-11-10 22:33:24 +01:00
bt87x.rst ALSA: doc: ReSTize Bt87x.txt 2016-11-10 22:33:26 +01:00
cmipci.rst
emu10k1-jack.rst ALSA: doc: ReSTize emu10k1-jack.txt 2016-11-10 22:33:22 +01:00
hdspm.rst ALSA: doc: ReSTize hdspm.txt 2016-11-10 22:33:28 +01:00
img-spdif-in.rst ALSA: doc: ReSTize img,spdif-in.txt 2016-11-10 22:33:31 +01:00
index.rst docs: sound: add 'pcmtest' driver documentation 2023-06-07 13:08:35 +02:00
joystick.rst Documentation: fix input related doc refs 2017-10-12 11:14:06 -06:00
maya44.rst Documentation: sound: correct spelling 2023-01-29 09:23:45 +01:00
mixart.rst ALSA: doc: ReSTize MIXART.txt 2016-11-10 22:33:25 +01:00
multisound.sh ALSA: multisound.sh: update module namespace 2018-06-26 17:45:16 +02:00
pcmtest.rst docs: sound: add 'pcmtest' driver documentation 2023-06-07 13:08:35 +02:00
sb-live-mixer.rst ALSA: emu10k1: enable bit-exact playback, part 2: voice attenuation 2023-05-16 11:11:04 +02:00
serial-u16550.rst ALSA: doc: ReSTize serial-u16550.txt 2016-11-10 22:33:29 +01:00
via82xx-mixer.rst ALSA: doc: ReSTize VIA82xx-mixer.txt 2016-11-10 22:33:23 +01:00