Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | ALS-007/ALS-100/ALS-200 based sound cards |
| 2 | ========================================= |
| 3 | |
| 4 | Support for sound cards based around the Avance Logic |
| 5 | ALS-007/ALS-100/ALS-200 chip is included. These chips are a single |
| 6 | chip PnP sound solution which is mostly hardware compatible with the |
| 7 | Sound Blaster 16 card, with most differences occurring in the use of |
| 8 | the mixer registers. For this reason the ALS code is integrated |
| 9 | as part of the Sound Blaster 16 driver (adding only 800 bytes to the |
| 10 | SB16 driver). |
| 11 | |
| 12 | To use an ALS sound card under Linux, enable the following options as |
| 13 | modules in the sound configuration section of the kernel config: |
| 14 | - 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support |
| 15 | - FM synthesizer (YM3812/OPL-3) support |
| 16 | - standalone MPU401 support may be required for some cards; for the |
| 17 | ALS-007, when using isapnptools, it is required |
| 18 | Since the ALS-007/100/200 are PnP cards, ISAPnP support should probably be |
| 19 | compiled in. If kernel level PnP support is not included, isapnptools will |
| 20 | be required to configure the card before the sound modules are loaded. |
| 21 | |
| 22 | When using kernel level ISAPnP, the kernel should correctly identify and |
| 23 | configure all resources required by the card when the "sb" module is |
| 24 | inserted. Note that the ALS-007 does not have a 16 bit DMA channel and that |
| 25 | the MPU401 interface on this card uses a different interrupt to the audio |
| 26 | section. This should all be correctly configured by the kernel; if problems |
| 27 | with the MPU401 interface surface, try using the standalone MPU401 module, |
| 28 | passing "0" as the "sb" module's "mpu_io" module parameter to prevent the |
| 29 | soundblaster driver attempting to register the MPU401 itself. The onboard |
| 30 | synth device can be accessed using the "opl3" module. |
| 31 | |
| 32 | If isapnptools is used to wake up the sound card (as in 2.2.x), the settings |
| 33 | of the card's resources should be passed to the kernel modules ("sb", "opl3" |
| 34 | and "mpu401") using the module parameters. When configuring an ALS-007, be |
| 35 | sure to specify different IRQs for the audio and MPU401 sections - this card |
| 36 | requires they be different. For "sb", "io", "irq" and "dma" should be set |
| 37 | to the same values used to configure the audio section of the card with |
| 38 | isapnp. "dma16" should be explicitly set to "-1" for an ALS-007 since this |
| 39 | card does not have a 16 bit dma channel; if not specified the kernel will |
| 40 | default to using channel 5 anyway which will cause audio not to work. |
| 41 | "mpu_io" should be set to 0. The "io" parameter of the "opl3" module should |
| 42 | also agree with the setting used by isapnp. To get the MPU401 interface |
| 43 | working on an ALS-007 card, the "mpu401" module will be required since this |
| 44 | card uses separate IRQs for the audio and MPU401 sections and there is no |
| 45 | parameter available to pass a different IRQ to the "sb" driver (whose |
| 46 | inbuilt MPU401 driver would otherwise be fine). Insert the mpu401 module |
| 47 | passing appropriate values using the "io" and "irq" parameters. |
| 48 | |
| 49 | The resulting sound driver will provide the following capabilities: |
| 50 | - 8 and 16 bit audio playback |
| 51 | - 8 and 16 bit audio recording |
| 52 | - Software selection of record source (line in, CD, FM, mic, master) |
| 53 | - Record and playback of midi data via the external MPU-401 |
| 54 | - Playback of midi data using inbuilt FM synthesizer |
| 55 | - Control of the ALS-007 mixer via any OSS-compatible mixer programs. |
| 56 | Controls available are Master (L&R), Line in (L&R), CD (L&R), |
| 57 | DSP/PCM/audio out (L&R), FM (L&R) and Mic in (mono). |
| 58 | |
| 59 | Jonathan Woithe |
| 60 | jwoithe@physics.adelaide.edu.au |
| 61 | 30 March 1998 |
| 62 | |
| 63 | Modified 2000-02-26 by Dave Forrest, drf5n@virginia.edu to add ALS100/ALS200 |
| 64 | Modified 2000-04-10 by Paul Laufer, pelaufer@csupomona.edu to add ISAPnP info. |
| 65 | Modified 2000-11-19 by Jonathan Woithe, jwoithe@physics.adelaide.edu.au |
| 66 | - updated information for kernel 2.4.x. |