diff options
Diffstat (limited to 'Documentation/sound')
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 71 | ||||
-rw-r--r-- | Documentation/sound/alsa/Audiophile-Usb.txt | 333 | ||||
-rw-r--r-- | Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 8 | ||||
-rw-r--r-- | Documentation/sound/oss/Introduction | 2 | ||||
-rw-r--r-- | Documentation/sound/oss/cs46xx | 16 |
5 files changed, 414 insertions, 16 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 36b511c7cade..1def6049784c 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -513,6 +513,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
513 | 513 | ||
514 | This module supports multiple cards and autoprobe. | 514 | This module supports multiple cards and autoprobe. |
515 | 515 | ||
516 | The power-management is supported. | ||
517 | |||
516 | Module snd-ens1371 | 518 | Module snd-ens1371 |
517 | ------------------ | 519 | ------------------ |
518 | 520 | ||
@@ -526,6 +528,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
526 | 528 | ||
527 | This module supports multiple cards and autoprobe. | 529 | This module supports multiple cards and autoprobe. |
528 | 530 | ||
531 | The power-management is supported. | ||
532 | |||
529 | Module snd-es968 | 533 | Module snd-es968 |
530 | ---------------- | 534 | ---------------- |
531 | 535 | ||
@@ -671,6 +675,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
671 | 675 | ||
672 | model - force the model name | 676 | model - force the model name |
673 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) | 677 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) |
678 | single_cmd - Use single immediate commands to communicate with | ||
679 | codecs (for debugging only) | ||
674 | 680 | ||
675 | This module supports one card and autoprobe. | 681 | This module supports one card and autoprobe. |
676 | 682 | ||
@@ -694,13 +700,34 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
694 | asus 3-jack | 700 | asus 3-jack |
695 | uniwill 3-jack | 701 | uniwill 3-jack |
696 | F1734 2-jack | 702 | F1734 2-jack |
703 | lg LG laptop (m1 express dual) | ||
697 | test for testing/debugging purpose, almost all controls can be | 704 | test for testing/debugging purpose, almost all controls can be |
698 | adjusted. Appearing only when compiled with | 705 | adjusted. Appearing only when compiled with |
699 | $CONFIG_SND_DEBUG=y | 706 | $CONFIG_SND_DEBUG=y |
707 | auto auto-config reading BIOS (default) | ||
700 | 708 | ||
701 | ALC260 | 709 | ALC260 |
702 | hp HP machines | 710 | hp HP machines |
703 | fujitsu Fujitsu S7020 | 711 | fujitsu Fujitsu S7020 |
712 | acer Acer TravelMate | ||
713 | basic fixed pin assignment (old default model) | ||
714 | auto auto-config reading BIOS (default) | ||
715 | |||
716 | ALC262 | ||
717 | fujitsu Fujitsu Laptop | ||
718 | basic fixed pin assignment w/o SPDIF | ||
719 | auto auto-config reading BIOS (default) | ||
720 | |||
721 | ALC882/883/885 | ||
722 | 3stack-dig 3-jack with SPDIF I/O | ||
723 | 6stck-dig 6-jack digital with SPDIF I/O | ||
724 | auto auto-config reading BIOS (default) | ||
725 | |||
726 | ALC861 | ||
727 | 3stack 3-jack | ||
728 | 3stack-dig 3-jack with SPDIF I/O | ||
729 | 6stack-dig 6-jack with SPDIF I/O | ||
730 | auto auto-config reading BIOS (default) | ||
704 | 731 | ||
705 | CMI9880 | 732 | CMI9880 |
706 | minimal 3-jack in back | 733 | minimal 3-jack in back |
@@ -710,6 +737,28 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
710 | allout 5-jack in back, 2-jack in front, SPDIF out | 737 | allout 5-jack in back, 2-jack in front, SPDIF out |
711 | auto auto-config reading BIOS (default) | 738 | auto auto-config reading BIOS (default) |
712 | 739 | ||
740 | AD1981 | ||
741 | basic 3-jack (default) | ||
742 | hp HP nx6320 | ||
743 | |||
744 | AD1986A | ||
745 | 6stack 6-jack, separate surrounds (default) | ||
746 | 3stack 3-stack, shared surrounds | ||
747 | laptop 2-channel only (FSC V2060, Samsung M50) | ||
748 | laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J) | ||
749 | |||
750 | AD1988 | ||
751 | 6stack 6-jack | ||
752 | 6stack-dig ditto with SPDIF | ||
753 | 3stack 3-jack | ||
754 | 3stack-dig ditto with SPDIF | ||
755 | laptop 3-jack with hp-jack automute | ||
756 | laptop-dig ditto with SPDIF | ||
757 | auto auto-confgi reading BIOS (default) | ||
758 | |||
759 | STAC7661(?) | ||
760 | vaio Setup for VAIO FE550G/SZ110 | ||
761 | |||
713 | If the default configuration doesn't work and one of the above | 762 | If the default configuration doesn't work and one of the above |
714 | matches with your device, report it together with the PCI | 763 | matches with your device, report it together with the PCI |
715 | subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel | 764 | subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel |
@@ -723,6 +772,17 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
723 | (Usually SD_LPLIB register is more accurate than the | 772 | (Usually SD_LPLIB register is more accurate than the |
724 | position buffer.) | 773 | position buffer.) |
725 | 774 | ||
775 | NB: If you get many "azx_get_response timeout" messages at | ||
776 | loading, it's likely a problem of interrupts (e.g. ACPI irq | ||
777 | routing). Try to boot with options like "pci=noacpi". Also, you | ||
778 | can try "single_cmd=1" module option. This will switch the | ||
779 | communication method between HDA controller and codecs to the | ||
780 | single immediate commands instead of CORB/RIRB. Basically, the | ||
781 | single command mode is provided only for BIOS, and you won't get | ||
782 | unsolicited events, too. But, at least, this works independently | ||
783 | from the irq. Remember this is a last resort, and should be | ||
784 | avoided as much as possible... | ||
785 | |||
726 | The power-management is supported. | 786 | The power-management is supported. |
727 | 787 | ||
728 | Module snd-hdsp | 788 | Module snd-hdsp |
@@ -802,6 +862,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
802 | ------------------ | 862 | ------------------ |
803 | 863 | ||
804 | Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards. | 864 | Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards. |
865 | * MidiMan M Audio Revolution 5.1 | ||
805 | * MidiMan M Audio Revolution 7.1 | 866 | * MidiMan M Audio Revolution 7.1 |
806 | * AMP Ltd AUDIO2000 | 867 | * AMP Ltd AUDIO2000 |
807 | * TerraTec Aureon 5.1 Sky | 868 | * TerraTec Aureon 5.1 Sky |
@@ -810,6 +871,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
810 | * TerraTec Phase 22 | 871 | * TerraTec Phase 22 |
811 | * TerraTec Phase 28 | 872 | * TerraTec Phase 28 |
812 | * AudioTrak Prodigy 7.1 | 873 | * AudioTrak Prodigy 7.1 |
874 | * AudioTrak Prodigy 7.1LT | ||
813 | * AudioTrak Prodigy 192 | 875 | * AudioTrak Prodigy 192 |
814 | * Pontis MS300 | 876 | * Pontis MS300 |
815 | * Albatron K8X800 Pro II | 877 | * Albatron K8X800 Pro II |
@@ -820,9 +882,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
820 | * Shuttle SN25P | 882 | * Shuttle SN25P |
821 | 883 | ||
822 | model - Use the given board model, one of the following: | 884 | model - Use the given board model, one of the following: |
823 | revo71, amp2000, prodigy71, prodigy192, aureon51, | 885 | revo51, revo71, amp2000, prodigy71, prodigy71lt, |
824 | aureon71, universe, k8x800, phase22, phase28, ms300, | 886 | prodigy192, aureon51, aureon71, universe, |
825 | av710 | 887 | k8x800, phase22, phase28, ms300, av710 |
826 | 888 | ||
827 | This module supports multiple cards and autoprobe. | 889 | This module supports multiple cards and autoprobe. |
828 | 890 | ||
@@ -1353,6 +1415,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1353 | 1415 | ||
1354 | vid - Vendor ID for the device (optional) | 1416 | vid - Vendor ID for the device (optional) |
1355 | pid - Product ID for the device (optional) | 1417 | pid - Product ID for the device (optional) |
1418 | device_setup - Device specific magic number (optional) | ||
1419 | - Influence depends on the device | ||
1420 | - Default: 0x0000 | ||
1356 | 1421 | ||
1357 | This module supports multiple devices, autoprobe and hotplugging. | 1422 | This module supports multiple devices, autoprobe and hotplugging. |
1358 | 1423 | ||
diff --git a/Documentation/sound/alsa/Audiophile-Usb.txt b/Documentation/sound/alsa/Audiophile-Usb.txt new file mode 100644 index 000000000000..4692c8e77dc1 --- /dev/null +++ b/Documentation/sound/alsa/Audiophile-Usb.txt | |||
@@ -0,0 +1,333 @@ | |||
1 | Guide to using M-Audio Audiophile USB with ALSA and Jack v1.2 | ||
2 | ======================================================== | ||
3 | |||
4 | Thibault Le Meur <Thibault.LeMeur@supelec.fr> | ||
5 | |||
6 | This document is a guide to using the M-Audio Audiophile USB (tm) device with | ||
7 | ALSA and JACK. | ||
8 | |||
9 | 1 - Audiophile USB Specs and correct usage | ||
10 | ========================================== | ||
11 | This part is a reminder of important facts about the functions and limitations | ||
12 | of the device. | ||
13 | |||
14 | The device has 4 audio interfaces, and 2 MIDI ports: | ||
15 | * Analog Stereo Input (Ai) | ||
16 | - This port supports 2 pairs of line-level audio inputs (1/4" TS and RCA) | ||
17 | - When the 1/4" TS (jack) connectors are connected, the RCA connectors | ||
18 | are disabled | ||
19 | * Analog Stereo Output (Ao) | ||
20 | * Digital Stereo Input (Di) | ||
21 | * Digital Stereo Output (Do) | ||
22 | * Midi In (Mi) | ||
23 | * Midi Out (Mo) | ||
24 | |||
25 | The internal DAC/ADC has the following caracteristics: | ||
26 | * sample depth of 16 or 24 bits | ||
27 | * sample rate from 8kHz to 96kHz | ||
28 | * Two ports can't use different sample depths at the same time.Moreover, the | ||
29 | Audiophile USB documentation gives the following Warning: "Please exit any | ||
30 | audio application running before switching between bit depths" | ||
31 | |||
32 | Due to the USB 1.1 bandwidth limitation, a limited number of interfaces can be | ||
33 | activated at the same time depending on the audio mode selected: | ||
34 | * 16-bit/48kHz ==> 4 channels in/ 4 channels out | ||
35 | - Ai+Ao+Di+Do | ||
36 | * 24-bit/48kHz ==> 4 channels in/2 channels out, | ||
37 | or 2 channels in/4 channels out | ||
38 | - Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do | ||
39 | * 24-bit/96kHz ==> 2 channels in, or 2 channels out (half duplex only) | ||
40 | - Ai or Ao or Di or Do | ||
41 | |||
42 | Important facts about the Digital interface: | ||
43 | -------------------------------------------- | ||
44 | * The Do port additionnaly supports surround-encoded AC-3 and DTS passthrough, | ||
45 | though I haven't tested it under linux | ||
46 | - Note that in this setup only the Do interface can be enabled | ||
47 | * Apart from recording an audio digital stream, enabling the Di port is a way | ||
48 | to synchronize the device to an external sample clock | ||
49 | - As a consequence, the Di port must be enable only if an active Digital | ||
50 | source is connected | ||
51 | - Enabling Di when no digital source is connected can result in a | ||
52 | synchronization error (for instance sound played at an odd sample rate) | ||
53 | |||
54 | |||
55 | 2 - Audiophile USB support in ALSA | ||
56 | ================================== | ||
57 | |||
58 | 2.1 - MIDI ports | ||
59 | ---------------- | ||
60 | The Audiophile USB MIDI ports will be automatically supported once the | ||
61 | following modules have been loaded: | ||
62 | * snd-usb-audio | ||
63 | * snd-seq | ||
64 | * snd-seq-midi | ||
65 | |||
66 | No additionnal setting is required. | ||
67 | |||
68 | 2.2 - Audio ports | ||
69 | ----------------- | ||
70 | |||
71 | Audio functions of the Audiophile USB device are handled by the snd-usb-audio | ||
72 | module. This module can work in a default mode (without any device-specific | ||
73 | parameter), or in an advanced mode with the device-specific parameter called | ||
74 | "device_setup". | ||
75 | |||
76 | 2.2.1 - Default Alsa driver mode | ||
77 | |||
78 | The default behaviour of the snd-usb-audio driver is to parse the device | ||
79 | capabilities at startup and enable all functions inside the device (including | ||
80 | all ports at any sample rates and any sample depths supported). This approach | ||
81 | has the advantage to let the driver easily switch from sample rates/depths | ||
82 | automatically according to the need of the application claiming the device. | ||
83 | |||
84 | In this case the Audiophile ports are mapped to alsa pcm devices in the | ||
85 | following way (I suppose the device's index is 1): | ||
86 | * hw:1,0 is Ao in playback and Di in capture | ||
87 | * hw:1,1 is Do in playback and Ai in capture | ||
88 | * hw:1,2 is Do in AC3/DTS passthrough mode | ||
89 | |||
90 | You must note as well that the device uses Big Endian byte encoding so that | ||
91 | supported audio format are S16_BE for 16-bit depth modes and S24_3BE for | ||
92 | 24-bits depth mode. One exception is the hw:1,2 port which is Little Endian | ||
93 | compliant and thus uses S16_LE. | ||
94 | |||
95 | Examples: | ||
96 | * playing a S24_3BE encoded raw file to the Ao port | ||
97 | % aplay -D hw:1,0 -c2 -t raw -r48000 -fS24_3BE test.raw | ||
98 | * recording a S24_3BE encoded raw file from the Ai port | ||
99 | % arecord -D hw:1,1 -c2 -t raw -r48000 -fS24_3BE test.raw | ||
100 | * playing a S16_BE encoded raw file to the Do port | ||
101 | % aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_BE test.raw | ||
102 | |||
103 | If you're happy with the default Alsa driver setup and don't experience any | ||
104 | issue with this mode, then you can skip the following chapter. | ||
105 | |||
106 | 2.2.2 - Advanced module setup | ||
107 | |||
108 | Due to the hardware constraints described above, the device initialization made | ||
109 | by the Alsa driver in default mode may result in a corrupted state of the | ||
110 | device. For instance, a particularly annoying issue is that the sound captured | ||
111 | from the Ai port sounds distorted (as if boosted with an excessive high volume | ||
112 | gain). | ||
113 | |||
114 | For people having this problem, the snd-usb-audio module has a new module | ||
115 | parameter called "device_setup". | ||
116 | |||
117 | 2.2.2.1 - Initializing the working mode of the Audiohile USB | ||
118 | |||
119 | As far as the Audiohile USB device is concerned, this value let the user | ||
120 | specify: | ||
121 | * the sample depth | ||
122 | * the sample rate | ||
123 | * whether the Di port is used or not | ||
124 | |||
125 | Here is a list of supported device_setup values for this device: | ||
126 | * device_setup=0x00 (or omitted) | ||
127 | - Alsa driver default mode | ||
128 | - maintains backward compatibility with setups that do not use this | ||
129 | parameter by not introducing any change | ||
130 | - results sometimes in corrupted sound as decribed earlier | ||
131 | * device_setup=0x01 | ||
132 | - 16bits 48kHz mode with Di disabled | ||
133 | - Ai,Ao,Do can be used at the same time | ||
134 | - hw:1,0 is not available in capture mode | ||
135 | - hw:1,2 is not available | ||
136 | * device_setup=0x11 | ||
137 | - 16bits 48kHz mode with Di enabled | ||
138 | - Ai,Ao,Di,Do can be used at the same time | ||
139 | - hw:1,0 is available in capture mode | ||
140 | - hw:1,2 is not available | ||
141 | * device_setup=0x09 | ||
142 | - 24bits 48kHz mode with Di disabled | ||
143 | - Ai,Ao,Do can be used at the same time | ||
144 | - hw:1,0 is not available in capture mode | ||
145 | - hw:1,2 is not available | ||
146 | * device_setup=0x19 | ||
147 | - 24bits 48kHz mode with Di enabled | ||
148 | - 3 ports from {Ai,Ao,Di,Do} can be used at the same time | ||
149 | - hw:1,0 is available in capture mode and an active digital source must be | ||
150 | connected to Di | ||
151 | - hw:1,2 is not available | ||
152 | * device_setup=0x0D or 0x10 | ||
153 | - 24bits 96kHz mode | ||
154 | - Di is enabled by default for this mode but does not need to be connected | ||
155 | to an active source | ||
156 | - Only 1 port from {Ai,Ao,Di,Do} can be used at the same time | ||
157 | - hw:1,0 is available in captured mode | ||
158 | - hw:1,2 is not available | ||
159 | * device_setup=0x03 | ||
160 | - 16bits 48kHz mode with only the Do port enabled | ||
161 | - AC3 with DTS passthru (not tested) | ||
162 | - Caution with this setup the Do port is mapped to the pcm device hw:1,0 | ||
163 | |||
164 | 2.2.2.2 - Setting and switching configurations with the device_setup parameter | ||
165 | |||
166 | The parameter can be given: | ||
167 | * By manually probing the device (as root): | ||
168 | # modprobe -r snd-usb-audio | ||
169 | # modprobe snd-usb-audio index=1 device_setup=0x09 | ||
170 | * Or while configuring the modules options in your modules configuration file | ||
171 | - For Fedora distributions, edit the /etc/modprobe.conf file: | ||
172 | alias snd-card-1 snd-usb-audio | ||
173 | options snd-usb-audio index=1 device_setup=0x09 | ||
174 | |||
175 | IMPORTANT NOTE WHEN SWITCHING CONFIGURATION: | ||
176 | ------------------------------------------- | ||
177 | * You may need to _first_ intialize the module with the correct device_setup | ||
178 | parameter and _only_after_ turn on the Audiophile USB device | ||
179 | * This is especially true when switching the sample depth: | ||
180 | - first trun off the device | ||
181 | - de-register the snd-usb-audio module | ||
182 | - change the device_setup parameter (by either manually reprobing the module | ||
183 | or changing modprobe.conf) | ||
184 | - turn on the device | ||
185 | |||
186 | 2.2.2.3 - Audiophile USB's device_setup structure | ||
187 | |||
188 | If you want to understand the device_setup magic numbers for the Audiophile | ||
189 | USB, you need some very basic understanding of binary computation. However, | ||
190 | this is not required to use the parameter and you may skip thi section. | ||
191 | |||
192 | The device_setup is one byte long and its structure is the following: | ||
193 | |||
194 | +---+---+---+---+---+---+---+---+ | ||
195 | | b7| b6| b5| b4| b3| b2| b1| b0| | ||
196 | +---+---+---+---+---+---+---+---+ | ||
197 | | 0 | 0 | 0 | Di|24B|96K|DTS|SET| | ||
198 | +---+---+---+---+---+---+---+---+ | ||
199 | |||
200 | Where: | ||
201 | * b0 is the "SET" bit | ||
202 | - it MUST be set if device_setup is initialized | ||
203 | * b1 is the "DTS" bit | ||
204 | - it is set only for Digital output with DTS/AC3 | ||
205 | - this setup is not tested | ||
206 | * b2 is the Rate selection flag | ||
207 | - When set to "1" the rate range is 48.1-96kHz | ||
208 | - Otherwise the sample rate range is 8-48kHz | ||
209 | * b3 is the bit depth selection flag | ||
210 | - When set to "1" samples are 24bits long | ||
211 | - Otherwise they are 16bits long | ||
212 | - Note that b2 implies b3 as the 96kHz mode is only supported for 24 bits | ||
213 | samples | ||
214 | * b4 is the Digital input flag | ||
215 | - When set to "1" the device assumes that an active digital source is | ||
216 | connected | ||
217 | - You shouldn't enable Di if no source is seen on the port (this leads to | ||
218 | synchronization issues) | ||
219 | - b4 is implied by b2 (since only one port is enabled at a time no synch | ||
220 | error can occur) | ||
221 | * b5 to b7 are reserved for future uses, and must be set to "0" | ||
222 | - might become Ao, Do, Ai, for b7, b6, b4 respectively | ||
223 | |||
224 | Caution: | ||
225 | * there is no check on the value you will give to device_setup | ||
226 | - for instance choosing 0x05 (16bits 96kHz) will fail back to 0x09 since | ||
227 | b2 implies b3. But _there_will_be_no_warning_ in /var/log/messages | ||
228 | * Hardware constraints due to the USB bus limitation aren't checked | ||
229 | - choosing b2 will prepare all interfaces for 24bits/96kHz but you'll | ||
230 | only be able to use one at the same time | ||
231 | |||
232 | 2.2.3 - USB implementation details for this device | ||
233 | |||
234 | You may safely skip this section if you're not interrested in driver | ||
235 | development. | ||
236 | |||
237 | This section describes some internals aspect of the device and summarize the | ||
238 | data I got by usb-snooping the windows and linux drivers. | ||
239 | |||
240 | The M-Audio Audiophile USB has 7 USB Interfaces: | ||
241 | a "USB interface": | ||
242 | * USB Interface nb.0 | ||
243 | * USB Interface nb.1 | ||
244 | - Audio Control function | ||
245 | * USB Interface nb.2 | ||
246 | - Analog Output | ||
247 | * USB Interface nb.3 | ||
248 | - Digital Output | ||
249 | * USB Interface nb.4 | ||
250 | - Analog Input | ||
251 | * USB Interface nb.5 | ||
252 | - Digital Input | ||
253 | * USB Interface nb.6 | ||
254 | - MIDI interface compliant with the MIDIMAN quirk | ||
255 | |||
256 | Each interface has 5 altsettings (AltSet 1,2,3,4,5) except: | ||
257 | * Interface 3 (Digital Out) has an extra Alset nb.6 | ||
258 | * Interface 5 (Digital In) does not have Alset nb.3 and 5 | ||
259 | |||
260 | Here is a short description of the AltSettings capabilities: | ||
261 | * AltSettings 1 corresponds to | ||
262 | - 24-bit depth, 48.1-96kHz sample mode | ||
263 | - Adaptive playback (Ao and Do), Synch capture (Ai), or Asynch capture (Di) | ||
264 | * AltSettings 2 corresponds to | ||
265 | - 24-bit depth, 8-48kHz sample mode | ||
266 | - Asynch capture and playback (Ao,Ai,Do,Di) | ||
267 | * AltSettings 3 corresponds to | ||
268 | - 24-bit depth, 8-48kHz sample mode | ||
269 | - Synch capture (Ai) and Adaptive playback (Ao,Do) | ||
270 | * AltSettings 4 corresponds to | ||
271 | - 16-bit depth, 8-48kHz sample mode | ||
272 | - Asynch capture and playback (Ao,Ai,Do,Di) | ||
273 | * AltSettings 5 corresponds to | ||
274 | - 16-bit depth, 8-48kHz sample mode | ||
275 | - Synch capture (Ai) and Adaptive playback (Ao,Do) | ||
276 | * AltSettings 6 corresponds to | ||
277 | - 16-bit depth, 8-48kHz sample mode | ||
278 | - Synch playback (Do), audio format type III IEC1937_AC-3 | ||
279 | |||
280 | In order to ensure a correct intialization of the device, the driver | ||
281 | _must_know_ how the device will be used: | ||
282 | * if DTS is choosen, only Interface 2 with AltSet nb.6 must be | ||
283 | registered | ||
284 | * if 96KHz only AltSets nb.1 of each interface must be selected | ||
285 | * if samples are using 24bits/48KHz then AltSet 2 must me used if | ||
286 | Digital input is connected, and only AltSet nb.3 if Digital input | ||
287 | is not connected | ||
288 | * if samples are using 16bits/48KHz then AltSet 4 must me used if | ||
289 | Digital input is connected, and only AltSet nb.5 if Digital input | ||
290 | is not connected | ||
291 | |||
292 | When device_setup is given as a parameter to the snd-usb-audio module, the | ||
293 | parse_audio_enpoint function uses a quirk called | ||
294 | "audiophile_skip_setting_quirk" in order to prevent AltSettings not | ||
295 | corresponding to device_setup from being registered in the driver. | ||
296 | |||
297 | 3 - Audiophile USB and Jack support | ||
298 | =================================== | ||
299 | |||
300 | This section deals with support of the Audiophile USB device in Jack. | ||
301 | The main issue regarding this support is that the device is Big Endian | ||
302 | compliant. | ||
303 | |||
304 | 3.1 - Using the plug alsa plugin | ||
305 | -------------------------------- | ||
306 | |||
307 | Jack doesn't directly support big endian devices. Thus, one way to have support | ||
308 | for this device with Alsa is to use the Alsa "plug" converter. | ||
309 | |||
310 | For instance here is one way to run Jack with 2 playback channels on Ao and 2 | ||
311 | capture channels from Ai: | ||
312 | % jackd -R -dalsa -dplughw:1 -r48000 -p256 -n2 -D -Cplughw:1,1 | ||
313 | |||
314 | |||
315 | However you may see the following warning message: | ||
316 | "You appear to be using the ALSA software "plug" layer, probably a result of | ||
317 | using the "default" ALSA device. This is less efficient than it could be. | ||
318 | Consider using a hardware device instead rather than using the plug layer." | ||
319 | |||
320 | |||
321 | 3.2 - Patching alsa to use direct pcm device | ||
322 | ------------------------------------------- | ||
323 | A patch for Jack by Andreas Steinmetz adds support for Big Endian devices. | ||
324 | However it has not been included in the CVS tree. | ||
325 | |||
326 | You can find it at the following URL: | ||
327 | http://sourceforge.net/tracker/index.php?func=detail&aid=1289682&group_id=39687& | ||
328 | atid=425939 | ||
329 | |||
330 | After having applied the patch you can run jackd with the following command | ||
331 | line: | ||
332 | % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1 | ||
333 | |||
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index 4251085d38d3..6feef9e82b63 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -1834,7 +1834,7 @@ | |||
1834 | mychip_set_sample_format(chip, runtime->format); | 1834 | mychip_set_sample_format(chip, runtime->format); |
1835 | mychip_set_sample_rate(chip, runtime->rate); | 1835 | mychip_set_sample_rate(chip, runtime->rate); |
1836 | mychip_set_channels(chip, runtime->channels); | 1836 | mychip_set_channels(chip, runtime->channels); |
1837 | mychip_set_dma_setup(chip, runtime->dma_area, | 1837 | mychip_set_dma_setup(chip, runtime->dma_addr, |
1838 | chip->buffer_size, | 1838 | chip->buffer_size, |
1839 | chip->period_size); | 1839 | chip->period_size); |
1840 | return 0; | 1840 | return 0; |
@@ -2836,7 +2836,7 @@ struct _snd_pcm_runtime { | |||
2836 | 2836 | ||
2837 | <para> | 2837 | <para> |
2838 | Note that this callback became non-atomic since the recent version. | 2838 | Note that this callback became non-atomic since the recent version. |
2839 | You can use schedule-related fucntions safely in this callback now. | 2839 | You can use schedule-related functions safely in this callback now. |
2840 | </para> | 2840 | </para> |
2841 | 2841 | ||
2842 | <para> | 2842 | <para> |
@@ -3388,7 +3388,7 @@ struct _snd_pcm_runtime { | |||
3388 | .name = "PCM Playback Switch", | 3388 | .name = "PCM Playback Switch", |
3389 | .index = 0, | 3389 | .index = 0, |
3390 | .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, | 3390 | .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, |
3391 | .private_values = 0xffff, | 3391 | .private_value = 0xffff, |
3392 | .info = my_control_info, | 3392 | .info = my_control_info, |
3393 | .get = my_control_get, | 3393 | .get = my_control_get, |
3394 | .put = my_control_put | 3394 | .put = my_control_put |
@@ -3449,7 +3449,7 @@ struct _snd_pcm_runtime { | |||
3449 | </para> | 3449 | </para> |
3450 | 3450 | ||
3451 | <para> | 3451 | <para> |
3452 | The <structfield>private_values</structfield> field contains | 3452 | The <structfield>private_value</structfield> field contains |
3453 | an arbitrary long integer value for this record. When using | 3453 | an arbitrary long integer value for this record. When using |
3454 | generic <structfield>info</structfield>, | 3454 | generic <structfield>info</structfield>, |
3455 | <structfield>get</structfield> and | 3455 | <structfield>get</structfield> and |
diff --git a/Documentation/sound/oss/Introduction b/Documentation/sound/oss/Introduction index 15d4fb975ac0..f04ba6bb7395 100644 --- a/Documentation/sound/oss/Introduction +++ b/Documentation/sound/oss/Introduction | |||
@@ -69,7 +69,7 @@ are available, for example IRQ, address, DMA. | |||
69 | 69 | ||
70 | Warning, the options for different cards sometime use different names | 70 | Warning, the options for different cards sometime use different names |
71 | for the same or a similar feature (dma1= versus dma16=). As a last | 71 | for the same or a similar feature (dma1= versus dma16=). As a last |
72 | resort, inspect the code (search for MODULE_PARM). | 72 | resort, inspect the code (search for module_param). |
73 | 73 | ||
74 | Notes: | 74 | Notes: |
75 | 75 | ||
diff --git a/Documentation/sound/oss/cs46xx b/Documentation/sound/oss/cs46xx index 88d6cf8b39f3..b54432709863 100644 --- a/Documentation/sound/oss/cs46xx +++ b/Documentation/sound/oss/cs46xx | |||
@@ -88,7 +88,7 @@ parameters. for a copy email: twoller@crystal.cirrus.com | |||
88 | 88 | ||
89 | MODULE_PARMS definitions | 89 | MODULE_PARMS definitions |
90 | ------------------------ | 90 | ------------------------ |
91 | MODULE_PARM(defaultorder, "i"); | 91 | module_param(defaultorder, ulong, 0); |
92 | defaultorder=N | 92 | defaultorder=N |
93 | where N is a value from 1 to 12 | 93 | where N is a value from 1 to 12 |
94 | The buffer order determines the size of the dma buffer for the driver. | 94 | The buffer order determines the size of the dma buffer for the driver. |
@@ -98,18 +98,18 @@ to not underrun the dma buffer as easily. As default, use 32k (order=3) | |||
98 | rather than 64k as some of the games work more responsively. | 98 | rather than 64k as some of the games work more responsively. |
99 | (2^N) * PAGE_SIZE = allocated buffer size | 99 | (2^N) * PAGE_SIZE = allocated buffer size |
100 | 100 | ||
101 | MODULE_PARM(cs_debuglevel, "i"); | 101 | module_param(cs_debuglevel, ulong, 0644); |
102 | MODULE_PARM(cs_debugmask, "i"); | 102 | module_param(cs_debugmask, ulong, 0644); |
103 | cs_debuglevel=N | 103 | cs_debuglevel=N |
104 | cs_debugmask=0xMMMMMMMM | 104 | cs_debugmask=0xMMMMMMMM |
105 | where N is a value from 0 (no debug printfs), to 9 (maximum) | 105 | where N is a value from 0 (no debug printfs), to 9 (maximum) |
106 | 0xMMMMMMMM is a debug mask corresponding to the CS_xxx bits (see driver source). | 106 | 0xMMMMMMMM is a debug mask corresponding to the CS_xxx bits (see driver source). |
107 | 107 | ||
108 | MODULE_PARM(hercules_egpio_disable, "i"); | 108 | module_param(hercules_egpio_disable, ulong, 0); |
109 | hercules_egpio_disable=N | 109 | hercules_egpio_disable=N |
110 | where N is a 0 (enable egpio), or a 1 (disable egpio support) | 110 | where N is a 0 (enable egpio), or a 1 (disable egpio support) |
111 | 111 | ||
112 | MODULE_PARM(initdelay, "i"); | 112 | module_param(initdelay, ulong, 0); |
113 | initdelay=N | 113 | initdelay=N |
114 | This value is used to determine the millescond delay during the initialization | 114 | This value is used to determine the millescond delay during the initialization |
115 | code prior to powering up the PLL. On laptops this value can be used to | 115 | code prior to powering up the PLL. On laptops this value can be used to |
@@ -118,19 +118,19 @@ system is booted under battery power then the mdelay()/udelay() functions fail t | |||
118 | properly delay the required time. Also, if the system is booted under AC power | 118 | properly delay the required time. Also, if the system is booted under AC power |
119 | and then the power removed, the mdelay()/udelay() functions will not delay properly. | 119 | and then the power removed, the mdelay()/udelay() functions will not delay properly. |
120 | 120 | ||
121 | MODULE_PARM(powerdown, "i"); | 121 | module_param(powerdown, ulong, 0); |
122 | powerdown=N | 122 | powerdown=N |
123 | where N is 0 (disable any powerdown of the internal blocks) or 1 (enable powerdown) | 123 | where N is 0 (disable any powerdown of the internal blocks) or 1 (enable powerdown) |
124 | 124 | ||
125 | 125 | ||
126 | MODULE_PARM(external_amp, "i"); | 126 | module_param(external_amp, bool, 0); |
127 | external_amp=1 | 127 | external_amp=1 |
128 | if N is set to 1, then force enabling the EAPD support in the primary AC97 codec. | 128 | if N is set to 1, then force enabling the EAPD support in the primary AC97 codec. |
129 | override the detection logic and force the external amp bit in the AC97 0x26 register | 129 | override the detection logic and force the external amp bit in the AC97 0x26 register |
130 | to be reset (0). EAPD should be 0 for powerup, and 1 for powerdown. The VTB Santa Cruz | 130 | to be reset (0). EAPD should be 0 for powerup, and 1 for powerdown. The VTB Santa Cruz |
131 | card has inverted logic, so there is a special function for these cards. | 131 | card has inverted logic, so there is a special function for these cards. |
132 | 132 | ||
133 | MODULE_PARM(thinkpad, "i"); | 133 | module_param(thinkpad, bool, 0); |
134 | thinkpad=1 | 134 | thinkpad=1 |
135 | if N is set to 1, then force enabling the clkrun functionality. | 135 | if N is set to 1, then force enabling the clkrun functionality. |
136 | Currently, when the part is being used, then clkrun is disabled for the entire system, | 136 | Currently, when the part is being used, then clkrun is disabled for the entire system, |