diff options
Diffstat (limited to 'Documentation/sound')
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 127 | ||||
-rw-r--r-- | Documentation/sound/alsa/CMIPCI.txt | 41 | ||||
-rw-r--r-- | Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 6 | ||||
-rw-r--r-- | Documentation/sound/alsa/emu10k1-jack.txt | 74 | ||||
-rw-r--r-- | Documentation/sound/alsa/hdspm.txt | 362 |
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 | ||
1565 | Early Buffer Allocation | ||
1566 | ======================= | ||
1567 | |||
1568 | Some drivers (e.g. hdsp) require the large contiguous buffers, and | ||
1569 | sometimes it's too late to find such spaces when the driver module is | ||
1570 | actually loaded due to memory fragmentation. You can pre-allocate the | ||
1571 | PCM buffers by loading snd-page-alloc module and write commands to its | ||
1572 | proc file in prior, for example, in the early boot stage like | ||
1573 | /etc/init.d/*.local scripts. | ||
1574 | |||
1575 | Reading the proc file /proc/drivers/snd-page-alloc shows the current | ||
1576 | usage of page allocation. In writing, you can send the following | ||
1577 | commands 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 | |||
1500 | Links | 1595 | Links |
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 | ||
90 | There are some control switchs affecting to the speaker connections: | 90 | There 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 | ||
101 | Digital I/O | 104 | Digital I/O |
102 | ----------- | 105 | ----------- |
103 | 106 | ||
104 | The CM8x38 provides the excellent SPDIF capability with very chip | 107 | The CM8x38 provides the excellent SPDIF capability with very cheap |
105 | price (yes, that's the reason I bought the card :) | 108 | price (yes, that's the reason I bought the card :) |
106 | 109 | ||
107 | The SPDIF playback and capture are done via the third PCM device | 110 | The 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 | |||
122 | simultaneously. | 125 | simultaneously. |
123 | 126 | ||
124 | To enable SPDIF output, you need to turn on "IEC958 Output Switch" | 127 | To enable SPDIF output, you need to turn on "IEC958 Output Switch" |
125 | control via mixer or alsactl. Then you'll see the red light on from | 128 | control via mixer or alsactl ("IEC958" is the official name of |
126 | the card so you know that's working obviously :) | 129 | so-called S/PDIF). Then you'll see the red light on from the card so |
130 | you know that's working obviously :) | ||
127 | The SPDIF input is always enabled, so you can hear SPDIF input data | 131 | The SPDIF input is always enabled, so you can hear SPDIF input data |
128 | from line-out with "IEC958 In Monitor" switch at any time (see | 132 | from line-out with "IEC958 In Monitor" switch at any time (see |
129 | below). | 133 | below). |
@@ -205,9 +209,10 @@ In addition to the standard SB mixer, CM8x38 provides more functions. | |||
205 | MIDI CONTROLLER | 209 | MIDI CONTROLLER |
206 | --------------- | 210 | --------------- |
207 | 211 | ||
208 | The MPU401-UART interface is enabled as default only for the first | 212 | The MPU401-UART interface is disabled as default. You need to set |
209 | (CMIPCI) card. You need to set module option "midi_port" properly | 213 | module option "mpu_port" with a valid I/O port address to enable the |
210 | for the 2nd (CMIPCI) card. | 214 | MIDI support. The valid I/O ports are 0x300, 0x310, 0x320 and 0x330. |
215 | Choose the value which doesn't conflict with other cards. | ||
211 | 216 | ||
212 | There is _no_ hardware wavetable function on this chip (except for | 217 | There is _no_ hardware wavetable function on this chip (except for |
213 | OPL3 synth below). | 218 | OPL3 synth below). |
@@ -229,9 +234,11 @@ I don't know why.. | |||
229 | Joystick and Modem | 234 | Joystick and Modem |
230 | ------------------ | 235 | ------------------ |
231 | 236 | ||
232 | The joystick and modem should be available by enabling the control | 237 | The legacy joystick is supported. To enable the joystick support, pass |
233 | switch "Joystick" and "Modem" respectively. But I myself have never | 238 | joystick_port=1 module option. The value 1 means the auto-detection. |
234 | tested them yet. | 239 | If the auto-detection fails, try to pass the exact I/O address. |
240 | |||
241 | The modem is enabled dynamically via a card control switch "Modem". | ||
235 | 242 | ||
236 | 243 | ||
237 | Debugging Information | 244 | Debugging 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 @@ | |||
1 | This document is a guide to using the emu10k1 based devices with JACK for low | ||
2 | latency, multichannel recording functionality. All of my recent work to allow | ||
3 | Linux users to use the full capabilities of their hardware has been inspired | ||
4 | by the kX Project. Without their work I never would have discovered the true | ||
5 | power of this hardware. | ||
6 | |||
7 | http://www.kxproject.com | ||
8 | - Lee Revell, 2005.03.30 | ||
9 | |||
10 | Low latency, multichannel audio with JACK and the emu10k1/emu10k2 | ||
11 | ----------------------------------------------------------------- | ||
12 | |||
13 | Until recently, emu10k1 users on Linux did not have access to the same low | ||
14 | latency, multichannel features offered by the "kX ASIO" feature of their | ||
15 | Windows driver. As of ALSA 1.0.9 this is no more! | ||
16 | |||
17 | For those unfamiliar with kX ASIO, this consists of 16 capture and 16 playback | ||
18 | channels. With a post 2.6.9 Linux kernel, latencies down to 64 (1.33 ms) or | ||
19 | even 32 (0.66ms) frames should work well. | ||
20 | |||
21 | The configuration is slightly more involved than on Windows, as you have to | ||
22 | select the correct device for JACK to use. Actually, for qjackctl users it's | ||
23 | fairly self explanatory - select Duplex, then for capture and playback select | ||
24 | the multichannel devices, set the in and out channels to 16, and the sample | ||
25 | rate 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 | |||
29 | This will give you 16 input ports and 16 output ports. | ||
30 | |||
31 | The 16 output ports map onto the 16 FX buses (or the first 16 of 64, for the | ||
32 | Audigy). The mapping from FX bus to physical output is described in | ||
33 | SB-Live-mixer.txt (or Audigy-mixer.txt). | ||
34 | |||
35 | The 16 input ports are connected to the 16 physical inputs. Contrary to | ||
36 | popular belief, all emu10k1 cards are multichannel cards. Which of these | ||
37 | input channels have physical inputs connected to them depends on the card | ||
38 | model. Trial and error is highly recommended; the pinout diagrams | ||
39 | for the card have been reverse engineered by some enterprising kX users and are | ||
40 | available on the internet. Meterbridge is helpful here, and the kX forums are | ||
41 | packed with useful information. | ||
42 | |||
43 | Each input port will either correspond to a digital (SPDIF) input, an analog | ||
44 | input, or nothing. The one exception is the SBLive! 5.1. On these devices, | ||
45 | the second and third input ports are wired to the center/LFE output. You will | ||
46 | still see 16 capture channels, but only 14 are available for recording inputs. | ||
47 | |||
48 | This chart, borrowed from kxfxlib/da_asio51.cpp, describes the mapping of JACK | ||
49 | ports to FXBUS2 (multitrack recording input) and EXTOUT (physical output) | ||
50 | channels. | ||
51 | |||
52 | /*JACK (& ASIO) mappings on 10k1 5.1 SBLive cards: | ||
53 | -------------------------------------------- | ||
54 | JACK Epilog FXBUS2(nr) | ||
55 | -------------------------------------------- | ||
56 | capture_1 asio14 FXBUS2(0xe) | ||
57 | capture_2 asio15 FXBUS2(0xf) | ||
58 | capture_3 asio0 FXBUS2(0x0) | ||
59 | ~capture_4 Center EXTOUT(0x11) // mapped to by Center | ||
60 | ~capture_5 LFE EXTOUT(0x12) // mapped to by LFE | ||
61 | capture_6 asio3 FXBUS2(0x3) | ||
62 | capture_7 asio4 FXBUS2(0x4) | ||
63 | capture_8 asio5 FXBUS2(0x5) | ||
64 | capture_9 asio6 FXBUS2(0x6) | ||
65 | capture_10 asio7 FXBUS2(0x7) | ||
66 | capture_11 asio8 FXBUS2(0x8) | ||
67 | capture_12 asio9 FXBUS2(0x9) | ||
68 | capture_13 asio10 FXBUS2(0xa) | ||
69 | capture_14 asio11 FXBUS2(0xb) | ||
70 | capture_15 asio12 FXBUS2(0xc) | ||
71 | capture_16 asio13 FXBUS2(0xd) | ||
72 | */ | ||
73 | |||
74 | TODO: 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 @@ | |||
1 | Software Interface ALSA-DSP MADI Driver | ||
2 | |||
3 | (translated from German, so no good English ;-), | ||
4 | 2004 - 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 | |||
326 | Calling 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 | ||