xref: /OK3568_Linux_fs/kernel/Documentation/sound/alsa-configuration.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1==============================================================
2Advanced Linux Sound Architecture - Driver Configuration guide
3==============================================================
4
5
6Kernel Configuration
7====================
8
9To enable ALSA support you need at least to build the kernel with
10primary sound card support (``CONFIG_SOUND``).  Since ALSA can emulate
11OSS, you don't have to choose any of the OSS modules.
12
13Enable "OSS API emulation" (``CONFIG_SND_OSSEMUL``) and both OSS mixer
14and PCM supports if you want to run OSS applications with ALSA.
15
16If you want to support the WaveTable functionality on cards such as
17SB Live! then you need to enable "Sequencer support"
18(``CONFIG_SND_SEQUENCER``).
19
20To make ALSA debug messages more verbose, enable the "Verbose printk"
21and "Debug" options.  To check for memory leaks, turn on "Debug memory"
22too.  "Debug detection" will add checks for the detection of cards.
23
24Please note that all the ALSA ISA drivers support the Linux isapnp API
25(if the card supports ISA PnP).  You don't need to configure the cards
26using isapnptools.
27
28
29Module parameters
30=================
31
32The user can load modules with options. If the module supports more than
33one card and you have more than one card of the same type then you can
34specify multiple values for the option separated by commas.
35
36
37Module snd
38----------
39
40The core ALSA module.  It is used by all ALSA card drivers.
41It takes the following options which have global effects.
42
43major
44    major number for sound driver;
45    Default: 116
46cards_limit
47    limiting card index for auto-loading (1-8);
48    Default: 1;
49    For auto-loading more than one card, specify this option
50    together with snd-card-X aliases.
51slots
52    Reserve the slot index for the given driver;
53    This option takes multiple strings.
54    See `Module Autoloading Support`_ section for details.
55debug
56    Specifies the debug message level;
57    (0 = disable debug prints, 1 = normal debug messages,
58    2 = verbose debug messages);
59    This option appears only when ``CONFIG_SND_DEBUG=y``.
60    This option can be dynamically changed via sysfs
61    /sys/modules/snd/parameters/debug file.
62
63Module snd-pcm-oss
64------------------
65
66The PCM OSS emulation module.
67This module takes options which change the mapping of devices.
68
69dsp_map
70    PCM device number maps assigned to the 1st OSS device;
71    Default: 0
72adsp_map
73    PCM device number maps assigned to the 2st OSS device;
74    Default: 1
75nonblock_open
76    Don't block opening busy PCM devices;
77    Default: 1
78
79For example, when ``dsp_map=2``, /dev/dsp will be mapped to PCM #2 of
80the card #0.  Similarly, when ``adsp_map=0``, /dev/adsp will be mapped
81to PCM #0 of the card #0.
82For changing the second or later card, specify the option with
83commas, such like ``dsp_map=0,1``.
84
85``nonblock_open`` option is used to change the behavior of the PCM
86regarding opening the device.  When this option is non-zero,
87opening a busy OSS PCM device won't be blocked but return
88immediately with EAGAIN (just like O_NONBLOCK flag).
89
90Module snd-rawmidi
91------------------
92
93This module takes options which change the mapping of devices.
94similar to those of the snd-pcm-oss module.
95
96midi_map
97    MIDI device number maps assigned to the 1st OSS device;
98    Default: 0
99amidi_map
100    MIDI device number maps assigned to the 2st OSS device;
101    Default: 1
102
103Module snd-soc-core
104-------------------
105
106The soc core module. It is used by all ALSA card drivers.
107It takes the following options which have global effects.
108
109prealloc_buffer_size_kbytes
110    Specify prealloc buffer size in kbytes (default: 512).
111
112Common parameters for top sound card modules
113--------------------------------------------
114
115Each of top level sound card module takes the following options.
116
117index
118    index (slot #) of sound card;
119    Values: 0 through 31 or negative;
120    If nonnegative, assign that index number;
121    if negative, interpret as a bitmask of permissible indices;
122    the first free permitted index is assigned;
123    Default: -1
124id
125    card ID (identifier or name);
126    Can be up to 15 characters long;
127    Default: the card type;
128    A directory by this name is created under /proc/asound/
129    containing information about the card;
130    This ID can be used instead of the index number in
131    identifying the card
132enable
133    enable card;
134    Default: enabled, for PCI and ISA PnP cards
135
136Module snd-adlib
137----------------
138
139Module for AdLib FM cards.
140
141port
142    port # for OPL chip
143
144This module supports multiple cards. It does not support autoprobe, so
145the port must be specified. For actual AdLib FM cards it will be 0x388.
146Note that this card does not have PCM support and no mixer; only FM
147synthesis.
148
149Make sure you have ``sbiload`` from the alsa-tools package available and,
150after loading the module, find out the assigned ALSA sequencer port
151number through ``sbiload -l``.
152
153Example output:
154::
155
156      Port     Client name                       Port name
157      64:0     OPL2 FM synth                     OPL2 FM Port
158
159Load the ``std.sb`` and ``drums.sb`` patches also supplied by ``sbiload``:
160::
161
162      sbiload -p 64:0 std.sb drums.sb
163
164If you use this driver to drive an OPL3, you can use ``std.o3`` and ``drums.o3``
165instead. To have the card produce sound, use ``aplaymidi`` from alsa-utils:
166::
167
168      aplaymidi -p 64:0 foo.mid
169
170Module snd-ad1816a
171------------------
172
173Module for sound cards based on Analog Devices AD1816A/AD1815 ISA chips.
174
175clockfreq
176    Clock frequency for AD1816A chip (default = 0, 33000Hz)
177
178This module supports multiple cards, autoprobe and PnP.
179
180Module snd-ad1848
181-----------------
182
183Module for sound cards based on AD1848/AD1847/CS4248 ISA chips.
184
185port
186    port # for AD1848 chip
187irq
188    IRQ # for AD1848  chip
189dma1
190    DMA # for AD1848 chip (0,1,3)
191
192This module supports multiple cards.  It does not support autoprobe
193thus main port must be specified!!! Other ports are optional.
194
195The power-management is supported.
196
197Module snd-ad1889
198-----------------
199
200Module for Analog Devices AD1889 chips.
201
202ac97_quirk
203    AC'97 workaround for strange hardware;
204    See the description of intel8x0 module for details.
205
206This module supports multiple cards.
207
208Module snd-ali5451
209------------------
210
211Module for ALi M5451 PCI chip.
212
213pcm_channels
214    Number of hardware channels assigned for PCM
215spdif
216    Support SPDIF I/O;
217    Default: disabled
218
219This module supports one chip and autoprobe.
220
221The power-management is supported.
222
223Module snd-als100
224-----------------
225
226Module for sound cards based on Avance Logic ALS100/ALS120 ISA chips.
227
228This module supports multiple cards, autoprobe and PnP.
229
230The power-management is supported.
231
232Module snd-als300
233-----------------
234
235Module for Avance Logic ALS300 and ALS300+
236
237This module supports multiple cards.
238
239The power-management is supported.
240
241Module snd-als4000
242------------------
243
244Module for sound cards based on Avance Logic ALS4000 PCI chip.
245
246joystick_port
247    port # for legacy joystick support;
248    0 = disabled (default), 1 = auto-detect
249
250This module supports multiple cards, autoprobe and PnP.
251
252The power-management is supported.
253
254Module snd-asihpi
255-----------------
256
257Module for AudioScience ASI soundcards
258
259enable_hpi_hwdep
260    enable HPI hwdep for AudioScience soundcard
261
262This module supports multiple cards.
263The driver requires the firmware loader support on kernel.
264
265Module snd-atiixp
266-----------------
267
268Module for ATI IXP 150/200/250/400 AC97 controllers.
269
270ac97_clock
271    AC'97 clock (default = 48000)
272ac97_quirk
273    AC'97 workaround for strange hardware;
274    See `AC97 Quirk Option`_ section below.
275ac97_codec
276    Workaround to specify which AC'97 codec instead of probing.
277    If this works for you file a bug with your `lspci -vn` output.
278    (-2 = Force probing, -1 = Default behavior, 0-2 = Use the
279    specified codec.)
280spdif_aclink
281    S/PDIF transfer over AC-link (default = 1)
282
283This module supports one card and autoprobe.
284
285ATI IXP has two different methods to control SPDIF output.  One is
286over AC-link and another is over the "direct" SPDIF output.  The
287implementation depends on the motherboard, and you'll need to
288choose the correct one via spdif_aclink module option.
289
290The power-management is supported.
291
292Module snd-atiixp-modem
293-----------------------
294
295Module for ATI IXP 150/200/250 AC97 modem controllers.
296
297This module supports one card and autoprobe.
298
299Note: The default index value of this module is -2, i.e. the first
300slot is excluded.
301
302The power-management is supported.
303
304Module snd-au8810, snd-au8820, snd-au8830
305-----------------------------------------
306
307Module for Aureal Vortex, Vortex2 and Advantage device.
308
309pcifix
310    Control PCI workarounds;
311    0 = Disable all workarounds,
312    1 = Force the PCI latency of the Aureal card to 0xff,
313    2 = Force the Extend PCI#2 Internal Master for Efficient
314    Handling of Dummy Requests on the VIA KT133 AGP Bridge,
315    3 = Force both settings,
316    255 = Autodetect what is required (default)
317
318This module supports all ADB PCM channels, ac97 mixer, SPDIF, hardware
319EQ, mpu401, gameport. A3D and wavetable support are still in development.
320Development and reverse engineering work is being coordinated at
321https://savannah.nongnu.org/projects/openvortex/
322SPDIF output has a copy of the AC97 codec output, unless you use the
323``spdif`` pcm device, which allows raw data passthru.
324The hardware EQ hardware and SPDIF is only present in the Vortex2 and
325Advantage.
326
327Note: Some ALSA mixer applications don't handle the SPDIF sample rate
328control correctly. If you have problems regarding this, try
329another ALSA compliant mixer (alsamixer works).
330
331Module snd-azt1605
332------------------
333
334Module for Aztech Sound Galaxy soundcards based on the Aztech AZT1605
335chipset.
336
337port
338    port # for BASE (0x220,0x240,0x260,0x280)
339wss_port
340    port # for WSS (0x530,0x604,0xe80,0xf40)
341irq
342    IRQ # for WSS (7,9,10,11)
343dma1
344    DMA # for WSS playback (0,1,3)
345dma2
346    DMA # for WSS capture (0,1), -1 = disabled (default)
347mpu_port
348    port # for MPU-401 UART (0x300,0x330), -1 = disabled (default)
349mpu_irq
350    IRQ # for MPU-401 UART (3,5,7,9), -1 = disabled (default)
351fm_port
352    port # for OPL3 (0x388), -1 = disabled (default)
353
354This module supports multiple cards. It does not support autoprobe:
355``port``, ``wss_port``, ``irq`` and ``dma1`` have to be specified.
356The other values are optional.
357
358``port`` needs to match the BASE ADDRESS jumper on the card (0x220 or 0x240)
359or the value stored in the card's EEPROM for cards that have an EEPROM and
360their "CONFIG MODE" jumper set to "EEPROM SETTING". The other values can
361be chosen freely from the options enumerated above.
362
363If ``dma2`` is specified and different from ``dma1``, the card will operate in
364full-duplex mode. When ``dma1=3``, only ``dma2=0`` is valid and the only way to
365enable capture since only channels 0 and 1 are available for capture.
366
367Generic settings are ``port=0x220 wss_port=0x530 irq=10 dma1=1 dma2=0
368mpu_port=0x330 mpu_irq=9 fm_port=0x388``.
369
370Whatever IRQ and DMA channels you pick, be sure to reserve them for
371legacy ISA in your BIOS.
372
373Module snd-azt2316
374------------------
375
376Module for Aztech Sound Galaxy soundcards based on the Aztech AZT2316
377chipset.
378
379port
380    port # for BASE (0x220,0x240,0x260,0x280)
381wss_port
382    port # for WSS (0x530,0x604,0xe80,0xf40)
383irq
384    IRQ # for WSS (7,9,10,11)
385dma1
386    DMA # for WSS playback (0,1,3)
387dma2
388    DMA # for WSS capture (0,1), -1 = disabled (default)
389mpu_port
390    port # for MPU-401 UART (0x300,0x330), -1 = disabled (default)
391mpu_irq
392    IRQ # for MPU-401 UART (5,7,9,10), -1 = disabled (default)
393fm_port
394    port # for OPL3 (0x388), -1 = disabled (default)
395
396This module supports multiple cards. It does not support autoprobe:
397``port``, ``wss_port``, ``irq`` and ``dma1`` have to be specified.
398The other values are optional.
399
400``port`` needs to match the BASE ADDRESS jumper on the card (0x220 or 0x240)
401or the value stored in the card's EEPROM for cards that have an EEPROM and
402their "CONFIG MODE" jumper set to "EEPROM SETTING". The other values can
403be chosen freely from the options enumerated above.
404
405If ``dma2`` is specified and different from ``dma1``, the card will operate in
406full-duplex mode. When ``dma1=3``, only ``dma2=0`` is valid and the only way to
407enable capture since only channels 0 and 1 are available for capture.
408
409Generic settings are ``port=0x220 wss_port=0x530 irq=10 dma1=1 dma2=0
410mpu_port=0x330 mpu_irq=9 fm_port=0x388``.
411
412Whatever IRQ and DMA channels you pick, be sure to reserve them for
413legacy ISA in your BIOS.
414
415Module snd-aw2
416--------------
417
418Module for Audiowerk2 sound card
419
420This module supports multiple cards.
421
422Module snd-azt2320
423------------------
424
425Module for sound cards based on Aztech System AZT2320 ISA chip (PnP only).
426
427This module supports multiple cards, PnP and autoprobe.
428
429The power-management is supported.
430
431Module snd-azt3328
432------------------
433
434Module for sound cards based on Aztech AZF3328 PCI chip.
435
436joystick
437    Enable joystick (default off)
438
439This module supports multiple cards.
440
441Module snd-bt87x
442----------------
443
444Module for video cards based on Bt87x chips.
445
446digital_rate
447    Override the default digital rate (Hz)
448load_all
449    Load the driver even if the card model isn't known
450
451This module supports multiple cards.
452
453Note: The default index value of this module is -2, i.e. the first
454slot is excluded.
455
456Module snd-ca0106
457-----------------
458
459Module for Creative Audigy LS and SB Live 24bit
460
461This module supports multiple cards.
462
463
464Module snd-cmi8330
465------------------
466
467Module for sound cards based on C-Media CMI8330 ISA chips.
468
469isapnp
470    ISA PnP detection - 0 = disable, 1 = enable (default)
471
472with ``isapnp=0``, the following options are available:
473
474wssport
475    port # for CMI8330 chip (WSS)
476wssirq
477    IRQ # for CMI8330 chip (WSS)
478wssdma
479    first DMA # for CMI8330 chip (WSS)
480sbport
481    port # for CMI8330 chip (SB16)
482sbirq
483    IRQ # for CMI8330 chip (SB16)
484sbdma8
485    8bit DMA # for CMI8330 chip (SB16)
486sbdma16
487    16bit DMA # for CMI8330 chip (SB16)
488fmport
489    (optional) OPL3 I/O port
490mpuport
491    (optional) MPU401 I/O port
492mpuirq
493    (optional) MPU401 irq #
494
495This module supports multiple cards and autoprobe.
496
497The power-management is supported.
498
499Module snd-cmipci
500-----------------
501
502Module for C-Media CMI8338/8738/8768/8770 PCI sound cards.
503
504mpu_port
505    port address of MIDI interface (8338 only):
506    0x300,0x310,0x320,0x330 = legacy port,
507    1 = integrated PCI port (default on 8738),
508    0 = disable
509fm_port
510    port address of OPL-3 FM synthesizer (8x38 only):
511    0x388 = legacy port,
512    1 = integrated PCI port (default on 8738),
513    0 = disable
514soft_ac3
515    Software-conversion of raw SPDIF packets (model 033 only) (default = 1)
516joystick_port
517    Joystick port address (0 = disable, 1 = auto-detect)
518
519This module supports autoprobe and multiple cards.
520
521The power-management is supported.
522
523Module snd-cs4231
524-----------------
525
526Module for sound cards based on CS4231 ISA chips.
527
528port
529    port # for CS4231 chip
530mpu_port
531    port # for MPU-401 UART (optional), -1 = disable
532irq
533    IRQ # for CS4231 chip
534mpu_irq
535    IRQ # for MPU-401 UART
536dma1
537    first DMA # for CS4231 chip
538dma2
539    second DMA # for CS4231 chip
540
541This module supports multiple cards. This module does not support autoprobe
542thus main port must be specified!!! Other ports are optional.
543
544The power-management is supported.
545
546Module snd-cs4236
547-----------------
548
549Module for sound cards based on CS4232/CS4232A,
550CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 ISA chips.
551
552isapnp
553    ISA PnP detection - 0 = disable, 1 = enable (default)
554
555with ``isapnp=0``, the following options are available:
556
557port
558    port # for CS4236 chip (PnP setup - 0x534)
559cport
560    control port # for CS4236 chip (PnP setup - 0x120,0x210,0xf00)
561mpu_port
562    port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
563fm_port
564    FM port # for CS4236 chip (PnP setup - 0x388), -1 = disable
565irq
566    IRQ # for CS4236 chip (5,7,9,11,12,15)
567mpu_irq
568    IRQ # for MPU-401 UART (9,11,12,15)
569dma1
570    first DMA # for CS4236 chip (0,1,3)
571dma2
572    second DMA # for CS4236 chip (0,1,3), -1 = disable
573
574This module supports multiple cards. This module does not support autoprobe
575(if ISA PnP is not used) thus main port and control port must be
576specified!!! Other ports are optional.
577
578The power-management is supported.
579
580This module is aliased as snd-cs4232 since it provides the old
581snd-cs4232 functionality, too.
582
583Module snd-cs4281
584-----------------
585
586Module for Cirrus Logic CS4281 soundchip.
587
588dual_codec
589    Secondary codec ID (0 = disable, default)
590
591This module supports multiple cards.
592
593The power-management is supported.
594
595Module snd-cs46xx
596-----------------
597
598Module for PCI sound cards based on CS4610/CS4612/CS4614/CS4615/CS4622/
599CS4624/CS4630/CS4280 PCI chips.
600
601external_amp
602    Force to enable external amplifier.
603thinkpad
604    Force to enable Thinkpad's CLKRUN control.
605mmap_valid
606    Support OSS mmap mode (default = 0).
607
608This module supports multiple cards and autoprobe.
609Usually external amp and CLKRUN controls are detected automatically
610from PCI sub vendor/device ids.  If they don't work, give the options
611above explicitly.
612
613The power-management is supported.
614
615Module snd-cs5530
616-----------------
617
618Module for Cyrix/NatSemi Geode 5530 chip.
619
620Module snd-cs5535audio
621----------------------
622
623Module for multifunction CS5535 companion PCI device
624
625The power-management is supported.
626
627Module snd-ctxfi
628----------------
629
630Module for Creative Sound Blaster X-Fi boards (20k1 / 20k2 chips)
631
632* Creative Sound Blaster X-Fi Titanium Fatal1ty Champion Series
633* Creative Sound Blaster X-Fi Titanium Fatal1ty Professional Series
634* Creative Sound Blaster X-Fi Titanium Professional Audio
635* Creative Sound Blaster X-Fi Titanium
636* Creative Sound Blaster X-Fi Elite Pro
637* Creative Sound Blaster X-Fi Platinum
638* Creative Sound Blaster X-Fi Fatal1ty
639* Creative Sound Blaster X-Fi XtremeGamer
640* Creative Sound Blaster X-Fi XtremeMusic
641
642reference_rate
643    reference sample rate, 44100 or 48000 (default)
644multiple
645    multiple to ref. sample rate, 1 or 2 (default)
646subsystem
647    override the PCI SSID for probing;
648    the value consists of SSVID << 16 | SSDID.
649    The default is zero, which means no override.
650
651This module supports multiple cards.
652
653Module snd-darla20
654------------------
655
656Module for Echoaudio Darla20
657
658This module supports multiple cards.
659The driver requires the firmware loader support on kernel.
660
661Module snd-darla24
662------------------
663
664Module for Echoaudio Darla24
665
666This module supports multiple cards.
667The driver requires the firmware loader support on kernel.
668
669Module snd-dt019x
670-----------------
671
672Module for Diamond Technologies DT-019X / Avance Logic ALS-007 (PnP
673only)
674
675This module supports multiple cards.  This module is enabled only with
676ISA PnP support.
677
678The power-management is supported.
679
680Module snd-dummy
681----------------
682
683Module for the dummy sound card. This "card" doesn't do any output
684or input, but you may use this module for any application which
685requires a sound card (like RealPlayer).
686
687pcm_devs
688    Number of PCM devices assigned to each card (default = 1, up to 4)
689pcm_substreams
690    Number of PCM substreams assigned to each PCM (default = 8, up to 128)
691hrtimer
692    Use hrtimer (=1, default) or system timer (=0)
693fake_buffer
694    Fake buffer allocations (default = 1)
695
696When multiple PCM devices are created, snd-dummy gives different
697behavior to each PCM device:
698* 0 = interleaved with mmap support
699* 1 = non-interleaved with mmap support
700* 2 = interleaved without mmap
701* 3 = non-interleaved without mmap
702
703As default, snd-dummy drivers doesn't allocate the real buffers
704but either ignores read/write or mmap a single dummy page to all
705buffer pages, in order to save the resources.  If your apps need
706the read/ written buffer data to be consistent, pass fake_buffer=0
707option.
708
709The power-management is supported.
710
711Module snd-echo3g
712-----------------
713
714Module for Echoaudio 3G cards (Gina3G/Layla3G)
715
716This module supports multiple cards.
717The driver requires the firmware loader support on kernel.
718
719Module snd-emu10k1
720------------------
721
722Module for EMU10K1/EMU10k2 based PCI sound cards.
723
724* Sound Blaster Live!
725* Sound Blaster PCI 512
726* Emu APS (partially supported)
727* Sound Blaster Audigy
728
729extin
730    bitmap of available external inputs for FX8010 (see bellow)
731extout
732    bitmap of available external outputs for FX8010 (see bellow)
733seq_ports
734    allocated sequencer ports (4 by default)
735max_synth_voices
736    limit of voices used for wavetable (64 by default)
737max_buffer_size
738    specifies the maximum size of wavetable/pcm buffers given in MB
739    unit.  Default value is 128.
740enable_ir
741    enable IR
742
743This module supports multiple cards and autoprobe.
744
745Input & Output configurations 			[extin/extout]
746* Creative Card wo/Digital out			[0x0003/0x1f03]
747* Creative Card w/Digital out			[0x0003/0x1f0f]
748* Creative Card w/Digital CD in			[0x000f/0x1f0f]
749* Creative Card wo/Digital out + LiveDrive	[0x3fc3/0x1fc3]
750* Creative Card w/Digital out + LiveDrive	[0x3fc3/0x1fcf]
751* Creative Card w/Digital CD in + LiveDrive	[0x3fcf/0x1fcf]
752* Creative Card wo/Digital out + Digital I/O 2  [0x0fc3/0x1f0f]
753* Creative Card w/Digital out + Digital I/O 2	[0x0fc3/0x1f0f]
754* Creative Card w/Digital CD in + Digital I/O 2	[0x0fcf/0x1f0f]
755* Creative Card 5.1/w Digital out + LiveDrive	[0x3fc3/0x1fff]
756* Creative Card 5.1 (c) 2003			[0x3fc3/0x7cff]
757* Creative Card all ins and outs		[0x3fff/0x7fff]
758
759The power-management is supported.
760
761Module snd-emu10k1x
762-------------------
763
764Module for Creative Emu10k1X (SB Live Dell OEM version)
765
766This module supports multiple cards.
767
768Module snd-ens1370
769------------------
770
771Module for Ensoniq AudioPCI ES1370 PCI sound cards.
772
773* SoundBlaster PCI 64
774* SoundBlaster PCI 128
775
776joystick
777    Enable joystick (default off)
778
779This module supports multiple cards and autoprobe.
780
781The power-management is supported.
782
783Module snd-ens1371
784------------------
785
786Module for Ensoniq AudioPCI ES1371 PCI sound cards.
787
788* SoundBlaster PCI 64
789* SoundBlaster PCI 128
790* SoundBlaster Vibra PCI
791
792joystick_port
793    port # for joystick (0x200,0x208,0x210,0x218), 0 = disable
794    (default), 1 = auto-detect
795
796This module supports multiple cards and autoprobe.
797
798The power-management is supported.
799
800Module snd-es1688
801-----------------
802
803Module for ESS AudioDrive ES-1688 and ES-688 sound cards.
804
805isapnp
806    ISA PnP detection - 0 = disable, 1 = enable (default)
807mpu_port
808    port # for MPU-401 port (0x300,0x310,0x320,0x330), -1 = disable (default)
809mpu_irq
810    IRQ # for MPU-401 port (5,7,9,10)
811fm_port
812    port # for OPL3 (option; share the same port as default)
813
814with ``isapnp=0``, the following additional options are available:
815
816port
817    port # for ES-1688 chip (0x220,0x240,0x260)
818irq
819    IRQ # for ES-1688 chip (5,7,9,10)
820dma8
821    DMA # for ES-1688 chip (0,1,3)
822
823This module supports multiple cards and autoprobe (without MPU-401 port)
824and PnP with the ES968 chip.
825
826Module snd-es18xx
827-----------------
828
829Module for ESS AudioDrive ES-18xx sound cards.
830
831isapnp
832    ISA PnP detection - 0 = disable, 1 = enable (default)
833
834with ``isapnp=0``, the following options are available:
835
836port
837    port # for ES-18xx chip (0x220,0x240,0x260)
838mpu_port
839    port # for MPU-401 port (0x300,0x310,0x320,0x330), -1 = disable (default)
840fm_port
841    port # for FM (optional, not used)
842irq
843    IRQ # for ES-18xx chip (5,7,9,10)
844dma1
845    first DMA # for ES-18xx chip (0,1,3)
846dma2
847    first DMA # for ES-18xx chip (0,1,3)
848
849This module supports multiple cards, ISA PnP and autoprobe (without MPU-401
850port if native ISA PnP routines are not used).
851When ``dma2`` is equal with ``dma1``, the driver works as half-duplex.
852
853The power-management is supported.
854
855Module snd-es1938
856-----------------
857
858Module for sound cards based on ESS Solo-1 (ES1938,ES1946) chips.
859
860This module supports multiple cards and autoprobe.
861
862The power-management is supported.
863
864Module snd-es1968
865-----------------
866
867Module for sound cards based on ESS Maestro-1/2/2E (ES1968/ES1978) chips.
868
869total_bufsize
870    total buffer size in kB (1-4096kB)
871pcm_substreams_p
872    playback channels (1-8, default=2)
873pcm_substreams_c
874    capture channels (1-8, default=0)
875clock
876    clock (0 = auto-detection)
877use_pm
878    support the power-management (0 = off, 1 = on, 2 = auto (default))
879enable_mpu
880    enable MPU401 (0 = off, 1 = on, 2 = auto (default))
881joystick
882    enable joystick (default off)
883
884This module supports multiple cards and autoprobe.
885
886The power-management is supported.
887
888Module snd-fm801
889----------------
890
891Module for ForteMedia FM801 based PCI sound cards.
892
893tea575x_tuner
894    Enable TEA575x tuner;
895    1 = MediaForte 256-PCS,
896    2 = MediaForte 256-PCPR,
897    3 = MediaForte 64-PCR
898    High 16-bits are video (radio) device number + 1;
899    example: 0x10002 (MediaForte 256-PCPR, device 1)
900
901This module supports multiple cards and autoprobe.
902
903The power-management is supported.
904
905Module snd-gina20
906-----------------
907
908Module for Echoaudio Gina20
909
910This module supports multiple cards.
911The driver requires the firmware loader support on kernel.
912
913Module snd-gina24
914-----------------
915
916Module for Echoaudio Gina24
917
918This module supports multiple cards.
919The driver requires the firmware loader support on kernel.
920
921Module snd-gusclassic
922---------------------
923
924Module for Gravis UltraSound Classic sound card.
925
926port
927    port # for GF1 chip (0x220,0x230,0x240,0x250,0x260)
928irq
929    IRQ # for GF1 chip (3,5,9,11,12,15)
930dma1
931    DMA # for GF1 chip (1,3,5,6,7)
932dma2
933    DMA # for GF1 chip (1,3,5,6,7,-1=disable)
934joystick_dac
935    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
936voices
937    GF1 voices limit (14-32)
938pcm_voices
939    reserved PCM voices
940
941This module supports multiple cards and autoprobe.
942
943Module snd-gusextreme
944---------------------
945
946Module for Gravis UltraSound Extreme (Synergy ViperMax) sound card.
947
948port
949    port # for ES-1688 chip (0x220,0x230,0x240,0x250,0x260)
950gf1_port
951    port # for GF1 chip (0x210,0x220,0x230,0x240,0x250,0x260,0x270)
952mpu_port
953    port # for MPU-401 port (0x300,0x310,0x320,0x330), -1 = disable
954irq
955    IRQ # for ES-1688 chip (5,7,9,10)
956gf1_irq
957    IRQ # for GF1 chip (3,5,9,11,12,15)
958mpu_irq
959    IRQ # for MPU-401 port (5,7,9,10)
960dma8
961    DMA # for ES-1688 chip (0,1,3)
962dma1
963    DMA # for GF1 chip (1,3,5,6,7)
964joystick_dac
965    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
966voices
967    GF1 voices limit (14-32)
968pcm_voices
969    reserved PCM voices
970
971This module supports multiple cards and autoprobe (without MPU-401 port).
972
973Module snd-gusmax
974-----------------
975
976Module for Gravis UltraSound MAX sound card.
977
978port
979    port # for GF1 chip (0x220,0x230,0x240,0x250,0x260)
980irq
981    IRQ # for GF1 chip (3,5,9,11,12,15)
982dma1
983    DMA # for GF1 chip (1,3,5,6,7)
984dma2
985    DMA # for GF1 chip (1,3,5,6,7,-1=disable)
986joystick_dac
987    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
988voices
989    GF1 voices limit (14-32)
990pcm_voices
991    reserved PCM voices
992
993This module supports multiple cards and autoprobe.
994
995Module snd-hda-intel
996--------------------
997
998Module for Intel HD Audio (ICH6, ICH6M, ESB2, ICH7, ICH8, ICH9, ICH10,
999PCH, SCH), ATI SB450, SB600, R600, RS600, RS690, RS780, RV610, RV620,
1000RV630, RV635, RV670, RV770, VIA VT8251/VT8237A, SIS966, ULI M5461
1001
1002[Multiple options for each card instance]
1003
1004model
1005    force the model name
1006position_fix
1007    Fix DMA pointer;
1008    -1 = system default: choose appropriate one per controller hardware,
1009    0 = auto: falls back to LPIB when POSBUF doesn't work,
1010    1 = use LPIB,
1011    2 = POSBUF: use position buffer,
1012    3 = VIACOMBO: VIA-specific workaround for capture,
1013    4 = COMBO: use LPIB for playback, auto for capture stream
1014    5 = SKL+: apply the delay calculation available on recent Intel chips
1015    6 = FIFO: correct the position with the fixed FIFO size, for recent AMD chips
1016probe_mask
1017    Bitmask to probe codecs (default = -1, meaning all slots);
1018    When the bit 8 (0x100) is set, the lower 8 bits are used
1019    as the "fixed" codec slots; i.e. the driver probes the
1020    slots regardless what hardware reports back
1021probe_only
1022    Only probing and no codec initialization (default=off);
1023    Useful to check the initial codec status for debugging
1024bdl_pos_adj
1025    Specifies the DMA IRQ timing delay in samples.
1026    Passing -1 will make the driver to choose the appropriate
1027    value based on the controller chip.
1028patch
1029    Specifies the early "patch" files to modify the HD-audio setup
1030    before initializing the codecs.
1031    This option is available only when ``CONFIG_SND_HDA_PATCH_LOADER=y``
1032    is set.  See hd-audio/notes.rst for details.
1033beep_mode
1034    Selects the beep registration mode (0=off, 1=on);
1035    default value is set via ``CONFIG_SND_HDA_INPUT_BEEP_MODE`` kconfig.
1036
1037[Single (global) options]
1038
1039single_cmd
1040    Use single immediate commands to communicate with codecs
1041    (for debugging only)
1042enable_msi
1043    Enable Message Signaled Interrupt (MSI) (default = off)
1044power_save
1045    Automatic power-saving timeout (in second, 0 = disable)
1046power_save_controller
1047    Reset HD-audio controller in power-saving mode (default = on)
1048align_buffer_size
1049    Force rounding of buffer/period sizes to multiples of 128 bytes.
1050    This is more efficient in terms of memory access but isn't
1051    required by the HDA spec and prevents users from specifying
1052    exact period/buffer sizes. (default = on)
1053snoop
1054    Enable/disable snooping (default = on)
1055
1056This module supports multiple cards and autoprobe.
1057
1058See hd-audio/notes.rst for more details about HD-audio driver.
1059
1060Each codec may have a model table for different configurations.
1061If your machine isn't listed there, the default (usually minimal)
1062configuration is set up.  You can pass ``model=<name>`` option to
1063specify a certain model in such a case.  There are different
1064models depending on the codec chip.  The list of available models
1065is found in hd-audio/models.rst.
1066
1067The model name ``generic`` is treated as a special case.  When this
1068model is given, the driver uses the generic codec parser without
1069"codec-patch".  It's sometimes good for testing and debugging.
1070
1071If the default configuration doesn't work and one of the above
1072matches with your device, report it together with alsa-info.sh
1073output (with ``--no-upload`` option) to kernel bugzilla or alsa-devel
1074ML (see the section `Links and Addresses`_).
1075
1076``power_save`` and ``power_save_controller`` options are for power-saving
1077mode.  See powersave.rst for details.
1078
1079Note 2: If you get click noises on output, try the module option
1080``position_fix=1`` or ``2``.  ``position_fix=1`` will use the SD_LPIB
1081register value without FIFO size correction as the current
1082DMA pointer.  ``position_fix=2`` will make the driver to use
1083the position buffer instead of reading SD_LPIB register.
1084(Usually SD_LPIB register is more accurate than the
1085position buffer.)
1086
1087``position_fix=3`` is specific to VIA devices.  The position
1088of the capture stream is checked from both LPIB and POSBUF
1089values.  ``position_fix=4`` is a combination mode, using LPIB
1090for playback and POSBUF for capture.
1091
1092NB: If you get many ``azx_get_response timeout`` messages at
1093loading, it's likely a problem of interrupts (e.g. ACPI irq
1094routing).  Try to boot with options like ``pci=noacpi``.  Also, you
1095can try ``single_cmd=1`` module option.  This will switch the
1096communication method between HDA controller and codecs to the
1097single immediate commands instead of CORB/RIRB.  Basically, the
1098single command mode is provided only for BIOS, and you won't get
1099unsolicited events, too.  But, at least, this works independently
1100from the irq.  Remember this is a last resort, and should be
1101avoided as much as possible...
1102
1103MORE NOTES ON ``azx_get_response timeout`` PROBLEMS:
1104On some hardware, you may need to add a proper probe_mask option
1105to avoid the ``azx_get_response timeout`` problem above, instead.
1106This occurs when the access to non-existing or non-working codec slot
1107(likely a modem one) causes a stall of the communication via HD-audio
1108bus.  You can see which codec slots are probed by enabling
1109``CONFIG_SND_DEBUG_VERBOSE``, or simply from the file name of the codec
1110proc files.  Then limit the slots to probe by probe_mask option.
1111For example, ``probe_mask=1`` means to probe only the first slot, and
1112``probe_mask=4`` means only the third slot.
1113
1114The power-management is supported.
1115
1116Module snd-hdsp
1117---------------
1118
1119Module for RME Hammerfall DSP audio interface(s)
1120
1121This module supports multiple cards.
1122
1123Note: The firmware data can be automatically loaded via hotplug
1124when ``CONFIG_FW_LOADER`` is set.  Otherwise, you need to load
1125the firmware via hdsploader utility included in alsa-tools
1126package.
1127The firmware data is found in alsa-firmware package.
1128
1129Note: snd-page-alloc module does the job which snd-hammerfall-mem
1130module did formerly.  It will allocate the buffers in advance
1131when any HDSP cards are found.  To make the buffer
1132allocation sure, load snd-page-alloc module in the early
1133stage of boot sequence.  See `Early Buffer Allocation`_
1134section.
1135
1136Module snd-hdspm
1137----------------
1138
1139Module for RME HDSP MADI board.
1140
1141precise_ptr
1142    Enable precise pointer, or disable.
1143line_outs_monitor
1144    Send playback streams to analog outs by default.
1145enable_monitor
1146    Enable Analog Out on Channel 63/64 by default.
1147
1148See hdspm.rst for details.
1149
1150Module snd-ice1712
1151------------------
1152
1153Module for Envy24 (ICE1712) based PCI sound cards.
1154
1155* MidiMan M Audio Delta 1010
1156* MidiMan M Audio Delta 1010LT
1157* MidiMan M Audio Delta DiO 2496
1158* MidiMan M Audio Delta 66
1159* MidiMan M Audio Delta 44
1160* MidiMan M Audio Delta 410
1161* MidiMan M Audio Audiophile 2496
1162* TerraTec EWS 88MT
1163* TerraTec EWS 88D
1164* TerraTec EWX 24/96
1165* TerraTec DMX 6Fire
1166* TerraTec Phase 88
1167* Hoontech SoundTrack DSP 24
1168* Hoontech SoundTrack DSP 24 Value
1169* Hoontech SoundTrack DSP 24 Media 7.1
1170* Event Electronics, EZ8
1171* Digigram VX442
1172* Lionstracs, Mediastaton
1173* Terrasoniq TS 88
1174
1175model
1176    Use the given board model, one of the following:
1177    delta1010, dio2496, delta66, delta44, audiophile, delta410,
1178    delta1010lt, vx442, ewx2496, ews88mt, ews88mt_new, ews88d,
1179    dmx6fire, dsp24, dsp24_value, dsp24_71, ez8,
1180    phase88, mediastation
1181omni
1182    Omni I/O support for MidiMan M-Audio Delta44/66
1183cs8427_timeout
1184    reset timeout for the CS8427 chip (S/PDIF transceiver) in msec
1185    resolution, default value is 500 (0.5 sec)
1186
1187This module supports multiple cards and autoprobe.
1188Note: The consumer part is not used with all Envy24 based cards (for
1189example in the MidiMan Delta siree).
1190
1191Note: The supported board is detected by reading EEPROM or PCI
1192SSID (if EEPROM isn't available).  You can override the
1193model by passing ``model`` module option in case that the
1194driver isn't configured properly or you want to try another
1195type for testing.
1196
1197Module snd-ice1724
1198------------------
1199
1200Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards.
1201
1202* MidiMan M Audio Revolution 5.1
1203* MidiMan M Audio Revolution 7.1
1204* MidiMan M Audio Audiophile 192
1205* AMP Ltd AUDIO2000
1206* TerraTec Aureon 5.1 Sky
1207* TerraTec Aureon 7.1 Space
1208* TerraTec Aureon 7.1 Universe
1209* TerraTec Phase 22
1210* TerraTec Phase 28
1211* AudioTrak Prodigy 7.1
1212* AudioTrak Prodigy 7.1 LT
1213* AudioTrak Prodigy 7.1 XT
1214* AudioTrak Prodigy 7.1 HIFI
1215* AudioTrak Prodigy 7.1 HD2
1216* AudioTrak Prodigy 192
1217* Pontis MS300
1218* Albatron K8X800 Pro II
1219* Chaintech ZNF3-150
1220* Chaintech ZNF3-250
1221* Chaintech 9CJS
1222* Chaintech AV-710
1223* Shuttle SN25P
1224* Onkyo SE-90PCI
1225* Onkyo SE-200PCI
1226* ESI Juli@
1227* ESI Maya44
1228* Hercules Fortissimo IV
1229* EGO-SYS WaveTerminal 192M
1230
1231model
1232    Use the given board model, one of the following:
1233    revo51, revo71, amp2000, prodigy71, prodigy71lt,
1234    prodigy71xt, prodigy71hifi, prodigyhd2, prodigy192,
1235    juli, aureon51, aureon71, universe, ap192, k8x800,
1236    phase22, phase28, ms300, av710, se200pci, se90pci,
1237    fortissimo4, sn25p, WT192M, maya44
1238
1239This module supports multiple cards and autoprobe.
1240
1241Note: The supported board is detected by reading EEPROM or PCI
1242SSID (if EEPROM isn't available).  You can override the
1243model by passing ``model`` module option in case that the
1244driver isn't configured properly or you want to try another
1245type for testing.
1246
1247Module snd-indigo
1248-----------------
1249
1250Module for Echoaudio Indigo
1251
1252This module supports multiple cards.
1253The driver requires the firmware loader support on kernel.
1254
1255Module snd-indigodj
1256-------------------
1257
1258Module for Echoaudio Indigo DJ
1259
1260This module supports multiple cards.
1261The driver requires the firmware loader support on kernel.
1262
1263Module snd-indigoio
1264-------------------
1265
1266Module for Echoaudio Indigo IO
1267
1268This module supports multiple cards.
1269The driver requires the firmware loader support on kernel.
1270
1271Module snd-intel8x0
1272-------------------
1273
1274Module for AC'97 motherboards from Intel and compatibles.
1275
1276* Intel i810/810E, i815, i820, i830, i84x, MX440 ICH5, ICH6, ICH7,
1277  6300ESB, ESB2
1278* SiS 7012 (SiS 735)
1279* NVidia NForce, NForce2, NForce3, MCP04, CK804 CK8, CK8S, MCP501
1280* AMD AMD768, AMD8111
1281* ALi m5455
1282
1283ac97_clock
1284    AC'97 codec clock base (0 = auto-detect)
1285ac97_quirk
1286    AC'97 workaround for strange hardware;
1287    See `AC97 Quirk Option`_ section below.
1288buggy_irq
1289    Enable workaround for buggy interrupts on some motherboards
1290    (default yes on nForce chips, otherwise off)
1291buggy_semaphore
1292    Enable workaround for hardware with buggy semaphores (e.g. on some
1293    ASUS laptops) (default off)
1294spdif_aclink
1295    Use S/PDIF over AC-link instead of direct connection from the
1296    controller chip (0 = off, 1 = on, -1 = default)
1297
1298This module supports one chip and autoprobe.
1299
1300Note: the latest driver supports auto-detection of chip clock.
1301if you still encounter too fast playback, specify the clock
1302explicitly via the module option ``ac97_clock=41194``.
1303
1304Joystick/MIDI ports are not supported by this driver.  If your
1305motherboard has these devices, use the ns558 or snd-mpu401
1306modules, respectively.
1307
1308The power-management is supported.
1309
1310Module snd-intel8x0m
1311--------------------
1312
1313Module for Intel ICH (i8x0) chipset MC97 modems.
1314
1315* Intel i810/810E, i815, i820, i830, i84x, MX440 ICH5, ICH6, ICH7
1316* SiS 7013 (SiS 735)
1317* NVidia NForce, NForce2, NForce2s, NForce3
1318* AMD AMD8111
1319* ALi m5455
1320
1321ac97_clock
1322    AC'97 codec clock base (0 = auto-detect)
1323
1324This module supports one card and autoprobe.
1325
1326Note: The default index value of this module is -2, i.e. the first
1327slot is excluded.
1328
1329The power-management is supported.
1330
1331Module snd-interwave
1332--------------------
1333
1334Module for Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32
1335and other sound cards based on AMD InterWave (tm) chip.
1336
1337joystick_dac
1338    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
1339midi
1340    1 = MIDI UART enable, 0 = MIDI UART disable (default)
1341pcm_voices
1342    reserved PCM voices for the synthesizer (default 2)
1343effect
1344    1 = InterWave effects enable (default 0); requires 8 voices
1345isapnp
1346    ISA PnP detection - 0 = disable, 1 = enable (default)
1347
1348with ``isapnp=0``, the following options are available:
1349
1350port
1351    port # for InterWave chip (0x210,0x220,0x230,0x240,0x250,0x260)
1352irq
1353    IRQ # for InterWave chip (3,5,9,11,12,15)
1354dma1
1355    DMA # for InterWave chip (0,1,3,5,6,7)
1356dma2
1357    DMA # for InterWave chip (0,1,3,5,6,7,-1=disable)
1358
1359This module supports multiple cards, autoprobe and ISA PnP.
1360
1361Module snd-interwave-stb
1362------------------------
1363
1364Module for UltraSound 32-Pro (sound card from STB used by Compaq)
1365and other sound cards based on AMD InterWave (tm) chip with TEA6330T
1366circuit for extended control of bass, treble and master volume.
1367
1368joystick_dac
1369    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
1370midi
1371    1 = MIDI UART enable, 0 = MIDI UART disable (default)
1372pcm_voices
1373    reserved PCM voices for the synthesizer (default 2)
1374effect
1375    1 = InterWave effects enable (default 0); requires 8 voices
1376isapnp
1377    ISA PnP detection - 0 = disable, 1 = enable (default)
1378
1379with ``isapnp=0``, the following options are available:
1380
1381port
1382    port # for InterWave chip (0x210,0x220,0x230,0x240,0x250,0x260)
1383port_tc
1384    tone control (i2c bus) port # for TEA6330T chip (0x350,0x360,0x370,0x380)
1385irq
1386    IRQ # for InterWave chip (3,5,9,11,12,15)
1387dma1
1388    DMA # for InterWave chip (0,1,3,5,6,7)
1389dma2
1390    DMA # for InterWave chip (0,1,3,5,6,7,-1=disable)
1391
1392This module supports multiple cards, autoprobe and ISA PnP.
1393
1394Module snd-jazz16
1395-------------------
1396
1397Module for Media Vision Jazz16 chipset. The chipset consists of 3 chips:
1398MVD1216 + MVA416 + MVA514.
1399
1400port
1401    port # for SB DSP chip (0x210,0x220,0x230,0x240,0x250,0x260)
1402irq
1403    IRQ # for SB DSP chip (3,5,7,9,10,15)
1404dma8
1405    DMA # for SB DSP chip (1,3)
1406dma16
1407    DMA # for SB DSP chip (5,7)
1408mpu_port
1409    MPU-401 port # (0x300,0x310,0x320,0x330)
1410mpu_irq
1411    MPU-401 irq # (2,3,5,7)
1412
1413This module supports multiple cards.
1414
1415Module snd-korg1212
1416-------------------
1417
1418Module for Korg 1212 IO PCI card
1419
1420This module supports multiple cards.
1421
1422Module snd-layla20
1423------------------
1424
1425Module for Echoaudio Layla20
1426
1427This module supports multiple cards.
1428The driver requires the firmware loader support on kernel.
1429
1430Module snd-layla24
1431------------------
1432
1433Module for Echoaudio Layla24
1434
1435This module supports multiple cards.
1436The driver requires the firmware loader support on kernel.
1437
1438Module snd-lola
1439---------------
1440
1441Module for Digigram Lola PCI-e boards
1442
1443This module supports multiple cards.
1444
1445Module snd-lx6464es
1446-------------------
1447
1448Module for Digigram LX6464ES boards
1449
1450This module supports multiple cards.
1451
1452Module snd-maestro3
1453-------------------
1454
1455Module for Allegro/Maestro3 chips
1456
1457external_amp
1458    enable external amp (enabled by default)
1459amp_gpio
1460    GPIO pin number for external amp (0-15) or -1 for default pin (8
1461    for allegro, 1 for others)
1462
1463This module supports autoprobe and multiple chips.
1464
1465Note: the binding of amplifier is dependent on hardware.
1466If there is no sound even though all channels are unmuted, try to
1467specify other gpio connection via amp_gpio option.
1468For example, a Panasonic notebook might need ``amp_gpio=0x0d``
1469option.
1470
1471The power-management is supported.
1472
1473Module snd-mia
1474---------------
1475
1476Module for Echoaudio Mia
1477
1478This module supports multiple cards.
1479The driver requires the firmware loader support on kernel.
1480
1481Module snd-miro
1482---------------
1483
1484Module for Miro soundcards: miroSOUND PCM 1 pro, miroSOUND PCM 12,
1485miroSOUND PCM 20 Radio.
1486
1487port
1488    Port # (0x530,0x604,0xe80,0xf40)
1489irq
1490    IRQ # (5,7,9,10,11)
1491dma1
1492    1st dma # (0,1,3)
1493dma2
1494    2nd dma # (0,1)
1495mpu_port
1496    MPU-401 port # (0x300,0x310,0x320,0x330)
1497mpu_irq
1498    MPU-401 irq # (5,7,9,10)
1499fm_port
1500    FM Port # (0x388)
1501wss
1502    enable WSS mode
1503ide
1504    enable onboard ide support
1505
1506Module snd-mixart
1507-----------------
1508
1509Module for Digigram miXart8 sound cards.
1510
1511This module supports multiple cards.
1512Note: One miXart8 board will be represented as 4 alsa cards.
1513See Documentation/sound/cards/mixart.rst for details.
1514
1515When the driver is compiled as a module and the hotplug firmware
1516is supported, the firmware data is loaded via hotplug automatically.
1517Install the necessary firmware files in alsa-firmware package.
1518When no hotplug fw loader is available, you need to load the
1519firmware via mixartloader utility in alsa-tools package.
1520
1521Module snd-mona
1522---------------
1523
1524Module for Echoaudio Mona
1525
1526This module supports multiple cards.
1527The driver requires the firmware loader support on kernel.
1528
1529Module snd-mpu401
1530-----------------
1531
1532Module for MPU-401 UART devices.
1533
1534port
1535    port number or -1 (disable)
1536irq
1537    IRQ number or -1 (disable)
1538pnp
1539    PnP detection - 0 = disable, 1 = enable (default)
1540
1541This module supports multiple devices and PnP.
1542
1543Module snd-msnd-classic
1544-----------------------
1545
1546Module for Turtle Beach MultiSound Classic, Tahiti or Monterey
1547soundcards.
1548
1549io
1550    Port # for msnd-classic card
1551irq
1552    IRQ # for msnd-classic card
1553mem
1554    Memory address (0xb0000, 0xc8000, 0xd0000, 0xd8000, 0xe0000 or 0xe8000)
1555write_ndelay
1556    enable write ndelay (default = 1)
1557calibrate_signal
1558    calibrate signal (default = 0)
1559isapnp
1560    ISA PnP detection - 0 = disable, 1 = enable (default)
1561digital
1562    Digital daughterboard present (default = 0)
1563cfg
1564    Config port (0x250, 0x260 or 0x270) default = PnP
1565reset
1566    Reset all devices
1567mpu_io
1568    MPU401 I/O port
1569mpu_irq
1570    MPU401 irq#
1571ide_io0
1572    IDE port #0
1573ide_io1
1574    IDE port #1
1575ide_irq
1576    IDE irq#
1577joystick_io
1578    Joystick I/O port
1579
1580The driver requires firmware files ``turtlebeach/msndinit.bin`` and
1581``turtlebeach/msndperm.bin`` in the proper firmware directory.
1582
1583See Documentation/sound/cards/multisound.sh for important information
1584about this driver.  Note that it has been discontinued, but the
1585Voyetra Turtle Beach knowledge base entry for it is still available
1586at
1587https://www.turtlebeach.com
1588
1589Module snd-msnd-pinnacle
1590------------------------
1591
1592Module for Turtle Beach MultiSound Pinnacle/Fiji soundcards.
1593
1594io
1595    Port # for pinnacle/fiji card
1596irq
1597    IRQ # for pinnalce/fiji card
1598mem
1599    Memory address (0xb0000, 0xc8000, 0xd0000, 0xd8000, 0xe0000 or 0xe8000)
1600write_ndelay
1601    enable write ndelay (default = 1)
1602calibrate_signal
1603    calibrate signal (default = 0)
1604isapnp
1605    ISA PnP detection - 0 = disable, 1 = enable (default)
1606
1607The driver requires firmware files ``turtlebeach/pndspini.bin`` and
1608``turtlebeach/pndsperm.bin`` in the proper firmware directory.
1609
1610Module snd-mtpav
1611----------------
1612
1613Module for MOTU MidiTimePiece AV multiport MIDI (on the parallel
1614port).
1615
1616port
1617    I/O port # for MTPAV (0x378,0x278, default=0x378)
1618irq
1619    IRQ # for MTPAV (7,5, default=7)
1620hwports
1621    number of supported hardware ports, default=8.
1622
1623Module supports only 1 card.  This module has no enable option.
1624
1625Module snd-mts64
1626----------------
1627
1628Module for Ego Systems (ESI) Miditerminal 4140
1629
1630This module supports multiple devices.
1631Requires parport (``CONFIG_PARPORT``).
1632
1633Module snd-nm256
1634----------------
1635
1636Module for NeoMagic NM256AV/ZX chips
1637
1638playback_bufsize
1639    max playback frame size in kB (4-128kB)
1640capture_bufsize
1641    max capture frame size in kB (4-128kB)
1642force_ac97
1643    0 or 1 (disabled by default)
1644buffer_top
1645    specify buffer top address
1646use_cache
1647    0 or 1 (disabled by default)
1648vaio_hack
1649    alias buffer_top=0x25a800
1650reset_workaround
1651    enable AC97 RESET workaround for some laptops
1652reset_workaround2
1653    enable extended AC97 RESET workaround for some other laptops
1654
1655This module supports one chip and autoprobe.
1656
1657The power-management is supported.
1658
1659Note: on some notebooks the buffer address cannot be detected
1660automatically, or causes hang-up during initialization.
1661In such a case, specify the buffer top address explicitly via
1662the buffer_top option.
1663For example,
1664Sony F250: buffer_top=0x25a800
1665Sony F270: buffer_top=0x272800
1666The driver supports only ac97 codec.  It's possible to force
1667to initialize/use ac97 although it's not detected.  In such a
1668case, use ``force_ac97=1`` option - but *NO* guarantee whether it
1669works!
1670
1671Note: The NM256 chip can be linked internally with non-AC97
1672codecs.  This driver supports only the AC97 codec, and won't work
1673with machines with other (most likely CS423x or OPL3SAx) chips,
1674even though the device is detected in lspci.  In such a case, try
1675other drivers, e.g. snd-cs4232 or snd-opl3sa2.  Some has ISA-PnP
1676but some doesn't have ISA PnP.  You'll need to specify ``isapnp=0``
1677and proper hardware parameters in the case without ISA PnP.
1678
1679Note: some laptops need a workaround for AC97 RESET.  For the
1680known hardware like Dell Latitude LS and Sony PCG-F305, this
1681workaround is enabled automatically.  For other laptops with a
1682hard freeze, you can try ``reset_workaround=1`` option.
1683
1684Note: Dell Latitude CSx laptops have another problem regarding
1685AC97 RESET.  On these laptops, reset_workaround2 option is
1686turned on as default.  This option is worth to try if the
1687previous reset_workaround option doesn't help.
1688
1689Note: This driver is really crappy.  It's a porting from the
1690OSS driver, which is a result of black-magic reverse engineering.
1691The detection of codec will fail if the driver is loaded *after*
1692X-server as described above.  You might be able to force to load
1693the module, but it may result in hang-up.   Hence, make sure that
1694you load this module *before* X if you encounter this kind of
1695problem.
1696
1697Module snd-opl3sa2
1698------------------
1699
1700Module for Yamaha OPL3-SA2/SA3 sound cards.
1701
1702isapnp
1703    ISA PnP detection - 0 = disable, 1 = enable (default)
1704
1705with ``isapnp=0``, the following options are available:
1706
1707port
1708    control port # for OPL3-SA chip (0x370)
1709sb_port
1710    SB port # for OPL3-SA chip (0x220,0x240)
1711wss_port
1712    WSS port # for OPL3-SA chip (0x530,0xe80,0xf40,0x604)
1713midi_port
1714    port # for MPU-401 UART (0x300,0x330), -1 = disable
1715fm_port
1716    FM port # for OPL3-SA chip (0x388), -1 = disable
1717irq
1718    IRQ # for OPL3-SA chip (5,7,9,10)
1719dma1
1720    first DMA # for Yamaha OPL3-SA chip (0,1,3)
1721dma2
1722    second DMA # for Yamaha OPL3-SA chip (0,1,3), -1 = disable
1723
1724This module supports multiple cards and ISA PnP.  It does not support
1725autoprobe (if ISA PnP is not used) thus all ports must be specified!!!
1726
1727The power-management is supported.
1728
1729Module snd-opti92x-ad1848
1730-------------------------
1731
1732Module for sound cards based on OPTi 82c92x and Analog Devices AD1848 chips.
1733Module works with OAK Mozart cards as well.
1734
1735isapnp
1736    ISA PnP detection - 0 = disable, 1 = enable (default)
1737
1738with ``isapnp=0``, the following options are available:
1739
1740port
1741    port # for WSS chip (0x530,0xe80,0xf40,0x604)
1742mpu_port
1743    port # for MPU-401 UART (0x300,0x310,0x320,0x330)
1744fm_port
1745    port # for OPL3 device (0x388)
1746irq
1747    IRQ # for WSS chip (5,7,9,10,11)
1748mpu_irq
1749    IRQ # for MPU-401 UART (5,7,9,10)
1750dma1
1751    first DMA # for WSS chip (0,1,3)
1752
1753This module supports only one card, autoprobe and PnP.
1754
1755Module snd-opti92x-cs4231
1756-------------------------
1757
1758Module for sound cards based on OPTi 82c92x and Crystal CS4231 chips.
1759
1760isapnp
1761    ISA PnP detection - 0 = disable, 1 = enable (default)
1762
1763with ``isapnp=0``, the following options are available:
1764
1765port
1766    port # for WSS chip (0x530,0xe80,0xf40,0x604)
1767mpu_port
1768    port # for MPU-401 UART (0x300,0x310,0x320,0x330)
1769fm_port
1770    port # for OPL3 device (0x388)
1771irq
1772    IRQ # for WSS chip (5,7,9,10,11)
1773mpu_irq
1774    IRQ # for MPU-401 UART (5,7,9,10)
1775dma1
1776    first DMA # for WSS chip (0,1,3)
1777dma2
1778    second DMA # for WSS chip (0,1,3)
1779
1780This module supports only one card, autoprobe and PnP.
1781
1782Module snd-opti93x
1783------------------
1784
1785Module for sound cards based on OPTi 82c93x chips.
1786
1787isapnp
1788    ISA PnP detection - 0 = disable, 1 = enable (default)
1789
1790with ``isapnp=0``, the following options are available:
1791
1792port
1793    port # for WSS chip (0x530,0xe80,0xf40,0x604)
1794mpu_port
1795    port # for MPU-401 UART (0x300,0x310,0x320,0x330)
1796fm_port
1797    port # for OPL3 device (0x388)
1798irq
1799    IRQ # for WSS chip (5,7,9,10,11)
1800mpu_irq
1801    IRQ # for MPU-401 UART (5,7,9,10)
1802dma1
1803    first DMA # for WSS chip (0,1,3)
1804dma2
1805    second DMA # for WSS chip (0,1,3)
1806
1807This module supports only one card, autoprobe and PnP.
1808
1809Module snd-oxygen
1810-----------------
1811
1812Module for sound cards based on the C-Media CMI8786/8787/8788 chip:
1813
1814* Asound A-8788
1815* Asus Xonar DG/DGX
1816* AuzenTech X-Meridian
1817* AuzenTech X-Meridian 2G
1818* Bgears b-Enspirer
1819* Club3D Theatron DTS
1820* HT-Omega Claro (plus)
1821* HT-Omega Claro halo (XT)
1822* Kuroutoshikou CMI8787-HG2PCI
1823* Razer Barracuda AC-1
1824* Sondigo Inferno
1825* TempoTec HiFier Fantasia
1826* TempoTec HiFier Serenade
1827
1828This module supports autoprobe and multiple cards.
1829
1830Module snd-pcsp
1831---------------
1832
1833Module for internal PC-Speaker.
1834
1835nopcm
1836    Disable PC-Speaker PCM sound. Only beeps remain.
1837nforce_wa
1838    enable NForce chipset workaround. Expect bad sound.
1839
1840This module supports system beeps, some kind of PCM playback and
1841even a few mixer controls.
1842
1843Module snd-pcxhr
1844----------------
1845
1846Module for Digigram PCXHR boards
1847
1848This module supports multiple cards.
1849
1850Module snd-portman2x4
1851---------------------
1852
1853Module for Midiman Portman 2x4 parallel port MIDI interface
1854
1855This module supports multiple cards.
1856
1857Module snd-powermac (on ppc only)
1858---------------------------------
1859
1860Module for PowerMac, iMac and iBook on-board soundchips
1861
1862enable_beep
1863    enable beep using PCM (enabled as default)
1864
1865Module supports autoprobe a chip.
1866
1867Note: the driver may have problems regarding endianness.
1868
1869The power-management is supported.
1870
1871Module snd-pxa2xx-ac97 (on arm only)
1872------------------------------------
1873
1874Module for AC97 driver for the Intel PXA2xx chip
1875
1876For ARM architecture only.
1877
1878The power-management is supported.
1879
1880Module snd-riptide
1881------------------
1882
1883Module for Conexant Riptide chip
1884
1885joystick_port
1886    Joystick port # (default: 0x200)
1887mpu_port
1888    MPU401 port # (default: 0x330)
1889opl3_port
1890    OPL3 port # (default: 0x388)
1891
1892This module supports multiple cards.
1893The driver requires the firmware loader support on kernel.
1894You need to install the firmware file ``riptide.hex`` to the standard
1895firmware path (e.g. /lib/firmware).
1896
1897Module snd-rme32
1898----------------
1899
1900Module for RME Digi32, Digi32 Pro and Digi32/8 (Sek'd Prodif32,
1901Prodif96 and Prodif Gold) sound cards.
1902
1903This module supports multiple cards.
1904
1905Module snd-rme96
1906----------------
1907
1908Module for RME Digi96, Digi96/8 and Digi96/8 PRO/PAD/PST sound cards.
1909
1910This module supports multiple cards.
1911
1912Module snd-rme9652
1913------------------
1914
1915Module for RME Digi9652 (Hammerfall, Hammerfall-Light) sound cards.
1916
1917precise_ptr
1918    Enable precise pointer (doesn't work reliably). (default = 0)
1919
1920This module supports multiple cards.
1921
1922Note: snd-page-alloc module does the job which snd-hammerfall-mem
1923module did formerly.  It will allocate the buffers in advance
1924when any RME9652 cards are found.  To make the buffer
1925allocation sure, load snd-page-alloc module in the early
1926stage of boot sequence.  See `Early Buffer Allocation`_
1927section.
1928
1929Module snd-sa11xx-uda1341 (on arm only)
1930---------------------------------------
1931
1932Module for Philips UDA1341TS on Compaq iPAQ H3600 sound card.
1933
1934Module supports only one card.
1935Module has no enable and index options.
1936
1937The power-management is supported.
1938
1939Module snd-sb8
1940--------------
1941
1942Module for 8-bit SoundBlaster cards: SoundBlaster 1.0, SoundBlaster 2.0,
1943SoundBlaster Pro
1944
1945port
1946    port # for SB DSP chip (0x220,0x240,0x260)
1947irq
1948    IRQ # for SB DSP chip (5,7,9,10)
1949dma8
1950    DMA # for SB DSP chip (1,3)
1951
1952This module supports multiple cards and autoprobe.
1953
1954The power-management is supported.
1955
1956Module snd-sb16 and snd-sbawe
1957-----------------------------
1958
1959Module for 16-bit SoundBlaster cards: SoundBlaster 16 (PnP),
1960SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 PnP
1961
1962mic_agc
1963    Mic Auto-Gain-Control - 0 = disable, 1 = enable (default)
1964csp
1965    ASP/CSP chip support - 0 = disable (default), 1 = enable
1966isapnp
1967    ISA PnP detection - 0 = disable, 1 = enable (default)
1968
1969with isapnp=0, the following options are available:
1970
1971port
1972    port # for SB DSP 4.x chip (0x220,0x240,0x260)
1973mpu_port
1974    port # for MPU-401 UART (0x300,0x330), -1 = disable
1975awe_port
1976    base port # for EMU8000 synthesizer (0x620,0x640,0x660) (snd-sbawe
1977    module only)
1978irq
1979    IRQ # for SB DSP 4.x chip (5,7,9,10)
1980dma8
1981    8-bit DMA # for SB DSP 4.x chip (0,1,3)
1982dma16
1983    16-bit DMA # for SB DSP 4.x chip (5,6,7)
1984
1985This module supports multiple cards, autoprobe and ISA PnP.
1986
1987Note: To use Vibra16X cards in 16-bit half duplex mode, you must
1988disable 16bit DMA with dma16 = -1 module parameter.
1989Also, all Sound Blaster 16 type cards can operate in 16-bit
1990half duplex mode through 8-bit DMA channel by disabling their
199116-bit DMA channel.
1992
1993The power-management is supported.
1994
1995Module snd-sc6000
1996-----------------
1997
1998Module for Gallant SC-6000 soundcard and later models: SC-6600 and
1999SC-7000.
2000
2001port
2002    Port # (0x220 or 0x240)
2003mss_port
2004    MSS Port # (0x530 or 0xe80)
2005irq
2006    IRQ # (5,7,9,10,11)
2007mpu_irq
2008    MPU-401 IRQ # (5,7,9,10) ,0 - no MPU-401 irq
2009dma
2010    DMA # (1,3,0)
2011joystick
2012    Enable gameport - 0 = disable (default), 1 = enable
2013
2014This module supports multiple cards.
2015
2016This card is also known as Audio Excel DSP 16 or Zoltrix AV302.
2017
2018Module snd-sscape
2019-----------------
2020
2021Module for ENSONIQ SoundScape cards.
2022
2023port
2024    Port # (PnP setup)
2025wss_port
2026    WSS Port # (PnP setup)
2027irq
2028    IRQ # (PnP setup)
2029mpu_irq
2030    MPU-401 IRQ # (PnP setup)
2031dma
2032    DMA # (PnP setup)
2033dma2
2034    2nd DMA # (PnP setup, -1 to disable)
2035joystick
2036    Enable gameport - 0 = disable (default), 1 = enable
2037
2038This module supports multiple cards.
2039
2040The driver requires the firmware loader support on kernel.
2041
2042Module snd-sun-amd7930 (on sparc only)
2043--------------------------------------
2044
2045Module for AMD7930 sound chips found on Sparcs.
2046
2047This module supports multiple cards.
2048
2049Module snd-sun-cs4231 (on sparc only)
2050-------------------------------------
2051
2052Module for CS4231 sound chips found on Sparcs.
2053
2054This module supports multiple cards.
2055
2056Module snd-sun-dbri (on sparc only)
2057-----------------------------------
2058
2059Module for DBRI sound chips found on Sparcs.
2060
2061This module supports multiple cards.
2062
2063Module snd-wavefront
2064--------------------
2065
2066Module for Turtle Beach Maui, Tropez and Tropez+ sound cards.
2067
2068use_cs4232_midi
2069    Use CS4232 MPU-401 interface
2070    (inaccessibly located inside your computer)
2071isapnp
2072    ISA PnP detection - 0 = disable, 1 = enable (default)
2073
2074with isapnp=0, the following options are available:
2075
2076cs4232_pcm_port
2077    Port # for CS4232 PCM interface.
2078cs4232_pcm_irq
2079    IRQ # for CS4232 PCM interface (5,7,9,11,12,15).
2080cs4232_mpu_port
2081    Port # for CS4232 MPU-401 interface.
2082cs4232_mpu_irq
2083    IRQ # for CS4232 MPU-401 interface (9,11,12,15).
2084ics2115_port
2085    Port # for ICS2115
2086ics2115_irq
2087    IRQ # for ICS2115
2088fm_port
2089    FM OPL-3 Port #
2090dma1
2091    DMA1 # for CS4232 PCM interface.
2092dma2
2093    DMA2 # for CS4232 PCM interface.
2094
2095The below are options for wavefront_synth features:
2096
2097wf_raw
2098    Assume that we need to boot the OS (default:no);
2099    If yes, then during driver loading, the state of the board is
2100    ignored, and we reset the board and load the firmware anyway.
2101fx_raw
2102    Assume that the FX process needs help (default:yes);
2103    If false, we'll leave the FX processor in whatever state it is
2104    when the driver is loaded.  The default is to download the
2105    microprogram and associated coefficients to set it up for
2106    "default" operation, whatever that means.
2107debug_default
2108    Debug parameters for card initialization
2109wait_usecs
2110    How long to wait without sleeping, usecs (default:150);
2111    This magic number seems to give pretty optimal throughput
2112    based on my limited experimentation.
2113    If you want to play around with it and find a better value, be
2114    my guest. Remember, the idea is to get a number that causes us
2115    to just busy wait for as many WaveFront commands as possible,
2116    without coming up with a number so large that we hog the whole
2117    CPU.
2118    Specifically, with this number, out of about 134,000 status
2119    waits, only about 250 result in a sleep.
2120sleep_interval
2121    How long to sleep when waiting for reply (default: 100)
2122sleep_tries
2123    How many times to try sleeping during a wait (default: 50)
2124ospath
2125    Pathname to processed ICS2115 OS firmware (default:wavefront.os);
2126    The path name of the ISC2115 OS firmware.  In the recent
2127    version, it's handled via firmware loader framework, so it
2128    must be installed in the proper path, typically,
2129    /lib/firmware.
2130reset_time
2131    How long to wait for a reset to take effect (default:2)
2132ramcheck_time
2133    How many seconds to wait for the RAM test (default:20)
2134osrun_time
2135    How many seconds to wait for the ICS2115 OS (default:10)
2136
2137This module supports multiple cards and ISA PnP.
2138
2139Note: the firmware file ``wavefront.os`` was located in the earlier
2140version in /etc.  Now it's loaded via firmware loader, and
2141must be in the proper firmware path, such as /lib/firmware.
2142Copy (or symlink) the file appropriately if you get an error
2143regarding firmware downloading after upgrading the kernel.
2144
2145Module snd-sonicvibes
2146---------------------
2147
2148Module for S3 SonicVibes PCI sound cards.
2149* PINE Schubert 32 PCI
2150
2151reverb
2152    Reverb Enable - 1 = enable, 0 = disable (default);
2153    SoundCard must have onboard SRAM for this.
2154mge
2155    Mic Gain Enable - 1 = enable, 0 = disable (default)
2156
2157This module supports multiple cards and autoprobe.
2158
2159Module snd-serial-u16550
2160------------------------
2161
2162Module for UART16550A serial MIDI ports.
2163
2164port
2165    port # for UART16550A chip
2166irq
2167    IRQ # for UART16550A chip, -1 = poll mode
2168speed
2169    speed in bauds (9600,19200,38400,57600,115200)
2170    38400 = default
2171base
2172    base for divisor in bauds (57600,115200,230400,460800)
2173    115200 = default
2174outs
2175    number of MIDI ports in a serial port (1-4)
2176    1 = default
2177adaptor
2178    Type of adaptor.
2179	0 = Soundcanvas, 1 = MS-124T, 2 = MS-124W S/A,
2180	3 = MS-124W M/B, 4 = Generic
2181
2182This module supports multiple cards. This module does not support autoprobe
2183thus the main port must be specified!!! Other options are optional.
2184
2185Module snd-trident
2186------------------
2187
2188Module for Trident 4DWave DX/NX sound cards.
2189* Best Union  Miss Melody 4DWave PCI
2190* HIS  4DWave PCI
2191* Warpspeed  ONSpeed 4DWave PCI
2192* AzTech  PCI 64-Q3D
2193* Addonics  SV 750
2194* CHIC  True Sound 4Dwave
2195* Shark  Predator4D-PCI
2196* Jaton  SonicWave 4D
2197* SiS SI7018 PCI Audio
2198* Hoontech SoundTrack Digital 4DWave NX
2199
2200pcm_channels
2201    max channels (voices) reserved for PCM
2202wavetable_size
2203    max wavetable size in kB (4-?kb)
2204
2205This module supports multiple cards and autoprobe.
2206
2207The power-management is supported.
2208
2209Module snd-ua101
2210----------------
2211
2212Module for the Edirol UA-101/UA-1000 audio/MIDI interfaces.
2213
2214This module supports multiple devices, autoprobe and hotplugging.
2215
2216Module snd-usb-audio
2217--------------------
2218
2219Module for USB audio and USB MIDI devices.
2220
2221vid
2222    Vendor ID for the device (optional)
2223pid
2224    Product ID for the device (optional)
2225nrpacks
2226    Max. number of packets per URB (default: 8)
2227device_setup
2228    Device specific magic number (optional);
2229    Influence depends on the device
2230    Default: 0x0000
2231ignore_ctl_error
2232    Ignore any USB-controller regarding mixer interface (default: no)
2233autoclock
2234    Enable auto-clock selection for UAC2 devices (default: yes)
2235quirk_alias
2236    Quirk alias list, pass strings like ``0123abcd:5678beef``, which
2237    applies the existing quirk for the device 5678:beef to a new
2238    device 0123:abcd.
2239use_vmalloc
2240    Use vmalloc() for allocations of the PCM buffers (default: yes).
2241    For architectures with non-coherent memory like ARM or MIPS, the
2242    mmap access may give inconsistent results with vmalloc'ed
2243    buffers.  If mmap is used on such architectures, turn off this
2244    option, so that the DMA-coherent buffers are allocated and used
2245    instead.
2246delayed_register
2247    The option is needed for devices that have multiple streams
2248    defined in multiple USB interfaces.  The driver may invoke
2249    registrations multiple times (once per interface) and this may
2250    lead to the insufficient device enumeration.
2251    This option receives an array of strings, and you can pass
2252    ID:INTERFACE like ``0123abcd:4`` for performing the delayed
2253    registration to the given device.  In this example, when a USB
2254    device 0123:abcd is probed, the driver waits the registration
2255    until the USB interface 4 gets probed.
2256    The driver prints a message like "Found post-registration device
2257    assignment: 1234abcd:04" for such a device, so that user can
2258    notice the need.
2259
2260This module supports multiple devices, autoprobe and hotplugging.
2261
2262NB: ``nrpacks`` parameter can be modified dynamically via sysfs.
2263Don't put the value over 20.  Changing via sysfs has no sanity
2264check.
2265
2266NB: ``ignore_ctl_error=1`` may help when you get an error at accessing
2267the mixer element such as URB error -22.  This happens on some
2268buggy USB device or the controller.
2269
2270NB: quirk_alias option is provided only for testing / development.
2271If you want to have a proper support, contact to upstream for
2272adding the matching quirk in the driver code statically.
2273
2274Module snd-usb-caiaq
2275--------------------
2276
2277Module for caiaq UB audio interfaces,
2278
2279* Native Instruments RigKontrol2
2280* Native Instruments Kore Controller
2281* Native Instruments Audio Kontrol 1
2282* Native Instruments Audio 8 DJ
2283
2284This module supports multiple devices, autoprobe and hotplugging.
2285
2286Module snd-usb-usx2y
2287--------------------
2288
2289Module for Tascam USB US-122, US-224 and US-428 devices.
2290
2291This module supports multiple devices, autoprobe and hotplugging.
2292
2293Note: you need to load the firmware via ``usx2yloader`` utility included
2294in alsa-tools and alsa-firmware packages.
2295
2296Module snd-via82xx
2297------------------
2298
2299Module for AC'97 motherboards based on VIA 82C686A/686B, 8233, 8233A,
23008233C, 8235, 8237 (south) bridge.
2301
2302mpu_port
2303    0x300,0x310,0x320,0x330, otherwise obtain BIOS setup
2304    [VIA686A/686B only]
2305joystick
2306    Enable joystick (default off) [VIA686A/686B only]
2307ac97_clock
2308    AC'97 codec clock base (default 48000Hz)
2309dxs_support
2310    support DXS channels, 0 = auto (default), 1 = enable, 2 = disable,
2311    3 = 48k only, 4 = no VRA, 5 = enable any sample rate and different
2312    sample rates on different channels [VIA8233/C, 8235, 8237 only]
2313ac97_quirk
2314    AC'97 workaround for strange hardware;
2315    See `AC97 Quirk Option`_ section below.
2316
2317This module supports one chip and autoprobe.
2318
2319Note: on some SMP motherboards like MSI 694D the interrupts might
2320not be generated properly.  In such a case, please try to
2321set the SMP (or MPS) version on BIOS to 1.1 instead of
2322default value 1.4.  Then the interrupt number will be
2323assigned under 15. You might also upgrade your BIOS.
2324
2325Note: VIA8233/5/7 (not VIA8233A) can support DXS (direct sound)
2326channels as the first PCM.  On these channels, up to 4
2327streams can be played at the same time, and the controller
2328can perform sample rate conversion with separate rates for
2329each channel.
2330As default (``dxs_support = 0``), 48k fixed rate is chosen
2331except for the known devices since the output is often
2332noisy except for 48k on some mother boards due to the
2333bug of BIOS.
2334Please try once ``dxs_support=5`` and if it works on other
2335sample rates (e.g. 44.1kHz of mp3 playback), please let us
2336know the PCI subsystem vendor/device id's (output of
2337``lspci -nv``).
2338If ``dxs_support=5`` does not work, try ``dxs_support=4``; if it
2339doesn't work too, try dxs_support=1.  (dxs_support=1 is
2340usually for old motherboards.  The correct implemented
2341board should work with 4 or 5.)  If it still doesn't
2342work and the default setting is ok, ``dxs_support=3`` is the
2343right choice.  If the default setting doesn't work at all,
2344try ``dxs_support=2`` to disable the DXS channels.
2345In any cases, please let us know the result and the
2346subsystem vendor/device ids.  See `Links and Addresses`_
2347below.
2348
2349Note: for the MPU401 on VIA823x, use snd-mpu401 driver
2350additionally.  The mpu_port option is for VIA686 chips only.
2351
2352The power-management is supported.
2353
2354Module snd-via82xx-modem
2355------------------------
2356
2357Module for VIA82xx AC97 modem
2358
2359ac97_clock
2360    AC'97 codec clock base (default 48000Hz)
2361
2362This module supports one card and autoprobe.
2363
2364Note: The default index value of this module is -2, i.e. the first
2365slot is excluded.
2366
2367The power-management is supported.
2368
2369Module snd-virmidi
2370------------------
2371
2372Module for virtual rawmidi devices.
2373This module creates virtual rawmidi devices which communicate
2374to the corresponding ALSA sequencer ports.
2375
2376midi_devs
2377    MIDI devices # (1-4, default=4)
2378
2379This module supports multiple cards.
2380
2381Module snd-virtuoso
2382-------------------
2383
2384Module for sound cards based on the Asus AV66/AV100/AV200 chips,
2385i.e., Xonar D1, DX, D2, D2X, DS, DSX, Essence ST (Deluxe),
2386Essence STX (II), HDAV1.3 (Deluxe), and HDAV1.3 Slim.
2387
2388This module supports autoprobe and multiple cards.
2389
2390Module snd-vx222
2391----------------
2392
2393Module for Digigram VX-Pocket VX222, V222 v2 and Mic cards.
2394
2395mic
2396    Enable Microphone on V222 Mic (NYI)
2397ibl
2398    Capture IBL size. (default = 0, minimum size)
2399
2400This module supports multiple cards.
2401
2402When the driver is compiled as a module and the hotplug firmware
2403is supported, the firmware data is loaded via hotplug automatically.
2404Install the necessary firmware files in alsa-firmware package.
2405When no hotplug fw loader is available, you need to load the
2406firmware via vxloader utility in alsa-tools package.  To invoke
2407vxloader automatically, add the following to /etc/modprobe.d/alsa.conf
2408
2409::
2410
2411  install snd-vx222 /sbin/modprobe --first-time -i snd-vx222\
2412    && /usr/bin/vxloader
2413
2414(for 2.2/2.4 kernels, add ``post-install /usr/bin/vxloader`` to
2415/etc/modules.conf, instead.)
2416IBL size defines the interrupts period for PCM.  The smaller size
2417gives smaller latency but leads to more CPU consumption, too.
2418The size is usually aligned to 126.  As default (=0), the smallest
2419size is chosen.  The possible IBL values can be found in
2420/proc/asound/cardX/vx-status proc file.
2421
2422The power-management is supported.
2423
2424Module snd-vxpocket
2425-------------------
2426
2427Module for Digigram VX-Pocket VX2 and 440 PCMCIA cards.
2428
2429ibl
2430    Capture IBL size. (default = 0, minimum size)
2431
2432This module supports multiple cards.  The module is compiled only when
2433PCMCIA is supported on kernel.
2434
2435With the older 2.6.x kernel, to activate the driver via the card
2436manager, you'll need to set up /etc/pcmcia/vxpocket.conf.  See the
2437sound/pcmcia/vx/vxpocket.c.  2.6.13 or later kernel requires no
2438longer require a config file.
2439
2440When the driver is compiled as a module and the hotplug firmware
2441is supported, the firmware data is loaded via hotplug automatically.
2442Install the necessary firmware files in alsa-firmware package.
2443When no hotplug fw loader is available, you need to load the
2444firmware via vxloader utility in alsa-tools package.
2445
2446About capture IBL, see the description of snd-vx222 module.
2447
2448Note: snd-vxp440 driver is merged to snd-vxpocket driver since
2449ALSA 1.0.10.
2450
2451The power-management is supported.
2452
2453Module snd-ymfpci
2454-----------------
2455
2456Module for Yamaha PCI chips (YMF72x, YMF74x & YMF75x).
2457
2458mpu_port
2459    0x300,0x330,0x332,0x334, 0 (disable) by default,
2460    1 (auto-detect for YMF744/754 only)
2461fm_port
2462    0x388,0x398,0x3a0,0x3a8, 0 (disable) by default
2463    1 (auto-detect for YMF744/754 only)
2464joystick_port
2465    0x201,0x202,0x204,0x205, 0 (disable) by default,
2466    1 (auto-detect)
2467rear_switch
2468    enable shared rear/line-in switch (bool)
2469
2470This module supports autoprobe and multiple chips.
2471
2472The power-management is supported.
2473
2474Module snd-pdaudiocf
2475--------------------
2476
2477Module for Sound Core PDAudioCF sound card.
2478
2479The power-management is supported.
2480
2481
2482AC97 Quirk Option
2483=================
2484
2485The ac97_quirk option is used to enable/override the workaround for
2486specific devices on drivers for on-board AC'97 controllers like
2487snd-intel8x0.  Some hardware have swapped output pins between Master
2488and Headphone, or Surround (thanks to confusion of AC'97
2489specifications from version to version :-)
2490
2491The driver provides the auto-detection of known problematic devices,
2492but some might be unknown or wrongly detected.  In such a case, pass
2493the proper value with this option.
2494
2495The following strings are accepted:
2496
2497default
2498    Don't override the default setting
2499none
2500    Disable the quirk
2501hp_only
2502    Bind Master and Headphone controls as a single control
2503swap_hp
2504    Swap headphone and master controls
2505swap_surround
2506    Swap master and surround controls
2507ad_sharing
2508    For AD1985, turn on OMS bit and use headphone
2509alc_jack
2510    For ALC65x, turn on the jack sense mode
2511inv_eapd
2512    Inverted EAPD implementation
2513mute_led
2514    Bind EAPD bit for turning on/off mute LED
2515
2516For backward compatibility, the corresponding integer value -1, 0, ...
2517are  accepted, too.
2518
2519For example, if ``Master`` volume control has no effect on your device
2520but only ``Headphone`` does, pass ac97_quirk=hp_only module option.
2521
2522
2523Configuring Non-ISAPNP Cards
2524============================
2525
2526When the kernel is configured with ISA-PnP support, the modules
2527supporting the isapnp cards will have module options ``isapnp``.
2528If this option is set, *only* the ISA-PnP devices will be probed.
2529For probing the non ISA-PnP cards, you have to pass ``isapnp=0`` option
2530together with the proper i/o and irq configuration.
2531
2532When the kernel is configured without ISA-PnP support, isapnp option
2533will be not built in.
2534
2535
2536Module Autoloading Support
2537==========================
2538
2539The ALSA drivers can be loaded automatically on demand by defining
2540module aliases.  The string ``snd-card-%1`` is requested for ALSA native
2541devices where ``%i`` is sound card number from zero to seven.
2542
2543To auto-load an ALSA driver for OSS services, define the string
2544``sound-slot-%i`` where ``%i`` means the slot number for OSS, which
2545corresponds to the card index of ALSA.  Usually, define this
2546as the same card module.
2547
2548An example configuration for a single emu10k1 card is like below:
2549::
2550
2551    ----- /etc/modprobe.d/alsa.conf
2552    alias snd-card-0 snd-emu10k1
2553    alias sound-slot-0 snd-emu10k1
2554    ----- /etc/modprobe.d/alsa.conf
2555
2556The available number of auto-loaded sound cards depends on the module
2557option ``cards_limit`` of snd module.  As default it's set to 1.
2558To enable the auto-loading of multiple cards, specify the number of
2559sound cards in that option.
2560
2561When multiple cards are available, it'd better to specify the index
2562number for each card via module option, too, so that the order of
2563cards is kept consistent.
2564
2565An example configuration for two sound cards is like below:
2566::
2567
2568    ----- /etc/modprobe.d/alsa.conf
2569    # ALSA portion
2570    options snd cards_limit=2
2571    alias snd-card-0 snd-interwave
2572    alias snd-card-1 snd-ens1371
2573    options snd-interwave index=0
2574    options snd-ens1371 index=1
2575    # OSS/Free portion
2576    alias sound-slot-0 snd-interwave
2577    alias sound-slot-1 snd-ens1371
2578    ----- /etc/modprobe.d/alsa.conf
2579
2580In this example, the interwave card is always loaded as the first card
2581(index 0) and ens1371 as the second (index 1).
2582
2583Alternative (and new) way to fixate the slot assignment is to use
2584``slots`` option of snd module.  In the case above, specify like the
2585following:
2586::
2587
2588    options snd slots=snd-interwave,snd-ens1371
2589
2590Then, the first slot (#0) is reserved for snd-interwave driver, and
2591the second (#1) for snd-ens1371.  You can omit index option in each
2592driver if slots option is used (although you can still have them at
2593the same time as long as they don't conflict).
2594
2595The slots option is especially useful for avoiding the possible
2596hot-plugging and the resultant slot conflict.  For example, in the
2597case above again, the first two slots are already reserved.  If any
2598other driver (e.g. snd-usb-audio) is loaded before snd-interwave or
2599snd-ens1371, it will be assigned to the third or later slot.
2600
2601When a module name is given with '!', the slot will be given for any
2602modules but that name.  For example, ``slots=!snd-pcsp`` will reserve
2603the first slot for any modules but snd-pcsp.
2604
2605
2606ALSA PCM devices to OSS devices mapping
2607=======================================
2608::
2609
2610    /dev/snd/pcmC0D0[c|p]  -> /dev/audio0 (/dev/audio) -> minor 4
2611    /dev/snd/pcmC0D0[c|p]  -> /dev/dsp0 (/dev/dsp)     -> minor 3
2612    /dev/snd/pcmC0D1[c|p]  -> /dev/adsp0 (/dev/adsp)   -> minor 12
2613    /dev/snd/pcmC1D0[c|p]  -> /dev/audio1              -> minor 4+16 = 20
2614    /dev/snd/pcmC1D0[c|p]  -> /dev/dsp1                -> minor 3+16 = 19
2615    /dev/snd/pcmC1D1[c|p]  -> /dev/adsp1               -> minor 12+16 = 28
2616    /dev/snd/pcmC2D0[c|p]  -> /dev/audio2              -> minor 4+32 = 36
2617    /dev/snd/pcmC2D0[c|p]  -> /dev/dsp2                -> minor 3+32 = 39
2618    /dev/snd/pcmC2D1[c|p]  -> /dev/adsp2               -> minor 12+32 = 44
2619
2620The first number from ``/dev/snd/pcmC{X}D{Y}[c|p]`` expression means
2621sound card number and second means device number.  The ALSA devices
2622have either ``c`` or ``p`` suffix indicating the direction, capture and
2623playback, respectively.
2624
2625Please note that the device mapping above may be varied via the module
2626options of snd-pcm-oss module.
2627
2628
2629Proc interfaces (/proc/asound)
2630==============================
2631
2632/proc/asound/card#/pcm#[cp]/oss
2633-------------------------------
2634erase
2635    erase all additional information about OSS applications
2636
2637<app_name> <fragments> <fragment_size> [<options>]
2638    <app_name>
2639	name of application with (higher priority) or without path
2640    <fragments>
2641	 number of fragments or zero if auto
2642    <fragment_size>
2643	 size of fragment in bytes or zero if auto
2644    <options>
2645	optional parameters
2646
2647	disable
2648	    the application tries to open a pcm device for
2649	    this channel but does not want to use it.
2650	    (Cause a bug or mmap needs)
2651	    It's good for Quake etc...
2652	direct
2653	    don't use plugins
2654	block
2655	     force block mode (rvplayer)
2656	non-block
2657	    force non-block mode
2658	whole-frag
2659	    write only whole fragments (optimization affecting
2660	    playback only)
2661	no-silence
2662	    do not fill silence ahead to avoid clicks
2663	buggy-ptr
2664	    Returns the whitespace blocks in GETOPTR ioctl
2665	    instead of filled blocks
2666
2667Example:
2668::
2669
2670    echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
2671    echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
2672    echo "rvplayer 0 0 block" > /proc/asound/card0/pcm0p/oss
2673
2674
2675Early Buffer Allocation
2676=======================
2677
2678Some drivers (e.g. hdsp) require the large contiguous buffers, and
2679sometimes it's too late to find such spaces when the driver module is
2680actually loaded due to memory fragmentation.  You can pre-allocate the
2681PCM buffers by loading snd-page-alloc module and write commands to its
2682proc file in prior, for example, in the early boot stage like
2683``/etc/init.d/*.local`` scripts.
2684
2685Reading the proc file /proc/drivers/snd-page-alloc shows the current
2686usage of page allocation.  In writing, you can send the following
2687commands to the snd-page-alloc driver:
2688
2689* add VENDOR DEVICE MASK SIZE BUFFERS
2690
2691VENDOR and DEVICE are PCI vendor and device IDs.  They take
2692integer numbers (0x prefix is needed for the hex).
2693MASK is the PCI DMA mask.  Pass 0 if not restricted.
2694SIZE is the size of each buffer to allocate.  You can pass
2695k and m suffix for KB and MB.  The max number is 16MB.
2696BUFFERS is the number of buffers to allocate.  It must be greater
2697than 0.  The max number is 4.
2698
2699* erase
2700
2701This will erase the all pre-allocated buffers which are not in
2702use.
2703
2704
2705Links and Addresses
2706===================
2707
2708ALSA project homepage
2709    http://www.alsa-project.org
2710Kernel Bugzilla
2711    http://bugzilla.kernel.org/
2712ALSA Developers ML
2713    mailto:alsa-devel@alsa-project.org
2714alsa-info.sh script
2715    https://www.alsa-project.org/alsa-info.sh
2716