Skip to content

Commit

Permalink
Merge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa-current
Browse files Browse the repository at this point in the history
  • Loading branch information
Linus Torvalds committed Sep 13, 2005
2 parents a8cd2e5 + 676e1a2 commit 63f3d1d
Show file tree
Hide file tree
Showing 189 changed files with 2,983 additions and 1,642 deletions.
124 changes: 87 additions & 37 deletions Documentation/sound/alsa/ALSA-Configuration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
adsp_map - PCM device number maps assigned to the 2st OSS device.
- Default: 1
nonblock_open
- Don't block opening busy PCM devices.
- Don't block opening busy PCM devices. Default: 1

For example, when dsp_map=2, /dev/dsp will be mapped to PCM #2 of
the card #0. Similarly, when adsp_map=0, /dev/adsp will be mapped
Expand Down Expand Up @@ -148,6 +148,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Module supports up to 8 cards. This module does not support autoprobe
thus main port must be specified!!! Other ports are optional.

Module snd-ad1889
-----------------

Module for Analog Devices AD1889 chips.

ac97_quirk - AC'97 workaround for strange hardware
See the description of intel8x0 module for details.

This module supports up to 8 cards.

Module snd-ali5451
------------------

Expand Down Expand Up @@ -189,15 +199,20 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Module snd-atiixp
-----------------

Module for ATI IXP 150/200/250 AC97 controllers.
Module for ATI IXP 150/200/250/400 AC97 controllers.

ac97_clock - AC'97 clock (defalut = 48000)
ac97_clock - AC'97 clock (default = 48000)
ac97_quirk - AC'97 workaround for strange hardware
See the description of intel8x0 module for details.
See "AC97 Quirk Option" section below.
spdif_aclink - S/PDIF transfer over AC-link (default = 1)

This module supports up to 8 cards and autoprobe.

ATI IXP has two different methods to control SPDIF output. One is
over AC-link and another is over the "direct" SPDIF output. The
implementation depends on the motherboard, and you'll need to
choose the correct one via spdif_aclink module option.

Module snd-atiixp-modem
-----------------------

Expand Down Expand Up @@ -230,7 +245,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
The hardware EQ hardware and SPDIF is only present in the Vortex2 and
Advantage.

Note: Some ALSA mixer applicactions don't handle the SPDIF samplerate
Note: Some ALSA mixer applications don't handle the SPDIF sample rate
control correctly. If you have problems regarding this, try
another ALSA compliant mixer (alsamixer works).

Expand Down Expand Up @@ -302,7 +317,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

mpu_port - 0x300,0x310,0x320,0x330, 0 = disable (default)
fm_port - 0x388 (default), 0 = disable (default)
soft_ac3 - Sofware-conversion of raw SPDIF packets (model 033 only)
soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only)
(default = 1)
joystick_port - Joystick port address (0 = disable, 1 = auto-detect)

Expand Down Expand Up @@ -384,7 +399,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Module for PCI sound cards based on CS4610/CS4612/CS4614/CS4615/CS4622/
CS4624/CS4630/CS4280 PCI chips.

external_amp - Force to enable external amplifer.
external_amp - Force to enable external amplifier.
thinkpad - Force to enable Thinkpad's CLKRUN control.
mmap_valid - Support OSS mmap mode (default = 0).

Expand Down Expand Up @@ -620,7 +635,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
VIA VT8251/VT8237A

model - force the model name
position_fix - Fix DMA pointer (0 = FIFO size, 1 = none, 2 = POSBUF)
position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)

Module supports up to 8 cards.

Expand Down Expand Up @@ -656,6 +671,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
allout 5-jack in back, 2-jack in front, SPDIF out
auto auto-config reading BIOS (default)

If the default configuration doesn't work and one of the above
matches with your device, report it together with the PCI
subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel
ML (see the section "Links and Addresses").

Note 2: If you get click noises on output, try the module option
position_fix=1 or 2. position_fix=1 will use the SD_LPIB
register value without FIFO size correction as the current
Expand Down Expand Up @@ -783,20 +803,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

ac97_clock - AC'97 codec clock base (0 = auto-detect)
ac97_quirk - AC'97 workaround for strange hardware
The following strings are accepted:
default = don't override the default setting
disable = disable the quirk
hp_only = use headphone control as master
swap_hp = swap headphone and master controls
swap_surround = swap master and surround controls
ad_sharing = for AD1985, turn on OMS bit and use headphone
alc_jack = for ALC65x, turn on the jack sense mode
inv_eapd = inverted EAPD implementation
mute_led = bind EAPD bit for turning on/off mute LED
For backward compatibility, the corresponding integer
value -1, 0, ... are accepted, too.
See "AC97 Quirk Option" section below.
buggy_irq - Enable workaround for buggy interrupts on some
motherboards (default off)
motherboards (default yes on nForce chips,
otherwise off)
buggy_semaphore - Enable workaround for hardwares with buggy
semaphores (e.g. on some ASUS laptops)
(default off)

Module supports autoprobe and multiple bus-master chips (max 8).

Expand All @@ -808,13 +821,6 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
motherboard has these devices, use the ns558 or snd-mpu401
modules, respectively.

The ac97_quirk option is used to enable/override the workaround
for specific devices. Some hardware have swapped output pins
between Master and Headphone, or Surround. The driver provides
the auto-detection of known problematic devices, but some might
be unknown or wrongly detected. In such a case, pass the proper
value with this option.

The power-management is supported.

