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
1071The model option can be used also for aliasing to another PCI or codec
1072SSID.  When it's passed in the form of ``model=XXXX:YYYY`` where XXXX
1073and YYYY are the sub-vendor and sub-device IDs in hex numbers,
1074respectively, the driver will refer to that SSID as a reference to the
1075quirk table.
1076
1077If the default configuration doesn't work and one of the above
1078matches with your device, report it together with alsa-info.sh
1079output (with ``--no-upload`` option) to kernel bugzilla or alsa-devel
1080ML (see the section `Links and Addresses`_).
1081
1082``power_save`` and ``power_save_controller`` options are for power-saving
1083mode.  See powersave.rst for details.
1084
1085Note 2: If you get click noises on output, try the module option
1086``position_fix=1`` or ``2``.  ``position_fix=1`` will use the SD_LPIB
1087register value without FIFO size correction as the current
1088DMA pointer.  ``position_fix=2`` will make the driver to use
1089the position buffer instead of reading SD_LPIB register.
1090(Usually SD_LPIB register is more accurate than the
1091position buffer.)
1092
1093``position_fix=3`` is specific to VIA devices.  The position
1094of the capture stream is checked from both LPIB and POSBUF
1095values.  ``position_fix=4`` is a combination mode, using LPIB
1096for playback and POSBUF for capture.
1097
1098NB: If you get many ``azx_get_response timeout`` messages at
1099loading, it's likely a problem of interrupts (e.g. ACPI irq
1100routing).  Try to boot with options like ``pci=noacpi``.  Also, you
1101can try ``single_cmd=1`` module option.  This will switch the
1102communication method between HDA controller and codecs to the
1103single immediate commands instead of CORB/RIRB.  Basically, the
1104single command mode is provided only for BIOS, and you won't get
1105unsolicited events, too.  But, at least, this works independently
1106from the irq.  Remember this is a last resort, and should be
1107avoided as much as possible...
1108
1109MORE NOTES ON ``azx_get_response timeout`` PROBLEMS:
1110On some hardware, you may need to add a proper probe_mask option
1111to avoid the ``azx_get_response timeout`` problem above, instead.
1112This occurs when the access to non-existing or non-working codec slot
1113(likely a modem one) causes a stall of the communication via HD-audio
1114bus.  You can see which codec slots are probed by enabling
1115``CONFIG_SND_DEBUG_VERBOSE``, or simply from the file name of the codec
1116proc files.  Then limit the slots to probe by probe_mask option.
1117For example, ``probe_mask=1`` means to probe only the first slot, and
1118``probe_mask=4`` means only the third slot.
1119
1120The power-management is supported.
1121
1122Module snd-hdsp
1123---------------
1124
1125Module for RME Hammerfall DSP audio interface(s)
1126
1127This module supports multiple cards.
1128
1129Note: The firmware data can be automatically loaded via hotplug
1130when ``CONFIG_FW_LOADER`` is set.  Otherwise, you need to load
1131the firmware via hdsploader utility included in alsa-tools
1132package.
1133The firmware data is found in alsa-firmware package.
1134
1135Note: snd-page-alloc module does the job which snd-hammerfall-mem
1136module did formerly.  It will allocate the buffers in advance
1137when any HDSP cards are found.  To make the buffer
1138allocation sure, load snd-page-alloc module in the early
1139stage of boot sequence.  See `Early Buffer Allocation`_
1140section.
1141
1142Module snd-hdspm
1143----------------
1144
1145Module for RME HDSP MADI board.
1146
1147precise_ptr
1148    Enable precise pointer, or disable.
1149line_outs_monitor
1150    Send playback streams to analog outs by default.
1151enable_monitor
1152    Enable Analog Out on Channel 63/64 by default.
1153
1154See hdspm.rst for details.
1155
1156Module snd-ice1712
1157------------------
1158
1159Module for Envy24 (ICE1712) based PCI sound cards.
1160
1161* MidiMan M Audio Delta 1010
1162* MidiMan M Audio Delta 1010LT
1163* MidiMan M Audio Delta DiO 2496
1164* MidiMan M Audio Delta 66
1165* MidiMan M Audio Delta 44
1166* MidiMan M Audio Delta 410
1167* MidiMan M Audio Audiophile 2496
1168* TerraTec EWS 88MT
1169* TerraTec EWS 88D
1170* TerraTec EWX 24/96
1171* TerraTec DMX 6Fire
1172* TerraTec Phase 88
1173* Hoontech SoundTrack DSP 24
1174* Hoontech SoundTrack DSP 24 Value
1175* Hoontech SoundTrack DSP 24 Media 7.1
1176* Event Electronics, EZ8
1177* Digigram VX442
1178* Lionstracs, Mediastaton
1179* Terrasoniq TS 88
1180
1181model
1182    Use the given board model, one of the following:
1183    delta1010, dio2496, delta66, delta44, audiophile, delta410,
1184    delta1010lt, vx442, ewx2496, ews88mt, ews88mt_new, ews88d,
1185    dmx6fire, dsp24, dsp24_value, dsp24_71, ez8,
1186    phase88, mediastation
1187omni
1188    Omni I/O support for MidiMan M-Audio Delta44/66
1189cs8427_timeout
1190    reset timeout for the CS8427 chip (S/PDIF transceiver) in msec
1191    resolution, default value is 500 (0.5 sec)
1192
1193This module supports multiple cards and autoprobe.
1194Note: The consumer part is not used with all Envy24 based cards (for
1195example in the MidiMan Delta siree).
1196
1197Note: The supported board is detected by reading EEPROM or PCI
1198SSID (if EEPROM isn't available).  You can override the
1199model by passing ``model`` module option in case that the
1200driver isn't configured properly or you want to try another
1201type for testing.
1202
1203Module snd-ice1724
1204------------------
1205
1206Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards.
1207
1208* MidiMan M Audio Revolution 5.1
1209* MidiMan M Audio Revolution 7.1
1210* MidiMan M Audio Audiophile 192
1211* AMP Ltd AUDIO2000
1212* TerraTec Aureon 5.1 Sky
1213* TerraTec Aureon 7.1 Space
1214* TerraTec Aureon 7.1 Universe
1215* TerraTec Phase 22
1216* TerraTec Phase 28
1217* AudioTrak Prodigy 7.1
1218* AudioTrak Prodigy 7.1 LT
1219* AudioTrak Prodigy 7.1 XT
1220* AudioTrak Prodigy 7.1 HIFI
1221* AudioTrak Prodigy 7.1 HD2
1222* AudioTrak Prodigy 192
1223* Pontis MS300
1224* Albatron K8X800 Pro II
1225* Chaintech ZNF3-150
1226* Chaintech ZNF3-250
1227* Chaintech 9CJS
1228* Chaintech AV-710
1229* Shuttle SN25P
1230* Onkyo SE-90PCI
1231* Onkyo SE-200PCI
1232* ESI Juli@
1233* ESI Maya44
1234* Hercules Fortissimo IV
1235* EGO-SYS WaveTerminal 192M
1236
1237model
1238    Use the given board model, one of the following:
1239    revo51, revo71, amp2000, prodigy71, prodigy71lt,
1240    prodigy71xt, prodigy71hifi, prodigyhd2, prodigy192,
1241    juli, aureon51, aureon71, universe, ap192, k8x800,
1242    phase22, phase28, ms300, av710, se200pci, se90pci,
1243    fortissimo4, sn25p, WT192M, maya44
1244
1245This module supports multiple cards and autoprobe.
1246
1247Note: The supported board is detected by reading EEPROM or PCI
1248SSID (if EEPROM isn't available).  You can override the
1249model by passing ``model`` module option in case that the
1250driver isn't configured properly or you want to try another
1251type for testing.
1252
1253Module snd-indigo
1254-----------------
1255
1256Module for Echoaudio Indigo
1257
1258This module supports multiple cards.
1259The driver requires the firmware loader support on kernel.
1260
1261Module snd-indigodj
1262-------------------
1263
1264Module for Echoaudio Indigo DJ
1265
1266This module supports multiple cards.
1267The driver requires the firmware loader support on kernel.
1268
1269Module snd-indigoio
1270-------------------
1271
1272Module for Echoaudio Indigo IO
1273
1274This module supports multiple cards.
1275The driver requires the firmware loader support on kernel.
1276
1277Module snd-intel8x0
1278-------------------
1279
1280Module for AC'97 motherboards from Intel and compatibles.
1281
1282* Intel i810/810E, i815, i820, i830, i84x, MX440 ICH5, ICH6, ICH7,
1283  6300ESB, ESB2
1284* SiS 7012 (SiS 735)
1285* NVidia NForce, NForce2, NForce3, MCP04, CK804 CK8, CK8S, MCP501
1286* AMD AMD768, AMD8111
1287* ALi m5455
1288
1289ac97_clock
1290    AC'97 codec clock base (0 = auto-detect)
1291ac97_quirk
1292    AC'97 workaround for strange hardware;
1293    See `AC97 Quirk Option`_ section below.
1294buggy_irq
1295    Enable workaround for buggy interrupts on some motherboards
1296    (default yes on nForce chips, otherwise off)
1297buggy_semaphore
1298    Enable workaround for hardware with buggy semaphores (e.g. on some
1299    ASUS laptops) (default off)
1300spdif_aclink
1301    Use S/PDIF over AC-link instead of direct connection from the
1302    controller chip (0 = off, 1 = on, -1 = default)
1303
1304This module supports one chip and autoprobe.
1305
1306Note: the latest driver supports auto-detection of chip clock.
1307if you still encounter too fast playback, specify the clock
1308explicitly via the module option ``ac97_clock=41194``.
1309
1310Joystick/MIDI ports are not supported by this driver.  If your
1311motherboard has these devices, use the ns558 or snd-mpu401
1312modules, respectively.
1313
1314The power-management is supported.
1315
1316Module snd-intel8x0m
1317--------------------
1318
1319Module for Intel ICH (i8x0) chipset MC97 modems.
1320
1321* Intel i810/810E, i815, i820, i830, i84x, MX440 ICH5, ICH6, ICH7
1322* SiS 7013 (SiS 735)
1323* NVidia NForce, NForce2, NForce2s, NForce3
1324* AMD AMD8111
1325* ALi m5455
1326
1327ac97_clock
1328    AC'97 codec clock base (0 = auto-detect)
1329
1330This module supports one card and autoprobe.
1331
1332Note: The default index value of this module is -2, i.e. the first
1333slot is excluded.
1334
1335The power-management is supported.
1336
1337Module snd-interwave
1338--------------------
1339
1340Module for Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32
1341and other sound cards based on AMD InterWave (tm) chip.
1342
1343joystick_dac
1344    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
1345midi
1346    1 = MIDI UART enable, 0 = MIDI UART disable (default)
1347pcm_voices
1348    reserved PCM voices for the synthesizer (default 2)
1349effect
1350    1 = InterWave effects enable (default 0); requires 8 voices
1351isapnp
1352    ISA PnP detection - 0 = disable, 1 = enable (default)
1353
1354with ``isapnp=0``, the following options are available:
1355
1356port
1357    port # for InterWave chip (0x210,0x220,0x230,0x240,0x250,0x260)
1358irq
1359    IRQ # for InterWave chip (3,5,9,11,12,15)
1360dma1
1361    DMA # for InterWave chip (0,1,3,5,6,7)
1362dma2
1363    DMA # for InterWave chip (0,1,3,5,6,7,-1=disable)
1364
1365This module supports multiple cards, autoprobe and ISA PnP.
1366
1367Module snd-interwave-stb
1368------------------------
1369
1370Module for UltraSound 32-Pro (sound card from STB used by Compaq)
1371and other sound cards based on AMD InterWave (tm) chip with TEA6330T
1372circuit for extended control of bass, treble and master volume.
1373
1374joystick_dac
1375    0 to 31, (0.59V-4.52V or 0.389V-2.98V)
1376midi
1377    1 = MIDI UART enable, 0 = MIDI UART disable (default)
1378pcm_voices
1379    reserved PCM voices for the synthesizer (default 2)
1380effect
1381    1 = InterWave effects enable (default 0); requires 8 voices
1382isapnp
1383    ISA PnP detection - 0 = disable, 1 = enable (default)
1384
1385with ``isapnp=0``, the following options are available:
1386
1387port
1388    port # for InterWave chip (0x210,0x220,0x230,0x240,0x250,0x260)
1389port_tc
1390    tone control (i2c bus) port # for TEA6330T chip (0x350,0x360,0x370,0x380)
1391irq
1392    IRQ # for InterWave chip (3,5,9,11,12,15)
1393dma1
1394    DMA # for InterWave chip (0,1,3,5,6,7)
1395dma2
1396    DMA # for InterWave chip (0,1,3,5,6,7,-1=disable)
1397
1398This module supports multiple cards, autoprobe and ISA PnP.
1399
1400Module snd-jazz16
1401-------------------
1402
1403Module for Media Vision Jazz16 chipset. The chipset consists of 3 chips:
1404MVD1216 + MVA416 + MVA514.
1405
1406port
1407    port # for SB DSP chip (0x210,0x220,0x230,0x240,0x250,0x260)
1408irq
1409    IRQ # for SB DSP chip (3,5,7,9,10,15)
1410dma8
1411    DMA # for SB DSP chip (1,3)
1412dma16
1413    DMA # for SB DSP chip (5,7)
1414mpu_port
1415    MPU-401 port # (0x300,0x310,0x320,0x330)
1416mpu_irq
1417    MPU-401 irq # (2,3,5,7)
1418
1419This module supports multiple cards.
1420
1421Module snd-korg1212
1422-------------------
1423
1424Module for Korg 1212 IO PCI card
1425
1426This module supports multiple cards.
1427
1428Module snd-layla20
1429------------------
1430
1431Module for Echoaudio Layla20
1432
1433This module supports multiple cards.
1434The driver requires the firmware loader support on kernel.
1435
1436Module snd-layla24
1437------------------
1438
1439Module for Echoaudio Layla24
1440
1441This module supports multiple cards.
1442The driver requires the firmware loader support on kernel.
1443
1444Module snd-lola
1445---------------
1446
1447Module for Digigram Lola PCI-e boards
1448
1449This module supports multiple cards.
1450
1451Module snd-lx6464es
1452-------------------
1453
1454Module for Digigram LX6464ES boards
1455
1456This module supports multiple cards.
1457
1458Module snd-maestro3
1459-------------------
1460
1461Module for Allegro/Maestro3 chips
1462
1463external_amp
1464    enable external amp (enabled by default)
1465amp_gpio
1466    GPIO pin number for external amp (0-15) or -1 for default pin (8
1467    for allegro, 1 for others)
1468
1469This module supports autoprobe and multiple chips.
1470
1471Note: the binding of amplifier is dependent on hardware.
1472If there is no sound even though all channels are unmuted, try to
1473specify other gpio connection via amp_gpio option.
1474For example, a Panasonic notebook might need ``amp_gpio=0x0d``
1475option.
1476
1477The power-management is supported.
1478
1479Module snd-mia
1480---------------
1481
1482Module for Echoaudio Mia
1483
1484This module supports multiple cards.
1485The driver requires the firmware loader support on kernel.
1486
1487Module snd-miro
1488---------------
1489
1490Module for Miro soundcards: miroSOUND PCM 1 pro, miroSOUND PCM 12,
1491miroSOUND PCM 20 Radio.
1492
1493port
1494    Port # (0x530,0x604,0xe80,0xf40)
1495irq
1496    IRQ # (5,7,9,10,11)
1497dma1
1498    1st dma # (0,1,3)
1499dma2
1500    2nd dma # (0,1)
1501mpu_port
1502    MPU-401 port # (0x300,0x310,0x320,0x330)
1503mpu_irq
1504    MPU-401 irq # (5,7,9,10)
1505fm_port
1506    FM Port # (0x388)
1507wss
1508    enable WSS mode
1509ide
1510    enable onboard ide support
1511
1512Module snd-mixart
1513-----------------
1514
1515Module for Digigram miXart8 sound cards.
1516
1517This module supports multiple cards.
1518Note: One miXart8 board will be represented as 4 alsa cards.
1519See Documentation/sound/cards/mixart.rst for details.
1520
1521When the driver is compiled as a module and the hotplug firmware
1522is supported, the firmware data is loaded via hotplug automatically.
1523Install the necessary firmware files in alsa-firmware package.
1524When no hotplug fw loader is available, you need to load the
1525firmware via mixartloader utility in alsa-tools package.
1526
1527Module snd-mona
1528---------------
1529
1530Module for Echoaudio Mona
1531
1532This module supports multiple cards.
1533The driver requires the firmware loader support on kernel.
1534
1535Module snd-mpu401
1536-----------------
1537
1538Module for MPU-401 UART devices.
1539
1540port
1541    port number or -1 (disable)
1542irq
1543    IRQ number or -1 (disable)
1544pnp
1545    PnP detection - 0 = disable, 1 = enable (default)
1546
1547This module supports multiple devices and PnP.
1548
1549Module snd-msnd-classic
1550-----------------------
1551
1552Module for Turtle Beach MultiSound Classic, Tahiti or Monterey
1553soundcards.
1554
1555io
1556    Port # for msnd-classic card
1557irq
1558    IRQ # for msnd-classic card
1559mem
1560    Memory address (0xb0000, 0xc8000, 0xd0000, 0xd8000, 0xe0000 or 0xe8000)
1561write_ndelay
1562    enable write ndelay (default = 1)
1563calibrate_signal
1564    calibrate signal (default = 0)
1565isapnp
1566    ISA PnP detection - 0 = disable, 1 = enable (default)
1567digital
1568    Digital daughterboard present (default = 0)
1569cfg
1570    Config port (0x250, 0x260 or 0x270) default = PnP
1571reset
1572    Reset all devices
1573mpu_io
1574    MPU401 I/O port
1575mpu_irq
1576    MPU401 irq#
1577ide_io0
1578    IDE port #0
1579ide_io1
1580    IDE port #1
1581ide_irq
1582    IDE irq#
1583joystick_io
1584    Joystick I/O port
1585
1586The driver requires firmware files ``turtlebeach/msndinit.bin`` and
1587``turtlebeach/msndperm.bin`` in the proper firmware directory.
1588
1589See Documentation/sound/cards/multisound.sh for important information
1590about this driver.  Note that it has been discontinued, but the
1591Voyetra Turtle Beach knowledge base entry for it is still available
1592at
1593https://www.turtlebeach.com
1594
1595Module snd-msnd-pinnacle
1596------------------------
1597
1598Module for Turtle Beach MultiSound Pinnacle/Fiji soundcards.
1599
1600io
1601    Port # for pinnacle/fiji card
1602irq
1603    IRQ # for pinnalce/fiji card
1604mem
1605    Memory address (0xb0000, 0xc8000, 0xd0000, 0xd8000, 0xe0000 or 0xe8000)
1606write_ndelay
1607    enable write ndelay (default = 1)
1608calibrate_signal
1609    calibrate signal (default = 0)
1610isapnp
1611    ISA PnP detection - 0 = disable, 1 = enable (default)
1612
1613The driver requires firmware files ``turtlebeach/pndspini.bin`` and
1614``turtlebeach/pndsperm.bin`` in the proper firmware directory.
1615
1616Module snd-mtpav
1617----------------
1618
1619Module for MOTU MidiTimePiece AV multiport MIDI (on the parallel
1620port).
1621
1622port
1623    I/O port # for MTPAV (0x378,0x278, default=0x378)
1624irq
1625    IRQ # for MTPAV (7,5, default=7)
1626hwports
1627    number of supported hardware ports, default=8.
1628
1629Module supports only 1 card.  This module has no enable option.
1630
1631Module snd-mts64
1632----------------
1633
1634Module for Ego Systems (ESI) Miditerminal 4140
1635
1636This module supports multiple devices.
1637Requires parport (``CONFIG_PARPORT``).
1638
1639Module snd-nm256
1640----------------
1641
1642Module for NeoMagic NM256AV/ZX chips
1643
1644playback_bufsize
1645    max playback frame size in kB (4-128kB)
1646capture_bufsize
1647    max capture frame size in kB (4-128kB)
1648force_ac97
1649    0 or 1 (disabled by default)
1650buffer_top
1651    specify buffer top address
1652use_cache
1653    0 or 1 (disabled by default)
1654vaio_hack
1655    alias buffer_top=0x25a800
1656reset_workaround
1657    enable AC97 RESET workaround for some laptops
1658reset_workaround2
1659    enable extended AC97 RESET workaround for some other laptops
1660
1661This module supports one chip and autoprobe.
1662
1663The power-management is supported.
1664
1665Note: on some notebooks the buffer address cannot be detected
1666automatically, or causes hang-up during initialization.
1667In such a case, specify the buffer top address explicitly via
1668the buffer_top option.
1669For example,
1670Sony F250: buffer_top=0x25a800
1671Sony F270: buffer_top=0x272800
1672The driver supports only ac97 codec.  It's possible to force
1673to initialize/use ac97 although it's not detected.  In such a
1674case, use ``force_ac97=1`` option - but *NO* guarantee whether it
1675works!
1676
1677Note: The NM256 chip can be linked internally with non-AC97
1678codecs.  This driver supports only the AC97 codec, and won't work
1679with machines with other (most likely CS423x or OPL3SAx) chips,
1680even though the device is detected in lspci.  In such a case, try
1681other drivers, e.g. snd-cs4232 or snd-opl3sa2.  Some has ISA-PnP
1682but some doesn't have ISA PnP.  You'll need to specify ``isapnp=0``
1683and proper hardware parameters in the case without ISA PnP.
1684
1685Note: some laptops need a workaround for AC97 RESET.  For the
1686known hardware like Dell Latitude LS and Sony PCG-F305, this
1687workaround is enabled automatically.  For other laptops with a
1688hard freeze, you can try ``reset_workaround=1`` option.
1689
1690Note: Dell Latitude CSx laptops have another problem regarding
1691AC97 RESET.  On these laptops, reset_workaround2 option is
1692turned on as default.  This option is worth to try if the
1693previous reset_workaround option doesn't help.
1694
1695Note: This driver is really crappy.  It's a porting from the
1696OSS driver, which is a result of black-magic reverse engineering.
1697The detection of codec will fail if the driver is loaded *after*
1698X-server as described above.  You might be able to force to load
1699the module, but it may result in hang-up.   Hence, make sure that
1700you load this module *before* X if you encounter this kind of
1701problem.
1702
1703Module snd-opl3sa2
1704------------------
1705
1706Module for Yamaha OPL3-SA2/SA3 sound cards.
1707
1708isapnp
1709    ISA PnP detection - 0 = disable, 1 = enable (default)
1710
1711with ``isapnp=0``, the following options are available:
1712
1713port
1714    control port # for OPL3-SA chip (0x370)
1715sb_port
1716    SB port # for OPL3-SA chip (0x220,0x240)
1717wss_port
1718    WSS port # for OPL3-SA chip (0x530,0xe80,0xf40,0x604)
1719midi_port
1720    port # for MPU-401 UART (0x300,0x330), -1 = disable
1721fm_port
1722    FM port # for OPL3-SA chip (0x388), -1 = disable
1723irq
1724    IRQ # for OPL3-SA chip (5,7,9,10)
1725dma1
1726    first DMA # for Yamaha OPL3-SA chip (0,1,3)
1727dma2
1728    second DMA # for Yamaha OPL3-SA chip (0,1,3), -1 = disable
1729
1730This module supports multiple cards and ISA PnP.  It does not support
1731autoprobe (if ISA PnP is not used) thus all ports must be specified!!!
1732
1733The power-management is supported.
1734
1735Module snd-opti92x-ad1848
1736-------------------------
1737
1738Module for sound cards based on OPTi 82c92x and Analog Devices AD1848 chips.
1739Module works with OAK Mozart cards as well.
1740
1741isapnp
1742    ISA PnP detection - 0 = disable, 1 = enable (default)
1743
1744with ``isapnp=0``, the following options are available:
1745
1746port
1747    port # for WSS chip (0x530,0xe80,0xf40,0x604)
1748mpu_port
1749    port # for MPU-401 UART (0x300,0x310,0x320,0x330)
1750fm_port
1751    port # for OPL3 device (0x388)
1752irq
1753    IRQ # for WSS chip (5,7,9,10,11)
1754mpu_irq
1755    IRQ # for MPU-401 UART (5,7,9,10)
1756dma1
1757    first DMA # for WSS chip (0,1,3)
1758
1759This module supports only one card, autoprobe and PnP.
1760
1761Module snd-opti92x-cs4231
1762-------------------------
1763
1764Module for sound cards based on OPTi 82c92x and Crystal CS4231 chips.
1765
1766isapnp
1767    ISA PnP detection - 0 = disable, 1 = enable (default)
1768
1769with ``isapnp=0``, the following options are available:
1770
1771port
1772    port # for WSS chip (0x530,0xe80,0xf40,0x604)
1773mpu_port
1774    port # for MPU-401 UART (0x300,0x310,0x320,0x330)
1775fm_port
1776    port # for OPL3 device (0x388)
1777irq
1778    IRQ # for WSS chip (5,7,9,10,11)
1779mpu_irq
1780    IRQ # for MPU-401 UART (5,7,9,10)
1781dma1
1782    first DMA # for WSS chip (0,1,3)
1783dma2
1784    second DMA # for WSS chip (0,1,3)
1785
1786This module supports only one card, autoprobe and PnP.
1787
1788Module snd-opti93x
1789------------------
1790
1791Module for sound cards based on OPTi 82c93x chips.
1792
1793isapnp
1794    ISA PnP detection - 0 = disable, 1 = enable (default)
1795
1796with ``isapnp=0``, the following options are available:
1797
1798port
1799    port # for WSS chip (0x530,0xe80,0xf40,0x604)
1800mpu_port
1801    port # for MPU-401 UART (0x300,0x310,0x320,0x330)
1802fm_port
1803    port # for OPL3 device (0x388)
1804irq
1805    IRQ # for WSS chip (5,7,9,10,11)
1806mpu_irq
1807    IRQ # for MPU-401 UART (5,7,9,10)
1808dma1
1809    first DMA # for WSS chip (0,1,3)
1810dma2
1811    second DMA # for WSS chip (0,1,3)
1812
1813This module supports only one card, autoprobe and PnP.
1814
1815Module snd-oxygen
1816-----------------
1817
1818Module for sound cards based on the C-Media CMI8786/8787/8788 chip:
1819
1820* Asound A-8788
1821* Asus Xonar DG/DGX
1822* AuzenTech X-Meridian
1823* AuzenTech X-Meridian 2G
1824* Bgears b-Enspirer
1825* Club3D Theatron DTS
1826* HT-Omega Claro (plus)
1827* HT-Omega Claro halo (XT)
1828* Kuroutoshikou CMI8787-HG2PCI
1829* Razer Barracuda AC-1
1830* Sondigo Inferno
1831* TempoTec HiFier Fantasia
1832* TempoTec HiFier Serenade
1833
1834This module supports autoprobe and multiple cards.
1835
1836Module snd-pcsp
1837---------------
1838
1839Module for internal PC-Speaker.
1840
1841nopcm
1842    Disable PC-Speaker PCM sound. Only beeps remain.
1843nforce_wa
1844    enable NForce chipset workaround. Expect bad sound.
1845
1846This module supports system beeps, some kind of PCM playback and
1847even a few mixer controls.
1848
1849Module snd-pcxhr
1850----------------
1851
1852Module for Digigram PCXHR boards
1853
1854This module supports multiple cards.
1855
1856Module snd-portman2x4
1857---------------------
1858
1859Module for Midiman Portman 2x4 parallel port MIDI interface
1860
1861This module supports multiple cards.
1862
1863Module snd-powermac (on ppc only)
1864---------------------------------
1865
1866Module for PowerMac, iMac and iBook on-board soundchips
1867
1868enable_beep
1869    enable beep using PCM (enabled as default)
1870
1871Module supports autoprobe a chip.
1872
1873Note: the driver may have problems regarding endianness.
1874
1875The power-management is supported.
1876
1877Module snd-pxa2xx-ac97 (on arm only)
1878------------------------------------
1879
1880Module for AC97 driver for the Intel PXA2xx chip
1881
1882For ARM architecture only.
1883
1884The power-management is supported.
1885
1886Module snd-riptide
1887------------------
1888
1889Module for Conexant Riptide chip
1890
1891joystick_port
1892    Joystick port # (default: 0x200)
1893mpu_port
1894    MPU401 port # (default: 0x330)
1895opl3_port
1896    OPL3 port # (default: 0x388)
1897
1898This module supports multiple cards.
1899The driver requires the firmware loader support on kernel.
1900You need to install the firmware file ``riptide.hex`` to the standard
1901firmware path (e.g. /lib/firmware).
1902
1903Module snd-rme32
1904----------------
1905
1906Module for RME Digi32, Digi32 Pro and Digi32/8 (Sek'd Prodif32,
1907Prodif96 and Prodif Gold) sound cards.
1908
1909This module supports multiple cards.
1910
1911Module snd-rme96
1912----------------
1913
1914Module for RME Digi96, Digi96/8 and Digi96/8 PRO/PAD/PST sound cards.
1915
1916This module supports multiple cards.
1917
1918Module snd-rme9652
1919------------------
1920
1921Module for RME Digi9652 (Hammerfall, Hammerfall-Light) sound cards.
1922
1923precise_ptr
1924    Enable precise pointer (doesn't work reliably). (default = 0)
1925
1926This module supports multiple cards.
1927
1928Note: snd-page-alloc module does the job which snd-hammerfall-mem
1929module did formerly.  It will allocate the buffers in advance
1930when any RME9652 cards are found.  To make the buffer
1931allocation sure, load snd-page-alloc module in the early
1932stage of boot sequence.  See `Early Buffer Allocation`_
1933section.
1934
1935Module snd-sa11xx-uda1341 (on arm only)
1936---------------------------------------
1937
1938Module for Philips UDA1341TS on Compaq iPAQ H3600 sound card.
1939
1940Module supports only one card.
1941Module has no enable and index options.
1942
1943The power-management is supported.
1944
1945Module snd-sb8
1946--------------
1947
1948Module for 8-bit SoundBlaster cards: SoundBlaster 1.0, SoundBlaster 2.0,
1949SoundBlaster Pro
1950
1951port
1952    port # for SB DSP chip (0x220,0x240,0x260)
1953irq
1954    IRQ # for SB DSP chip (5,7,9,10)
1955dma8
1956    DMA # for SB DSP chip (1,3)
1957
1958This module supports multiple cards and autoprobe.
1959
1960The power-management is supported.
1961
1962Module snd-sb16 and snd-sbawe
1963-----------------------------
1964
1965Module for 16-bit SoundBlaster cards: SoundBlaster 16 (PnP),
1966SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 PnP
1967
1968mic_agc
1969    Mic Auto-Gain-Control - 0 = disable, 1 = enable (default)
1970csp
1971    ASP/CSP chip support - 0 = disable (default), 1 = enable
1972isapnp
1973    ISA PnP detection - 0 = disable, 1 = enable (default)
1974
1975with isapnp=0, the following options are available:
1976
1977port
1978    port # for SB DSP 4.x chip (0x220,0x240,0x260)
1979mpu_port
1980    port # for MPU-401 UART (0x300,0x330), -1 = disable
1981awe_port
1982    base port # for EMU8000 synthesizer (0x620,0x640,0x660) (snd-sbawe
1983    module only)
1984irq
1985    IRQ # for SB DSP 4.x chip (5,7,9,10)
1986dma8
1987    8-bit DMA # for SB DSP 4.x chip (0,1,3)
1988dma16
1989    16-bit DMA # for SB DSP 4.x chip (5,6,7)
1990
1991This module supports multiple cards, autoprobe and ISA PnP.
1992
1993Note: To use Vibra16X cards in 16-bit half duplex mode, you must
1994disable 16bit DMA with dma16 = -1 module parameter.
1995Also, all Sound Blaster 16 type cards can operate in 16-bit
1996half duplex mode through 8-bit DMA channel by disabling their
199716-bit DMA channel.
1998
1999The power-management is supported.
2000
2001Module snd-sc6000
2002-----------------
2003
2004Module for Gallant SC-6000 soundcard and later models: SC-6600 and
2005SC-7000.
2006
2007port
2008    Port # (0x220 or 0x240)
2009mss_port
2010    MSS Port # (0x530 or 0xe80)
2011irq
2012    IRQ # (5,7,9,10,11)
2013mpu_irq
2014    MPU-401 IRQ # (5,7,9,10) ,0 - no MPU-401 irq
2015dma
2016    DMA # (1,3,0)
2017joystick
2018    Enable gameport - 0 = disable (default), 1 = enable
2019
2020This module supports multiple cards.
2021
2022This card is also known as Audio Excel DSP 16 or Zoltrix AV302.
2023
2024Module snd-sscape
2025-----------------
2026
2027Module for ENSONIQ SoundScape cards.
2028
2029port
2030    Port # (PnP setup)
2031wss_port
2032    WSS Port # (PnP setup)
2033irq
2034    IRQ # (PnP setup)
2035mpu_irq
2036    MPU-401 IRQ # (PnP setup)
2037dma
2038    DMA # (PnP setup)
2039dma2
2040    2nd DMA # (PnP setup, -1 to disable)
2041joystick
2042    Enable gameport - 0 = disable (default), 1 = enable
2043
2044This module supports multiple cards.
2045
2046The driver requires the firmware loader support on kernel.
2047
2048Module snd-sun-amd7930 (on sparc only)
2049--------------------------------------
2050
2051Module for AMD7930 sound chips found on Sparcs.
2052
2053This module supports multiple cards.
2054
2055Module snd-sun-cs4231 (on sparc only)
2056-------------------------------------
2057
2058Module for CS4231 sound chips found on Sparcs.
2059
2060This module supports multiple cards.
2061
2062Module snd-sun-dbri (on sparc only)
2063-----------------------------------
2064
2065Module for DBRI sound chips found on Sparcs.
2066
2067This module supports multiple cards.
2068
2069Module snd-wavefront
2070--------------------
2071
2072Module for Turtle Beach Maui, Tropez and Tropez+ sound cards.
2073
2074use_cs4232_midi
2075    Use CS4232 MPU-401 interface
2076    (inaccessibly located inside your computer)
2077isapnp
2078    ISA PnP detection - 0 = disable, 1 = enable (default)
2079
2080with isapnp=0, the following options are available:
2081
2082cs4232_pcm_port
2083    Port # for CS4232 PCM interface.
2084cs4232_pcm_irq
2085    IRQ # for CS4232 PCM interface (5,7,9,11,12,15).
2086cs4232_mpu_port
2087    Port # for CS4232 MPU-401 interface.
2088cs4232_mpu_irq
2089    IRQ # for CS4232 MPU-401 interface (9,11,12,15).
2090ics2115_port
2091    Port # for ICS2115
2092ics2115_irq
2093    IRQ # for ICS2115
2094fm_port
2095    FM OPL-3 Port #
2096dma1
2097    DMA1 # for CS4232 PCM interface.
2098dma2
2099    DMA2 # for CS4232 PCM interface.
2100
2101The below are options for wavefront_synth features:
2102
2103wf_raw
2104    Assume that we need to boot the OS (default:no);
2105    If yes, then during driver loading, the state of the board is
2106    ignored, and we reset the board and load the firmware anyway.
2107fx_raw
2108    Assume that the FX process needs help (default:yes);
2109    If false, we'll leave the FX processor in whatever state it is
2110    when the driver is loaded.  The default is to download the
2111    microprogram and associated coefficients to set it up for
2112    "default" operation, whatever that means.
2113debug_default
2114    Debug parameters for card initialization
2115wait_usecs
2116    How long to wait without sleeping, usecs (default:150);
2117    This magic number seems to give pretty optimal throughput
2118    based on my limited experimentation.
2119    If you want to play around with it and find a better value, be
2120    my guest. Remember, the idea is to get a number that causes us
2121    to just busy wait for as many WaveFront commands as possible,
2122    without coming up with a number so large that we hog the whole
2123    CPU.
2124    Specifically, with this number, out of about 134,000 status
2125    waits, only about 250 result in a sleep.
2126sleep_interval
2127    How long to sleep when waiting for reply (default: 100)
2128sleep_tries
2129    How many times to try sleeping during a wait (default: 50)
2130ospath
2131    Pathname to processed ICS2115 OS firmware (default:wavefront.os);
2132    The path name of the ISC2115 OS firmware.  In the recent
2133    version, it's handled via firmware loader framework, so it
2134    must be installed in the proper path, typically,
2135    /lib/firmware.
2136reset_time
2137    How long to wait for a reset to take effect (default:2)
2138ramcheck_time
2139    How many seconds to wait for the RAM test (default:20)
2140osrun_time
2141    How many seconds to wait for the ICS2115 OS (default:10)
2142
2143This module supports multiple cards and ISA PnP.
2144
2145Note: the firmware file ``wavefront.os`` was located in the earlier
2146version in /etc.  Now it's loaded via firmware loader, and
2147must be in the proper firmware path, such as /lib/firmware.
2148Copy (or symlink) the file appropriately if you get an error
2149regarding firmware downloading after upgrading the kernel.
2150
2151Module snd-sonicvibes
2152---------------------
2153
2154Module for S3 SonicVibes PCI sound cards.
2155* PINE Schubert 32 PCI
2156
2157reverb
2158    Reverb Enable - 1 = enable, 0 = disable (default);
2159    SoundCard must have onboard SRAM for this.
2160mge
2161    Mic Gain Enable - 1 = enable, 0 = disable (default)
2162
2163This module supports multiple cards and autoprobe.
2164
2165Module snd-serial-u16550
2166------------------------
2167
2168Module for UART16550A serial MIDI ports.
2169
2170port
2171    port # for UART16550A chip
2172irq
2173    IRQ # for UART16550A chip, -1 = poll mode
2174speed
2175    speed in bauds (9600,19200,38400,57600,115200)
2176    38400 = default
2177base
2178    base for divisor in bauds (57600,115200,230400,460800)
2179    115200 = default
2180outs
2181    number of MIDI ports in a serial port (1-4)
2182    1 = default
2183adaptor
2184    Type of adaptor.
2185	0 = Soundcanvas, 1 = MS-124T, 2 = MS-124W S/A,
2186	3 = MS-124W M/B, 4 = Generic
2187
2188This module supports multiple cards. This module does not support autoprobe
2189thus the main port must be specified!!! Other options are optional.
2190
2191Module snd-trident
2192------------------
2193
2194Module for Trident 4DWave DX/NX sound cards.
2195* Best Union  Miss Melody 4DWave PCI
2196* HIS  4DWave PCI
2197* Warpspeed  ONSpeed 4DWave PCI
2198* AzTech  PCI 64-Q3D
2199* Addonics  SV 750
2200* CHIC  True Sound 4Dwave
2201* Shark  Predator4D-PCI
2202* Jaton  SonicWave 4D
2203* SiS SI7018 PCI Audio
2204* Hoontech SoundTrack Digital 4DWave NX
2205
2206pcm_channels
2207    max channels (voices) reserved for PCM
2208wavetable_size
2209    max wavetable size in kB (4-?kb)
2210
2211This module supports multiple cards and autoprobe.
2212
2213The power-management is supported.
2214
2215Module snd-ua101
2216----------------
2217
2218Module for the Edirol UA-101/UA-1000 audio/MIDI interfaces.
2219
2220This module supports multiple devices, autoprobe and hotplugging.
2221
2222Module snd-usb-audio
2223--------------------
2224
2225Module for USB audio and USB MIDI devices.
2226
2227vid
2228    Vendor ID for the device (optional)
2229pid
2230    Product ID for the device (optional)
2231nrpacks
2232    Max. number of packets per URB (default: 8)
2233device_setup
2234    Device specific magic number (optional);
2235    Influence depends on the device
2236    Default: 0x0000
2237ignore_ctl_error
2238    Ignore any USB-controller regarding mixer interface (default: no)
2239autoclock
2240    Enable auto-clock selection for UAC2 devices (default: yes)
2241quirk_alias
2242    Quirk alias list, pass strings like ``0123abcd:5678beef``, which
2243    applies the existing quirk for the device 5678:beef to a new
2244    device 0123:abcd.
2245implicit_fb
2246    Apply the generic implicit feedback sync mode.  When this is set
2247    and the playback stream sync mode is ASYNC, the driver tries to
2248    tie an adjacent ASYNC capture stream as the implicit feedback
2249    source.  This is equivalent with quirk_flags bit 17.
2250use_vmalloc
2251    Use vmalloc() for allocations of the PCM buffers (default: yes).
2252    For architectures with non-coherent memory like ARM or MIPS, the
2253    mmap access may give inconsistent results with vmalloc'ed
2254    buffers.  If mmap is used on such architectures, turn off this
2255    option, so that the DMA-coherent buffers are allocated and used
2256    instead.
2257delayed_register
2258    The option is needed for devices that have multiple streams
2259    defined in multiple USB interfaces.  The driver may invoke
2260    registrations multiple times (once per interface) and this may
2261    lead to the insufficient device enumeration.
2262    This option receives an array of strings, and you can pass
2263    ID:INTERFACE like ``0123abcd:4`` for performing the delayed
2264    registration to the given device.  In this example, when a USB
2265    device 0123:abcd is probed, the driver waits the registration
2266    until the USB interface 4 gets probed.
2267    The driver prints a message like "Found post-registration device
2268    assignment: 1234abcd:04" for such a device, so that user can
2269    notice the need.
2270quirk_flags
2271    Contains the bit flags for various device specific workarounds.
2272    Applied to the corresponding card index.
2273
2274        * bit 0: Skip reading sample rate for devices
2275        * bit 1: Create Media Controller API entries
2276        * bit 2: Allow alignment on audio sub-slot at transfer
2277        * bit 3: Add length specifier to transfers
2278        * bit 4: Start playback stream at first in implement feedback mode
2279        * bit 5: Skip clock selector setup
2280        * bit 6: Ignore errors from clock source search
2281        * bit 7: Indicates ITF-USB DSD based DACs
2282        * bit 8: Add a delay of 20ms at each control message handling
2283        * bit 9: Add a delay of 1-2ms at each control message handling
2284        * bit 10: Add a delay of 5-6ms at each control message handling
2285        * bit 11: Add a delay of 50ms at each interface setup
2286        * bit 12: Perform sample rate validations at probe
2287        * bit 13: Disable runtime PM autosuspend
2288        * bit 14: Ignore errors for mixer access
2289        * bit 15: Support generic DSD raw U32_BE format
2290        * bit 16: Set up the interface at first like UAC1
2291        * bit 17: Apply the generic implicit feedback sync mode
2292        * bit 18: Don't apply implicit feedback sync mode
2293
2294This module supports multiple devices, autoprobe and hotplugging.
2295
2296NB: ``nrpacks`` parameter can be modified dynamically via sysfs.
2297Don't put the value over 20.  Changing via sysfs has no sanity
2298check.
2299
2300NB: ``ignore_ctl_error=1`` may help when you get an error at accessing
2301the mixer element such as URB error -22.  This happens on some
2302buggy USB device or the controller.  This workaround corresponds to
2303the ``quirk_flags`` bit 14, too.
2304
2305NB: ``quirk_alias`` option is provided only for testing / development.
2306If you want to have a proper support, contact to upstream for
2307adding the matching quirk in the driver code statically.
2308Ditto for ``quirk_flags``.  If a device is known to require specific
2309workarounds, please report to the upstream.
2310
2311Module snd-usb-caiaq
2312--------------------
2313
2314Module for caiaq UB audio interfaces,
2315
2316* Native Instruments RigKontrol2
2317* Native Instruments Kore Controller
2318* Native Instruments Audio Kontrol 1
2319* Native Instruments Audio 8 DJ
2320
2321This module supports multiple devices, autoprobe and hotplugging.
2322
2323Module snd-usb-usx2y
2324--------------------
2325
2326Module for Tascam USB US-122, US-224 and US-428 devices.
2327
2328This module supports multiple devices, autoprobe and hotplugging.
2329
2330Note: you need to load the firmware via ``usx2yloader`` utility included
2331in alsa-tools and alsa-firmware packages.
2332
2333Module snd-via82xx
2334------------------
2335
2336Module for AC'97 motherboards based on VIA 82C686A/686B, 8233, 8233A,
23378233C, 8235, 8237 (south) bridge.
2338
2339mpu_port
2340    0x300,0x310,0x320,0x330, otherwise obtain BIOS setup
2341    [VIA686A/686B only]
2342joystick
2343    Enable joystick (default off) [VIA686A/686B only]
2344ac97_clock
2345    AC'97 codec clock base (default 48000Hz)
2346dxs_support
2347    support DXS channels, 0 = auto (default), 1 = enable, 2 = disable,
2348    3 = 48k only, 4 = no VRA, 5 = enable any sample rate and different
2349    sample rates on different channels [VIA8233/C, 8235, 8237 only]
2350ac97_quirk
2351    AC'97 workaround for strange hardware;
2352    See `AC97 Quirk Option`_ section below.
2353
2354This module supports one chip and autoprobe.
2355
2356Note: on some SMP motherboards like MSI 694D the interrupts might
2357not be generated properly.  In such a case, please try to
2358set the SMP (or MPS) version on BIOS to 1.1 instead of
2359default value 1.4.  Then the interrupt number will be
2360assigned under 15. You might also upgrade your BIOS.
2361
2362Note: VIA8233/5/7 (not VIA8233A) can support DXS (direct sound)
2363channels as the first PCM.  On these channels, up to 4
2364streams can be played at the same time, and the controller
2365can perform sample rate conversion with separate rates for
2366each channel.
2367As default (``dxs_support = 0``), 48k fixed rate is chosen
2368except for the known devices since the output is often
2369noisy except for 48k on some mother boards due to the
2370bug of BIOS.
2371Please try once ``dxs_support=5`` and if it works on other
2372sample rates (e.g. 44.1kHz of mp3 playback), please let us
2373know the PCI subsystem vendor/device id's (output of
2374``lspci -nv``).
2375If ``dxs_support=5`` does not work, try ``dxs_support=4``; if it
2376doesn't work too, try dxs_support=1.  (dxs_support=1 is
2377usually for old motherboards.  The correct implemented
2378board should work with 4 or 5.)  If it still doesn't
2379work and the default setting is ok, ``dxs_support=3`` is the
2380right choice.  If the default setting doesn't work at all,
2381try ``dxs_support=2`` to disable the DXS channels.
2382In any cases, please let us know the result and the
2383subsystem vendor/device ids.  See `Links and Addresses`_
2384below.
2385
2386Note: for the MPU401 on VIA823x, use snd-mpu401 driver
2387additionally.  The mpu_port option is for VIA686 chips only.
2388
2389The power-management is supported.
2390
2391Module snd-via82xx-modem
2392------------------------
2393
2394Module for VIA82xx AC97 modem
2395
2396ac97_clock
2397    AC'97 codec clock base (default 48000Hz)
2398
2399This module supports one card and autoprobe.
2400
2401Note: The default index value of this module is -2, i.e. the first
2402slot is excluded.
2403
2404The power-management is supported.
2405
2406Module snd-virmidi
2407------------------
2408
2409Module for virtual rawmidi devices.
2410This module creates virtual rawmidi devices which communicate
2411to the corresponding ALSA sequencer ports.
2412
2413midi_devs
2414    MIDI devices # (1-4, default=4)
2415
2416This module supports multiple cards.
2417
2418Module snd-virtuoso
2419-------------------
2420
2421Module for sound cards based on the Asus AV66/AV100/AV200 chips,
2422i.e., Xonar D1, DX, D2, D2X, DS, DSX, Essence ST (Deluxe),
2423Essence STX (II), HDAV1.3 (Deluxe), and HDAV1.3 Slim.
2424
2425This module supports autoprobe and multiple cards.
2426
2427Module snd-vx222
2428----------------
2429
2430Module for Digigram VX-Pocket VX222, V222 v2 and Mic cards.
2431
2432mic
2433    Enable Microphone on V222 Mic (NYI)
2434ibl
2435    Capture IBL size. (default = 0, minimum size)
2436
2437This module supports multiple cards.
2438
2439When the driver is compiled as a module and the hotplug firmware
2440is supported, the firmware data is loaded via hotplug automatically.
2441Install the necessary firmware files in alsa-firmware package.
2442When no hotplug fw loader is available, you need to load the
2443firmware via vxloader utility in alsa-tools package.  To invoke
2444vxloader automatically, add the following to /etc/modprobe.d/alsa.conf
2445
2446::
2447
2448  install snd-vx222 /sbin/modprobe --first-time -i snd-vx222\
2449    && /usr/bin/vxloader
2450
2451(for 2.2/2.4 kernels, add ``post-install /usr/bin/vxloader`` to
2452/etc/modules.conf, instead.)
2453IBL size defines the interrupts period for PCM.  The smaller size
2454gives smaller latency but leads to more CPU consumption, too.
2455The size is usually aligned to 126.  As default (=0), the smallest
2456size is chosen.  The possible IBL values can be found in
2457/proc/asound/cardX/vx-status proc file.
2458
2459The power-management is supported.
2460
2461Module snd-vxpocket
2462-------------------
2463
2464Module for Digigram VX-Pocket VX2 and 440 PCMCIA cards.
2465
2466ibl
2467    Capture IBL size. (default = 0, minimum size)
2468
2469This module supports multiple cards.  The module is compiled only when
2470PCMCIA is supported on kernel.
2471
2472With the older 2.6.x kernel, to activate the driver via the card
2473manager, you'll need to set up /etc/pcmcia/vxpocket.conf.  See the
2474sound/pcmcia/vx/vxpocket.c.  2.6.13 or later kernel requires no
2475longer require a config file.
2476
2477When the driver is compiled as a module and the hotplug firmware
2478is supported, the firmware data is loaded via hotplug automatically.
2479Install the necessary firmware files in alsa-firmware package.
2480When no hotplug fw loader is available, you need to load the
2481firmware via vxloader utility in alsa-tools package.
2482
2483About capture IBL, see the description of snd-vx222 module.
2484
2485Note: snd-vxp440 driver is merged to snd-vxpocket driver since
2486ALSA 1.0.10.
2487
2488The power-management is supported.
2489
2490Module snd-ymfpci
2491-----------------
2492
2493Module for Yamaha PCI chips (YMF72x, YMF74x & YMF75x).
2494
2495mpu_port
2496    0x300,0x330,0x332,0x334, 0 (disable) by default,
2497    1 (auto-detect for YMF744/754 only)
2498fm_port
2499    0x388,0x398,0x3a0,0x3a8, 0 (disable) by default
2500    1 (auto-detect for YMF744/754 only)
2501joystick_port
2502    0x201,0x202,0x204,0x205, 0 (disable) by default,
2503    1 (auto-detect)
2504rear_switch
2505    enable shared rear/line-in switch (bool)
2506
2507This module supports autoprobe and multiple chips.
2508
2509The power-management is supported.
2510
2511Module snd-pdaudiocf
2512--------------------
2513
2514Module for Sound Core PDAudioCF sound card.
2515
2516The power-management is supported.
2517
2518
2519AC97 Quirk Option
2520=================
2521
2522The ac97_quirk option is used to enable/override the workaround for
2523specific devices on drivers for on-board AC'97 controllers like
2524snd-intel8x0.  Some hardware have swapped output pins between Master
2525and Headphone, or Surround (thanks to confusion of AC'97
2526specifications from version to version :-)
2527
2528The driver provides the auto-detection of known problematic devices,
2529but some might be unknown or wrongly detected.  In such a case, pass
2530the proper value with this option.
2531
2532The following strings are accepted:
2533
2534default
2535    Don't override the default setting
2536none
2537    Disable the quirk
2538hp_only
2539    Bind Master and Headphone controls as a single control
2540swap_hp
2541    Swap headphone and master controls
2542swap_surround
2543    Swap master and surround controls
2544ad_sharing
2545    For AD1985, turn on OMS bit and use headphone
2546alc_jack
2547    For ALC65x, turn on the jack sense mode
2548inv_eapd
2549    Inverted EAPD implementation
2550mute_led
2551    Bind EAPD bit for turning on/off mute LED
2552
2553For backward compatibility, the corresponding integer value -1, 0, ...
2554are  accepted, too.
2555
2556For example, if ``Master`` volume control has no effect on your device
2557but only ``Headphone`` does, pass ac97_quirk=hp_only module option.
2558
2559
2560Configuring Non-ISAPNP Cards
2561============================
2562
2563When the kernel is configured with ISA-PnP support, the modules
2564supporting the isapnp cards will have module options ``isapnp``.
2565If this option is set, *only* the ISA-PnP devices will be probed.
2566For probing the non ISA-PnP cards, you have to pass ``isapnp=0`` option
2567together with the proper i/o and irq configuration.
2568
2569When the kernel is configured without ISA-PnP support, isapnp option
2570will be not built in.
2571
2572
2573Module Autoloading Support
2574==========================
2575
2576The ALSA drivers can be loaded automatically on demand by defining
2577module aliases.  The string ``snd-card-%1`` is requested for ALSA native
2578devices where ``%i`` is sound card number from zero to seven.
2579
2580To auto-load an ALSA driver for OSS services, define the string
2581``sound-slot-%i`` where ``%i`` means the slot number for OSS, which
2582corresponds to the card index of ALSA.  Usually, define this
2583as the same card module.
2584
2585An example configuration for a single emu10k1 card is like below:
2586::
2587
2588    ----- /etc/modprobe.d/alsa.conf
2589    alias snd-card-0 snd-emu10k1
2590    alias sound-slot-0 snd-emu10k1
2591    ----- /etc/modprobe.d/alsa.conf
2592
2593The available number of auto-loaded sound cards depends on the module
2594option ``cards_limit`` of snd module.  As default it's set to 1.
2595To enable the auto-loading of multiple cards, specify the number of
2596sound cards in that option.
2597
2598When multiple cards are available, it'd better to specify the index
2599number for each card via module option, too, so that the order of
2600cards is kept consistent.
2601
2602An example configuration for two sound cards is like below:
2603::
2604
2605    ----- /etc/modprobe.d/alsa.conf
2606    # ALSA portion
2607    options snd cards_limit=2
2608    alias snd-card-0 snd-interwave
2609    alias snd-card-1 snd-ens1371
2610    options snd-interwave index=0
2611    options snd-ens1371 index=1
2612    # OSS/Free portion
2613    alias sound-slot-0 snd-interwave
2614    alias sound-slot-1 snd-ens1371
2615    ----- /etc/modprobe.d/alsa.conf
2616
2617In this example, the interwave card is always loaded as the first card
2618(index 0) and ens1371 as the second (index 1).
2619
2620Alternative (and new) way to fixate the slot assignment is to use
2621``slots`` option of snd module.  In the case above, specify like the
2622following:
2623::
2624
2625    options snd slots=snd-interwave,snd-ens1371
2626
2627Then, the first slot (#0) is reserved for snd-interwave driver, and
2628the second (#1) for snd-ens1371.  You can omit index option in each
2629driver if slots option is used (although you can still have them at
2630the same time as long as they don't conflict).
2631
2632The slots option is especially useful for avoiding the possible
2633hot-plugging and the resultant slot conflict.  For example, in the
2634case above again, the first two slots are already reserved.  If any
2635other driver (e.g. snd-usb-audio) is loaded before snd-interwave or
2636snd-ens1371, it will be assigned to the third or later slot.
2637
2638When a module name is given with '!', the slot will be given for any
2639modules but that name.  For example, ``slots=!snd-pcsp`` will reserve
2640the first slot for any modules but snd-pcsp.
2641
2642
2643ALSA PCM devices to OSS devices mapping
2644=======================================
2645::
2646
2647    /dev/snd/pcmC0D0[c|p]  -> /dev/audio0 (/dev/audio) -> minor 4
2648    /dev/snd/pcmC0D0[c|p]  -> /dev/dsp0 (/dev/dsp)     -> minor 3
2649    /dev/snd/pcmC0D1[c|p]  -> /dev/adsp0 (/dev/adsp)   -> minor 12
2650    /dev/snd/pcmC1D0[c|p]  -> /dev/audio1              -> minor 4+16 = 20
2651    /dev/snd/pcmC1D0[c|p]  -> /dev/dsp1                -> minor 3+16 = 19
2652    /dev/snd/pcmC1D1[c|p]  -> /dev/adsp1               -> minor 12+16 = 28
2653    /dev/snd/pcmC2D0[c|p]  -> /dev/audio2              -> minor 4+32 = 36
2654    /dev/snd/pcmC2D0[c|p]  -> /dev/dsp2                -> minor 3+32 = 39
2655    /dev/snd/pcmC2D1[c|p]  -> /dev/adsp2               -> minor 12+32 = 44
2656
2657The first number from ``/dev/snd/pcmC{X}D{Y}[c|p]`` expression means
2658sound card number and second means device number.  The ALSA devices
2659have either ``c`` or ``p`` suffix indicating the direction, capture and
2660playback, respectively.
2661
2662Please note that the device mapping above may be varied via the module
2663options of snd-pcm-oss module.
2664
2665
2666Proc interfaces (/proc/asound)
2667==============================
2668
2669/proc/asound/card#/pcm#[cp]/oss
2670-------------------------------
2671erase
2672    erase all additional information about OSS applications
2673
2674<app_name> <fragments> <fragment_size> [<options>]
2675    <app_name>
2676	name of application with (higher priority) or without path
2677    <fragments>
2678	 number of fragments or zero if auto
2679    <fragment_size>
2680	 size of fragment in bytes or zero if auto
2681    <options>
2682	optional parameters
2683
2684	disable
2685	    the application tries to open a pcm device for
2686	    this channel but does not want to use it.
2687	    (Cause a bug or mmap needs)
2688	    It's good for Quake etc...
2689	direct
2690	    don't use plugins
2691	block
2692	     force block mode (rvplayer)
2693	non-block
2694	    force non-block mode
2695	whole-frag
2696	    write only whole fragments (optimization affecting
2697	    playback only)
2698	no-silence
2699	    do not fill silence ahead to avoid clicks
2700	buggy-ptr
2701	    Returns the whitespace blocks in GETOPTR ioctl
2702	    instead of filled blocks
2703
2704Example:
2705::
2706
2707    echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
2708    echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
2709    echo "rvplayer 0 0 block" > /proc/asound/card0/pcm0p/oss
2710
2711
2712Early Buffer Allocation
2713=======================
2714
2715Some drivers (e.g. hdsp) require the large contiguous buffers, and
2716sometimes it's too late to find such spaces when the driver module is
2717actually loaded due to memory fragmentation.  You can pre-allocate the
2718PCM buffers by loading snd-page-alloc module and write commands to its
2719proc file in prior, for example, in the early boot stage like
2720``/etc/init.d/*.local`` scripts.
2721
2722Reading the proc file /proc/drivers/snd-page-alloc shows the current
2723usage of page allocation.  In writing, you can send the following
2724commands to the snd-page-alloc driver:
2725
2726* add VENDOR DEVICE MASK SIZE BUFFERS
2727
2728VENDOR and DEVICE are PCI vendor and device IDs.  They take
2729integer numbers (0x prefix is needed for the hex).
2730MASK is the PCI DMA mask.  Pass 0 if not restricted.
2731SIZE is the size of each buffer to allocate.  You can pass
2732k and m suffix for KB and MB.  The max number is 16MB.
2733BUFFERS is the number of buffers to allocate.  It must be greater
2734than 0.  The max number is 4.
2735
2736* erase
2737
2738This will erase the all pre-allocated buffers which are not in
2739use.
2740
2741
2742Links and Addresses
2743===================
2744
2745ALSA project homepage
2746    http://www.alsa-project.org
2747Kernel Bugzilla
2748    http://bugzilla.kernel.org/
2749ALSA Developers ML
2750    mailto:alsa-devel@alsa-project.org
2751alsa-info.sh script
2752    https://www.alsa-project.org/alsa-info.sh
2753