~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/sound/cards/pcmtest.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/sound/cards/pcmtest.rst (Version linux-6.12-rc7) and /Documentation/sound/cards/pcmtest.rst (Version policy-sample)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 The Virtual PCM Test Driver                       
  4 ===========================                       
  5                                                   
  6 The Virtual PCM Test Driver emulates a generic    
  7 testing/fuzzing of the userspace ALSA applicat    
  8 the PCM middle layer. Additionally, it can be     
  9 problems with PCM devices.                        
 10                                                   
 11 What can this driver do?                          
 12 ~~~~~~~~~~~~~~~~~~~~~~~~                          
 13                                                   
 14 At this moment the driver can do the following    
 15         * Simulate both capture and playback p    
 16         * Generate random or pattern-based cap    
 17         * Inject delays into the playback and     
 18         * Inject errors during the PCM callbac    
 19                                                   
 20 It supports up to 8 substreams and 4 channels.    
 21 non-interleaved access modes.                     
 22                                                   
 23 Also, this driver can check the playback strea    
 24 which is used in the corresponding selftest (a    
 25 layer data transferring functionality. Additio    
 26 RESET ioctl, and the selftest covers this PCM     
 27                                                   
 28 Configuration                                     
 29 -------------                                     
 30                                                   
 31 The driver has several parameters besides the     
 32                                                   
 33         * fill_mode (bool) - Buffer fill mode     
 34         * inject_delay (int)                      
 35         * inject_hwpars_err (bool)                
 36         * inject_prepare_err (bool)               
 37         * inject_trigger_err (bool)               
 38                                                   
 39                                                   
 40 Capture Data Generation                           
 41 -----------------------                           
 42                                                   
 43 The driver has two modes of data generation: t    
 44 means random data generation, the second (1 in    
 45 data generation. Let's look at the second mode    
 46                                                   
 47 First of all, you may want to specify the patt    
 48 by writing the pattern to the debugfs file. Th    
 49 for each channel, as well as entries which con    
 50                                                   
 51         * /sys/kernel/debug/pcmtest/fill_patte    
 52         * /sys/kernel/debug/pcmtest/fill_patte    
 53                                                   
 54 To set the pattern for the channel 0 you can e    
 55                                                   
 56 .. code-block:: bash                              
 57                                                   
 58         echo -n mycoolpattern > /sys/kernel/de    
 59                                                   
 60 Then, after every capture action performed on     
 61 channel 0 will contain 'mycoolpatternmycoolpat    
 62                                                   
 63 The pattern itself can be up to 4096 bytes lon    
 64                                                   
 65 Delay injection                                   
 66 ---------------                                   
 67                                                   
 68 The driver has 'inject_delay' parameter, which    
 69 can be used for time delay/speedup simulations    
 70 it means the delay added between module's inte    
 71                                                   
 72 If the 'inject_delay' value is positive, the b    
 73 negative - faster. You can try it yourself by     
 74 audiorecording application (like Audacity) and    
 75 source.                                           
 76                                                   
 77 This parameter can be also used for generating    
 78 short period of time (with the negative 'injec    
 79                                                   
 80 Errors injection                                  
 81 ----------------                                  
 82                                                   
 83 This module can be used for injecting errors i    
 84 action can help you to figure out how the user    
 85 circumstances.                                    
 86                                                   
 87 For example, you can make all 'hw_params' PCM     
 88 writing '1' to the 'inject_hwpars_err' module     
 89                                                   
 90 .. code-block:: bash                              
 91                                                   
 92         echo 1 > /sys/module/snd_pcmtest/param    
 93                                                   
 94 Errors can be injected into the following PCM     
 95                                                   
 96         * hw_params (EBUSY)                       
 97         * prepare (EINVAL)                        
 98         * trigger (EINVAL)                        
 99                                                   
100 Playback test                                     
101 -------------                                     
102                                                   
103 This driver can be also used for the playback     
104 write the playback data to the 'pcmtest' PCM d    
105 buffer for containing the looped pattern (whic    
106 debugfs file for each channel). If the playbac    
107 pattern, 'pc_test' debugfs entry is set into '    
108                                                   
109 ioctl redefinition test                           
110 -----------------------                           
111                                                   
112 The driver redefines the 'reset' ioctl, which     
113 this functionality, we can trigger the reset i    
114 entry:                                            
115                                                   
116 .. code-block:: bash                              
117                                                   
118         cat /sys/kernel/debug/pcmtest/ioctl_te    
119                                                   
120 If the ioctl is triggered successfully, this f    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php