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