aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt124
-rw-r--r--Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl10
2 files changed, 92 insertions, 42 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index ebfcdf28485f..13cba955cb5a 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -75,7 +75,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
75 adsp_map - PCM device number maps assigned to the 2st OSS device. 75 adsp_map - PCM device number maps assigned to the 2st OSS device.
76 - Default: 1 76 - Default: 1
77 nonblock_open 77 nonblock_open
78 - Don't block opening busy PCM devices. 78 - Don't block opening busy PCM devices. Default: 1
79 79
80 For example, when dsp_map=2, /dev/dsp will be mapped to PCM #2 of 80 For example, when dsp_map=2, /dev/dsp will be mapped to PCM #2 of
81 the card #0. Similarly, when adsp_map=0, /dev/adsp will be mapped 81 the card #0. Similarly, when adsp_map=0, /dev/adsp will be mapped
@@ -148,6 +148,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
148 Module supports up to 8 cards. This module does not support autoprobe 148 Module supports up to 8 cards. This module does not support autoprobe
149 thus main port must be specified!!! Other ports are optional. 149 thus main port must be specified!!! Other ports are optional.
150 150
151 Module snd-ad1889
152 -----------------
153
154 Module for Analog Devices AD1889 chips.
155
156 ac97_quirk - AC'97 workaround for strange hardware
157 See the description of intel8x0 module for details.
158
159 This module supports up to 8 cards.
160
151 Module snd-ali5451 161 Module snd-ali5451
152 ------------------ 162 ------------------
153 163
@@ -189,15 +199,20 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
189 Module snd-atiixp 199 Module snd-atiixp
190 ----------------- 200 -----------------
191 201
192 Module for ATI IXP 150/200/250 AC97 controllers. 202 Module for ATI IXP 150/200/250/400 AC97 controllers.
193 203
194 ac97_clock - AC'97 clock (defalut = 48000) 204 ac97_clock - AC'97 clock (default = 48000)
195 ac97_quirk - AC'97 workaround for strange hardware 205 ac97_quirk - AC'97 workaround for strange hardware
196 See the description of intel8x0 module for details. 206 See "AC97 Quirk Option" section below.
197 spdif_aclink - S/PDIF transfer over AC-link (default = 1) 207 spdif_aclink - S/PDIF transfer over AC-link (default = 1)
198 208
199 This module supports up to 8 cards and autoprobe. 209 This module supports up to 8 cards and autoprobe.
200 210
211 ATI IXP has two different methods to control SPDIF output. One is
212 over AC-link and another is over the "direct" SPDIF output. The
213 implementation depends on the motherboard, and you'll need to
214 choose the correct one via spdif_aclink module option.
215
201 Module snd-atiixp-modem 216 Module snd-atiixp-modem
202 ----------------------- 217 -----------------------
203 218
@@ -230,7 +245,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
230 The hardware EQ hardware and SPDIF is only present in the Vortex2 and 245 The hardware EQ hardware and SPDIF is only present in the Vortex2 and
231 Advantage. 246 Advantage.
232 247
233 Note: Some ALSA mixer applicactions don't handle the SPDIF samplerate 248 Note: Some ALSA mixer applications don't handle the SPDIF sample rate
234 control correctly. If you have problems regarding this, try 249 control correctly. If you have problems regarding this, try
235 another ALSA compliant mixer (alsamixer works). 250 another ALSA compliant mixer (alsamixer works).
236 251
@@ -302,7 +317,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
302 317
303 mpu_port - 0x300,0x310,0x320,0x330, 0 = disable (default) 318 mpu_port - 0x300,0x310,0x320,0x330, 0 = disable (default)
304 fm_port - 0x388 (default), 0 = disable (default) 319 fm_port - 0x388 (default), 0 = disable (default)
305 soft_ac3 - Sofware-conversion of raw SPDIF packets (model 033 only) 320 soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only)
306 (default = 1) 321 (default = 1)
307 joystick_port - Joystick port address (0 = disable, 1 = auto-detect) 322 joystick_port - Joystick port address (0 = disable, 1 = auto-detect)
308 323
@@ -384,7 +399,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
384 Module for PCI sound cards based on CS4610/CS4612/CS4614/CS4615/CS4622/ 399 Module for PCI sound cards based on CS4610/CS4612/CS4614/CS4615/CS4622/
385 CS4624/CS4630/CS4280 PCI chips. 400 CS4624/CS4630/CS4280 PCI chips.
386 401
387 external_amp - Force to enable external amplifer. 402 external_amp - Force to enable external amplifier.
388 thinkpad - Force to enable Thinkpad's CLKRUN control. 403 thinkpad - Force to enable Thinkpad's CLKRUN control.
389 mmap_valid - Support OSS mmap mode (default = 0). 404 mmap_valid - Support OSS mmap mode (default = 0).
390 405
@@ -620,7 +635,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
620 VIA VT8251/VT8237A 635 VIA VT8251/VT8237A
621 636
622 model - force the model name 637 model - force the model name
623 position_fix - Fix DMA pointer (0 = FIFO size, 1 = none, 2 = POSBUF) 638 position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)
624 639
625 Module supports up to 8 cards. 640 Module supports up to 8 cards.
626 641
@@ -656,6 +671,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
656 allout 5-jack in back, 2-jack in front, SPDIF out 671 allout 5-jack in back, 2-jack in front, SPDIF out
657 auto auto-config reading BIOS (default) 672 auto auto-config reading BIOS (default)
658 673
674 If the default configuration doesn't work and one of the above
675 matches with your device, report it together with the PCI
676 subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel
677 ML (see the section "Links and Addresses").
678
659 Note 2: If you get click noises on output, try the module option 679 Note 2: If you get click noises on output, try the module option
660 position_fix=1 or 2. position_fix=1 will use the SD_LPIB 680 position_fix=1 or 2. position_fix=1 will use the SD_LPIB
661 register value without FIFO size correction as the current 681 register value without FIFO size correction as the current
@@ -783,20 +803,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
783 803
784 ac97_clock - AC'97 codec clock base (0 = auto-detect) 804 ac97_clock - AC'97 codec clock base (0 = auto-detect)
785 ac97_quirk - AC'97 workaround for strange hardware 805 ac97_quirk - AC'97 workaround for strange hardware
786 The following strings are accepted: 806 See "AC97 Quirk Option" section below.
787 default = don't override the default setting
788 disable = disable the quirk
789 hp_only = use headphone control as master
790 swap_hp = swap headphone and master controls
791 swap_surround = swap master and surround controls
792 ad_sharing = for AD1985, turn on OMS bit and use headphone
793 alc_jack = for ALC65x, turn on the jack sense mode
794 inv_eapd = inverted EAPD implementation
795 mute_led = bind EAPD bit for turning on/off mute LED
796 For backward compatibility, the corresponding integer
797 value -1, 0, ... are accepted, too.
798 buggy_irq - Enable workaround for buggy interrupts on some 807 buggy_irq - Enable workaround for buggy interrupts on some
799 motherboards (default off) 808 motherboards (default yes on nForce chips,
809 otherwise off)
810 buggy_semaphore - Enable workaround for hardwares with buggy
811 semaphores (e.g. on some ASUS laptops)
812 (default off)
800 813
801 Module supports autoprobe and multiple bus-master chips (max 8). 814 Module supports autoprobe and multiple bus-master chips (max 8).
802 815
@@ -808,13 +821,6 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
808 motherboard has these devices, use the ns558 or snd-mpu401 821 motherboard has these devices, use the ns558 or snd-mpu401
809 modules, respectively. 822 modules, respectively.
810 823
811 The ac97_quirk option is used to enable/override the workaround
812 for specific devices. Some hardware have swapped output pins
813 between Master and Headphone, or Surround. The driver provides
814 the auto-detection of known problematic devices, but some might
815 be unknown or wrongly detected. In such a case, pass the proper
816 value with this option.
817
818 The power-management is supported. 824 The power-management is supported.
819 825
820 Module snd-intel8x0m 826 Module snd-intel8x0m
@@ -966,7 +972,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
966 with machines with other (most likely CS423x or OPL3SAx) chips, 972 with machines with other (most likely CS423x or OPL3SAx) chips,
967 even though the device is detected in lspci. In such a case, try 973 even though the device is detected in lspci. In such a case, try
968 other drivers, e.g. snd-cs4232 or snd-opl3sa2. Some has ISA-PnP 974 other drivers, e.g. snd-cs4232 or snd-opl3sa2. Some has ISA-PnP
969 but some doesn't have ISA PnP. You'll need to speicfy isapnp=0 975 but some doesn't have ISA PnP. You'll need to specify isapnp=0
970 and proper hardware parameters in the case without ISA PnP. 976 and proper hardware parameters in the case without ISA PnP.
971 977
972 Note: some laptops need a workaround for AC97 RESET. For the 978 Note: some laptops need a workaround for AC97 RESET. For the
@@ -1302,7 +1308,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1302 channels 1308 channels
1303 [VIA8233/C, 8235, 8237 only] 1309 [VIA8233/C, 8235, 8237 only]
1304 ac97_quirk - AC'97 workaround for strange hardware 1310 ac97_quirk - AC'97 workaround for strange hardware
1305 See the description of intel8x0 module for details. 1311 See "AC97 Quirk Option" section below.
1306 1312
1307 Module supports autoprobe and multiple bus-master chips (max 8). 1313 Module supports autoprobe and multiple bus-master chips (max 8).
1308 1314
@@ -1327,16 +1333,17 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1327 "lspci -nv"). 1333 "lspci -nv").
1328 If dxs_support=5 does not work, try dxs_support=4; if it 1334 If dxs_support=5 does not work, try dxs_support=4; if it
1329 doesn't work too, try dxs_support=1. (dxs_support=1 is 1335 doesn't work too, try dxs_support=1. (dxs_support=1 is
1330 usually for old motherboards. The correct implementated 1336 usually for old motherboards. The correct implemented
1331 board should work with 4 or 5.) If it still doesn't 1337 board should work with 4 or 5.) If it still doesn't
1332 work and the default setting is ok, dxs_support=3 is the 1338 work and the default setting is ok, dxs_support=3 is the
1333 right choice. If the default setting doesn't work at all, 1339 right choice. If the default setting doesn't work at all,
1334 try dxs_support=2 to disable the DXS channels. 1340 try dxs_support=2 to disable the DXS channels.
1335 In any cases, please let us know the result and the 1341 In any cases, please let us know the result and the
1336 subsystem vendor/device ids. 1342 subsystem vendor/device ids. See "Links and Addresses"
1343 below.
1337 1344
1338 Note: for the MPU401 on VIA823x, use snd-mpu401 driver 1345 Note: for the MPU401 on VIA823x, use snd-mpu401 driver
1339 additonally. The mpu_port option is for VIA686 chips only. 1346 additionally. The mpu_port option is for VIA686 chips only.
1340 1347
1341 Module snd-via82xx-modem 1348 Module snd-via82xx-modem
1342 ------------------------ 1349 ------------------------
@@ -1398,8 +1405,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1398 Module supports up to 8 cards. The module is compiled only when 1405 Module supports up to 8 cards. The module is compiled only when
1399 PCMCIA is supported on kernel. 1406 PCMCIA is supported on kernel.
1400 1407
1401 To activate the driver via the card manager, you'll need to set 1408 With the older 2.6.x kernel, to activate the driver via the card
1402 up /etc/pcmcia/vxpocket.conf. See the sound/pcmcia/vx/vxpocket.c. 1409 manager, you'll need to set up /etc/pcmcia/vxpocket.conf. See the
1410 sound/pcmcia/vx/vxpocket.c. 2.6.13 or later kernel requires no
1411 longer require a config file.
1403 1412
1404 When the driver is compiled as a module and the hotplug firmware 1413 When the driver is compiled as a module and the hotplug firmware
1405 is supported, the firmware data is loaded via hotplug automatically. 1414 is supported, the firmware data is loaded via hotplug automatically.
@@ -1411,6 +1420,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1411 1420
1412 Note: the driver is build only when CONFIG_ISA is set. 1421 Note: the driver is build only when CONFIG_ISA is set.
1413 1422
1423 Note2: snd-vxp440 driver is merged to snd-vxpocket driver since
1424 ALSA 1.0.10.
1425
1414 Module snd-ymfpci 1426 Module snd-ymfpci
1415 ----------------- 1427 -----------------
1416 1428
@@ -1436,6 +1448,37 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1436 Note: the driver is build only when CONFIG_ISA is set. 1448 Note: the driver is build only when CONFIG_ISA is set.
1437 1449
1438 1450
1451AC97 Quirk Option
1452=================
1453
1454The ac97_quirk option is used to enable/override the workaround for
1455specific devices on drivers for on-board AC'97 controllers like
1456snd-intel8x0. Some hardware have swapped output pins between Master
1457and Headphone, or Surround (thanks to confusion of AC'97
1458specifications from version to version :-)
1459
1460The driver provides the auto-detection of known problematic devices,
1461but some might be unknown or wrongly detected. In such a case, pass
1462the proper value with this option.
1463
1464The following strings are accepted:
1465 - default Don't override the default setting
1466 - disable Disable the quirk
1467 - hp_only Bind Master and Headphone controls as a single control
1468 - swap_hp Swap headphone and master controls
1469 - swap_surround Swap master and surround controls
1470 - ad_sharing For AD1985, turn on OMS bit and use headphone
1471 - alc_jack For ALC65x, turn on the jack sense mode
1472 - inv_eapd Inverted EAPD implementation
1473 - mute_led Bind EAPD bit for turning on/off mute LED
1474
1475For backward compatibility, the corresponding integer value -1, 0,
1476... are accepted, too.
1477
1478For example, if "Master" volume control has no effect on your device
1479but only "Headphone" does, pass ac97_quirk=hp_only module option.
1480
1481
1439Configuring Non-ISAPNP Cards 1482Configuring Non-ISAPNP Cards
1440============================ 1483============================
1441 1484
@@ -1553,6 +1596,8 @@ Proc interfaces (/proc/asound)
1553 - whole-frag write only whole fragments (optimization affecting 1596 - whole-frag write only whole fragments (optimization affecting
1554 playback only) 1597 playback only)
1555 - no-silence do not fill silence ahead to avoid clicks 1598 - no-silence do not fill silence ahead to avoid clicks
1599 - buggy-ptr Returns the whitespace blocks in GETOPTR ioctl
1600 instead of filled blocks
1556 1601
1557 Example: echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss 1602 Example: echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
1558 echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss 1603 echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
@@ -1589,9 +1634,14 @@ commands to the snd-page-alloc driver:
1589 use. 1634 use.
1590 1635
1591 1636
1592Links 1637Links and Addresses
1593===== 1638===================
1594 1639
1595 ALSA project homepage 1640 ALSA project homepage
1596 http://www.alsa-project.org 1641 http://www.alsa-project.org
1597 1642
1643 ALSA Bug Tracking System
1644 https://bugtrack.alsa-project.org/bugs/
1645
1646 ALSA Developers ML
1647 mailto:alsa-devel@lists.sourceforge.net
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index 0475478c2484..24e85520890b 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -447,7 +447,7 @@
447 .... 447 ....
448 448
449 /* allocate a chip-specific data with zero filled */ 449 /* allocate a chip-specific data with zero filled */
450 chip = kcalloc(1, sizeof(*chip), GFP_KERNEL); 450 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
451 if (chip == NULL) 451 if (chip == NULL)
452 return -ENOMEM; 452 return -ENOMEM;
453 453
@@ -949,7 +949,7 @@
949 After allocating a card instance via 949 After allocating a card instance via
950 <function>snd_card_new()</function> (with 950 <function>snd_card_new()</function> (with
951 <constant>NULL</constant> on the 4th arg), call 951 <constant>NULL</constant> on the 4th arg), call
952 <function>kcalloc()</function>. 952 <function>kzalloc()</function>.
953 953
954 <informalexample> 954 <informalexample>
955 <programlisting> 955 <programlisting>
@@ -958,7 +958,7 @@
958 mychip_t *chip; 958 mychip_t *chip;
959 card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); 959 card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
960 ..... 960 .....
961 chip = kcalloc(1, sizeof(*chip), GFP_KERNEL); 961 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
962]]> 962]]>
963 </programlisting> 963 </programlisting>
964 </informalexample> 964 </informalexample>
@@ -1136,7 +1136,7 @@
1136 return -ENXIO; 1136 return -ENXIO;
1137 } 1137 }
1138 1138
1139 chip = kcalloc(1, sizeof(*chip), GFP_KERNEL); 1139 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
1140 if (chip == NULL) { 1140 if (chip == NULL) {
1141 pci_disable_device(pci); 1141 pci_disable_device(pci);
1142 return -ENOMEM; 1142 return -ENOMEM;
@@ -1292,7 +1292,7 @@
1292 need to initialize this number as -1 before actual allocation, 1292 need to initialize this number as -1 before actual allocation,
1293 since irq 0 is valid. The port address and its resource pointer 1293 since irq 0 is valid. The port address and its resource pointer
1294 can be initialized as null by 1294 can be initialized as null by
1295 <function>kcalloc()</function> automatically, so you 1295 <function>kzalloc()</function> automatically, so you
1296 don't have to take care of resetting them. 1296 don't have to take care of resetting them.
1297 </para> 1297 </para>
1298 1298