diff -ur linux.orig/Documentation/sound/ALS007 linux/Documentation/sound/ALS007 --- linux.orig/Documentation/sound/ALS007 Fri Jul 10 23:03:35 1998 +++ linux/Documentation/sound/ALS007 Sun Feb 27 23:22:08 2000 @@ -8,22 +8,23 @@ code is integrated as part of the Sound Blaster 16 driver (adding only 800 bytes to the SB16 driver). -To use an ALS-007 sound card under Linux, enable the following options in the +To use an ALS-007 sound card under Linux, enable the following modules in the sound configuration section of the kernel config: - 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support - FM synthesizer (YM3812/OPL-3) support -Since the ALS-007 is a PnP card, the sound driver probably should be -compiled as a module, with the isapnptools used to wake up the sound card. -Set the "I/O base for SB", "Sound Blaster IRQ" and "Sound Blaster DMA" (8 bit - -either 0, 1 or 3) to the values used in your particular installation (they -should match the values used to configure the card using isapnp). The -ALS-007 does NOT implement 16 bit DMA, so the "Sound Blaster 16 bit DMA" -should be set to -1. If you wish to use the external MPU-401 interface on -the card, "MPU401 I/O base of SB16" and "SB MPU401 IRQ" should be set to -the appropriate values for your installation. (Note that the ALS-007 -requires a separate IRQ for the MPU-401, so don't specify -1 here). (Note -that the base port of the internal FM synth is fixed at 0x388 on the ALS007; -in any case the FM synth location cannot be set in the kernel configuration). +Since the ALS-007 is a PnP card, you should also enable the following options +in the Plug and Play section of the kernel config to configure the card +automatically at startup: + - Plug and Play support + - ISA Plug and Play support + +Alternatively, you can use isapnptools to wake up the sound card. +You will then need to tell the module what is in /etc/isapnp.conf by adding +a line in /etc/modules.conf like: +options sb io=0x220 irq=5 dma=1 dma16=-1 mpu_io=0x330 mpu_irq=11 +These options are the same as in Documentation/Soundblaster except that: + - dma16 should always be set to -1 + - the mpu401 has an irq that you have to set with mpu_irq The resulting sound driver will provide the following capabilities: - 8 and 16 bit audio playback @@ -38,3 +39,6 @@ Jonathan Woithe jwoithe@physics.adelaide.edu.au 30 March 1998 + +Updated for the 2.3 kernel by Gaël Quéri +27 February 2000 diff -ur linux.orig/drivers/sound/sb_card.c linux/drivers/sound/sb_card.c --- linux.orig/drivers/sound/sb_card.c Mon Feb 28 00:03:50 2000 +++ linux/drivers/sound/sb_card.c Mon Feb 28 01:15:58 2000 @@ -26,6 +26,9 @@ * 13-02-2000 Hopefully fixed awe/sb16 related bugs, code cleanup. * Alessandro Zummo * + * 27-02-2000 Added ALS007 PnP support + * Gaël Quéri + * */ #include @@ -139,7 +142,8 @@ *wss_dev = NULL, *jp_dev = NULL, *mpu_dev = NULL, - *wt_dev = NULL; + *wt_dev = NULL, + *opl3_dev = NULL; /* * Note DMA2 of -1 has the right meaning in the SB16 driver as well * as here. It will cause either an error if it is needed or a fallback @@ -147,6 +151,7 @@ */ int mpu_io = 0; +int mpu_irq = -1; int io = -1; int irq = -1; int dma = -1; @@ -174,6 +179,7 @@ MODULE_PARM(dma, "i"); MODULE_PARM(dma16, "i"); MODULE_PARM(mpu_io, "i"); +MODULE_PARM(mpu_irq, "i"); MODULE_PARM(type, "i"); MODULE_PARM(mad16, "i"); MODULE_PARM(support, "i"); @@ -196,7 +202,8 @@ MODULE_PARM_DESC(irq, "IRQ (5,7,9,10)"); MODULE_PARM_DESC(dma, "8-bit DMA channel (0,1,3)"); MODULE_PARM_DESC(dma16, "16-bit DMA channel (5,6,7)"); -MODULE_PARM_DESC(mpu_io, "Mpu base address"); +MODULE_PARM_DESC(mpu_io, "MPU base address"); +MODULE_PARM_DESC(mpu_irq, "MPU IRQ (only for ALS007)"); MODULE_PARM_DESC(type, "You can set this to specific card type"); MODULE_PARM_DESC(mad16, "Enable MAD16 support"); MODULE_PARM_DESC(trix, "Enable Audiotrix support"); @@ -475,6 +482,77 @@ return(sb_dev); }