aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/sound
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/sound')
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt127
-rw-r--r--Documentation/sound/alsa/CMIPCI.txt41
-rw-r--r--Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl6
-rw-r--r--Documentation/sound/alsa/emu10k1-jack.txt74
-rw-r--r--Documentation/sound/alsa/hdspm.txt362
5 files changed, 574 insertions, 36 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 71ef0498d5e0..104a994b8289 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -615,9 +615,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
615 Module snd-hda-intel 615 Module snd-hda-intel
616 -------------------- 616 --------------------
617 617
618 Module for Intel HD Audio (ICH6, ICH6M, ICH7) 618 Module for Intel HD Audio (ICH6, ICH6M, ICH7), ATI SB450,
619 VIA VT8251/VT8237A
619 620
620 model - force the model name 621 model - force the model name
622 position_fix - Fix DMA pointer (0 = FIFO size, 1 = none, 2 = POSBUF)
621 623
622 Module supports up to 8 cards. 624 Module supports up to 8 cards.
623 625
@@ -635,6 +637,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
635 5stack 5-jack in back, 2-jack in front 637 5stack 5-jack in back, 2-jack in front
636 5stack-digout 5-jack in back, 2-jack in front, a SPDIF out 638 5stack-digout 5-jack in back, 2-jack in front, a SPDIF out
637 w810 3-jack 639 w810 3-jack
640 z71v 3-jack (HP shared SPDIF)
641 asus 3-jack
642 uniwill 3-jack
643 F1734 2-jack
638 644
639 CMI9880 645 CMI9880
640 minimal 3-jack in back 646 minimal 3-jack in back
@@ -642,6 +648,15 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
642 full 6-jack in back, 2-jack in front 648 full 6-jack in back, 2-jack in front
643 full_dig 6-jack in back, 2-jack in front, SPDIF I/O 649 full_dig 6-jack in back, 2-jack in front, SPDIF I/O
644 allout 5-jack in back, 2-jack in front, SPDIF out 650 allout 5-jack in back, 2-jack in front, SPDIF out
651 auto auto-config reading BIOS (default)
652
653 Note 2: If you get click noises on output, try the module option
654 position_fix=1 or 2. position_fix=1 will use the SD_LPIB
655 register value without FIFO size correction as the current
656 DMA pointer. position_fix=2 will make the driver to use
657 the position buffer instead of reading SD_LPIB register.
658 (Usually SD_LPLIB register is more accurate than the
659 position buffer.)
645 660
646 Module snd-hdsp 661 Module snd-hdsp
647 --------------- 662 ---------------
@@ -660,7 +675,19 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
660 module did formerly. It will allocate the buffers in advance 675 module did formerly. It will allocate the buffers in advance
661 when any HDSP cards are found. To make the buffer 676 when any HDSP cards are found. To make the buffer
662 allocation sure, load snd-page-alloc module in the early 677 allocation sure, load snd-page-alloc module in the early
663 stage of boot sequence. 678 stage of boot sequence. See "Early Buffer Allocation"
679 section.
680
681 Module snd-hdspm
682 ----------------
683
684 Module for RME HDSP MADI board.
685
686 precise_ptr - Enable precise pointer, or disable.
687 line_outs_monitor - Send playback streams to analog outs by default.
688 enable_monitor - Enable Analog Out on Channel 63/64 by default.
689
690 See hdspm.txt for details.
664 691
665 Module snd-ice1712 692 Module snd-ice1712
666 ------------------ 693 ------------------
@@ -677,15 +704,19 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
677 * TerraTec EWS 88D 704 * TerraTec EWS 88D
678 * TerraTec EWX 24/96 705 * TerraTec EWX 24/96
679 * TerraTec DMX 6Fire 706 * TerraTec DMX 6Fire
707 * TerraTec Phase 88
680 * Hoontech SoundTrack DSP 24 708 * Hoontech SoundTrack DSP 24
681 * Hoontech SoundTrack DSP 24 Value 709 * Hoontech SoundTrack DSP 24 Value
682 * Hoontech SoundTrack DSP 24 Media 7.1 710 * Hoontech SoundTrack DSP 24 Media 7.1
711 * Event Electronics, EZ8
683 * Digigram VX442 712 * Digigram VX442
713 * Lionstracs, Mediastaton
684 714
685 model - Use the given board model, one of the following: 715 model - Use the given board model, one of the following:
686 delta1010, dio2496, delta66, delta44, audiophile, delta410, 716 delta1010, dio2496, delta66, delta44, audiophile, delta410,
687 delta1010lt, vx442, ewx2496, ews88mt, ews88mt_new, ews88d, 717 delta1010lt, vx442, ewx2496, ews88mt, ews88mt_new, ews88d,
688 dmx6fire, dsp24, dsp24_value, dsp24_71, ez8 718 dmx6fire, dsp24, dsp24_value, dsp24_71, ez8,
719 phase88, mediastation
689 omni - Omni I/O support for MidiMan M-Audio Delta44/66 720 omni - Omni I/O support for MidiMan M-Audio Delta44/66
690 cs8427_timeout - reset timeout for the CS8427 chip (S/PDIF transciever) 721 cs8427_timeout - reset timeout for the CS8427 chip (S/PDIF transciever)
691 in msec resolution, default value is 500 (0.5 sec) 722 in msec resolution, default value is 500 (0.5 sec)
@@ -694,20 +725,46 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
694 is not used with all Envy24 based cards (for example in the MidiMan Delta 725 is not used with all Envy24 based cards (for example in the MidiMan Delta
695 serie). 726 serie).
696 727
728 Note: The supported board is detected by reading EEPROM or PCI
729 SSID (if EEPROM isn't available). You can override the
730 model by passing "model" module option in case that the
731 driver isn't configured properly or you want to try another
732 type for testing.
733
697 Module snd-ice1724 734 Module snd-ice1724
698 ------------------ 735 ------------------
699 736
700 Module for Envy24HT (VT/ICE1724) based PCI sound cards. 737 Module for Envy24HT (VT/ICE1724), Envy24PT (VT1720) based PCI sound cards.
701 * MidiMan M Audio Revolution 7.1 738 * MidiMan M Audio Revolution 7.1
702 * AMP Ltd AUDIO2000 739 * AMP Ltd AUDIO2000
703 * TerraTec Aureon Sky-5.1, Space-7.1 740 * TerraTec Aureon 5.1 Sky
741 * TerraTec Aureon 7.1 Space
742 * TerraTec Aureon 7.1 Universe
743 * TerraTec Phase 22
744 * TerraTec Phase 28
745 * AudioTrak Prodigy 7.1
746 * AudioTrak Prodigy 192
747 * Pontis MS300
748 * Albatron K8X800 Pro II
749 * Chaintech ZNF3-150
750 * Chaintech ZNF3-250
751 * Chaintech 9CJS
752 * Chaintech AV-710
753 * Shuttle SN25P
704 754
705 model - Use the given board model, one of the following: 755 model - Use the given board model, one of the following:
706 revo71, amp2000, prodigy71, aureon51, aureon71, 756 revo71, amp2000, prodigy71, prodigy192, aureon51,
707 k8x800 757 aureon71, universe, k8x800, phase22, phase28, ms300,
758 av710
708 759
709 Module supports up to 8 cards and autoprobe. 760 Module supports up to 8 cards and autoprobe.
710 761
762 Note: The supported board is detected by reading EEPROM or PCI
763 SSID (if EEPROM isn't available). You can override the
764 model by passing "model" module option in case that the
765 driver isn't configured properly or you want to try another
766 type for testing.
767
711 Module snd-intel8x0 768 Module snd-intel8x0
712 ------------------- 769 -------------------
713 770
@@ -1026,7 +1083,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1026 module did formerly. It will allocate the buffers in advance 1083 module did formerly. It will allocate the buffers in advance
1027 when any RME9652 cards are found. To make the buffer 1084 when any RME9652 cards are found. To make the buffer
1028 allocation sure, load snd-page-alloc module in the early 1085 allocation sure, load snd-page-alloc module in the early
1029 stage of boot sequence. 1086 stage of boot sequence. See "Early Buffer Allocation"
1087 section.
1030 1088
1031 Module snd-sa11xx-uda1341 (on arm only) 1089 Module snd-sa11xx-uda1341 (on arm only)
1032 --------------------------------------- 1090 ---------------------------------------
@@ -1211,16 +1269,18 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1211 ------------------ 1269 ------------------
1212 1270
1213 Module for AC'97 motherboards based on VIA 82C686A/686B, 8233, 1271 Module for AC'97 motherboards based on VIA 82C686A/686B, 8233,
1214 8233A, 8233C, 8235 (south) bridge. 1272 8233A, 8233C, 8235, 8237 (south) bridge.
1215 1273
1216 mpu_port - 0x300,0x310,0x320,0x330, otherwise obtain BIOS setup 1274 mpu_port - 0x300,0x310,0x320,0x330, otherwise obtain BIOS setup
1217 [VIA686A/686B only] 1275 [VIA686A/686B only]
1218 joystick - Enable joystick (default off) [VIA686A/686B only] 1276 joystick - Enable joystick (default off) [VIA686A/686B only]
1219 ac97_clock - AC'97 codec clock base (default 48000Hz) 1277 ac97_clock - AC'97 codec clock base (default 48000Hz)
1220 dxs_support - support DXS channels, 1278 dxs_support - support DXS channels,
1221 0 = auto (defalut), 1 = enable, 2 = disable, 1279 0 = auto (default), 1 = enable, 2 = disable,
1222 3 = 48k only, 4 = no VRA 1280 3 = 48k only, 4 = no VRA, 5 = enable any sample
1223 [VIA8233/C,8235 only] 1281 rate and different sample rates on different
1282 channels
1283 [VIA8233/C, 8235, 8237 only]
1224 ac97_quirk - AC'97 workaround for strange hardware 1284 ac97_quirk - AC'97 workaround for strange hardware
1225 See the description of intel8x0 module for details. 1285 See the description of intel8x0 module for details.
1226 1286
@@ -1232,18 +1292,23 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1232 default value 1.4. Then the interrupt number will be 1292 default value 1.4. Then the interrupt number will be
1233 assigned under 15. You might also upgrade your BIOS. 1293 assigned under 15. You might also upgrade your BIOS.
1234 1294
1235 Note: VIA8233/5 (not VIA8233A) can support DXS (direct sound) 1295 Note: VIA8233/5/7 (not VIA8233A) can support DXS (direct sound)
1236 channels as the first PCM. On these channels, up to 4 1296 channels as the first PCM. On these channels, up to 4
1237 streams can be played at the same time. 1297 streams can be played at the same time, and the controller
1298 can perform sample rate conversion with separate rates for
1299 each channel.
1238 As default (dxs_support = 0), 48k fixed rate is chosen 1300 As default (dxs_support = 0), 48k fixed rate is chosen
1239 except for the known devices since the output is often 1301 except for the known devices since the output is often
1240 noisy except for 48k on some mother boards due to the 1302 noisy except for 48k on some mother boards due to the
1241 bug of BIOS. 1303 bug of BIOS.
1242 Please try once dxs_support=1 and if it works on other 1304 Please try once dxs_support=5 and if it works on other
1243 sample rates (e.g. 44.1kHz of mp3 playback), please let us 1305 sample rates (e.g. 44.1kHz of mp3 playback), please let us
1244 know the PCI subsystem vendor/device id's (output of 1306 know the PCI subsystem vendor/device id's (output of
1245 "lspci -nv"). 1307 "lspci -nv").
1246 If it doesn't work, try dxs_support=4. If it still doesn't 1308 If dxs_support=5 does not work, try dxs_support=4; if it
1309 doesn't work too, try dxs_support=1. (dxs_support=1 is
1310 usually for old motherboards. The correct implementated
1311 board should work with 4 or 5.) If it still doesn't
1247 work and the default setting is ok, dxs_support=3 is the 1312 work and the default setting is ok, dxs_support=3 is the
1248 right choice. If the default setting doesn't work at all, 1313 right choice. If the default setting doesn't work at all,
1249 try dxs_support=2 to disable the DXS channels. 1314 try dxs_support=2 to disable the DXS channels.
@@ -1497,6 +1562,36 @@ Proc interfaces (/proc/asound)
1497 echo "rvplayer 0 0 block" > /proc/asound/card0/pcm0p/oss 1562 echo "rvplayer 0 0 block" > /proc/asound/card0/pcm0p/oss
1498 1563
1499 1564
1565Early Buffer Allocation
1566=======================
1567
1568Some drivers (e.g. hdsp) require the large contiguous buffers, and
1569sometimes it's too late to find such spaces when the driver module is
1570actually loaded due to memory fragmentation. You can pre-allocate the
1571PCM buffers by loading snd-page-alloc module and write commands to its
1572proc file in prior, for example, in the early boot stage like
1573/etc/init.d/*.local scripts.
1574
1575Reading the proc file /proc/drivers/snd-page-alloc shows the current
1576usage of page allocation. In writing, you can send the following
1577commands to the snd-page-alloc driver:
1578
1579 - add VENDOR DEVICE MASK SIZE BUFFERS
1580
1581 VENDOR and DEVICE are PCI vendor and device IDs. They take
1582 integer numbers (0x prefix is needed for the hex).
1583 MASK is the PCI DMA mask. Pass 0 if not restricted.
1584 SIZE is the size of each buffer to allocate. You can pass
1585 k and m suffix for KB and MB. The max number is 16MB.
1586 BUFFERS is the number of buffers to allocate. It must be greater
1587 than 0. The max number is 4.
1588
1589 - erase
1590
1591 This will erase the all pre-allocated buffers which are not in
1592 use.
1593
1594
1500Links 1595Links
1501===== 1596=====
1502 1597
diff --git a/Documentation/sound/alsa/CMIPCI.txt b/Documentation/sound/alsa/CMIPCI.txt
index 4a7df771b806..1872e24442a4 100644
--- a/Documentation/sound/alsa/CMIPCI.txt
+++ b/Documentation/sound/alsa/CMIPCI.txt
@@ -89,19 +89,22 @@ and use the interleaved 4 channel data.
89 89
90There are some control switchs affecting to the speaker connections: 90There are some control switchs affecting to the speaker connections:
91 91
92"Line-In As Rear" - As mentioned above, the line-in jack is used 92"Line-In Mode" - an enum control to change the behavior of line-in
93 for the rear (3th and 4th channels) output. 93 jack. Either "Line-In", "Rear Output" or "Bass Output" can
94"Line-In As Bass" - The line-in jack is used for the bass (5th 94 be selected. The last item is available only with model 039
95 and 6th channels) output. 95 or newer.
96"Mic As Center/LFE" - The mic jack is used for the bass output. 96 When "Rear Output" is chosen, the surround channels 3 and 4
97 If this switch is on, you cannot use a microphone as a capture 97 are output to line-in jack.
98 source, of course. 98"Mic-In Mode" - an enum control to change the behavior of mic-in
99 99 jack. Either "Mic-In" or "Center/LFE Output" can be
100 selected.
101 When "Center/LFE Output" is chosen, the center and bass
102 channels (channels 5 and 6) are output to mic-in jack.
100 103
101Digital I/O 104Digital I/O
102----------- 105-----------
103 106
104The CM8x38 provides the excellent SPDIF capability with very chip 107The CM8x38 provides the excellent SPDIF capability with very cheap
105price (yes, that's the reason I bought the card :) 108price (yes, that's the reason I bought the card :)
106 109
107The SPDIF playback and capture are done via the third PCM device 110The SPDIF playback and capture are done via the third PCM device
@@ -122,8 +125,9 @@ respectively, so you cannot playback both analog and digital streams
122simultaneously. 125simultaneously.
123 126
124To enable SPDIF output, you need to turn on "IEC958 Output Switch" 127To enable SPDIF output, you need to turn on "IEC958 Output Switch"
125control via mixer or alsactl. Then you'll see the red light on from 128control via mixer or alsactl ("IEC958" is the official name of
126the card so you know that's working obviously :) 129so-called S/PDIF). Then you'll see the red light on from the card so
130you know that's working obviously :)
127The SPDIF input is always enabled, so you can hear SPDIF input data 131The SPDIF input is always enabled, so you can hear SPDIF input data
128from line-out with "IEC958 In Monitor" switch at any time (see 132from line-out with "IEC958 In Monitor" switch at any time (see
129below). 133below).
@@ -205,9 +209,10 @@ In addition to the standard SB mixer, CM8x38 provides more functions.
205MIDI CONTROLLER 209MIDI CONTROLLER
206--------------- 210---------------
207 211
208The MPU401-UART interface is enabled as default only for the first 212The MPU401-UART interface is disabled as default. You need to set
209(CMIPCI) card. You need to set module option "midi_port" properly 213module option "mpu_port" with a valid I/O port address to enable the
210for the 2nd (CMIPCI) card. 214MIDI support. The valid I/O ports are 0x300, 0x310, 0x320 and 0x330.
215Choose the value which doesn't conflict with other cards.
211 216
212There is _no_ hardware wavetable function on this chip (except for 217There is _no_ hardware wavetable function on this chip (except for
213OPL3 synth below). 218OPL3 synth below).
@@ -229,9 +234,11 @@ I don't know why..
229Joystick and Modem 234Joystick and Modem
230------------------ 235------------------
231 236
232The joystick and modem should be available by enabling the control 237The legacy joystick is supported. To enable the joystick support, pass
233switch "Joystick" and "Modem" respectively. But I myself have never 238joystick_port=1 module option. The value 1 means the auto-detection.
234tested them yet. 239If the auto-detection fails, try to pass the exact I/O address.
240
241The modem is enabled dynamically via a card control switch "Modem".
235 242
236 243
237Debugging Information 244Debugging Information
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index e789475304b6..db0b7d2dc477 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -371,7 +371,7 @@
371 <listitem><para>create <function>probe()</function> callback.</para></listitem> 371 <listitem><para>create <function>probe()</function> callback.</para></listitem>
372 <listitem><para>create <function>remove()</function> callback.</para></listitem> 372 <listitem><para>create <function>remove()</function> callback.</para></listitem>
373 <listitem><para>create pci_driver table which contains the three pointers above.</para></listitem> 373 <listitem><para>create pci_driver table which contains the three pointers above.</para></listitem>
374 <listitem><para>create <function>init()</function> function just calling <function>pci_module_init()</function> to register the pci_driver table defined above.</para></listitem> 374 <listitem><para>create <function>init()</function> function just calling <function>pci_register_driver()</function> to register the pci_driver table defined above.</para></listitem>
375 <listitem><para>create <function>exit()</function> function to call <function>pci_unregister_driver()</function> function.</para></listitem> 375 <listitem><para>create <function>exit()</function> function to call <function>pci_unregister_driver()</function> function.</para></listitem>
376 </itemizedlist> 376 </itemizedlist>
377 </para> 377 </para>
@@ -1198,7 +1198,7 @@
1198 /* initialization of the module */ 1198 /* initialization of the module */
1199 static int __init alsa_card_mychip_init(void) 1199 static int __init alsa_card_mychip_init(void)
1200 { 1200 {
1201 return pci_module_init(&driver); 1201 return pci_register_driver(&driver);
1202 } 1202 }
1203 1203
1204 /* clean up the module */ 1204 /* clean up the module */
@@ -1654,7 +1654,7 @@
1654<![CDATA[ 1654<![CDATA[
1655 static int __init alsa_card_mychip_init(void) 1655 static int __init alsa_card_mychip_init(void)
1656 { 1656 {
1657 return pci_module_init(&driver); 1657 return pci_register_driver(&driver);
1658 } 1658 }
1659 1659
1660 static void __exit alsa_card_mychip_exit(void) 1660 static void __exit alsa_card_mychip_exit(void)
diff --git a/Documentation/sound/alsa/emu10k1-jack.txt b/Documentation/sound/alsa/emu10k1-jack.txt
new file mode 100644
index 000000000000..751d45036a05
--- /dev/null
+++ b/Documentation/sound/alsa/emu10k1-jack.txt
@@ -0,0 +1,74 @@
1This document is a guide to using the emu10k1 based devices with JACK for low
2latency, multichannel recording functionality. All of my recent work to allow
3Linux users to use the full capabilities of their hardware has been inspired
4by the kX Project. Without their work I never would have discovered the true
5power of this hardware.
6
7 http://www.kxproject.com
8 - Lee Revell, 2005.03.30
9
10Low latency, multichannel audio with JACK and the emu10k1/emu10k2
11-----------------------------------------------------------------
12
13Until recently, emu10k1 users on Linux did not have access to the same low
14latency, multichannel features offered by the "kX ASIO" feature of their
15Windows driver. As of ALSA 1.0.9 this is no more!
16
17For those unfamiliar with kX ASIO, this consists of 16 capture and 16 playback
18channels. With a post 2.6.9 Linux kernel, latencies down to 64 (1.33 ms) or
19even 32 (0.66ms) frames should work well.
20
21The configuration is slightly more involved than on Windows, as you have to
22select the correct device for JACK to use. Actually, for qjackctl users it's
23fairly self explanatory - select Duplex, then for capture and playback select
24the multichannel devices, set the in and out channels to 16, and the sample
25rate to 48000Hz. The command line looks like this:
26
27/usr/local/bin/jackd -R -dalsa -r48000 -p64 -n2 -D -Chw:0,2 -Phw:0,3 -S
28
29This will give you 16 input ports and 16 output ports.
30
31The 16 output ports map onto the 16 FX buses (or the first 16 of 64, for the
32Audigy). The mapping from FX bus to physical output is described in
33SB-Live-mixer.txt (or Audigy-mixer.txt).
34
35The 16 input ports are connected to the 16 physical inputs. Contrary to
36popular belief, all emu10k1 cards are multichannel cards. Which of these
37input channels have physical inputs connected to them depends on the card
38model. Trial and error is highly recommended; the pinout diagrams
39for the card have been reverse engineered by some enterprising kX users and are
40available on the internet. Meterbridge is helpful here, and the kX forums are
41packed with useful information.
42
43Each input port will either correspond to a digital (SPDIF) input, an analog
44input, or nothing. The one exception is the SBLive! 5.1. On these devices,
45the second and third input ports are wired to the center/LFE output. You will
46still see 16 capture channels, but only 14 are available for recording inputs.
47
48This chart, borrowed from kxfxlib/da_asio51.cpp, describes the mapping of JACK
49ports to FXBUS2 (multitrack recording input) and EXTOUT (physical output)
50channels.
51
52/*JACK (& ASIO) mappings on 10k1 5.1 SBLive cards:
53--------------------------------------------
54JACK Epilog FXBUS2(nr)
55--------------------------------------------
56capture_1 asio14 FXBUS2(0xe)
57capture_2 asio15 FXBUS2(0xf)
58capture_3 asio0 FXBUS2(0x0)
59~capture_4 Center EXTOUT(0x11) // mapped to by Center
60~capture_5 LFE EXTOUT(0x12) // mapped to by LFE
61capture_6 asio3 FXBUS2(0x3)
62capture_7 asio4 FXBUS2(0x4)
63capture_8 asio5 FXBUS2(0x5)
64capture_9 asio6 FXBUS2(0x6)
65capture_10 asio7 FXBUS2(0x7)
66capture_11 asio8 FXBUS2(0x8)
67capture_12 asio9 FXBUS2(0x9)
68capture_13 asio10 FXBUS2(0xa)
69capture_14 asio11 FXBUS2(0xb)
70capture_15 asio12 FXBUS2(0xc)
71capture_16 asio13 FXBUS2(0xd)
72*/
73
74TODO: describe use of ld10k1/qlo10k1 in conjunction with JACK
diff --git a/Documentation/sound/alsa/hdspm.txt b/Documentation/sound/alsa/hdspm.txt
new file mode 100644
index 000000000000..7a67ff71a9f8
--- /dev/null
+++ b/Documentation/sound/alsa/hdspm.txt
@@ -0,0 +1,362 @@
1Software Interface ALSA-DSP MADI Driver
2
3(translated from German, so no good English ;-),
42004 - winfried ritsch
5
6
7
8 Full functionality has been added to the driver. Since some of
9 the Controls and startup-options are ALSA-Standard and only the
10 special Controls are described and discussed below.
11
12
13 hardware functionality:
14
15
16 Audio transmission:
17
18 number of channels -- depends on transmission mode
19
20 The number of channels chosen is from 1..Nmax. The reason to
21 use for a lower number of channels is only resource allocation,
22 since unused DMA channels are disabled and less memory is
23 allocated. So also the throughput of the PCI system can be
24 scaled. (Only important for low performance boards).
25
26 Single Speed -- 1..64 channels
27
28 (Note: Choosing the 56channel mode for transmission or as
29 receiver, only 56 are transmitted/received over the MADI, but
30 all 64 channels are available for the mixer, so channel count
31 for the driver)
32
33 Double Speed -- 1..32 channels
34
35 Note: Choosing the 56-channel mode for
36 transmission/receive-mode , only 28 are transmitted/received
37 over the MADI, but all 32 channels are available for the mixer,
38 so channel count for the driver
39
40
41 Quad Speed -- 1..16 channels
42
43 Note: Choosing the 56-channel mode for
44 transmission/receive-mode , only 14 are transmitted/received
45 over the MADI, but all 16 channels are available for the mixer,
46 so channel count for the driver
47
48 Format -- signed 32 Bit Little Endian (SNDRV_PCM_FMTBIT_S32_LE)
49
50 Sample Rates --
51
52 Single Speed -- 32000, 44100, 48000
53
54 Double Speed -- 64000, 88200, 96000 (untested)
55
56 Quad Speed -- 128000, 176400, 192000 (untested)
57
58 access-mode -- MMAP (memory mapped), Not interleaved
59 (PCM_NON-INTERLEAVED)
60
61 buffer-sizes -- 64,128,256,512,1024,2048,8192 Samples
62
63 fragments -- 2
64
65 Hardware-pointer -- 2 Modi
66
67
68 The Card supports the readout of the actual Buffer-pointer,
69 where DMA reads/writes. Since of the bulk mode of PCI it is only
70 64 Byte accurate. SO it is not really usable for the
71 ALSA-mid-level functions (here the buffer-ID gives a better
72 result), but if MMAP is used by the application. Therefore it
73 can be configured at load-time with the parameter
74 precise-pointer.
75
76
77 (Hint: Experimenting I found that the pointer is maximum 64 to
78 large never to small. So if you subtract 64 you always have a
79 safe pointer for writing, which is used on this mode inside
80 ALSA. In theory now you can get now a latency as low as 16
81 Samples, which is a quarter of the interrupt possibilities.)
82
83 Precise Pointer -- off
84 interrupt used for pointer-calculation
85
86 Precise Pointer -- on
87 hardware pointer used.
88
89 Controller:
90
91
92 Since DSP-MADI-Mixer has 8152 Fader, it does not make sense to
93 use the standard mixer-controls, since this would break most of
94 (especially graphic) ALSA-Mixer GUIs. So Mixer control has be
95 provided by a 2-dimensional controller using the
96 hwdep-interface.
97
98 Also all 128+256 Peak and RMS-Meter can be accessed via the
99 hwdep-interface. Since it could be a performance problem always
100 copying and converting Peak and RMS-Levels even if you just need
101 one, I decided to export the hardware structure, so that of
102 needed some driver-guru can implement a memory-mapping of mixer
103 or peak-meters over ioctl, or also to do only copying and no
104 conversion. A test-application shows the usage of the controller.
105
106 Latency Controls --- not implemented !!!
107
108
109 Note: Within the windows-driver the latency is accessible of a
110 control-panel, but buffer-sizes are controlled with ALSA from
111 hwparams-calls and should not be changed in run-state, I did not
112 implement it here.
113
114
115 System Clock -- suspended !!!!
116
117 Name -- "System Clock Mode"
118
119 Access -- Read Write
120
121 Values -- "Master" "Slave"
122
123
124 !!!! This is a hardware-function but is in conflict with the
125 Clock-source controller, which is a kind of ALSA-standard. I
126 makes sense to set the card to a special mode (master at some
127 frequency or slave), since even not using an Audio-application
128 a studio should have working synchronisations setup. So use
129 Clock-source-controller instead !!!!
130
131 Clock Source
132
133 Name -- "Sample Clock Source"
134
135 Access -- Read Write
136
137 Values -- "AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz",
138 "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz",
139 "Internal 96.0 kHz"
140
141 Choose between Master at a specific Frequency and so also the
142 Speed-mode or Slave (Autosync). Also see "Preferred Sync Ref"
143
144
145 !!!! This is no pure hardware function but was implemented by
146 ALSA by some ALSA-drivers before, so I use it also. !!!
147
148
149 Preferred Sync Ref
150
151 Name -- "Preferred Sync Reference"
152
153 Access -- Read Write
154
155 Values -- "Word" "MADI"
156
157
158 Within the Auto-sync-Mode the preferred Sync Source can be
159 chosen. If it is not available another is used if possible.
160
161 Note: Since MADI has a much higher bit-rate than word-clock, the
162 card should synchronise better in MADI Mode. But since the
163 RME-PLL is very good, there are almost no problems with
164 word-clock too. I never found a difference.
165
166
167 TX 64 channel ---
168
169 Name -- "TX 64 channels mode"
170
171 Access -- Read Write
172
173 Values -- 0 1
174
175 Using 64-channel-modus (1) or 56-channel-modus for
176 MADI-transmission (0).
177
178
179 Note: This control is for output only. Input-mode is detected
180 automatically from hardware sending MADI.
181
182
183 Clear TMS ---
184
185 Name -- "Clear Track Marker"
186
187 Access -- Read Write
188
189 Values -- 0 1
190
191
192 Don't use to lower 5 Audio-bits on AES as additional Bits.
193
194
195 Safe Mode oder Auto Input ---
196
197 Name -- "Safe Mode"
198
199 Access -- Read Write
200
201 Values -- 0 1
202
203 (default on)
204
205 If on (1), then if either the optical or coaxial connection
206 has a failure, there is a takeover to the working one, with no
207 sample failure. Its only useful if you use the second as a
208 backup connection.
209
210 Input ---
211
212 Name -- "Input Select"
213
214 Access -- Read Write
215
216 Values -- optical coaxial
217
218
219 Choosing the Input, optical or coaxial. If Safe-mode is active,
220 this is the preferred Input.
221
222-------------- Mixer ----------------------
223
224 Mixer
225
226 Name -- "Mixer"
227
228 Access -- Read Write
229
230 Values - <channel-number 0-127> <Value 0-65535>
231
232
233 Here as a first value the channel-index is taken to get/set the
234 corresponding mixer channel, where 0-63 are the input to output
235 fader and 64-127 the playback to outputs fader. Value 0
236 is channel muted 0 and 32768 an amplification of 1.
237
238 Chn 1-64
239
240 fast mixer for the ALSA-mixer utils. The diagonal of the
241 mixer-matrix is implemented from playback to output.
242
243
244 Line Out
245
246 Name -- "Line Out"
247
248 Access -- Read Write
249
250 Values -- 0 1
251
252 Switching on and off the analog out, which has nothing to do
253 with mixing or routing. the analog outs reflects channel 63,64.
254
255
256--- information (only read access):
257
258 Sample Rate
259
260 Name -- "System Sample Rate"
261
262 Access -- Read-only
263
264 getting the sample rate.
265
266
267 External Rate measured
268
269 Name -- "External Rate"
270
271 Access -- Read only
272
273
274 Should be "Autosync Rate", but Name used is
275 ALSA-Scheme. External Sample frequency liked used on Autosync is
276 reported.
277
278
279 MADI Sync Status
280
281 Name -- "MADI Sync Lock Status"
282
283 Access -- Read
284
285 Values -- 0,1,2
286
287 MADI-Input is 0=Unlocked, 1=Locked, or 2=Synced.
288
289
290 Word Clock Sync Status
291
292 Name -- "Word Clock Lock Status"
293
294 Access -- Read
295
296 Values -- 0,1,2
297
298 Word Clock Input is 0=Unlocked, 1=Locked, or 2=Synced.
299
300 AutoSync
301
302 Name -- "AutoSync Reference"
303
304 Access -- Read
305
306 Values -- "WordClock", "MADI", "None"
307
308 Sync-Reference is either "WordClock", "MADI" or none.
309
310 RX 64ch --- noch nicht implementiert
311
312 MADI-Receiver is in 64 channel mode oder 56 channel mode.
313
314
315 AB_inp --- not tested
316
317 Used input for Auto-Input.
318
319
320 actual Buffer Position --- not implemented
321
322 !!! this is a ALSA internal function, so no control is used !!!
323
324
325
326Calling Parameter:
327
328 index int array (min = 1, max = 8),
329 "Index value for RME HDSPM interface." card-index within ALSA
330
331 note: ALSA-standard
332
333 id string array (min = 1, max = 8),
334 "ID string for RME HDSPM interface."
335
336 note: ALSA-standard
337
338 enable int array (min = 1, max = 8),
339 "Enable/disable specific HDSPM sound-cards."
340
341 note: ALSA-standard
342
343 precise_ptr int array (min = 1, max = 8),
344 "Enable precise pointer, or disable."
345
346 note: Use only when the application supports this (which is a special case).
347
348 line_outs_monitor int array (min = 1, max = 8),
349 "Send playback streams to analog outs by default."
350
351
352 note: each playback channel is mixed to the same numbered output
353 channel (routed). This is against the ALSA-convention, where all
354 channels have to be muted on after loading the driver, but was
355 used before on other cards, so i historically use it again)
356
357
358
359 enable_monitor int array (min = 1, max = 8),
360 "Enable Analog Out on Channel 63/64 by default."
361
362 note: here the analog output is enabled (but not routed). \ No newline at end of file