Module snd-intel8x0m
Expand Down Expand Up @@ -966,7 +972,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
with machines with other (most likely CS423x or OPL3SAx) chips,
even though the device is detected in lspci. In such a case, try
other drivers, e.g. snd-cs4232 or snd-opl3sa2. Some has ISA-PnP
but some doesn't have ISA PnP. You'll need to speicfy isapnp=0
but some doesn't have ISA PnP. You'll need to specify isapnp=0
and proper hardware parameters in the case without ISA PnP.

Note: some laptops need a workaround for AC97 RESET. For the
Expand Down Expand Up @@ -1302,7 +1308,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
channels
[VIA8233/C, 8235, 8237 only]
ac97_quirk - AC'97 workaround for strange hardware
See the description of intel8x0 module for details.
See "AC97 Quirk Option" section below.

Module supports autoprobe and multiple bus-master chips (max 8).

Expand All @@ -1327,16 +1333,17 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
"lspci -nv").
If dxs_support=5 does not work, try dxs_support=4; if it
doesn't work too, try dxs_support=1. (dxs_support=1 is
usually for old motherboards. The correct implementated
usually for old motherboards. The correct implemented
board should work with 4 or 5.) If it still doesn't
work and the default setting is ok, dxs_support=3 is the
right choice. If the default setting doesn't work at all,
try dxs_support=2 to disable the DXS channels.
In any cases, please let us know the result and the
subsystem vendor/device ids.
subsystem vendor/device ids. See "Links and Addresses"
below.

Note: for the MPU401 on VIA823x, use snd-mpu401 driver
additonally. The mpu_port option is for VIA686 chips only.
additionally. The mpu_port option is for VIA686 chips only.

Module snd-via82xx-modem
------------------------
Expand Down Expand Up @@ -1398,8 +1405,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Module supports up to 8 cards. The module is compiled only when
PCMCIA is supported on kernel.

To activate the driver via the card manager, you'll need to set
up /etc/pcmcia/vxpocket.conf. See the sound/pcmcia/vx/vxpocket.c.
With the older 2.6.x kernel, to activate the driver via the card
manager, you'll need to set up /etc/pcmcia/vxpocket.conf. See the
sound/pcmcia/vx/vxpocket.c. 2.6.13 or later kernel requires no
longer require a config file.

When the driver is compiled as a module and the hotplug firmware
is supported, the firmware data is loaded via hotplug automatically.
Expand All @@ -1411,6 +1420,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

Note: the driver is build only when CONFIG_ISA is set.

Note2: snd-vxp440 driver is merged to snd-vxpocket driver since
ALSA 1.0.10.

Module snd-ymfpci
-----------------

Expand All @@ -1436,6 +1448,37 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
Note: the driver is build only when CONFIG_ISA is set.


AC97 Quirk Option
=================

The ac97_quirk option is used to enable/override the workaround for
specific devices on drivers for on-board AC'97 controllers like
snd-intel8x0. Some hardware have swapped output pins between Master
and Headphone, or Surround (thanks to confusion of AC'97
specifications from version to version :-)

The driver provides the auto-detection of known problematic devices,
but some might be unknown or wrongly detected. In such a case, pass
the proper value with this option.

The following strings are accepted:
- default Don't override the default setting
- disable Disable the quirk
- hp_only Bind Master and Headphone controls as a single control
- swap_hp Swap headphone and master controls
- swap_surround Swap master and surround controls
- ad_sharing For AD1985, turn on OMS bit and use headphone
- alc_jack For ALC65x, turn on the jack sense mode
- inv_eapd Inverted EAPD implementation
- mute_led Bind EAPD bit for turning on/off mute LED

For backward compatibility, the corresponding integer value -1, 0,
... are accepted, too.

For example, if "Master" volume control has no effect on your device
but only "Headphone" does, pass ac97_quirk=hp_only module option.


Configuring Non-ISAPNP Cards
============================

Expand Down Expand Up @@ -1553,6 +1596,8 @@ Proc interfaces (/proc/asound)
- whole-frag write only whole fragments (optimization affecting
playback only)
- no-silence do not fill silence ahead to avoid clicks
- buggy-ptr Returns the whitespace blocks in GETOPTR ioctl
instead of filled blocks

Example: echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
Expand Down Expand Up @@ -1589,9 +1634,14 @@ commands to the snd-page-alloc driver:
use.


Links
=====
Links and Addresses
===================

ALSA project homepage
http://www.alsa-project.org

ALSA Bug Tracking System
https://bugtrack.alsa-project.org/bugs/

ALSA Developers ML
mailto:alsa-devel@lists.sourceforge.net
10 changes: 5 additions & 5 deletions Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@
....

/* allocate a chip-specific data with zero filled */
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;

Expand Down Expand Up @@ -949,7 +949,7 @@
After allocating a card instance via
<function>snd_card_new()</function> (with
<constant>NULL</constant> on the 4th arg), call
<function>kcalloc()</function>.
<function>kzalloc()</function>.

<informalexample>
<programlisting>
Expand All @@ -958,7 +958,7 @@
mychip_t *chip;
card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
.....
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
]]>
</programlisting>
</informalexample>
Expand Down Expand Up @@ -1136,7 +1136,7 @@
return -ENXIO;
}

chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
if (chip == NULL) {
pci_disable_device(pci);
return -ENOMEM;
Expand Down Expand Up @@ -1292,7 +1292,7 @@
need to initialize this number as -1 before actual allocation,
since irq 0 is valid. The port address and its resource pointer
can be initialized as null by
<function>kcalloc()</function> automatically, so you
<function>kzalloc()</function> automatically, so you
don't have to take care of resetting them.
</para>

Expand Down
Loading

0 comments on commit 63f3d1d

Please sign in to comment.