| 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. |