N: Eddie C. Dost
E: ecd@skynet.be
D: Linux/Sparc kernel hacker
-D: New Linux/Sparc maintainer (while davem is at SGI)
+D: Linux/Sparc maintainer
S: Rue de la Chapelle 51
S: 4850 Moresnet
S: Belgium
N: Pavel Machek
E: pavel@atrey.karlin.mff.cuni.cz
D: Softcursor for vga, hypertech cdrom support, vcsa bugfix
-D: Network block device
+D: Network block device, sun4/330 port
S: Volkova 1131
S: 198 00 Praha 9
S: Czech Republic
D: New Linux-Activists maintainer
D: Linux Emacs elf/qmagic support + other libc/gcc things
D: Yee bore de yee bore! ;-)
-S: 2 Bristol Court
-S: East Brunswick, New Jersey 08816
+S: 111 Alta Tierra Court
+S: Los Gatos, CA 95032
S: USA
N: Rick Miller
S: Maintained
SPARC:
-P: David S. Miller
-M: davem@caip.rutgers.edu
+P: Eddie C. Dost
+M: ecd@skynet.be
L: sparclinux@vger.rutgers.edu
S: Maintained
.quad 0x00809a0000000000 /* 0x50 APM CS 16 code (16 bit) */
.quad 0x00c0920000000000 /* 0x58 APM DS data */
.fill 2*NR_TASKS,8,0 /* space for LDT's and TSS's etc */
+
+/*
+ * This is to aid debugging, the various locking macros will be putting
+ * code fragments here. When an oops occurs we'd rather know that it's
+ * inside the .text.lock section rather than as some offset from whatever
+ * function happens to be last in the .text segment.
+ */
+.section .text.lock
+ENTRY(stext_lock)
irq_exit(cpu, irq);
__restore_flags(flags);
- } else {
- enable_IO_APIC_irq(irq);
+ } else
spin_unlock_irqrestore(&irq_controller_lock, flags);
- }
}
#endif
* want to be able to accept NMI tlb invalidates
* during this time.
*/
+ spin_lock(&irq_controller_lock);
ack_APIC_irq ();
+ spin_unlock(&irq_controller_lock);
smp_local_timer_interrupt(regs);
}
#include <asm/io.h>
#include <asm/uaccess.h>
-static int can_use_virtual_dma=2;
+static int can_use_virtual_dma=0;
/* =======
* can use virtual DMA:
* 0 = use of virtual DMA disallowed by config
struct video_audio v;
if(copy_from_user(&v,arg, sizeof(v)))
return -EFAULT;
+ if(v.audio!=0)
+ return -EINVAL;
if(v.flags&VIDEO_AUDIO_MUTE)
audio(btv, AUDIO_MUTE);
- if(v.audio<0||v.audio>2)
- return -EINVAL;
- bt848_muxsel(btv,v.audio);
if(!(v.flags&VIDEO_AUDIO_MUTE))
audio(btv, AUDIO_UNMUTE);
btv->audio_dev=v;
dep_tristate 'ProAudioSpectrum 16 support' CONFIG_PAS $CONFIG_SOUND
if [ "$CONFIG_PAS" = "y" ]; then
- int 'PAS16 IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15' PAS_IRQ 10
- int 'PAS16 DMA 0, 1, 3, 5, 6 or 7' PAS_DMA 3
+ int 'PAS16 IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15' CONFIG_PAS_IRQ 10
+ int 'PAS16 DMA 0, 1, 3, 5, 6 or 7' CONFIG_PAS_DMA 3
fi
dep_tristate '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' CONFIG_SB $CONFIG_SOUND
if [ "$CONFIG_SB" = "y" ]; then
- hex 'I/O base for SB Check from manual of the card' SBC_BASE 220
- int 'Sound Blaster IRQ Check from manual of the card' SBC_IRQ 7
- int 'Sound Blaster DMA 0, 1 or 3' SBC_DMA 1
- int 'Sound Blaster 16 bit DMA (SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards)' SB_DMA2 5
- hex 'MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card' SB_MPU_BASE 330
+ hex 'I/O base for SB Check from manual of the card' CONFIG_SB_BASE 220
+ int 'Sound Blaster IRQ Check from manual of the card' CONFIG_SB_IRQ 7
+ int 'Sound Blaster DMA 0, 1 or 3' CONFIG_SB_DMA 1
+ int 'Sound Blaster 16 bit DMA (SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards)' CONFIG_SB_DMA2 5
+ hex 'MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card' CONFIG_SB_MPU_BASE 330
comment 'MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.'
comment 'Enter -1 to the following question if you have something else such as SB16/32.'
- int 'SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Check from manual of the card' SB_MPU_IRQ -1
+ int 'SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Check from manual of the card' CONFIG_SB_MPU_IRQ -1
fi
dep_tristate 'Generic OPL2/OPL3 FM synthesizer support' CONFIG_ADLIB $CONFIG_SOUND
bool '16 bit sampling option of GUS (_NOT_ GUS MAX)' CONFIG_GUS16
bool 'GUS MAX support' CONFIG_GUSMAX
if [ "$CONFIG_GUS" = "y" ]; then
- hex 'I/O base for GUS 210, 220, 230, 240, 250 or 260' GUS_BASE 220
- int 'GUS IRQ 3, 5, 7, 9, 11, 12 or 15' GUS_IRQ 15
- int 'GUS DMA 1, 3, 5, 6 or 7' GUS_DMA 6
- int 'Second DMA channel for GUS 1, 3, 5, 6 or 7' GUS_DMA2 -1
+ hex 'I/O base for GUS 210, 220, 230, 240, 250 or 260' CONFIG_GUS_BASE 220
+ int 'GUS IRQ 3, 5, 7, 9, 11, 12 or 15' CONFIG_GUS_IRQ 15
+ int 'GUS DMA 1, 3, 5, 6 or 7' CONFIG_GUS_DMA 6
+ int 'Second DMA channel for GUS 1, 3, 5, 6 or 7' CONFIG_GUS_DMA2 -1
if [ "$CONFIG_GUS16" = "y" ]; then
- hex 'I/O base for the 16 bit daughtercard of GUS 530, 604, E80 or F40' GUS16_BASE 530
- int 'GUS 16 bit daughtercard IRQ 3, 4, 5, 7, or 9' GUS16_IRQ 7
- int 'GUS DMA 0, 1 or 3' GUS16_DMA 3
+ hex 'I/O base for the 16 bit daughtercard of GUS 530, 604, E80 or F40' CONFIG_GUS16_BASE 530
+ int 'GUS 16 bit daughtercard IRQ 3, 4, 5, 7, or 9' CONFIG_GUS16_IRQ 7
+ int 'GUS DMA 0, 1 or 3' CONFIG_GUS16_DMA 3
fi
fi
fi
dep_tristate 'MPU-401 support (NOT for SB16)' CONFIG_MPU401 $CONFIG_SOUND
if [ "$CONFIG_MPU401" = "y" ]; then
- hex 'I/O base for MPU401 Check from manual of the card' MPU_BASE 330
- int 'MPU401 IRQ Check from manual of the card' MPU_IRQ 9
+ hex 'I/O base for MPU401 Check from manual of the card' CONFIG_MPU_BASE 330
+ int 'MPU401 IRQ Check from manual of the card' CONFIG_MPU_IRQ 9
fi
dep_tristate 'PSS (ECHO-ADI2111) support' CONFIG_PSS $CONFIG_SOUND
if [ "$CONFIG_PSS" = "y" ]; then
- hex 'PSS I/O base 220 or 240' PSS_BASE 220
- hex 'PSS audio I/O base 530, 604, E80 or F40' PSS_MSS_BASE 530
- int 'PSS audio IRQ 7, 9, 10 or 11' PSS_MSS_IRQ 11
- int 'PSS audio DMA 0, 1 or 3' PSS_MSS_DMA 3
- hex 'PSS MIDI I/O base ' PSS_MPU_BASE 330
- int 'PSS MIDI IRQ 3, 4, 5, 7 or 9' PSS_MPU_IRQ 9
- bool ' Have DSPxxx.LD firmware file' PSS_HAVE_BOOT
- if [ "$PSS_HAVE_BOOT" = "y" ]; then
- string ' Full pathname of DSPxxx.LD firmware file' PSS_BOOT_FILE
+ hex 'PSS I/O base 220 or 240' CONFIG_PSS_BASE 220
+ hex 'PSS audio I/O base 530, 604, E80 or F40' CONFIG_PSS_MSS_BASE 530
+ int 'PSS audio IRQ 7, 9, 10 or 11' CONFIG_PSS_MSS_IRQ 11
+ int 'PSS audio DMA 0, 1 or 3' CONFIG_PSS_MSS_DMA 3
+ hex 'PSS MIDI I/O base ' CONFIG_PSS_MPU_BASE 330
+ int 'PSS MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_PSS_MPU_IRQ 9
+ bool ' Have DSPxxx.LD firmware file' CONFIG_PSS_HAVE_BOOT
+ if [ "$CONFIG_PSS_HAVE_BOOT" = "y" ]; then
+ string ' Full pathname of DSPxxx.LD firmware file' CONFIG_PSS_BOOT_FILE
fi
fi
dep_tristate 'Microsoft Sound System support' CONFIG_MSS $CONFIG_SOUND
if [ "$CONFIG_MSS" = "y" ]; then
- hex 'MSS/WSS I/O base 530, 604, E80 or F40' MSS_BASE 530
- int 'MSS/WSS IRQ 7, 9, 10 or 11' MSS_IRQ 11
- int 'MSS/WSS DMA 0, 1 or 3' MSS_DMA 3
- int 'MSS/WSS second DMA (if possible) 0, 1 or 3' MSS_DMA2 -1
+ hex 'MSS/WSS I/O base 530, 604, E80 or F40' CONFIG_MSS_BASE 530
+ int 'MSS/WSS IRQ 7, 9, 10 or 11' CONFIG_MSS_IRQ 11
+ int 'MSS/WSS DMA 0, 1 or 3' CONFIG_MSS_DMA 3
+ int 'MSS/WSS second DMA (if possible) 0, 1 or 3' CONFIG_MSS_DMA2 -1
fi
dep_tristate 'Ensoniq SoundScape support' CONFIG_SSCAPE $CONFIG_SOUND
if [ "$CONFIG_SSCAPE" = "y" ]; then
- hex 'SoundScape MIDI I/O base 320, 330, 340 or 350' SSCAPE_BASE 330
- int 'SoundScape MIDI IRQ ' SSCAPE_IRQ 9
- int 'SoundScape initialization DMA 0, 1 or 3' SSCAPE_DMA 3
- hex 'SoundScape audio I/O base 534, 608, E84 or F44' SSCAPE_MSS_BASE 534
- int 'SoundScape audio IRQ 7, 9, 10 or 11' SSCAPE_MSS_IRQ 11
+ hex 'SoundScape MIDI I/O base 320, 330, 340 or 350' CONFIG_SSCAPE_BASE 330
+ int 'SoundScape MIDI IRQ ' CONFIG_SSCAPE_IRQ 9
+ int 'SoundScape initialization DMA 0, 1 or 3' CONFIG_SSCAPE_DMA 3
+ hex 'SoundScape audio I/O base 534, 608, E84 or F44' CONFIG_SSCAPE_MSS_BASE 534
+ int 'SoundScape audio IRQ 7, 9, 10 or 11' CONFIG_SSCAPE_MSS_IRQ 11
fi
dep_tristate 'MediaTrix AudioTrix Pro support' CONFIG_TRIX $CONFIG_SOUND
if [ "$CONFIG_TRIX" = "y" ]; then
- hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' TRIX_BASE 530
- int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' TRIX_IRQ 11
- int 'OPL3-SA1 audio DMA 0, 1 or 3' TRIX_DMA 0
- int 'OPL3-SA1 second (duplex) DMA 0, 1 or 3' TRIX_DMA2 3
- hex 'OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' TRIX_MPU_BASE 330
- int 'OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' TRIX_MPU_IRQ 9
- hex 'OPL3-SA1 SB I/O base 220, 210, 230, 240, 250, 260 or 270' TRIX_SB_BASE 220
- int 'OPL3-SA1 SB IRQ 3, 4, 5 or 7' TRIX_SB_IRQ 7
- int 'OPL3-SA1 SB DMA 1 or 3' TRIX_SB_DMA 1
- bool ' Have TRXPRO.HEX firmware file' TRIX_HAVE_BOOT
- if [ "$TRIX_HAVE_BOOT" = "y" ]; then
- string ' Full pathname of TRXPRO.HEX firmware file' TRIX_BOOT_FILE
+ hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' CONFIG_TRIX_BASE 530
+ int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' CONFIG_TRIX_IRQ 11
+ int 'OPL3-SA1 audio DMA 0, 1 or 3' CONFIG_TRIX_DMA 0
+ int 'OPL3-SA1 second (duplex) DMA 0, 1 or 3' CONFIG_TRIX_DMA2 3
+ hex 'OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_TRIX_MPU_BASE 330
+ int 'OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_TRIX_MPU_IRQ 9
+ hex 'OPL3-SA1 SB I/O base 220, 210, 230, 240, 250, 260 or 270' CONFIG_TRIX_SB_BASE 220
+ int 'OPL3-SA1 SB IRQ 3, 4, 5 or 7' CONFIG_TRIX_SB_IRQ 7
+ int 'OPL3-SA1 SB DMA 1 or 3' CONFIG_TRIX_SB_DMA 1
+ bool ' Have TRXPRO.HEX firmware file' CONFIG_TRIX_HAVE_BOOT
+ if [ "$CONFIG_TRIX_HAVE_BOOT" = "y" ]; then
+ string ' Full pathname of TRXPRO.HEX firmware file' CONFIG_TRIX_BOOT_FILE
fi
fi
dep_tristate 'Support for OPTi MAD16 and/or Mozart based cards' CONFIG_MAD16 $CONFIG_SOUND
if [ "$CONFIG_MAD16" = "y" ]; then
- hex 'MAD16 audio I/O base 530, 604, E80 or F40' MAD16_BASE 530
- int 'MAD16 audio IRQ 7, 9, 10 or 11' MAD16_IRQ 11
- int 'MAD16 audio DMA 0, 1 or 3' MAD16_DMA 3
- int 'MAD16 second (duplex) DMA 0, 1 or 3' MAD16_DMA2 0
- hex 'MAD16 MIDI I/O base 300, 310, 320 or 330 (0 disables)' MAD16_MPU_BASE 330
- int 'MAD16 MIDI IRQ 5, 7, 9 or 10' MAD16_MPU_IRQ 9
+ hex 'MAD16 audio I/O base 530, 604, E80 or F40' CONFIG_MAD16_BASE 530
+ int 'MAD16 audio IRQ 7, 9, 10 or 11' CONFIG_MAD16_IRQ 11
+ int 'MAD16 audio DMA 0, 1 or 3' CONFIG_MAD16_DMA 3
+ int 'MAD16 second (duplex) DMA 0, 1 or 3' CONFIG_MAD16_DMA2 0
+ hex 'MAD16 MIDI I/O base 300, 310, 320 or 330 (0 disables)' CONFIG_MAD16_MPU_BASE 330
+ int 'MAD16 MIDI IRQ 5, 7, 9 or 10' CONFIG_MAD16_MPU_IRQ 9
fi
dep_tristate 'Support for Crystal CS4232 based (PnP) cards' CONFIG_CS4232 $CONFIG_SOUND
if [ "$CONFIG_CS4232" = "y" ]; then
- hex 'CS4232 audio I/O base 530, 604, E80 or F40' CS4232_BASE 530
- int 'CS4232 audio IRQ 5, 7, 9, 11, 12 or 15' CS4232_IRQ 11
- int 'CS4232 audio DMA 0, 1 or 3' CS4232_DMA 0
- int 'CS4232 second (duplex) DMA 0, 1 or 3' CS4232_DMA2 3
- hex 'CS4232 MIDI I/O base 330, 370, 3B0 or 3F0' CS4232_MPU_BASE 330
- int 'CS4232 MIDI IRQ 5, 7, 9, 11, 12 or 15' CS4232_MPU_IRQ 9
+ hex 'CS4232 audio I/O base 530, 604, E80 or F40' CONFIG_CS4232_BASE 530
+ int 'CS4232 audio IRQ 5, 7, 9, 11, 12 or 15' CONFIG_CS4232_IRQ 11
+ int 'CS4232 audio DMA 0, 1 or 3' CONFIG_CS4232_DMA 0
+ int 'CS4232 second (duplex) DMA 0, 1 or 3' CONFIG_CS4232_DMA2 3
+ hex 'CS4232 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_CS4232_MPU_BASE 330
+ int 'CS4232 MIDI IRQ 5, 7, 9, 11, 12 or 15' CONFIG_CS4232_MPU_IRQ 9
fi
dep_tristate 'Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' CONFIG_MAUI $CONFIG_SOUND
if [ "$CONFIG_MAUI" = "y" ]; then
- hex 'I/O base for Maui 210, 230, 260, 290, 300, 320, 338 or 330' MAUI_BASE 330
- int 'Maui IRQ 5, 9, 12 or 15' MAUI_IRQ 9
- bool ' Have OSWF.MOT firmware file' MAUI_HAVE_BOOT
- if [ "$MAUI_HAVE_BOOT" = "y" ]; then
- string ' Full pathname of OSWF.MOT firmware file' MAUI_BOOT_FILE
+ hex 'I/O base for Maui 210, 230, 260, 290, 300, 320, 338 or 330' CONFIG_MAUI_BASE 330
+ int 'Maui IRQ 5, 9, 12 or 15' CONFIG_MAUI_IRQ 9
+ bool ' Have OSWF.MOT firmware file' CONFIG_MAUI_HAVE_BOOT
+ if [ "$CONFIG_MAUI_HAVE_BOOT" = "y" ]; then
+ string ' Full pathname of OSWF.MOT firmware file' CONFIG_MAUI_BOOT_FILE
fi
fi
dep_tristate 'Yamaha OPL3-SA1 audio controller' CONFIG_OPL3SA1 $CONFIG_SOUND
if [ "$CONFIG_OPL3SA1" = "y" ]; then
- hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' OPL3SA1_BASE 530
- int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' OPL3SA1_IRQ 11
- int 'OPL3-SA1 audio DMA 0, 1 or 3' OPL3SA1_DMA 0
- int 'OPL3-SA1 second (duplex) DMA 0, 1 or 3' OPL3SA1_DMA2 3
- hex 'OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' OPL3SA1_MPU_BASE 330
- int 'OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' OPL3SA1_MPU_IRQ 9
+ hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' CONFIG_OPL3SA1_BASE 530
+ int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' CONFIG_OPL3SA1_IRQ 11
+ int 'OPL3-SA1 audio DMA 0, 1 or 3' CONFIG_OPL3SA1_DMA 0
+ int 'OPL3-SA1 second (duplex) DMA 0, 1 or 3' CONFIG_OPL3SA1_DMA2 3
+ hex 'OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' CONFIG_OPL3SA1_MPU_BASE 330
+ int 'OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' CONFIG_OPL3SA1_MPU_IRQ 9
fi
dep_tristate 'SoftOSS software wave table engine' CONFIG_SOFTOSS $CONFIG_SOUND
if [ "$CONFIG_SOFTOSS" = "y" ]; then
- int 'Sampling rate for SoftOSS 8000 to 48000' SOFTOSS_RATE 22050
- int 'Max # of concurrent voices for SoftOSS 4 to 32' SOFTOSS_VOICES 32
+ int 'Sampling rate for SoftOSS 8000 to 48000' CONFIG_SOFTOSS_RATE 22050
+ int 'Max # of concurrent voices for SoftOSS 4 to 32' CONFIG_SOFTOSS_VOICES 32
fi
dep_tristate 'FM synthesizer (YM3812/OPL-3) support' CONFIG_YM3812 $CONFIG_SOUND
dep_tristate '6850 UART support' CONFIG_UART6850 $CONFIG_SOUND
if [ "$CONFIG_UART6850" = "y" ]; then
- hex 'I/O base for UART 6850 MIDI port (Unknown)' U6850_BASE 0
- int 'UART6850 IRQ (Unknown)' U6850_IRQ -1
+ hex 'I/O base for UART 6850 MIDI port (Unknown)' CONFIG_U6850_BASE 0
+ int 'UART6850 IRQ (Unknown)' CONFIG_U6850_IRQ -1
fi
dep_tristate 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16 $CONFIG_SOUND
if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; then
- hex ' I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
+ hex ' I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
fi
if [ "$CONFIG_AEDSP16" = "y" ]; then
if [ "$CONFIG_AEDSP16_SBPRO" = "y" ]; then
comment 'Audio Excel DSP 16 [Sound Blaster Pro]'
hex 'I/O base for Audio Excel DSP 16 220 or 240' \
- AEDSP16_BASE $SBC_BASE
+ CONFIG_AEDSP16_BASE $CONFIG_SB_BASE
int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' \
- AEDSP16_SBC_IRQ $SBC_IRQ
- int 'Audio Excel DSP 16 DMA 0, 1 or 3' AEDSP16_SBC_DMA $SBC_DMA
+ CONFIG_AEDSP16_SB_IRQ $CONFIG_SB_IRQ
+ int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_SB_DMA $CONFIG_SB_DMA
fi
fi
bool 'Audio Excel DSP 16 (MSS emulation)' CONFIG_AEDSP16_MSS
if [ "$CONFIG_AEDSP16_MSS" = "y" ]; then
comment 'Audio Excel DSP 16 [Microsoft Sound System]'
- hex 'I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
+ hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' \
- AEDSP16_MSS_IRQ $MSS_IRQ
- int 'Audio Excel DSP 16 DMA 0, 1 or 3' AEDSP16_MSS_DMA $MSS_DMA
+ CONFIG_AEDSP16_MSS_IRQ $CONFIG_MSS_IRQ
+ int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_MSS_DMA $CONFIG_MSS_DMA
fi
fi
comment 'Audio Excel DSP 16 [MPU-401]'
if [ "$CONFIG_AEDSP16_SBPRO" != "y" \
-a "$CONFIG_AEDSP16_MSS" != "y" ]; then
- hex 'I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
+ hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
fi
int 'MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' \
- AEDSP16_MPU_IRQ $MPU_IRQ
+ CONFIG_AEDSP16_MPU_IRQ $CONFIG_MPU_IRQ
fi
fi
fi
hex2hex: hex2hex.c
$(HOSTCC) -o hex2hex hex2hex.c
-ifeq ($(MAUI_HAVE_BOOT),y)
+ifeq ($(CONFIG_MAUI_HAVE_BOOT),y)
-MAUI_BOOT_FILE := $(patsubst "%", %, $(MAUI_BOOT_FILE))
+CONFIG_MAUI_BOOT_FILE := $(patsubst "%", %, $(CONFIG_MAUI_BOOT_FILE))
maui.o: maui_boot.h
-maui_boot.h: $(MAUI_BOOT_FILE) bin2hex
- bin2hex maui_os < "$(MAUI_BOOT_FILE)" > $@
+maui_boot.h: $(CONFIG_MAUI_BOOT_FILE) bin2hex
+ bin2hex maui_os < "$(CONFIG_MAUI_BOOT_FILE)" > $@
@ ( \
- echo 'ifeq ($(strip $(MAUI_BOOT_FILE)),$$(strip $$(MAUI_BOOT_FILE)))'; \
+ echo 'ifeq ($(strip $(CONFIG_MAUI_BOOT_FILE)),$$(strip $$(CONFIG_MAUI_BOOT_FILE)))'; \
echo 'FILES_BOOT_UP_TO_DATE += $@'; \
echo 'endif' \
) > .$@.boot
endif
-ifeq ($(PSS_HAVE_BOOT),y)
+ifeq ($(CONFIG_PSS_HAVE_BOOT),y)
-PSS_BOOT_FILE := $(patsubst "%", %, $(PSS_BOOT_FILE))
+CONFIG_PSS_BOOT_FILE := $(patsubst "%", %, $(CONFIG_PSS_BOOT_FILE))
pss.o: pss_boot.h
-pss_boot.h: $(PSS_BOOT_FILE) bin2hex
- bin2hex pss_synth < "$(PSS_BOOT_FILE)" > $@
+pss_boot.h: $(CONFIG_PSS_BOOT_FILE) bin2hex
+ bin2hex pss_synth < "$(CONFIG_PSS_BOOT_FILE)" > $@
@ ( \
- echo 'ifeq ($(strip $(PSS_BOOT_FILE)),$$(strip $$(PSS_BOOT_FILE)))'; \
+ echo 'ifeq ($(strip $(CONFIG_PSS_BOOT_FILE)),$$(strip $$(CONFIG_PSS_BOOT_FILE)))'; \
echo 'FILES_BOOT_UP_TO_DATE += $@'; \
echo 'endif' \
) > .$@.boot
endif
-ifeq ($(TRIX_HAVE_BOOT),y)
+ifeq ($(CONFIG_TRIX_HAVE_BOOT),y)
-TRIX_BOOT_FILE := $(patsubst "%", %, $(TRIX_BOOT_FILE))
+CONFIG_TRIX_BOOT_FILE := $(patsubst "%", %, $(CONFIG_TRIX_BOOT_FILE))
trix.o: trix_boot.h
-trix_boot.h: $(TRIX_BOOT_FILE) hex2hex
- hex2hex trix_boot < "$(TRIX_BOOT_FILE)" > $@
+trix_boot.h: $(CONFIG_TRIX_BOOT_FILE) hex2hex
+ hex2hex trix_boot < "$(CONFIG_TRIX_BOOT_FILE)" > $@
@ ( \
- echo 'ifeq ($(strip $(TRIX_BOOT_FILE)),$$(strip $$(strip $$(TRIX_BOOT_FILE)))'; \
+ echo 'ifeq ($(strip $(CONFIG_TRIX_BOOT_FILE)),$$(strip $$(CONFIG_TRIX_BOOT_FILE)))'; \
echo 'FILES_BOOT_UP_TO_DATE += $@'; \
echo 'endif' \
) > .$@.boot
This document describes configuring soundcards with freeware version of
Open Sound Systems (OSS/Free). Information about the commercial version
-(OSS/Linux) and it's configuration is available from
+(OSS/Linux) and its configuration is available from
http://www.opensound.com/linux.html. Information presented here is
not valid for OSS/Linux.
2. Trying to use a PnP (Plug & Play) card just like an ordinary soundcard
-------------------------------------------------------------------------
-Plug & Play is a protocol defined by Intel and Microsoft. It let's operating
+Plug & Play is a protocol defined by Intel and Microsoft. It lets operating
systems to easily identify and reconfigure I/O ports, IRQs and DMAs of ISA
cards. The problem with PnP cards is that the standard Linux doesn't currently
(versions 2.1.x and earlier) don't support PnP. This means that you will have
4Front Technologies SoftOSS
SoftOSS is a software based wave table emulation which works with
- any 16 bit stereo soundcard. Due to it's nature a fast CPU is
- required (P133 is minumum). Althoug SoftOSS doesn _not_ use MMX
+ any 16 bit stereo soundcard. Due to its nature a fast CPU is
+ required (P133 is minimum). Although SoftOSS does _not_ use MMX
instructions it has proven out that recent processors (which appear
to have MMX) perform significantly better with SoftOSS than earlier
ones. For example a P166MMX beats a PPro200. SoftOSS should not be used
on 486 or 386 machines.
- The amount of CPU load caused by SoftOSS can be controlled by
- selecting the SOFTOSS_RATE and SOFTOSS_VOICES parameters properly
- (they will be prompted by make config). It's recommended to set
- SOFTOSS_VOICES to 32. If you have a P166MMX or faster (PPro200 is
- not faster) you can set SOFTOSS_RATE to 44100 (kHz). However with
- slower systems it recommended to use sampling rates around 22050
- or even 16000 kHz. Selecting too high values for these parameters
- may hang your system when playing MIDI files with hight degree of
- polyphony (number of concurrently playing notes). It's also possible to
- decrease SOFTOSS_VOICES. This makes it possible to use higher sampling
- rates. However using fewer voices decreases playback quality more than
- decreasing the sampling rate.
+ The amount of CPU load caused by SoftOSS can be controlled by
+ selecting the CONFIG_SOFTOSS_RATE and CONFIG_SOFTOSS_VOICES
+ parameters properly (they will be prompted by make config). It's
+ recommended to set CONFIG_SOFTOSS_VOICES to 32. If you have a
+ P166MMX or faster (PPro200 is not faster) you can set
+ CONFIG_SOFTOSS_RATE to 44100 (kHz). However with slower systems it
+ recommended to use sampling rates around 22050 or even 16000 kHz.
+ Selecting too high values for these parameters may hang your
+ system when playing MIDI files with hight degree of polyphony
+ (number of concurrently playing notes). It's also possible to
+ decrease CONFIG_SOFTOSS_VOICES. This makes it possible to use
+ higher sampling rates. However using fewer voices decreases
+ playback quality more than decreasing the sampling rate.
SoftOSS keeps the samples loaded on system's RAM so large RAM is
required. SoftOSS should never be used on machines with less than 16M
*********************************************************************
IMPORTANT NOTICE! The original patch set distributed with Gravis
- Ultrasound card is not in public domain (even it's available from
+ Ultrasound card is not in public domain (even though it's available from
some ftp sites). You should contact Voice Crystal (www.voicecrystal.com)
if you like to use these patches with SoftOSS included in OSS/Free.
*********************************************************************
The following configuration parameters have worked fine for the PCM12
in Markus Kuhn's system, many other configurations might work, too:
-MAD16_BASE=0x530, MAD16_IRQ=11, MAD16_DMA=3, MAD16_DMA2=0,
-MAD16_MPU_BASE=0x330, MAD16_MPU_IRQ=10, DSP_BUFFSIZE=65536,
-SELECTED_SOUND_OPTIONS=0x00281000.
+CONFIG_MAD16_BASE=0x530, CONFIG_MAD16_IRQ=11, CONFIG_MAD16_DMA=3,
+CONFIG_MAD16_DMA2=0, CONFIG_MAD16_MPU_BASE=0x330, CONFIG_MAD16_MPU_IRQ=10,
+DSP_BUFFSIZE=65536, SELECTED_SOUND_OPTIONS=0x00281000.
The miroSOUND PCM1 pro and the PCM20 are very similar to the PCM12.
Perhaps the same ACI driver also works for these cards, however this
-Building a loadable sound driver
+Building a modular sound driver
================================
-Loadable module support in version 3.5 of the driver is mostly rewritten since
-the previous version (3.0.1). This means that some things have changed.
-
-To compile the sound driver as a loadable module you have to perform
-the following steps:
-
-1) Install modules-1.2.8.tar.gz package (or later if available).
-2a) Check that symbol remap_page_range is defined in linux/init/ksyms.c.
-Insert a line containing "X(remap_page_range)," if required. The driver will
-not load if this line is missing.
-2b) Recompile kernel with soundcard support disabled.
-3) Boot the new kernel.
-4) cd to the sound driver source directory (this directory). It's no
-longer required that the sound driver sources are installed in the
-kernel source tree (linux/drivers/sound). When installing a separately
-distributed sound driver you may install the sources for example to
-/usr/src/sound.
-5) Execute make in the sound driver source directory. Enter
-configuration parameters as described in Readme.cards. Then just wait until
-the driver is compiled OK.
-6) Copy sound.o to the directory where insmod expects to find it.
-("make install" copies it to /lib/modules/misc).
-7) Use command "insmod sound" to load the driver.
-
-8) The sound driver can be removed using command "rmmod sound".
-
-
-Parameters accepted by the loadable sound driver
-================================================
-
-Setting DMA buffer size
------------------------
-
-The driver allocates a DMA buffer (or two for full duplex devices)
-every time the audio device (/dev/dsp or /dev/audio) is opened
-and frees it when the device is closed. Size of this buffer is defined
-when the driver is configured (the last question). The buffer size
-can be redefined when loading the driver if required (note that this is
-an optional feature which is not normally required). The buffer size
-is redefined by adding dma_pagesize= parameter to the insmod command line.
-For example:
-
- insmod sound dma_buffsize=32768
-
-Minimum buffer size is 4096 and the maximum depends on the DMA channel.
-For 8 bit channels (0 to 3) the limit is 64k and for 16 bit ones (5 to 7)
-it's 128k. Driver selects a suitable buffer size automatically in case
-you try to specify an invalid size.
-
-Q: What is the right DMA buffer size?
-
-A: It depends on the sampling rate, machine speed and the load of the system.
-Large buffers are required on slow machines, when recording/playing CD-quality
-audio or when there are other processes running on the same system. Also
-recording to hard disk is likely to require large buffers.
-
-Very small buffers are sufficient when you are just playing 8kHz audio files
-on an empty P133 system. Using a 128k buffer just wastes 120k (or 250k)
-of valuable physical RAM memory.
-
-The right buffer size can be easily found by making some experiments
-with the dma_buffsize= parameter. I use usually 16k buffers on a DX4/100 system
-and 64k on an old 386 system.
-
-NOTE! DMA buffers are used only by /dev/audio# and /dev/dsp# devices.
- Other device files don't use them but there are two exceptions:
- GUS driver uses DMA buffers when loading samples to the card.
- Ensoniq SoundScape driver uses them when downloading the microcode
- file (sndscape.co[012]) to the card. Using large buffers doesn't
- increase performance in these cases.
-
-Debugging and tracing
----------------------
-
-Modularized sound driver doesn't display messages during initialization as
-the kernel compiled one does. This feature can be turned on by adding
-trace_init=1 to the insmod command line.
-
-For example:
-
- insmod sound trace_init=1
+ The following information is current as of linux-2.1.85. Check the other
+readme files, especially Readme.cards, for information not specific to
+making sound modular.
+
+ First, configure your kernel. This is an idea of what you should be
+setting in the sound section:
+
+<M> Sound card support
+
+<M> 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support
+
+ I have SoundBlaster. Select your card from the list.
+
+<M> Generic OPL2/OPL3 FM synthesizer support
+<M> FM synthesizer (YM3812/OPL-3) support
+
+ If you don't set these, you will probably find you can play .wav files
+but not .midi. As the help for them says, set them unless you know your
+card does not use one of these chips for FM support.
+
+ Once you are configured, make zlilo, modules, modules_install; reboot.
+Note that it is no longer necessary or possible to configure sound in the
+drivers/sound dir. Now one simply configures and makes one's kernel and
+modules in the usual way.
+
+ Then, add to your /etc/modules.conf or /etc/conf.modules something like:
+
+alias char-major-14 sb
+post-install sb modprobe "-k" "adlib_card"
+options sb io=0x220 irq=7 dma=1 dma16=5 mpu_io=0x330
+options adlib_card io=0x388 # FM synthetiser
+
+ The effect of this is that the sound driver and all necessary bits and
+pieces autoload on demand, assuming you use kerneld (a sound choice) and
+autoclean when not in use. Also, options for the device drivers are
+set. They will not work without them. Change as appropriate for your card.
+If you are not yet using the very cool kerneld, you will have to "modprobe
+-k sb" yourself to get things going. Eventually things may be fixed so
+that this kludgery is not necessary; for the time being, it seems to work
+well.
+
+ Replace 'sb' with the driver for your card, and give it the right
+options. To find the filename of the driver, look in
+/lib/modules/<kernel-version>/misc. Mine looks like:
+
+adlib_card.o # This is the generic OPLx driver
+opl3.o # The OPL3 driver
+sb.o # <<The SoundBlaster driver. Yours may differ.>>
+sound.o # The sound driver
+uart401.o # Used by sb, maybe other cards
+
+ Whichever card you have, try feeding it the options that would be the
+default if you were making the driver wired, not as modules. You can look
+at the init_module() code for the card to see what args are expected.
+
+ Note that at present there is no way to configure the io, irq and other
+parameters for the modular drivers as one does for the wired drivers.. One
+needs to pass the modules the necessary parameters as arguments, either
+with /etc/modules.conf or with command-line args to modprobe, e.g.
+
+modprobe -k sb io=0x220 irq=7 dma=1 dma16=5 mpu_io=0x330
+modprobe -k adlib_card io=0x388
+
+ recommend using /etc/modules.conf.
+
+ I'm afraid I know nothing about anything but my setup, being more of a
+text-mode guy anyway. If you have options for other cards or other helpful
+hints, send them to me, Jim Bray, jb@as220.org, http://as220.org/jb.
struct card_info snd_installed_cards[] =
{
#ifdef CONFIG_PSS
- {SNDCARD_PSS, {PSS_BASE, 0, -1, -1}, SND_DEFAULT_ENABLE},
-#ifdef PSS_MPU_BASE
- {SNDCARD_PSS_MPU, {PSS_MPU_BASE, PSS_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_PSS, {CONFIG_PSS_BASE, 0, -1, -1}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_PSS_MPU_BASE
+ {SNDCARD_PSS_MPU, {CONFIG_PSS_MPU_BASE, CONFIG_PSS_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
-#ifdef PSS_MSS_BASE
- {SNDCARD_PSS_MSS, {PSS_MSS_BASE, PSS_MSS_IRQ, PSS_MSS_DMA, -1}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_PSS_MSS_BASE
+ {SNDCARD_PSS_MSS, {CONFIG_PSS_MSS_BASE, CONFIG_PSS_MSS_IRQ, CONFIG_PSS_MSS_DMA, -1}, SND_DEFAULT_ENABLE},
#endif
#endif
#ifdef CONFIG_TRIX
-#ifndef TRIX_DMA2
-#define TRIX_DMA2 TRIX_DMA
+#ifndef CONFIG_TRIX_DMA2
+#define CONFIG_TRIX_DMA2 CONFIG_TRIX_DMA
#endif
- {SNDCARD_TRXPRO, {TRIX_BASE, TRIX_IRQ, TRIX_DMA, TRIX_DMA2}, SND_DEFAULT_ENABLE},
-#ifdef TRIX_SB_BASE
- {SNDCARD_TRXPRO_SB, {TRIX_SB_BASE, TRIX_SB_IRQ, TRIX_SB_DMA, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_TRXPRO, {CONFIG_TRIX_BASE, CONFIG_TRIX_IRQ, CONFIG_TRIX_DMA, CONFIG_TRIX_DMA2}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_TRIX_SB_BASE
+ {SNDCARD_TRXPRO_SB, {CONFIG_TRIX_SB_BASE, CONFIG_TRIX_SB_IRQ, CONFIG_TRIX_SB_DMA, -1}, SND_DEFAULT_ENABLE},
#endif
-#ifdef TRIX_MPU_BASE
- {SNDCARD_TRXPRO_MPU, {TRIX_MPU_BASE, TRIX_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_TRIX_MPU_BASE
+ {SNDCARD_TRXPRO_MPU, {CONFIG_TRIX_MPU_BASE, CONFIG_TRIX_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#endif
#ifdef CONFIG_OPL3SA1
- {SNDCARD_OPL3SA1, {OPL3SA1_BASE, OPL3SA1_IRQ, OPL3SA1_DMA, OPL3SA1_DMA2}, SND_DEFAULT_ENABLE},
-#ifdef OPL3SA1_MPU_BASE
- {SNDCARD_OPL3SA1_MPU, {OPL3SA1_MPU_BASE, OPL3SA1_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_OPL3SA1, {CONFIG_OPL3SA1_BASE, CONFIG_OPL3SA1_IRQ, CONFIG_OPL3SA1_DMA, CONFIG_OPL3SA1_DMA2}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_OPL3SA1_MPU_BASE
+ {SNDCARD_OPL3SA1_MPU, {CONFIG_OPL3SA1_MPU_BASE, CONFIG_OPL3SA1_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#endif
#endif
#ifdef CONFIG_SSCAPE
- {SNDCARD_SSCAPE, {SSCAPE_BASE, SSCAPE_IRQ, SSCAPE_DMA, -1}, SND_DEFAULT_ENABLE},
- {SNDCARD_SSCAPE_MSS, {SSCAPE_MSS_BASE, SSCAPE_MSS_IRQ, SSCAPE_DMA, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_SSCAPE, {CONFIG_SSCAPE_BASE, CONFIG_SSCAPE_IRQ, CONFIG_SSCAPE_DMA, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_SSCAPE_MSS, {CONFIG_SSCAPE_MSS_BASE, CONFIG_SSCAPE_MSS_IRQ, CONFIG_SSCAPE_DMA, -1}, SND_DEFAULT_ENABLE},
#endif
#ifdef CONFIG_MAD16
-#ifndef MAD16_DMA2
-#define MAD16_DMA2 MAD16_DMA
+#ifndef CONFIG_MAD16_DMA2
+#define CONFIG_MAD16_DMA2 CONFIG_MAD16_DMA
#endif
- {SNDCARD_MAD16, {MAD16_BASE, MAD16_IRQ, MAD16_DMA, MAD16_DMA2}, SND_DEFAULT_ENABLE},
-#ifdef MAD16_MPU_BASE
- {SNDCARD_MAD16_MPU, {MAD16_MPU_BASE, MAD16_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_MAD16, {CONFIG_MAD16_BASE, CONFIG_MAD16_IRQ, CONFIG_MAD16_DMA, CONFIG_MAD16_DMA2}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_MAD16_MPU_BASE
+ {SNDCARD_MAD16_MPU, {CONFIG_MAD16_MPU_BASE, CONFIG_MAD16_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#endif
#ifdef CONFIG_CS4232
-#ifndef CS4232_DMA2
-#define CS4232_DMA2 CS4232_DMA
+#ifndef CONFIG_CS4232_DMA2
+#define CONFIG_CS4232_DMA2 CONFIG_CS4232_DMA
#endif
-#ifdef CS4232_MPU_BASE
- {SNDCARD_CS4232_MPU, {CS4232_MPU_BASE, CS4232_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+#ifdef CONFIG_CS4232_MPU_BASE
+ {SNDCARD_CS4232_MPU, {CONFIG_CS4232_MPU_BASE, CONFIG_CS4232_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
- {SNDCARD_CS4232, {CS4232_BASE, CS4232_IRQ, CS4232_DMA, CS4232_DMA2}, SND_DEFAULT_ENABLE},
+ {SNDCARD_CS4232, {CONFIG_CS4232_BASE, CONFIG_CS4232_IRQ, CONFIG_CS4232_DMA, CONFIG_CS4232_DMA2}, SND_DEFAULT_ENABLE},
#endif
#ifdef CONFIG_MSS
-#ifndef MSS_DMA2
-#define MSS_DMA2 -1
+#ifndef CONFIG_MSS_DMA2
+#define CONFIG_MSS_DMA2 -1
#endif
#ifdef DESKPROXL
- {SNDCARD_DESKPROXL, {MSS_BASE, MSS_IRQ, MSS_DMA, MSS_DMA2}, SND_DEFAULT_ENABLE},
+ {SNDCARD_DESKPROXL, {CONFIG_MSS_BASE, CONFIG_MSS_IRQ, CONFIG_MSS_DMA, CONFIG_MSS_DMA2}, SND_DEFAULT_ENABLE},
#else
- {SNDCARD_MSS, {MSS_BASE, MSS_IRQ, MSS_DMA, MSS_DMA2}, SND_DEFAULT_ENABLE},
+ {SNDCARD_MSS, {CONFIG_MSS_BASE, CONFIG_MSS_IRQ, CONFIG_MSS_DMA, CONFIG_MSS_DMA2}, SND_DEFAULT_ENABLE},
#endif
#ifdef MSS2_BASE
{SNDCARD_MSS, {MSS2_BASE, MSS2_IRQ, MSS2_DMA, MSS2_DMA2}, SND_DEFAULT_ENABLE},
#ifdef CONFIG_PAS
- {SNDCARD_PAS, {PAS_BASE, PAS_IRQ, PAS_DMA, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_PAS, {CONFIG_PAS_BASE, CONFIG_PAS_IRQ, CONFIG_PAS_DMA, -1}, SND_DEFAULT_ENABLE},
#endif
#ifdef CONFIG_SB
-#ifndef SBC_DMA
-#define SBC_DMA 1
+#ifndef CONFIG_SB_DMA
+#define CONFIG_SB_DMA 1
#endif
-#ifndef SB_DMA2
-#define SB_DMA2 -1
+#ifndef CONFIG_SB_DMA2
+#define CONFIG_SB_DMA2 -1
#endif
- {SNDCARD_SB, {SBC_BASE, SBC_IRQ, SBC_DMA, SB_DMA2}, SND_DEFAULT_ENABLE},
+ {SNDCARD_SB, {CONFIG_SB_BASE, CONFIG_SB_IRQ, CONFIG_SB_DMA, CONFIG_SB_DMA2}, SND_DEFAULT_ENABLE},
#ifdef SB2_BASE
{SNDCARD_SB, {SB2_BASE, SB2_IRQ, SB2_DMA, SB2_DMA2}, SND_DEFAULT_ENABLE},
#endif
#endif
#if defined(CONFIG_MAUI)
- {SNDCARD_MAUI, {MAUI_BASE, MAUI_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_MAUI, {CONFIG_MAUI_BASE, CONFIG_MAUI_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#if defined(CONFIG_MPU401) && defined(CONFIG_MIDI)
- {SNDCARD_MPU401, {MPU_BASE, MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_MPU401, {CONFIG_MPU_BASE, CONFIG_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#ifdef MPU2_BASE
{SNDCARD_MPU401, {MPU2_BASE, MPU2_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#ifdef MPU3_BASE
- {SNDCARD_MPU401, {MPU3_BASE, MPU2_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_MPU401, {MPU3_BASE, MPU3_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#endif
#if defined(CONFIG_UART6850) && defined(CONFIG_MIDI)
- {SNDCARD_UART6850, {U6850_BASE, U6850_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_UART6850, {CONFIG_U6850_BASE, CONFIG_U6850_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#if defined(CONFIG_SB)
-#if defined(CONFIG_MIDI) && defined(SB_MPU_BASE)
- {SNDCARD_SB16MIDI,{SB_MPU_BASE, SB_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
+#if defined(CONFIG_MIDI) && defined(CONFIG_SB_MPU_BASE)
+ {SNDCARD_SB16MIDI,{CONFIG_SB_MPU_BASE, CONFIG_SB_MPU_IRQ, 0, -1}, SND_DEFAULT_ENABLE},
#endif
#endif
#ifdef CONFIG_GUS
-#ifndef GUS_DMA2
-#define GUS_DMA2 GUS_DMA
+#ifndef CONFIG_GUS_DMA2
+#define CONFIG_GUS_DMA2 CONFIG_GUS_DMA
#endif
#ifdef CONFIG_GUS16
- {SNDCARD_GUS16, {GUS16_BASE, GUS16_IRQ, GUS16_DMA, -1}, SND_DEFAULT_ENABLE},
+ {SNDCARD_GUS16, {CONFIG_GUS16_BASE, CONFIG_GUS16_IRQ, CONFIG_GUS16_DMA, -1}, SND_DEFAULT_ENABLE},
#endif
- {SNDCARD_GUS, {GUS_BASE, GUS_IRQ, GUS_DMA, GUS_DMA2}, SND_DEFAULT_ENABLE},
+ {SNDCARD_GUS, {CONFIG_GUS_BASE, CONFIG_GUS_IRQ, CONFIG_GUS_DMA, CONFIG_GUS_DMA2}, SND_DEFAULT_ENABLE},
#endif
#if defined(CONFIG_YM3812)
if [ "$CONFIG_AEDSP16_SBPRO" = "y" ]; then
comment 'Audio Excel DSP 16 [Sound Blaster Pro]'
hex 'I/O base for Audio Excel DSP 16 220 or 240' \
- AEDSP16_BASE $SBC_BASE
+ CONFIG_AEDSP16_BASE $CONFIG_SB_BASE
int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' \
- AEDSP16_SBC_IRQ $SBC_IRQ
- int 'Audio Excel DSP 16 DMA 0, 1 or 3' AEDSP16_SBC_DMA $SBC_DMA
+ CONFIG_AEDSP16_SB_IRQ $CONFIG_SB_IRQ
+ int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_SB_DMA $CONFIG_SB_DMA
fi
fi
bool 'Audio Excel DSP 16 (MSS emulation)' CONFIG_AEDSP16_MSS
if [ "$CONFIG_AEDSP16_MSS" = "y" ]; then
comment 'Audio Excel DSP 16 [Microsoft Sound System]'
- hex 'I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
+ hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' \
- AEDSP16_MSS_IRQ $MSS_IRQ
- int 'Audio Excel DSP 16 DMA 0, 1 or 3' AEDSP16_MSS_DMA $MSS_DMA
+ CONFIG_AEDSP16_MSS_IRQ $CONFIG_MSS_IRQ
+ int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_MSS_DMA $CONFIG_MSS_DMA
fi
fi
comment 'Audio Excel DSP 16 [MPU-401]'
if [ "$CONFIG_AEDSP16_SBPRO" != "y" \
-a "$CONFIG_AEDSP16_MSS" != "y" ]; then
- hex 'I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
+ hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
fi
int 'MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' \
- AEDSP16_MPU_IRQ $MPU_IRQ
+ CONFIG_AEDSP16_MPU_IRQ $CONFIG_MPU_IRQ
fi
fi
* Sanity checks
*/
-#if !defined(AEDSP16_BASE)
+#if !defined(CONFIG_AEDSP16_BASE)
# undef CONFIG_AEDSP16
#else
# if defined(MODULE) && defined(CONFIG_AEDSP16_MODULE)
if (ae_config.init & INIT_MSS)
return FALSE;
/*
- * We must check the AEDSP16_BASE region too because these are the I/O ports
- * to access card's control registers.
+ * We must check the CONFIG_AEDSP16_BASE region too because these are the I/O
+ * ports to access card's control registers.
*/
if (!(ae_config.init & INIT_MPU401)) {
if (check_region(ae_config.base_io, IOBASE_REGION_SIZE)) {
}
/*
- * We must allocate the AEDSP16_BASE region too because these are the I/O ports
- * to access card's control registers.
+ * We must allocate the CONFIG_AEDSP16_BASE region too because these are the
+ * I/O ports to access card's control registers.
*/
if (!(ae_config.init & INIT_MPU401))
request_region(ae_config.base_io, IOBASE_REGION_SIZE,
return FALSE;
/*
- * We must check the AEDSP16_BASE region too because these are the I/O ports
- * to access card's control registers.
+ * We must check the CONFIG_AEDSP16_BASE region too because these are the I/O
+ * ports to access card's control registers.
*/
if (!(ae_config.init & (INIT_MSS | INIT_SBPRO))) {
if (check_region(ae_config.base_io, IOBASE_REGION_SIZE)) {
int initialized = FALSE;
#if !defined(MODULE)
- ae_config.base_io = AEDSP16_BASE;
+ ae_config.base_io = CONFIG_AEDSP16_BASE;
#if defined(CONFIG_AEDSP16_SBPRO)
- ae_config.irq = AEDSP16_SBC_IRQ;
- ae_config.dma = AEDSP16_SBC_DMA;
+ ae_config.irq = CONFIG_AEDSP16_SB_IRQ;
+ ae_config.dma = CONFIG_AEDSP16_SB_DMA;
#endif
#if defined(CONFIG_AEDSP16_MSS)
- ae_config.mss_base = MSS_BASE;
- ae_config.irq = AEDSP16_MSS_IRQ;
- ae_config.dma = AEDSP16_MSS_DMA;
+ ae_config.mss_base = CONFIG_MSS_BASE;
+ ae_config.irq = CONFIG_AEDSP16_MSS_IRQ;
+ ae_config.dma = CONFIG_AEDSP16_MSS_DMA;
#endif
#if defined(CONFIG_AEDSP16_MPU401)
- ae_config.mpu_base = MPU_BASE;
- ae_config.mpu_irq = AEDSP16_MPU_IRQ;
+ ae_config.mpu_base = CONFIG_MPU_BASE;
+ ae_config.mpu_irq = CONFIG_AEDSP16_MPU_IRQ;
#endif
#endif /* !MODULE */
DBG(("Initializing BASE[0x%x] IRQ[%d] DMA[%d] MIRQ[%d]\n",
static int (*orig_load_patch) (int dev, int format, const char *addr,
int offs, int count, int pmgr_flag) = NULL;
-#ifdef MAUI_HAVE_BOOT
+#ifdef CONFIG_MAUI_HAVE_BOOT
#include "maui_boot.h"
#else
static unsigned char *maui_os = NULL;
#include "coproc.h"
-#ifdef PSS_HAVE_BOOT
+#ifdef CONFIG_PSS_HAVE_BOOT
#include "pss_boot.h"
#else
static unsigned char *pss_synth = NULL;
devc->bits = 16;
devc->max_playahead = 32;
-#ifdef SOFTOSS_RATE
- devc->speed = SOFTOSS_RATE;
+#ifdef CONFIG_SOFTOSS_RATE
+ devc->speed = CONFIG_SOFTOSS_RATE;
#else
devc->speed = 32000;
#endif
-#ifdef SOFTOSS_VOICES
- devc->default_max_voices = SOFTOSS_VOICES;
+#ifdef CONFIG_SOFTOSS_VOICES
+ devc->default_max_voices = CONFIG_SOFTOSS_VOICES;
#else
devc->default_max_voices = 32;
#endif
#include "local.h.master"
-
+#include <linux/config.h>
#include "os.h"
#include "soundvers.h"
#define FM_MONO 0x388 /* This is the I/O address used by AdLib */
-#ifndef PAS_BASE
-#define PAS_BASE 0x388
+#ifndef CONFIG_PAS_BASE
+#define CONFIG_PAS_BASE 0x388
#endif
-#if defined(SB16_DMA) && !defined(SB_DMA2)
-# define SB_DMA2 SB16_DMA
+#if defined(CONFIG_SB16_DMA) && !defined(CONFIG_SB_DMA2)
+# define CONFIG_SB_DMA2 CONFIG_SB16_DMA
#endif
-#if defined(SB16MIDI_BASE) && !defined(SB_MPU_BASE)
-# define SB_MPU_BASE SB16MIDI_BASE
+#if defined(SB16MIDI_BASE) && !defined(CONFIG_SB_MPU_BASE)
+# define CONFIG_SB_MPU_BASE SB16MIDI_BASE
#endif
-#ifndef SB_MPU_IRQ
-# define SB_MPU_IRQ SBC_IRQ
+#ifndef CONFIG_SB_MPU_IRQ
+# define CONFIG_SB_MPU_IRQ CONFIG_SB_IRQ
#endif
/* SEQ_MAX_QUEUE is the maximum number of sequencer events buffered by the
}
if (mpu_irq == -1 && mpu_io != -1)
{
- printk(KERN_ERR "MPU_IRQ must be specified if MPU_IO is set.\n");
+ printk(KERN_ERR "CONFIG_MPU_IRQ must be specified if CONFIG_MPU_IO is set.\n");
return -EINVAL;
}
config.irq = irq;
#endif
#endif
-#ifdef TRIX_HAVE_BOOT
+#ifdef CONFIG_TRIX_HAVE_BOOT
#include "trix_boot.h"
#else
static unsigned char *trix_boot = NULL;
if (sb_io != -1 && (sb_irq == -1 || sb_dma == -1))
{
- printk(KERN_INFO "SB_IRQ and SB_DMA must be specified if SB_IO is set.\n");
+ printk(KERN_INFO "CONFIG_SB_IRQ and CONFIG_SB_DMA must be specified if SB_IO is set.\n");
return -EINVAL;
}
if (mpu_io != -1 && mpu_irq == -1)
{
- printk(KERN_INFO "MPU_IRQ must be specified if MPU_IO is set.\n");
+ printk(KERN_INFO "CONFIG_MPU_IRQ must be specified if MPU_IO is set.\n");
return -EINVAL;
}
if (!trix_boot)
#include "ufs_swab.h"
/*
- * NOTE! unlike strncmp, ext2_match returns 1 for success, 0 for failure.
- * stolen from ext2fs
- * NOTE2: flags *is* used, through this is hidden by macros like SWAB16.
+ * NOTE1: unlike strncmp, ufs_match returns 1 for success, 0 for failure
+ * (stolen from ext2fs.)
+ * NOTE2: flags *is* used, though this is hidden by macros like NAMLEN.
*/
static int ufs_match (int len, const char * const name, struct ufs_direct * d, __u32 flags)
{
new_inode->i_mtime = old_inode->i_mtime;
new_inode->i_atime = old_inode->i_atime;
new_inode->i_ctime = old_inode->i_ctime;
+ new_inode->i_nlink = old_inode->i_nlink;
+ new_inode->i_op = old_inode->i_op;
MSDOS_I(new_inode)->i_ctime_ms = MSDOS_I(old_inode)->i_ctime_ms;
MSDOS_I(new_inode)->i_start = MSDOS_I(old_inode)->i_start;
MSDOS_I(new_inode)->i_logstart = MSDOS_I(old_inode)->i_logstart;
MSDOS_I(new_inode)->i_attrs = MSDOS_I(old_inode)->i_attrs;
+ fat_cache_inval_inode(old_inode);
mark_inode_dirty(new_inode);
old_dir->i_version = ++event;
* memory.
*/
#define _PAGE_PRESENT 0x001
-#define _PAGE_RW 0x002
+#define _PAGE_PROTNONE 0x002 /* If not present */
+#define _PAGE_RW 0x002 /* If present */
#define _PAGE_USER 0x004
#define _PAGE_WT 0x008
#define _PAGE_PCD 0x010
#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY)
#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
-#define PAGE_NONE __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED)
+#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED)
#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
} while (0)
#define pte_none(x) (!pte_val(x))
-#define pte_present(x) (pte_val(x) & _PAGE_PRESENT)
+#define pte_present(x) (pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE))
#define pte_clear(xp) do { pte_val(*(xp)) = 0; } while (0)
#define pmd_none(x) (!pmd_val(x))
{
}
-#define SWP_TYPE(entry) (((entry) >> 1) & 0x7f)
+#define SWP_TYPE(entry) (((entry) >> 2) & 0x3f)
#define SWP_OFFSET(entry) ((entry) >> 8)
-#define SWP_ENTRY(type,offset) (((type) << 1) | ((offset) << 8))
+#define SWP_ENTRY(type,offset) (((type) << 2) | ((offset) << 8))
#define module_map vmalloc
#define module_unmap vfree
void (*sa_restorer)(void);
};
-struct sigaction {
- __sighandler_t sa_handler;
- unsigned long sa_flags;
- void (*sa_restorer)(void);
- sigset_t sa_mask; /* mask last for extensibility */
-};
-
struct k_sigaction {
struct sigaction sa;
};
#define SND_DMA2 ppc_cs4232_dma2
#else
#ifdef CONFIG_MSS
-#define SND_DMA1 MSS_DMA
-#define SND_DMA2 MSS_DMA2
+#define SND_DMA1 CONFIG_MSS_DMA
+#define SND_DMA2 CONFIG_MSS_DMA2
#else
#define SND_DMA1 -1
#define SND_DMA2 -1
* Laboratory for Computer Science Research Computing Facility
* Rutgers, The State University of New Jersey
*
- * $Id: ufs_fs_i.h,v 1.2 1996/05/03 04:02:25 davem Exp $
- *
* NeXTstep support added on February 5th 1998 by
* Niels Kristian Bech Jensen <nkbj@image.dk>.
*/
* Laboratory for Computer Science Research Computing Facility
* Rutgers, The State University of New Jersey
*
- * $Id: ufs_fs_sb.h,v 1.6 1996/06/01 15:31:08 ecd Exp $
- *
* NeXTstep support added on February 5th 1998 by
* Niels Kristian Bech Jensen <nkbj@image.dk>.
*/
do_no_page(tsk, vma, address, write_access, pte, entry);
return;
}
- set_pte(pte, pte_mkyoung(entry));
+ entry = pte_mkyoung(entry);
+ set_pte(pte, entry);
flush_tlb_page(vma, address);
if (!write_access)
return;
if (pte_write(entry)) {
- set_pte(pte, pte_mkdirty(entry));
+ entry = pte_mkdirty(entry);
+ set_pte(pte, entry);
flush_tlb_page(vma, address);
return;
}
#endif
dev_mc_upload(dev);
printk(KERN_INFO "device %s %s promiscuous mode\n",
- dev->name, (dev->flags&IFF_PROMISC) ? "entered" : "leaved");
+ dev->name, (dev->flags&IFF_PROMISC) ? "entered" : "left");
}
}