Commit 3c8de19e authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.76

parent 76315b72
...@@ -537,15 +537,6 @@ S: P.O. Box 76, Epping ...@@ -537,15 +537,6 @@ S: P.O. Box 76, Epping
S: N.S.W., 2121 S: N.S.W., 2121
S: Australia S: Australia
N: Richard E. Gooch
E: rgooch@atnf.csiro.au
D: parent process death signal to children
D: prctl() syscall
S: CSIRO Australia Telescope National Facility
S: P.O. Box 76, Epping
S: N.S.W., 2121
S: Australia
N: Dmitry S. Gorodchanin N: Dmitry S. Gorodchanin
E: begemot@bgm.rosprint.net E: begemot@bgm.rosprint.net
D: RISCom/8 driver, misc kernel fixes. D: RISCom/8 driver, misc kernel fixes.
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
1) copy de4x5.c from the /linux/drivers/net directory to your favourite 1) copy de4x5.c from the /linux/drivers/net directory to your favourite
temporary directory. temporary directory.
2) for fixed autoprobes (not recommended), edit the source code near 2) for fixed autoprobes (not recommended), edit the source code near
line 5537 to reflect the I/O address you're using, or assign these when line 5594 to reflect the I/O address you're using, or assign these when
loading by: loading by:
insmod de4x5 io=0xghh where g = bus number insmod de4x5 io=0xghh where g = bus number
...@@ -92,6 +92,16 @@ ...@@ -92,6 +92,16 @@
can compile with a DEC_ONLY define, or if loading as a module, use the can compile with a DEC_ONLY define, or if loading as a module, use the
'dec_only=1' parameter. 'dec_only=1' parameter.
I've changed the timing routines to use the kernel timer and scheduling
functions so that the hangs and other assorted problems that occurred
while autosensing the media should be gone. A bonus for the DC21040
auto media sense algorithm is that it can now use one that is more in
line with the rest (the DC21040 chip doesn't have a hardware timer).
The downside is the 1 'jiffies' (10ms) resolution.
IEEE 802.3u MII interface code has been added in anticipation that some
products may use it in the future.
The SMC9332 card has a non-compliant SROM which needs fixing - I have The SMC9332 card has a non-compliant SROM which needs fixing - I have
patched this driver to detect it because the SROM format used complies patched this driver to detect it because the SROM format used complies
to a previous DEC-STD format. to a previous DEC-STD format.
...@@ -134,10 +144,35 @@ ...@@ -134,10 +144,35 @@
limitation. limitation.
Where SROM media detection is used and full duplex is specified in the Where SROM media detection is used and full duplex is specified in the
SROM, the feature is ignored unless de4x5_full_duplex is set at compile SROM, the feature is ignored unless lp->params.fdx is set at compile
time OR during a module load (insmod de4x5 de4x5_full_duplex=1). This time OR during a module load (insmod de4x5 args='eth??:fdx' [see
is because there is no way to automatically detect full duplex links below]). This is because there is no way to automatically detect full
except through autonegotiation. When I include the autonegotiation duplex links except through autonegotiation. When I include the
feature in the SROM autoconf code, this detection will occur autonegotiation feature in the SROM autoconf code, this detection will
automatically. occur automatically for that case.
Command line arguements are now allowed, similar to passing arguements
through LILO. This will allow a per adapter board set up of full duplex
and media. The only lexical constraints are: the board name (dev->name)
appears in the list before its parameters. The list of parameters ends
either at the end of the parameter list or with another board name. The
following parameters are allowed:
fdx for full duplex
autosense to set the media/speed; with the following
sub-parameters:
TP, TP_NW, BNC, AUI, BNC_AUI, 100Mb, 10Mb, AUTO
Case sensitivity is important for the sub-parameters. They *must* be
upper case. Examples:
insmod de4x5 args='eth1:fdx autosense=BNC eth0:autosense=100Mb'.
For a compiled in driver, in linux/drivers/net/CONFIG, place e.g.
DE4X5_OPTS = -DDE4X5_PARM='"eth0:fdx autosense=AUI eth2:autosense=TP"'
Yes, I know full duplex isn't permissible on BNC or AUI; they're just
examples. By default, full duplex is turned off and AUTO is the default
autosense setting. In reality, I expect only the full duplex option to
be used. Note the use of single quotes in the two examples above and the
lack of commas to separate items.
VERSION = 2 VERSION = 2
PATCHLEVEL = 1 PATCHLEVEL = 1
SUBLEVEL = 75 SUBLEVEL = 76
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/) ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/)
...@@ -206,7 +206,6 @@ symlinks: ...@@ -206,7 +206,6 @@ symlinks:
fi fi
oldconfig: symlinks oldconfig: symlinks
$(MAKE) -C drivers/sound mkscript
$(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in $(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
xconfig: symlinks xconfig: symlinks
...@@ -339,23 +338,24 @@ clean: archclean ...@@ -339,23 +338,24 @@ clean: archclean
rm -f core `find . -name '*.[oas]' ! -regex '.*lxdialog/.*' -print` rm -f core `find . -name '*.[oas]' ! -regex '.*lxdialog/.*' -print`
rm -f core `find . -type f -name 'core' -print` rm -f core `find . -type f -name 'core' -print`
rm -f vmlinux System.map rm -f vmlinux System.map
rm -f .tmp* drivers/sound/configure rm -f .tmp*
rm -f drivers/char/consolemap_deftbl.c drivers/char/conmakehash rm -f drivers/char/consolemap_deftbl.c drivers/char/conmakehash
rm -f drivers/sound/bin2hex drivers/sound/hex2hex
rm -f `find modules/ -type f -print` rm -f `find modules/ -type f -print`
rm -f submenu* rm -f submenu*
mrproper: clean mrproper: clean
rm -f include/linux/autoconf.h include/linux/version.h rm -f include/linux/autoconf.h include/linux/version.h
rm -f drivers/sound/local.h drivers/sound/.defines
rm -f drivers/net/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h rm -f drivers/net/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h
rm -f drivers/net/soundmodem/sm_tbl_{hapn4800,psk4800}.h rm -f drivers/net/soundmodem/sm_tbl_{hapn4800,psk4800}.h
rm -f drivers/net/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h rm -f drivers/net/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h
rm -f drivers/net/soundmodem/gentbl rm -f drivers/net/soundmodem/gentbl
rm -f drivers/char/hfmodem/gentbl drivers/char/hfmodem/tables.h rm -f drivers/char/hfmodem/gentbl drivers/char/hfmodem/tables.h
rm -f drivers/sound/*_boot.h drivers/sound/.*.boot
rm -f .version .config* config.in config.old rm -f .version .config* config.in config.old
rm -f scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp rm -f scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp
rm -f scripts/lxdialog/*.o scripts/lxdialog/lxdialog rm -f scripts/lxdialog/*.o scripts/lxdialog/lxdialog
rm -f .menuconfig .menuconfig.log rm -f .menuconfig.log
rm -f include/asm rm -f include/asm
rm -f .depend `find . -name .depend -print` rm -f .depend `find . -name .depend -print`
rm -f .hdepend scripts/mkdep rm -f .hdepend scripts/mkdep
...@@ -367,8 +367,6 @@ distclean: mrproper ...@@ -367,8 +367,6 @@ distclean: mrproper
rm -f core `find . \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ rm -f core `find . \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -print` TAGS -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -print` TAGS
# rm -f drivers/sound/Config.in
# cp drivers/sound/Config.std drivers/sound/Config.in
backup: mrproper backup: mrproper
cd .. && tar cf - linux/ | gzip -9 > backup.gz cd .. && tar cf - linux/ | gzip -9 > backup.gz
......
...@@ -22,9 +22,11 @@ ...@@ -22,9 +22,11 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <asm/softirq.h> #include <asm/softirq.h>
#define __KERNEL_SYSCALLS__
#include <asm/unistd.h>
extern void bcopy (const char *src, char *dst, int len); extern void bcopy (const char *src, char *dst, int len);
extern struct hwrpb_struct *hwrpb; extern struct hwrpb_struct *hwrpb;
extern long __kernel_thread(unsigned long, int (*)(void *), void *);
extern void dump_thread(struct pt_regs *, struct user *); extern void dump_thread(struct pt_regs *, struct user *);
extern int dump_fpu(struct pt_regs *, elf_fpregset_t *); extern int dump_fpu(struct pt_regs *, elf_fpregset_t *);
...@@ -71,6 +73,7 @@ EXPORT_SYMBOL(strncat); ...@@ -71,6 +73,7 @@ EXPORT_SYMBOL(strncat);
EXPORT_SYMBOL(strstr); EXPORT_SYMBOL(strstr);
EXPORT_SYMBOL(strtok); EXPORT_SYMBOL(strtok);
EXPORT_SYMBOL(strchr); EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(memcmp); EXPORT_SYMBOL(memcmp);
EXPORT_SYMBOL(memmove); EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(__memcpy); EXPORT_SYMBOL(__memcpy);
...@@ -81,9 +84,21 @@ EXPORT_SYMBOL(dump_thread); ...@@ -81,9 +84,21 @@ EXPORT_SYMBOL(dump_thread);
EXPORT_SYMBOL(dump_fpu); EXPORT_SYMBOL(dump_fpu);
EXPORT_SYMBOL(hwrpb); EXPORT_SYMBOL(hwrpb);
EXPORT_SYMBOL(wrusp); EXPORT_SYMBOL(wrusp);
EXPORT_SYMBOL(__kernel_thread);
EXPORT_SYMBOL(start_thread); EXPORT_SYMBOL(start_thread);
/* In-kernel system calls. */
EXPORT_SYMBOL(__kernel_thread);
EXPORT_SYMBOL(sys_open);
EXPORT_SYMBOL(sys_dup);
EXPORT_SYMBOL(sys_exit);
EXPORT_SYMBOL(sys_write);
EXPORT_SYMBOL(sys_read);
EXPORT_SYMBOL(sys_lseek);
EXPORT_SYMBOL(__kernel_execve);
EXPORT_SYMBOL(sys_setsid);
EXPORT_SYMBOL(sys_sync);
EXPORT_SYMBOL(sys_wait4);
/* Networking helper routines. */ /* Networking helper routines. */
EXPORT_SYMBOL(csum_tcpudp_magic); EXPORT_SYMBOL(csum_tcpudp_magic);
EXPORT_SYMBOL(ip_fast_csum); EXPORT_SYMBOL(ip_fast_csum);
......
...@@ -252,6 +252,28 @@ __kernel_thread: ...@@ -252,6 +252,28 @@ __kernel_thread:
call_pal PAL_halt call_pal PAL_halt
.end __kernel_thread .end __kernel_thread
/*
* __kernel_execve(path, argv, envp, regs)
*/
.align 3
.globl __kernel_execve
.ent __kernel_execve
__kernel_execve:
ldgp $29,0($27) /* we can be called from modules. */
subq $30,16,$30
.frame $30,16,$26,0
stq $26,0($30)
stq $19,8($30)
.prologue 1
jsr $26,do_execve
bne $0,1f /* error! */
ldq $30,8($30)
br $31,ret_from_sys_call
1: ldq $26,0($30)
addq $30,16,$30
ret
.end __kernel_execve
.align 3 .align 3
.ent do_switch_stack .ent do_switch_stack
do_switch_stack: do_switch_stack:
......
...@@ -172,7 +172,7 @@ checkCPUtype: ...@@ -172,7 +172,7 @@ checkCPUtype:
* if CPUID works. * if CPUID works.
*/ */
movl $0x69727943,X86_VENDOR_ID # low 4 chars movl $0x69727943,X86_VENDOR_ID # low 4 chars
movl $0x00000078,X86_VENDOR_ID # next 4 chars movl $0x00000078,X86_VENDOR_ID+4 # next 4 chars
/* /*
* N.B. The pattern of accesses to 0x22 and 0x23 is *important* * N.B. The pattern of accesses to 0x22 and 0x23 is *important*
......
...@@ -356,8 +356,8 @@ static struct cpu_model_info cpu_models[] __initdata = { ...@@ -356,8 +356,8 @@ static struct cpu_model_info cpu_models[] __initdata = {
{ X86_VENDOR_AMD, 5, { X86_VENDOR_AMD, 5,
{ "K5/SSA5 (PR-75, PR-90, PR-100)", "K5 (PR-120, PR-133)", { "K5/SSA5 (PR-75, PR-90, PR-100)", "K5 (PR-120, PR-133)",
"K5 (PR-166)", "K5 (PR-200)", NULL, NULL, "K5 (PR-166)", "K5 (PR-200)", NULL, NULL,
"K6 (166 - 266)", "K6 (166 - 300)", "K6 (model 8)", "K6 (166 - 266)", "K6 (166 - 300)", "K6-3D (200 - 450)",
"K6 (model 9)", NULL, NULL, NULL, NULL, NULL, NULL }}, "K6-3D-Plus (200 - 450)", NULL, NULL, NULL, NULL, NULL, NULL }},
{ X86_VENDOR_UMC, 4, { X86_VENDOR_UMC, 4,
{ NULL, "U5D", "U5S", NULL, NULL, NULL, NULL, NULL, NULL, NULL, { NULL, "U5D", "U5S", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL }}, NULL, NULL, NULL, NULL, NULL, NULL }},
......
...@@ -1019,7 +1019,7 @@ static void handle_stripe(struct stripe_head *sh) ...@@ -1019,7 +1019,7 @@ static void handle_stripe(struct stripe_head *sh)
if (sh->bh_new[i]) if (sh->bh_new[i])
continue; continue;
block = (int) compute_blocknr(sh, i); block = (int) compute_blocknr(sh, i);
bh = efind_buffer(MKDEV(MD_MAJOR, minor), block, sh->size); bh = find_buffer(MKDEV(MD_MAJOR, minor), block, sh->size);
if (bh && bh->b_count == 0 && buffer_dirty(bh) && !buffer_locked(bh)) { if (bh && bh->b_count == 0 && buffer_dirty(bh) && !buffer_locked(bh)) {
PRINTK(("Whee.. sector %lu, index %d (%d) found in the buffer cache!\n", sh->sector, i, block)); PRINTK(("Whee.. sector %lu, index %d (%d) found in the buffer cache!\n", sh->sector, i, block));
add_stripe_bh(sh, bh, i, WRITE); add_stripe_bh(sh, bh, i, WRITE);
......
...@@ -1265,11 +1265,11 @@ static int bttv_ioctl(struct video_device *dev, unsigned int cmd, void *arg) ...@@ -1265,11 +1265,11 @@ static int bttv_ioctl(struct video_device *dev, unsigned int cmd, void *arg)
case VIDIOCGAUDIO: case VIDIOCGAUDIO:
{ {
struct video_audio vp; struct video_audio v;
vp=btv->audio_dev; v=btv->audio_dev;
vp.flags&=~(VIDEO_AUDIO_MUTE|VIDEO_AUDIO_MUTABLE); v.flags&=~(VIDEO_AUDIO_MUTE|VIDEO_AUDIO_MUTABLE);
vp.flags|=VIDEO_AUDIO_MUTABLE; v.flags|=VIDEO_AUDIO_MUTABLE;
strcpy(vp.name,"TV"); strcpy(v.name,"TV");
if(copy_to_user(&v,arg,sizeof(v))) if(copy_to_user(&v,arg,sizeof(v)))
return -EFAULT; return -EFAULT;
return 0; return 0;
......
...@@ -549,6 +549,9 @@ __initfunc(int chr_dev_init(void)) ...@@ -549,6 +549,9 @@ __initfunc(int chr_dev_init(void))
#endif #endif
#ifdef CONFIG_FTAPE #ifdef CONFIG_FTAPE
ftape_init(); ftape_init();
#endif
#ifdef CONFIG_VIDEO_DEV
videodev_init();
#endif #endif
return 0; return 0;
} }
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
* 970912 Enabled board on open and disable on close. * 970912 Enabled board on open and disable on close.
* 971107 Took account of recent VFS changes (broke read). * 971107 Took account of recent VFS changes (broke read).
* 971210 Disable board on initialisation in case board already ticking. * 971210 Disable board on initialisation in case board already ticking.
* 971222 Changed open/close for temperature handling
* Michael Meskes <meskes@debian.org>.
*/ */
#include <linux/module.h> #include <linux/module.h>
...@@ -378,14 +380,23 @@ static ssize_t pcwd_write(struct file *file, const char *buf, size_t len, ...@@ -378,14 +380,23 @@ static ssize_t pcwd_write(struct file *file, const char *buf, size_t len,
static int pcwd_open(struct inode *ino, struct file *filep) static int pcwd_open(struct inode *ino, struct file *filep)
{ {
switch (MINOR(ino->i_rdev))
{
case WD_MINOR:
if (is_open) if (is_open)
return -EIO; return -EBUSY;
MOD_INC_USE_COUNT; MOD_INC_USE_COUNT;
/* Enable the port */ /* Enable the port */
if (revision == PCWD_REVISION_C) if (revision == PCWD_REVISION_C)
outb_p(0x00, current_readport + 3); outb_p(0x00, current_readport + 3);
is_open = 1; is_open = 1;
return(0); return(0);
case TEMP_MINOR:
MOD_INC_USE_COUNT;
return(0);
default:
return (-ENODEV);
}
} }
static ssize_t pcwd_read(struct file *file, char *buf, size_t count, static ssize_t pcwd_read(struct file *file, char *buf, size_t count,
...@@ -400,7 +411,8 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count, ...@@ -400,7 +411,8 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count,
switch(MINOR(file->f_dentry->d_inode->i_rdev)) switch(MINOR(file->f_dentry->d_inode->i_rdev))
{ {
case TEMP_MINOR: case TEMP_MINOR:
cp = c; /* c is in celsius, we need fahrenheit */
cp = (c*9/5)+32;
if(copy_to_user(buf, &cp, 1)) if(copy_to_user(buf, &cp, 1))
return -EFAULT; return -EFAULT;
return 1; return 1;
...@@ -411,8 +423,10 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count, ...@@ -411,8 +423,10 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count,
static int pcwd_close(struct inode *ino, struct file *filep) static int pcwd_close(struct inode *ino, struct file *filep)
{ {
is_open = 0;
MOD_DEC_USE_COUNT; MOD_DEC_USE_COUNT;
if (MINOR(ino->i_rdev)==WD_MINOR)
{
is_open = 0;
#ifndef CONFIG_WATCHDOG_NOWAYOUT #ifndef CONFIG_WATCHDOG_NOWAYOUT
/* Disable the board */ /* Disable the board */
if (revision == PCWD_REVISION_C) { if (revision == PCWD_REVISION_C) {
...@@ -420,6 +434,7 @@ static int pcwd_close(struct inode *ino, struct file *filep) ...@@ -420,6 +434,7 @@ static int pcwd_close(struct inode *ino, struct file *filep)
outb_p(0xA5, current_readport + 3); outb_p(0xA5, current_readport + 3);
} }
#endif #endif
}
return 0; return 0;
} }
......
...@@ -44,23 +44,11 @@ ...@@ -44,23 +44,11 @@
# DE4X5_DEBUG Set the desired debug level # DE4X5_DEBUG Set the desired debug level
# DEC_ONLY Allows driver to work with DIGITAL cards only - # DEC_ONLY Allows driver to work with DIGITAL cards only -
# see linux/drivers/net/README.de4x5 # see linux/drivers/net/README.de4x5
# DE4X5_AUTOSENSE (Default) auto media/mode selection
# If you want at least one board to not autosense then
# no board can autosense. For a board mix of several
# types, OR the manual values [eg for a DE500 (100M) with
# a DE450 (AUI) use '-DDE4X5_AUTOSENSE=(_100Mb|AUI)']
# For full auto media/mode selection = AUTO
# For manual TP media selection = TP
# For manual TP/Nway media selection (DC21041) = TP_NW
# For manual BNC media selection = BNC
# For manual AUI media selection = AUI
# For manual BNC/AUI media selection (DC21040) = BNC_AUI
# For manual 10Mb/s mode selection (DC21140) = _10Mb
# For manual 100Mb/s mode selection (DC21140) = _100Mb
# The DC21040 will default to TP if TP_NW is specified
# The DC21041 will default to BNC if BNC_AUI is specified
# DE4X5_DO_MEMCPY Forces the Intels to use memory copies into sk_buffs # DE4X5_DO_MEMCPY Forces the Intels to use memory copies into sk_buffs
# rather than straight DMA. # rather than straight DMA.
# DE4X5_PARM See linux/Documentation/networking/de4x5.txt or the
# driver source code for detailed information on setting
# duplex and speed/media on individual adapters.
# #
# DEFXX The DIGITAL series of FDDI EISA (DEFEA) and PCI (DEFPA) # DEFXX The DIGITAL series of FDDI EISA (DEFEA) and PCI (DEFPA)
# controllers # controllers
...@@ -95,7 +83,7 @@ HP_OPTS = ...@@ -95,7 +83,7 @@ HP_OPTS =
PLIP_OPTS = PLIP_OPTS =
DEPCA_OPTS = DEPCA_OPTS =
EWRK3_OPTS = EWRK3_OPTS =
DE4X5_OPTS = -DDE4X5_AUTOSENSE=AUTO DE4X5_OPTS =
DEFXX_OPTS = DEFXX_OPTS =
ELP_OPTS = ELP_OPTS =
TULIP_OPTS = TULIP_OPTS =
......
...@@ -15,7 +15,9 @@ fi ...@@ -15,7 +15,9 @@ fi
tristate 'Dummy net driver support' CONFIG_DUMMY tristate 'Dummy net driver support' CONFIG_DUMMY
tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
tristate 'Ethertap network tap' CONFIG_ETHERTAP if [ "CONFIG_NETLINK_DEV" != "n" ]; then
dep_tristate 'Ethertap network tap' CONFIG_ETHERTAP $CONFIG_NETLINK_DEV
fi
fi fi
# #
# Ethernet # Ethernet
......
...@@ -198,7 +198,7 @@ else ...@@ -198,7 +198,7 @@ else
endif endif
ifdef CONFIG_PPP ifdef CONFIG_PPP
M_OBJS += bsd_comp.o M_OBJS += bsd_comp.o ppp_deflate.o
endif endif
ifeq ($(CONFIG_SLIP),y) ifeq ($(CONFIG_SLIP),y)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -166,11 +166,7 @@ ...@@ -166,11 +166,7 @@
/* /*
** PCI Configuration Base I/O Address Register (PCI_CBIO) ** PCI Configuration Base I/O Address Register (PCI_CBIO)
*/ */
#ifdef __sparc_v9__ #define CBIO_MASK -128 /* Base I/O Address Mask */
#define CBIO_MASK 0xffffffffffffff80 /* Base I/O Address Mask */
#else
#define CBIO_MASK 0xffffff80 /* Base I/O Address Mask */
#endif
#define CBIO_IOSI 0x00000001 /* I/O Space Indicator (RO, value is 1) */ #define CBIO_IOSI 0x00000001 /* I/O Space Indicator (RO, value is 1) */
/* /*
...@@ -368,7 +364,7 @@ ...@@ -368,7 +364,7 @@
#define OMR_SIA (OMR_SDP | OMR_TTM) #define OMR_SIA (OMR_SDP | OMR_TTM)
#define OMR_SYM (OMR_SDP | OMR_SCR | OMR_PCS | OMR_HBD | OMR_PS) #define OMR_SYM (OMR_SDP | OMR_SCR | OMR_PCS | OMR_HBD | OMR_PS)
#define OMR_MII_10 (OMR_SDP | OMR_TTM | OMR_PS) #define OMR_MII_10 (OMR_SDP | OMR_TTM | OMR_PS)
#define OMR_MII_100 (OMR_SDP | OMR_SCR | OMR_HBD | OMR_PS) #define OMR_MII_100 (OMR_SDP | OMR_HBD | OMR_PS)
/* /*
** DC21040 Interrupt Mask Register (DE4X5_IMR) ** DC21040 Interrupt Mask Register (DE4X5_IMR)
...@@ -813,16 +809,22 @@ ...@@ -813,16 +809,22 @@
/* /*
** Media / mode state machine definitions ** Media / mode state machine definitions
** User selectable:
*/ */
#define NC 0x0000 /* No Connection */
#define TP 0x0001 /* 10Base-T */ #define TP 0x0001 /* 10Base-T */
#define TP_NW 0x0002 /* 10Base-T with Nway */ #define TP_NW 0x0002 /* 10Base-T with Nway */
#define BNC 0x0004 /* Thinwire */ #define BNC 0x0004 /* Thinwire */
#define AUI 0x0008 /* Thickwire */ #define AUI 0x0008 /* Thickwire */
#define BNC_AUI 0x0010 /* BNC/AUI on DC21040 indistinguishable */ #define BNC_AUI 0x0010 /* BNC/AUI on DC21040 indistinguishable */
#define ANS 0x0020 /* Intermediate AutoNegotiation State */
#define _10Mb 0x0040 /* 10Mb/s Ethernet */ #define _10Mb 0x0040 /* 10Mb/s Ethernet */
#define _100Mb 0x0080 /* 100Mb/s Ethernet */ #define _100Mb 0x0080 /* 100Mb/s Ethernet */
#define AUTO 0x4000 /* Auto sense the media or speed */
/*
** Internal states
*/
#define NC 0x0000 /* No Connection */
#define ANS 0x0020 /* Intermediate AutoNegotiation State */
#define SPD_DET 0x0100 /* Parallel speed detection */ #define SPD_DET 0x0100 /* Parallel speed detection */
#define INIT 0x0200 /* Initial state */ #define INIT 0x0200 /* Initial state */
#define EXT_SIA 0x0400 /* External SIA for motherboard chip */ #define EXT_SIA 0x0400 /* External SIA for motherboard chip */
...@@ -834,7 +836,6 @@ ...@@ -834,7 +836,6 @@
#define AUI_SUSPECT 0x0807 /* Suspect the AUI port is down */ #define AUI_SUSPECT 0x0807 /* Suspect the AUI port is down */
#define MII 0x1000 /* MII on the 21143 */ #define MII 0x1000 /* MII on the 21143 */
#define AUTO 0x4000 /* Auto sense the media or speed */
#define TIMER_CB 0x80000000 /* Timer callback detection */ #define TIMER_CB 0x80000000 /* Timer callback detection */
/* /*
...@@ -907,6 +908,7 @@ ...@@ -907,6 +908,7 @@
#define OPEN 2 /* Running */ #define OPEN 2 /* Running */
/* /*
** Various wait times
*/ */
#define PDET_LINK_WAIT 1200 /* msecs to wait for link detect bits */ #define PDET_LINK_WAIT 1200 /* msecs to wait for link detect bits */
#define ANS_FINISH_WAIT 1000 /* msecs to wait for link detect bits */ #define ANS_FINISH_WAIT 1000 /* msecs to wait for link detect bits */
...@@ -936,12 +938,13 @@ ...@@ -936,12 +938,13 @@
} else if (lp->useSROM && !lp->useMII) {\ } else if (lp->useSROM && !lp->useMII) {\
omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\ omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\
omr |= (lp->fdx ? OMR_FDX : 0);\ omr |= (lp->fdx ? OMR_FDX : 0);\
outl(omr | lp->infoblock_csr6, DE4X5_OMR);\ outl(omr | (lp->infoblock_csr6 & ~(OMR_SCR | OMR_HBD)), DE4X5_OMR);\
} else {\ } else {\
omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\ omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\
omr |= (lp->fdx ? OMR_FDX : 0);\ omr |= (lp->fdx ? OMR_FDX : 0);\
outl(omr | OMR_TTM, DE4X5_OMR);\ outl(omr | OMR_SDP | OMR_TTM, DE4X5_OMR);\
lp->cache.gep = (lp->fdx ? 0 : GEP_FDXD);\ lp->cache.gep = (lp->fdx ? 0 : GEP_FDXD);\
gep_wr(lp->cache.gep, dev);\
}\ }\
} }
...@@ -964,12 +967,13 @@ ...@@ -964,12 +967,13 @@
} else if (lp->useSROM && !lp->useMII) {\ } else if (lp->useSROM && !lp->useMII) {\
omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\ omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\
omr |= (lp->fdx ? OMR_FDX : 0);\ omr |= (lp->fdx ? OMR_FDX : 0);\
outl(omr | (lp->infoblock_csr6 & ~(OMR_SCR | OMR_HBD)), DE4X5_OMR);\ outl(omr | lp->infoblock_csr6, DE4X5_OMR);\
} else {\ } else {\
omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\ omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\
omr |= (lp->fdx ? OMR_FDX : 0);\ omr |= (lp->fdx ? OMR_FDX : 0);\
outl(omr | OMR_PS | OMR_HBD | OMR_PCS | OMR_SCR, DE4X5_OMR);\ outl(omr | OMR_SDP | OMR_PS | OMR_HBD | OMR_PCS | OMR_SCR, DE4X5_OMR);\
lp->cache.gep = (lp->fdx ? 0 : GEP_FDXD) | GEP_MODE;\ lp->cache.gep = (lp->fdx ? 0 : GEP_FDXD) | GEP_MODE;\
gep_wr(lp->cache.gep, dev);\
}\ }\
} }
...@@ -981,11 +985,12 @@ ...@@ -981,11 +985,12 @@
outl(omr, DE4X5_OMR);\ outl(omr, DE4X5_OMR);\
} else if (lp->useSROM && !lp->useMII) {\ } else if (lp->useSROM && !lp->useMII) {\
omr = (inl(DE4X5_OMR) & ~(OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\ omr = (inl(DE4X5_OMR) & ~(OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\
outl(omr | lp->infoblock_csr6, DE4X5_OMR);\ outl(omr, DE4X5_OMR);\
} else {\ } else {\
omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\ omr = (inl(DE4X5_OMR) & ~(OMR_PS | OMR_HBD | OMR_TTM | OMR_PCS | OMR_SCR | OMR_FDX));\
outl(omr | OMR_PS | OMR_HBD | OMR_PCS | OMR_SCR, DE4X5_OMR);\ outl(omr | OMR_SDP | OMR_PS | OMR_HBD | OMR_PCS, DE4X5_OMR);\
lp->cache.gep = (GEP_FDXD | GEP_MODE);\ lp->cache.gep = (GEP_FDXD | GEP_MODE);\
gep_wr(lp->cache.gep, dev);\
}\ }\
} }
......
This diff is collapsed.
...@@ -55,11 +55,7 @@ ...@@ -55,11 +55,7 @@
#include <linux/ioctl.h> #include <linux/ioctl.h>
#include <linux/ppp_defs.h> #include <linux/ppp_defs.h>
#undef PACKETPTR
#define PACKETPTR 1
#include <linux/ppp-comp.h> #include <linux/ppp-comp.h>
#undef PACKETPTR
#include "zlib.c" #include "zlib.c"
......
/* /*
* This file is derived from various .h and .c files from the zlib-0.95 * This file is derived from various .h and .c files from the zlib-1.0.4
* distribution by Jean-loup Gailly and Mark Adler, with some additions * distribution by Jean-loup Gailly and Mark Adler, with some additions
* by Paul Mackerras to aid in implementing Deflate compression and * by Paul Mackerras to aid in implementing Deflate compression and
* decompression for PPP packets. See zlib.h for conditions of * decompression for PPP packets. See zlib.h for conditions of
...@@ -8,15 +8,13 @@ ...@@ -8,15 +8,13 @@
* Changes that have been made include: * Changes that have been made include:
* - added Z_PACKET_FLUSH (see zlib.h for details) * - added Z_PACKET_FLUSH (see zlib.h for details)
* - added inflateIncomp and deflateOutputPending * - added inflateIncomp and deflateOutputPending
* - changed DEBUG_ZLIB to DEBUG_ZLIB
* - use ZALLOC_INIT rather than ZALLOC for allocations during initialization
* - allow strm->next_out to be NULL, meaning discard the output * - allow strm->next_out to be NULL, meaning discard the output
* *
* $Id: zlib.c,v 1.2 1997/10/02 17:59:23 davem Exp $ * $Id: zlib.c,v 1.3 1997/12/23 10:47:42 paulus Exp $
*/ */
/* /*
* ==FILEVERSION 970501== * ==FILEVERSION 971210==
* *
* This marker is used by the Linux installation script to determine * This marker is used by the Linux installation script to determine
* whether an up-to-date version of this file is already installed. * whether an up-to-date version of this file is already installed.
...@@ -50,23 +48,20 @@ ...@@ -50,23 +48,20 @@
#include "zlib.h" #include "zlib.h"
#if defined(KERNEL) || defined(_KERNEL) #if defined(KERNEL) || defined(_KERNEL)
/* Assume this is a *BSD kernel */ /* Assume this is a *BSD or SVR4 kernel */
#include <sys/types.h> #include <sys/types.h>
#include <sys/time.h> #include <sys/time.h>
#include <sys/systm.h> #include <sys/systm.h>
# define HAVE_MEMCPY # define HAVE_MEMCPY
# define zmemcpy(d, s, n) bcopy((s), (d), (n)) # define memcpy(d, s, n) bcopy((s), (d), (n))
# define zmemzero bzero # define memset(d, v, n) bzero((d), (n))
# define zmemcmp bcmp # define memcmp bcmp
#else #else
#if defined(__KERNEL__) #if defined(__KERNEL__)
/* Assume this is a Linux kernel */ /* Assume this is a Linux kernel */
#include <linux/string.h> #include <linux/string.h>
#define HAVE_MEMCPY #define HAVE_MEMCPY
#define zmemcpy memcpy
#define zmemzero(dest, len) memset(dest, 0, len)
#define zmemcmp memcmp
#else /* not kernel */ #else /* not kernel */
...@@ -959,7 +954,7 @@ local void flush_pending(strm) ...@@ -959,7 +954,7 @@ local void flush_pending(strm)
if (len > strm->avail_out) len = strm->avail_out; if (len > strm->avail_out) len = strm->avail_out;
if (len == 0) return; if (len == 0) return;
if (strm->next_out != NULL) { if (strm->next_out != Z_NULL) {
zmemcpy(strm->next_out, s->pending_out, len); zmemcpy(strm->next_out, s->pending_out, len);
strm->next_out += len; strm->next_out += len;
} }
...@@ -4893,7 +4888,7 @@ int r; ...@@ -4893,7 +4888,7 @@ int r;
z->adler = s->check = (*s->checkfn)(s->check, q, n); z->adler = s->check = (*s->checkfn)(s->check, q, n);
/* copy as far as end of window */ /* copy as far as end of window */
if (p != NULL) { if (p != Z_NULL) {
zmemcpy(p, q, n); zmemcpy(p, q, n);
p += n; p += n;
} }
...@@ -4921,7 +4916,7 @@ int r; ...@@ -4921,7 +4916,7 @@ int r;
z->adler = s->check = (*s->checkfn)(s->check, q, n); z->adler = s->check = (*s->checkfn)(s->check, q, n);
/* copy */ /* copy */
if (p != NULL) { if (p != Z_NULL) {
zmemcpy(p, q, n); zmemcpy(p, q, n);
p += n; p += n;
} }
......
/* $Id: zlib.h,v 1.1 1997/10/02 02:35:37 paulus Exp $ */ /* $Id: zlib.h,v 1.2 1997/12/23 10:47:44 paulus Exp $ */
/* /*
* This file is derived from zlib.h and zconf.h from the zlib-0.95 * This file is derived from zlib.h and zconf.h from the zlib-1.0.4
* distribution by Jean-loup Gailly and Mark Adler, with some additions * distribution by Jean-loup Gailly and Mark Adler, with some additions
* by Paul Mackerras to aid in implementing Deflate compression and * by Paul Mackerras to aid in implementing Deflate compression and
* decompression for PPP packets. * decompression for PPP packets.
*/ */
/* /*
* ==FILEVERSION 970501== * ==FILEVERSION 971127==
* *
* This marker is used by the Linux installation script to determine * This marker is used by the Linux installation script to determine
* whether an up-to-date version of this file is already installed. * whether an up-to-date version of this file is already installed.
......
...@@ -50,11 +50,12 @@ struct pci_dev_info dev_info[] = { ...@@ -50,11 +50,12 @@ struct pci_dev_info dev_info[] = {
DEVICE( NCR, NCR_53C895, "53c895"), DEVICE( NCR, NCR_53C895, "53c895"),
DEVICE( NCR, NCR_53C885, "53c885"), DEVICE( NCR, NCR_53C885, "53c885"),
DEVICE( NCR, NCR_53C875, "53c875"), DEVICE( NCR, NCR_53C875, "53c875"),
DEVICE( NCR, NCR_53C876, "53c876"), DEVICE( NCR, NCR_53C875J, "53c875J"),
DEVICE( ATI, ATI_68800, "68800AX"), DEVICE( ATI, ATI_68800, "68800AX"),
DEVICE( ATI, ATI_215CT222, "215CT222"), DEVICE( ATI, ATI_215CT222, "215CT222"),
DEVICE( ATI, ATI_210888CX, "210888CX"), DEVICE( ATI, ATI_210888CX, "210888CX"),
DEVICE( ATI, ATI_215GB, "Mach64 GB"), DEVICE( ATI, ATI_215GB, "Mach64 GB"),
DEVICE( ATI, ATI_215GD, "Mach64 GD (Rage Pro)"),
DEVICE( ATI, ATI_215GP, "Mach64 GP (Rage Pro)"), DEVICE( ATI, ATI_215GP, "Mach64 GP (Rage Pro)"),
DEVICE( ATI, ATI_215GT, "Mach64 GT (Rage II)"), DEVICE( ATI, ATI_215GT, "Mach64 GT (Rage II)"),
DEVICE( ATI, ATI_215GTB, "Mach64 GT (Rage II)"), DEVICE( ATI, ATI_215GTB, "Mach64 GT (Rage II)"),
...@@ -110,7 +111,7 @@ struct pci_dev_info dev_info[] = { ...@@ -110,7 +111,7 @@ struct pci_dev_info dev_info[] = {
DEVICE( AMD, AMD_SCSI, "53C974"), DEVICE( AMD, AMD_SCSI, "53C974"),
DEVICE( TRIDENT, TRIDENT_9420, "TG 9420"), DEVICE( TRIDENT, TRIDENT_9420, "TG 9420"),
DEVICE( TRIDENT, TRIDENT_9440, "TG 9440"), DEVICE( TRIDENT, TRIDENT_9440, "TG 9440"),
DEVICE( TRIDENT, TRIDENT_9660, "TG 9660"), DEVICE( TRIDENT, TRIDENT_9660, "TG 9660 / Cyber9385"),
DEVICE( TRIDENT, TRIDENT_9750, "Image 975"), DEVICE( TRIDENT, TRIDENT_9750, "Image 975"),
DEVICE( AI, AI_M1435, "M1435"), DEVICE( AI, AI_M1435, "M1435"),
DEVICE( MATROX, MATROX_MGA_2, "Atlas PX2085"), DEVICE( MATROX, MATROX_MGA_2, "Atlas PX2085"),
...@@ -186,6 +187,14 @@ struct pci_dev_info dev_info[] = { ...@@ -186,6 +187,14 @@ struct pci_dev_info dev_info[] = {
DEVICE( NEXGEN, NEXGEN_82C501, "82C501"), DEVICE( NEXGEN, NEXGEN_82C501, "82C501"),
DEVICE( QLOGIC, QLOGIC_ISP1020, "ISP1020"), DEVICE( QLOGIC, QLOGIC_ISP1020, "ISP1020"),
DEVICE( QLOGIC, QLOGIC_ISP1022, "ISP1022"), DEVICE( QLOGIC, QLOGIC_ISP1022, "ISP1022"),
DEVICE( CYRIX, CYRIX_5510, "5510"),
DEVICE( CYRIX, CYRIX_PCI_MASTER,"PCI Master"),
DEVICE( CYRIX, CYRIX_5520, "5520"),
DEVICE( CYRIX, CYRIX_5530_LEGACY,"5530 Kahlua Legacy"),
DEVICE( CYRIX, CYRIX_5530_SMI, "5530 Kahlua SMI"),
DEVICE( CYRIX, CYRIX_5530_IDE, "5530 Kahlua IDE"),
DEVICE( CYRIX, CYRIX_5530_AUDIO,"5530 Kahlua Audio"),
DEVICE( CYRIX, CYRIX_5530_VIDEO,"5530 Kahlua Video"),
DEVICE( LEADTEK, LEADTEK_805, "S3 805"), DEVICE( LEADTEK, LEADTEK_805, "S3 805"),
DEVICE( CONTAQ, CONTAQ_82C599, "82C599"), DEVICE( CONTAQ, CONTAQ_82C599, "82C599"),
DEVICE( OLICOM, OLICOM_OC3136, "OC-3136/3137"), DEVICE( OLICOM, OLICOM_OC3136, "OC-3136/3137"),
...@@ -245,7 +254,8 @@ struct pci_dev_info dev_info[] = { ...@@ -245,7 +254,8 @@ struct pci_dev_info dev_info[] = {
DEVICE( TEKRAM2, TEKRAM2_690c, "DC690c"), DEVICE( TEKRAM2, TEKRAM2_690c, "DC690c"),
DEVICE( TUNDRA, TUNDRA_CA91C042,"CA91C042 Universe"), DEVICE( TUNDRA, TUNDRA_CA91C042,"CA91C042 Universe"),
DEVICE( AMCC, AMCC_MYRINET, "Myrinet PCI (M2-PCI-32)"), DEVICE( AMCC, AMCC_MYRINET, "Myrinet PCI (M2-PCI-32)"),
DEVICE( AMCC, AMCC_S5933, "S5933"), DEVICE( AMCC, AMCC_S5933, "S5933 PCI44"),
DEVICE( AMCC, AMCC_S5933_HEPC3,"S5933 Traquair HEPC3"),
DEVICE( INTERG, INTERG_1680, "IGA-1680"), DEVICE( INTERG, INTERG_1680, "IGA-1680"),
DEVICE( INTERG, INTERG_1682, "IGA-1682"), DEVICE( INTERG, INTERG_1682, "IGA-1682"),
DEVICE( REALTEK, REALTEK_8029, "8029"), DEVICE( REALTEK, REALTEK_8029, "8029"),
...@@ -311,6 +321,7 @@ struct pci_dev_info dev_info[] = { ...@@ -311,6 +321,7 @@ struct pci_dev_info dev_info[] = {
DEVICE( DIGI, DIGI_RIGHTSWITCH, "RightSwitch SE-6"), DEVICE( DIGI, DIGI_RIGHTSWITCH, "RightSwitch SE-6"),
DEVICE( MUTECH, MUTECH_MV1000, "MV-1000"), DEVICE( MUTECH, MUTECH_MV1000, "MV-1000"),
DEVICE( RENDITION, RENDITION_VERITE,"Verite 1000"), DEVICE( RENDITION, RENDITION_VERITE,"Verite 1000"),
DEVICE( RENDITION, RENDITION_VERITE2100,"Verite 2100"),
DEVICE( TOSHIBA, TOSHIBA_601, "Laptop"), DEVICE( TOSHIBA, TOSHIBA_601, "Laptop"),
DEVICE( RICOH, RICOH_RL5C466, "RL5C466"), DEVICE( RICOH, RICOH_RL5C466, "RL5C466"),
DEVICE( ZEITNET, ZEITNET_1221, "1221"), DEVICE( ZEITNET, ZEITNET_1221, "1221"),
...@@ -336,6 +347,9 @@ struct pci_dev_info dev_info[] = { ...@@ -336,6 +347,9 @@ struct pci_dev_info dev_info[] = {
DEVICE( CYCLADES, CYCLOM_Z_Lo, "Cyclom-Z below 1Mbyte"), DEVICE( CYCLADES, CYCLOM_Z_Lo, "Cyclom-Z below 1Mbyte"),
DEVICE( CYCLADES, CYCLOM_Z_Hi, "Cyclom-Z above 1Mbyte"), DEVICE( CYCLADES, CYCLOM_Z_Hi, "Cyclom-Z above 1Mbyte"),
DEVICE( 3DFX, 3DFX_VOODOO, "Voodoo"), DEVICE( 3DFX, 3DFX_VOODOO, "Voodoo"),
DEVICE( STALLION, STALLION_ECHPCI832,"EasyConnection 8/32"),
DEVICE( STALLION, STALLION_ECHPCI864,"EasyConnection 8/64"),
DEVICE( STALLION, STALLION_EIOPCI,"EasyIO"),
DEVICE( SIGMADES, SIGMADES_6425, "REALmagic64/GX"), DEVICE( SIGMADES, SIGMADES_6425, "REALmagic64/GX"),
DEVICE( OPTIBASE, OPTIBASE_FORGE, "MPEG Forge"), DEVICE( OPTIBASE, OPTIBASE_FORGE, "MPEG Forge"),
DEVICE( OPTIBASE, OPTIBASE_FUSION,"MPEG Fusion"), DEVICE( OPTIBASE, OPTIBASE_FUSION,"MPEG Fusion"),
...@@ -371,6 +385,9 @@ struct pci_dev_info dev_info[] = { ...@@ -371,6 +385,9 @@ struct pci_dev_info dev_info[] = {
DEVICE( S3, S3_PLATO_PXG, "PLATO/PX (graphics)"), DEVICE( S3, S3_PLATO_PXG, "PLATO/PX (graphics)"),
DEVICE( S3, S3_ViRGE_DXGX, "ViRGE/DX or /GX"), DEVICE( S3, S3_ViRGE_DXGX, "ViRGE/DX or /GX"),
DEVICE( S3, S3_ViRGE_GX2, "ViRGE/GX2"), DEVICE( S3, S3_ViRGE_GX2, "ViRGE/GX2"),
DEVICE( S3, S3_ViRGE_MX, "ViRGE/MX"),
DEVICE( S3, S3_ViRGE_MXP, "ViRGE/MX+"),
DEVICE( S3, S3_ViRGE_MXPMV, "ViRGE/MX+MV"),
DEVICE( INTEL, INTEL_82375, "82375EB"), DEVICE( INTEL, INTEL_82375, "82375EB"),
DEVICE( INTEL, INTEL_82424, "82424ZX Saturn"), DEVICE( INTEL, INTEL_82424, "82424ZX Saturn"),
DEVICE( INTEL, INTEL_82378, "82378IB"), DEVICE( INTEL, INTEL_82378, "82378IB"),
...@@ -582,6 +599,7 @@ const char *pci_strvendor(unsigned int vendor) ...@@ -582,6 +599,7 @@ const char *pci_strvendor(unsigned int vendor)
case PCI_VENDOR_ID_APPLE: return "Apple"; case PCI_VENDOR_ID_APPLE: return "Apple";
case PCI_VENDOR_ID_NEXGEN: return "Nexgen"; case PCI_VENDOR_ID_NEXGEN: return "Nexgen";
case PCI_VENDOR_ID_QLOGIC: return "Q Logic"; case PCI_VENDOR_ID_QLOGIC: return "Q Logic";
case PCI_VENDOR_ID_CYRIX: return "Cyrix";
case PCI_VENDOR_ID_LEADTEK: return "Leadtek Research"; case PCI_VENDOR_ID_LEADTEK: return "Leadtek Research";
case PCI_VENDOR_ID_CONTAQ: return "Contaq"; case PCI_VENDOR_ID_CONTAQ: return "Contaq";
case PCI_VENDOR_ID_FOREX: return "Forex"; case PCI_VENDOR_ID_FOREX: return "Forex";
...@@ -637,6 +655,7 @@ const char *pci_strvendor(unsigned int vendor) ...@@ -637,6 +655,7 @@ const char *pci_strvendor(unsigned int vendor)
case PCI_VENDOR_ID_RP: return "Comtrol"; case PCI_VENDOR_ID_RP: return "Comtrol";
case PCI_VENDOR_ID_CYCLADES: return "Cyclades"; case PCI_VENDOR_ID_CYCLADES: return "Cyclades";
case PCI_VENDOR_ID_3DFX: return "3Dfx"; case PCI_VENDOR_ID_3DFX: return "3Dfx";
case PCI_VENDOR_ID_STALLION: return "Stallion Technologies";
case PCI_VENDOR_ID_SIGMADES: return "Sigma Designs"; case PCI_VENDOR_ID_SIGMADES: return "Sigma Designs";
case PCI_VENDOR_ID_OPTIBASE: return "Optibase"; case PCI_VENDOR_ID_OPTIBASE: return "Optibase";
case PCI_VENDOR_ID_ENSONIQ: return "Ensoniq"; case PCI_VENDOR_ID_ENSONIQ: return "Ensoniq";
......
...@@ -9359,8 +9359,7 @@ static int ncr53c8xx_pci_init(Scsi_Host_Template *tpnt, ...@@ -9359,8 +9359,7 @@ static int ncr53c8xx_pci_init(Scsi_Host_Template *tpnt,
#if defined(__i386) && !defined(MODULE) #if defined(__i386) && !defined(MODULE)
if ((driver_setup.pci_fix_up & 1) && if ((driver_setup.pci_fix_up & 1) &&
(chip->features & FE_CLSE) && cache_line_size == 0) { (chip->features & FE_CLSE) && cache_line_size == 0) {
extern char x86; switch(boot_cpu_data.x86) {
switch(x86) {
case 4: cache_line_size = 4; break; case 4: cache_line_size = 4; break;
case 5: cache_line_size = 8; break; case 5: cache_line_size = 8; break;
} }
......
...@@ -995,7 +995,6 @@ st_write(struct file * filp, const char * buf, size_t count, loff_t *ppos) ...@@ -995,7 +995,6 @@ st_write(struct file * filp, const char * buf, size_t count, loff_t *ppos)
return -ENXIO; return -ENXIO;
} }
STp = &(scsi_tapes[dev]);
if (STp->ready != ST_READY) { if (STp->ready != ST_READY) {
if (STp->ready == ST_NO_TAPE) if (STp->ready == ST_NO_TAPE)
return (-ENOMEDIUM); return (-ENOMEDIUM);
...@@ -1510,7 +1509,6 @@ st_read(struct file * filp, char * buf, size_t count, loff_t *ppos) ...@@ -1510,7 +1509,6 @@ st_read(struct file * filp, char * buf, size_t count, loff_t *ppos)
return -ENXIO; return -ENXIO;
} }
STp = &(scsi_tapes[dev]);
if (STp->ready != ST_READY) { if (STp->ready != ST_READY) {
if (STp->ready == ST_NO_TAPE) if (STp->ready == ST_NO_TAPE)
return (-ENOMEDIUM); return (-ENOMEDIUM);
...@@ -2298,10 +2296,9 @@ st_int_ioctl(struct inode * inode, ...@@ -2298,10 +2296,9 @@ st_int_ioctl(struct inode * inode,
ioctl_result = (STp->buffer)->last_result_fatal; ioctl_result = (STp->buffer)->last_result_fatal;
if (!ioctl_result) { /* SCSI command successful */
scsi_release_command(SCpnt); scsi_release_command(SCpnt);
SCpnt = NULL; SCpnt = NULL;
if (!ioctl_result) { /* SCSI command successful */
STps->drv_block = blkno; STps->drv_block = blkno;
STps->drv_file = fileno; STps->drv_file = fileno;
STps->at_sm = at_sm; STps->at_sm = at_sm;
...@@ -2349,7 +2346,8 @@ st_int_ioctl(struct inode * inode, ...@@ -2349,7 +2346,8 @@ st_int_ioctl(struct inode * inode,
STp->partition = 0; STp->partition = 0;
} }
} else { /* SCSI command was not completely successful */ } else { /* SCSI command was not completely successful. Don't return
from this block without releasing the SCSI command block! */
if (SCpnt->sense_buffer[2] & 0x40) { if (SCpnt->sense_buffer[2] & 0x40) {
if (cmd_in != MTBSF && cmd_in != MTBSFM && if (cmd_in != MTBSF && cmd_in != MTBSFM &&
...@@ -2430,6 +2428,9 @@ st_int_ioctl(struct inode * inode, ...@@ -2430,6 +2428,9 @@ st_int_ioctl(struct inode * inode,
if (cmd_in == MTLOCK) if (cmd_in == MTLOCK)
STp->door_locked = ST_LOCK_FAILS; STp->door_locked = ST_LOCK_FAILS;
scsi_release_command(SCpnt);
SCpnt = NULL;
} }
return ioctl_result; return ioctl_result;
...@@ -2591,7 +2592,6 @@ set_location(struct inode * inode, unsigned int block, int partition, ...@@ -2591,7 +2592,6 @@ set_location(struct inode * inode, unsigned int block, int partition,
if (!SCpnt) if (!SCpnt)
return (-EBUSY); return (-EBUSY);
SCpnt->request.rq_status = RQ_INACTIVE; /* Mark as not busy */
STps->drv_block = STps->drv_file = (-1); STps->drv_block = STps->drv_file = (-1);
STps->eof = ST_NOEOF; STps->eof = ST_NOEOF;
if ((STp->buffer)->last_result_fatal != 0) { if ((STp->buffer)->last_result_fatal != 0) {
......
OBJS=
ifdef CONFIG_AD1848
OBJS := $(OBJS) ad1848.o
endif
ifdef CONFIG_YM3812
OBJS := $(OBJS) adlib_card.o
endif
ifdef CONFIG_AUDIO
OBJS := $(OBJS) audio.o
endif
ifdef CONFIG_CS4232
OBJS := $(OBJS) cs4232.o
endif
ifdef CONFIG_AUDIO
OBJS := $(OBJS) dmabuf.o
endif
ifdef CONFIG_GUSHW
OBJS := $(OBJS) gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o
endif
ifdef CONFIG_MAD16
OBJS := $(OBJS) mad16.o
endif
ifdef CONFIG_MAUI
OBJS := $(OBJS) maui.o
endif
ifdef CONFIG_MIDI
OBJS := $(OBJS) midi_synth.o midibuf.o
endif
ifdef CONFIG_MPU401
OBJS := $(OBJS) mpu401.o
else
ifdef CONFIG_MPU_EMU
OBJS := $(OBJS) mpu401.o
endif
endif
ifdef CONFIG_YM3812
OBJS := $(OBJS) opl3.o
endif
ifdef CONFIG_PAS
OBJS := $(OBJS) pas2_card.o pas2_midi.o pas2_mixer.o pas2_pcm.o
endif
ifdef CONFIG_PSS
OBJS := $(OBJS) pss.o
endif
ifdef CONFIG_SBDSP
OBJS := $(OBJS) sb_card.o sb_common.o sb_audio.o sb_mixer.o sb_midi.o
endif
ifdef CONFIG_SEQUENCER
OBJS := $(OBJS) sequencer.o
endif
ifdef CONFIG_SEQUENCER
OBJS := $(OBJS) sound_timer.o
endif
ifdef CONFIG_SSCAPEHW
OBJS := $(OBJS) sscape.o
endif
ifdef CONFIG_TRIX
OBJS := $(OBJS) trix.o
endif
ifdef CONFIG_SEQUENCER
OBJS := $(OBJS) sys_timer.o
endif
ifdef CONFIG_UART6850
OBJS := $(OBJS) uart6850.o
endif
ifdef CONFIG_UART401
OBJS := $(OBJS) uart401.o
endif
ifdef CONFIG_OPL3SA1
OBJS := $(OBJS) opl3sa.o
endif
ifdef CONFIG_SOFTOSS
OBJS := $(OBJS) softoss.o softoss_rs.o
endif
ifdef CONFIG_VMIDI
OBJS := $(OBJS) v_midi.o
endif
OBJS=
ifdef CONFIG_AD1848
OBJS := $(OBJS) ad1848.o
endif
ifdef CONFIG_YM3812
OBJS := $(OBJS) adlib_card.o
endif
ifdef CONFIG_AUDIO
OBJS := $(OBJS) audio.o
endif
ifdef CONFIG_CS4232
OBJS := $(OBJS) cs4232.o
endif
ifdef CONFIG_AUDIO
OBJS := $(OBJS) dmabuf.o
endif
ifdef CONFIG_GUSHW
OBJS := $(OBJS) gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o
endif
ifdef CONFIG_MAD16
OBJS := $(OBJS) mad16.o
endif
ifdef CONFIG_MAUI
OBJS := $(OBJS) maui.o
endif
ifdef CONFIG_MIDI
OBJS := $(OBJS) midi_synth.o midibuf.o
endif
ifdef CONFIG_MPU401
OBJS := $(OBJS) mpu401.o
else
ifdef CONFIG_MPU_EMU
OBJS := $(OBJS) mpu401.o
endif
endif
ifdef CONFIG_YM3812
OBJS := $(OBJS) opl3.o
endif
ifdef CONFIG_PAS
OBJS := $(OBJS) pas2_card.o pas2_midi.o pas2_mixer.o pas2_pcm.o
endif
ifdef CONFIG_PSS
OBJS := $(OBJS) pss.o
endif
ifdef CONFIG_SBDSP
OBJS := $(OBJS) sb_card.o sb_common.o sb_audio.o sb_mixer.o sb_midi.o
endif
ifdef CONFIG_SEQUENCER
OBJS := $(OBJS) sequencer.o
endif
ifdef CONFIG_SEQUENCER
OBJS := $(OBJS) sound_timer.o
endif
ifdef CONFIG_SSCAPEHW
OBJS := $(OBJS) sscape.o
endif
ifdef CONFIG_TRIX
OBJS := $(OBJS) trix.o
endif
ifdef CONFIG_SEQUENCER
OBJS := $(OBJS) sys_timer.o
endif
ifdef CONFIG_UART6850
OBJS := $(OBJS) uart6850.o
endif
ifdef CONFIG_UART401
OBJS := $(OBJS) uart401.o
endif
ifdef CONFIG_OPL3SA1
OBJS := $(OBJS) opl3sa.o
endif
ifdef CONFIG_SOFTOSS
OBJS := $(OBJS) softoss.o softoss_rs.o
endif
dep_tristate 'ProAudioSpectrum 16 support' CONFIG_PAS $CONFIG_SOUND dep_tristate 'ProAudioSpectrum 16 support' CONFIG_PAS $CONFIG_SOUND
dep_tristate '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' CONFIG_SB $CONFIG_SOUND if [ "$CONFIG_PAS" = "y" ]; then
dep_tristate 'Generic OPL2/OPL3 FM synthesizer support' CONFIG_ADLIB $CONFIG_SOUND int 'PAS16 IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15' PAS_IRQ 10
dep_tristate 'Gravis Ultrasound support' CONFIG_GUS $CONFIG_SOUND int 'PAS16 DMA 0, 1, 3, 5, 6 or 7' PAS_DMA 3
if [ "$CONFIG_GUS" != "n" ]; then
bool '16 bit sampling option of GUS (_NOT_ GUS MAX)' CONFIG_GUS16
bool 'GUS MAX support' CONFIG_GUSMAX
fi
dep_tristate 'MPU-401 support (NOT for SB16)' CONFIG_MPU401 $CONFIG_SOUND
dep_tristate 'PSS (ECHO-ADI2111) support' CONFIG_PSS $CONFIG_SOUND
dep_tristate 'Microsoft Sound System support' CONFIG_MSS $CONFIG_SOUND
dep_tristate 'Ensoniq SoundScape support' CONFIG_SSCAPE $CONFIG_SOUND
dep_tristate 'MediaTrix AudioTrix Pro support' CONFIG_TRIX $CONFIG_SOUND
dep_tristate 'Support for OPTi MAD16 and/or Mozart based cards' CONFIG_MAD16 $CONFIG_SOUND
dep_tristate 'Support for Crystal CS4232 based (PnP) cards' CONFIG_CS4232 $CONFIG_SOUND
dep_tristate 'Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' CONFIG_MAUI $CONFIG_SOUND
dep_tristate 'Yamaha OPL3-SA1 audio controller' CONFIG_OPL3SA1 $CONFIG_SOUND
dep_tristate 'SoftOSS software wave table engine' CONFIG_SOFTOSS $CONFIG_SOUND
dep_tristate 'FM synthesizer (YM3812/OPL-3) support' CONFIG_YM3812 $CONFIG_SOUND
dep_tristate 'Loopback MIDI device support' CONFIG_VMIDI $CONFIG_VMIDI
if [ "$CONFIG_AEDSP16" = "y" ]; then
hex 'I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
fi fi
dep_tristate '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' CONFIG_SB $CONFIG_SOUND
if [ "$CONFIG_SB" = "y" ]; then if [ "$CONFIG_SB" = "y" ]; then
hex 'I/O base for SB Check from manual of the card' SBC_BASE 220 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 IRQ Check from manual of the card' SBC_IRQ 7
...@@ -34,50 +16,46 @@ if [ "$CONFIG_SB" = "y" ]; then ...@@ -34,50 +16,46 @@ if [ "$CONFIG_SB" = "y" ]; then
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' SB_MPU_IRQ -1
fi fi
if [ "$CONFIG_PAS" = "y" ]; then dep_tristate 'Generic OPL2/OPL3 FM synthesizer support' CONFIG_ADLIB $CONFIG_SOUND
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
fi
if [ "$CONFIG_GUS" = "y" ]; then dep_tristate 'Gravis Ultrasound support' CONFIG_GUS $CONFIG_SOUND
if [ "$CONFIG_GUS" != "n" ]; then
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 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 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 '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 int 'Second DMA channel for GUS 1, 3, 5, 6 or 7' GUS_DMA2 -1
fi if [ "$CONFIG_GUS16" = "y" ]; then
if [ "$CONFIG_GUS16" = "y" ]; then
hex 'I/O base for the 16 bit daughtercard of GUS 530, 604, E80 or F40' GUS16_BASE 530 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 16 bit daughtercard IRQ 3, 4, 5, 7, or 9' GUS16_IRQ 7
int 'GUS DMA 0, 1 or 3' GUS16_DMA 3 int 'GUS DMA 0, 1 or 3' GUS16_DMA 3
fi
fi
fi fi
dep_tristate 'MPU-401 support (NOT for SB16)' CONFIG_MPU401 $CONFIG_SOUND
if [ "$CONFIG_MPU401" = "y" ]; then if [ "$CONFIG_MPU401" = "y" ]; then
hex 'I/O base for MPU401 Check from manual of the card' MPU_BASE 330 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 int 'MPU401 IRQ Check from manual of the card' MPU_IRQ 9
fi fi
if [ "$CONFIG_MAUI" = "y" ]; then dep_tristate 'PSS (ECHO-ADI2111) support' CONFIG_PSS $CONFIG_SOUND
comment 'ERROR! You have to use old sound configuration method with Maui.'
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
fi
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
fi
if [ "$CONFIG_PSS" = "y" ]; then if [ "$CONFIG_PSS" = "y" ]; then
comment 'ERROR! You have to use old sound configuration method with PSS cards.'
hex 'PSS I/O base 220 or 240' PSS_BASE 220 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 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 IRQ 7, 9, 10 or 11' PSS_MSS_IRQ 11
int 'PSS audio DMA 0, 1 or 3' PSS_MSS_DMA 3 int 'PSS audio DMA 0, 1 or 3' PSS_MSS_DMA 3
hex 'PSS MIDI I/O base ' PSS_MPU_BASE 330 hex 'PSS MIDI I/O base ' PSS_MPU_BASE 330
int 'PSS MIDI IRQ 3, 4, 5, 7 or 9' PSS_MPU_IRQ 9 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
fi
fi fi
dep_tristate 'Microsoft Sound System support' CONFIG_MSS $CONFIG_SOUND
if [ "$CONFIG_MSS" = "y" ]; then if [ "$CONFIG_MSS" = "y" ]; then
hex 'MSS/WSS I/O base 530, 604, E80 or F40' MSS_BASE 530 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 IRQ 7, 9, 10 or 11' MSS_IRQ 11
...@@ -85,6 +63,7 @@ if [ "$CONFIG_MSS" = "y" ]; then ...@@ -85,6 +63,7 @@ if [ "$CONFIG_MSS" = "y" ]; then
int 'MSS/WSS second DMA (if possible) 0, 1 or 3' MSS_DMA2 -1 int 'MSS/WSS second DMA (if possible) 0, 1 or 3' MSS_DMA2 -1
fi fi
dep_tristate 'Ensoniq SoundScape support' CONFIG_SSCAPE $CONFIG_SOUND
if [ "$CONFIG_SSCAPE" = "y" ]; then if [ "$CONFIG_SSCAPE" = "y" ]; then
hex 'SoundScape MIDI I/O base 320, 330, 340 or 350' SSCAPE_BASE 330 hex 'SoundScape MIDI I/O base 320, 330, 340 or 350' SSCAPE_BASE 330
int 'SoundScape MIDI IRQ ' SSCAPE_IRQ 9 int 'SoundScape MIDI IRQ ' SSCAPE_IRQ 9
...@@ -93,8 +72,8 @@ if [ "$CONFIG_SSCAPE" = "y" ]; then ...@@ -93,8 +72,8 @@ if [ "$CONFIG_SSCAPE" = "y" ]; then
int 'SoundScape audio IRQ 7, 9, 10 or 11' SSCAPE_MSS_IRQ 11 int 'SoundScape audio IRQ 7, 9, 10 or 11' SSCAPE_MSS_IRQ 11
fi fi
dep_tristate 'MediaTrix AudioTrix Pro support' CONFIG_TRIX $CONFIG_SOUND
if [ "$CONFIG_TRIX" = "y" ]; then if [ "$CONFIG_TRIX" = "y" ]; then
comment 'ERROR! You have to use old sound configuration method with OPL3-SA1.'
hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' TRIX_BASE 530 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 IRQ 7, 9, 10 or 11' TRIX_IRQ 11
int 'OPL3-SA1 audio DMA 0, 1 or 3' TRIX_DMA 0 int 'OPL3-SA1 audio DMA 0, 1 or 3' TRIX_DMA 0
...@@ -104,17 +83,23 @@ if [ "$CONFIG_TRIX" = "y" ]; then ...@@ -104,17 +83,23 @@ if [ "$CONFIG_TRIX" = "y" ]; then
hex 'OPL3-SA1 SB I/O base 220, 210, 230, 240, 250, 260 or 270' TRIX_SB_BASE 220 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 IRQ 3, 4, 5 or 7' TRIX_SB_IRQ 7
int 'OPL3-SA1 SB DMA 1 or 3' TRIX_SB_DMA 1 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
fi
fi fi
if [ "$CONFIG_OPL3SA1" = "y" ]; then dep_tristate 'Support for OPTi MAD16 and/or Mozart based cards' CONFIG_MAD16 $CONFIG_SOUND
hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' OPL3SA1_BASE 530 if [ "$CONFIG_MAD16" = "y" ]; then
int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' OPL3SA1_IRQ 11 hex 'MAD16 audio I/O base 530, 604, E80 or F40' MAD16_BASE 530
int 'OPL3-SA1 audio DMA 0, 1 or 3' OPL3SA1_DMA 0 int 'MAD16 audio IRQ 7, 9, 10 or 11' MAD16_IRQ 11
int 'OPL3-SA1 second (duplex) DMA 0, 1 or 3' OPL3SA1_DMA2 3 int 'MAD16 audio DMA 0, 1 or 3' MAD16_DMA 3
hex 'OPL3-SA1 MIDI I/O base 330, 370, 3B0 or 3F0' OPL3SA1_MPU_BASE 330 int 'MAD16 second (duplex) DMA 0, 1 or 3' MAD16_DMA2 0
int 'OPL3-SA1 MIDI IRQ 3, 4, 5, 7 or 9' OPL3SA1_MPU_IRQ 9 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
fi fi
dep_tristate 'Support for Crystal CS4232 based (PnP) cards' CONFIG_CS4232 $CONFIG_SOUND
if [ "$CONFIG_CS4232" = "y" ]; then if [ "$CONFIG_CS4232" = "y" ]; then
hex 'CS4232 audio I/O base 530, 604, E80 or F40' CS4232_BASE 530 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 IRQ 5, 7, 9, 11, 12 or 15' CS4232_IRQ 11
...@@ -124,28 +109,50 @@ if [ "$CONFIG_CS4232" = "y" ]; then ...@@ -124,28 +109,50 @@ if [ "$CONFIG_CS4232" = "y" ]; then
int 'CS4232 MIDI IRQ 5, 7, 9, 11, 12 or 15' CS4232_MPU_IRQ 9 int 'CS4232 MIDI IRQ 5, 7, 9, 11, 12 or 15' CS4232_MPU_IRQ 9
fi fi
if [ "$CONFIG_MAD16" = "y" ]; then dep_tristate 'Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' CONFIG_MAUI $CONFIG_SOUND
hex 'MAD16 audio I/O base 530, 604, E80 or F40' MAD16_BASE 530 if [ "$CONFIG_MAUI" = "y" ]; then
int 'MAD16 audio IRQ 7, 9, 10 or 11' MAD16_IRQ 11 hex 'I/O base for Maui 210, 230, 260, 290, 300, 320, 338 or 330' MAUI_BASE 330
int 'MAD16 audio DMA 0, 1 or 3' MAD16_DMA 3 int 'Maui IRQ 5, 9, 12 or 15' MAUI_IRQ 9
int 'MAD16 second (duplex) DMA 0, 1 or 3' MAD16_DMA2 0 bool ' Have OSWF.MOT firmware file' MAUI_HAVE_BOOT
hex 'MAD16 MIDI I/O base 300, 310, 320 or 330 (0 disables)' MAD16_MPU_BASE 330 if [ "$MAUI_HAVE_BOOT" = "y" ]; then
int 'MAD16 MIDI IRQ 5, 7, 9 or 10' MAD16_MPU_IRQ 9 string ' Full pathname of OSWF.MOT firmware file' 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
fi fi
dep_tristate 'SoftOSS software wave table engine' CONFIG_SOFTOSS $CONFIG_SOUND
if [ "$CONFIG_SOFTOSS" = "y" ]; then if [ "$CONFIG_SOFTOSS" = "y" ]; then
int 'Sampling rate for SoftOSS 8000 to 48000' SOFTOSS_RATE 22050 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 'Max # of concurrent voices for SoftOSS 4 to 32' SOFTOSS_VOICES 32
fi fi
# dep_tristate 'FM synthesizer (YM3812/OPL-3) support' CONFIG_YM3812 $CONFIG_SOUND
$MAKE -C drivers/sound kernelconfig || exit 1 dep_tristate 'Loopback MIDI device support' CONFIG_VMIDI $CONFIG_VMIDI
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
fi
bool 'Additional low level drivers' CONFIG_LOWLEVEL_SOUND bool 'Additional low level drivers' CONFIG_LOWLEVEL_SOUND
if [ "$CONFIG_LOWLEVEL_SOUND" = "y" ]; then if [ "$CONFIG_LOWLEVEL_SOUND" = "y" ]; then
dep_tristate 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER $CONFIG_SOUND dep_tristate 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER $CONFIG_SOUND
dep_tristate 'AWE32 synth' CONFIG_AWE32_SYNTH $CONFIG_SOUND dep_tristate 'AWE32 synth' CONFIG_AWE32_SYNTH $CONFIG_SOUND
bool 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16 bool 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16
if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; then
hex ' I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
fi
if [ "$CONFIG_AEDSP16" = "y" ]; then if [ "$CONFIG_AEDSP16" = "y" ]; then
comment 'SC-6600 Audio Cards have no jumper switches at all' comment 'SC-6600 Audio Cards have no jumper switches at all'
......
#
# Sound driver configuration
#
#--------
# There is another confic script which is compatible with rest of
# the kernel. It can be activated by running 'make mkscript' in this
# directory. Please note that this is an _experimental_ feature which
# doesn't work with all cards (PSS, SM Wave, AudioTriX Pro, Maui).
#--------
#
$MAKE -C drivers/sound config || exit 1
bool 'Additional low level drivers' CONFIG_LOWLEVEL_SOUND
if [ "$CONFIG_LOWLEVEL_SOUND" = "y" ]; then
bool 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER
bool 'AWE32 synth' CONFIG_AWE32_SYNTH
bool 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16
if [ "$CONFIG_AEDSP16" = "y" ]; then
comment 'SC-6600 Audio Cards have no jumper switches at all'
bool 'SC-6600 based audio cards (new Audio Excel DSP 16)' CONFIG_SC6600
if [ "$CONFIG_SB" = "y" -a "$CONFIG_AEDSP16_MSS" != "y" ]; then
bool 'Audio Excel DSP 16 (SBPro emulation)' CONFIG_AEDSP16_SBPRO
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
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
fi
fi
if [ "$CONFIG_MSS" = "y" -a "$CONFIG_AEDSP16_SBPRO" != "y" ]; then
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
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
fi
fi
if [ "$CONFIG_MPU401" = "y" ]; then
bool 'Audio Excel DSP 16 (MPU401 emulation)' CONFIG_AEDSP16_MPU401
if [ "$CONFIG_AEDSP16_MPU401" = "y" ]; then
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
fi
int 'MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' \
AEDSP16_MPU_IRQ $MPU_IRQ
fi
fi
if [ "$CONFIG_SC6600" = "y" ]; then
comment 'SC-6600 specific configuration'
bool 'Activate SC-6600 Joystick Interface' CONFIG_SC6600_JOY
int 'SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?)' \
CONFIG_SC6600_CDROM 4
hex 'SC-6600 CDROM Interface I/O Address' CONFIG_SC6600_CDROMBASE 0
fi
fi
fi
# This used to be a computer generated file, but it's not any more.
# Edit all you need!
ifdef CONFIG_PSS
ifneq ($(CONFIG_MPU_EMU),Y)
CONFIG_MPU_EMU=y
endif
endif
ifdef CONFIG_SSCAPE
ifneq ($(CONFIG_MPU_EMU),Y)
CONFIG_MPU_EMU=y
endif
endif
ifdef CONFIG_CS4232
ifneq ($(CONFIG_MPU_EMU),Y)
CONFIG_MPU_EMU=y
endif
endif
ifdef CONFIG_MAUI
ifneq ($(CONFIG_MPU_EMU),Y)
CONFIG_MPU_EMU=y
endif
endif
ifdef CONFIG_PSS
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_GUS16
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_GUSMAX
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_MSS
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_SSCAPE
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_TRIX
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_MAD16
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_CS4232
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_OPL3SA1
ifneq ($(CONFIG_AD1848),Y)
CONFIG_AD1848=y
endif
endif
ifdef CONFIG_SB
ifneq ($(CONFIG_SBDSP),Y)
CONFIG_SBDSP=y
endif
endif
ifdef CONFIG_TRIX
ifneq ($(CONFIG_SBDSP),Y)
CONFIG_SBDSP=y
endif
endif
ifdef CONFIG_MAD16
ifneq ($(CONFIG_SBDSP),Y)
CONFIG_SBDSP=y
endif
endif
ifdef CONFIG_SB
ifneq ($(CONFIG_UART401),Y)
CONFIG_UART401=y
endif
endif
ifdef CONFIG_TRIX
ifneq ($(CONFIG_UART401),Y)
CONFIG_UART401=y
endif
endif
ifdef CONFIG_MAD16
ifneq ($(CONFIG_UART401),Y)
CONFIG_UART401=y
endif
endif
ifdef CONFIG_OPL3SA1
ifneq ($(CONFIG_UART401),Y)
CONFIG_UART401=y
endif
endif
ifdef CONFIG_GUS
ifneq ($(CONFIG_GUSHW),Y)
CONFIG_GUSHW=y
endif
endif
ifdef CONFIG_SSCAPE
ifneq ($(CONFIG_SSCAPEHW),Y)
CONFIG_SSCAPEHW=y
endif
endif
ifdef CONFIG_PAS
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_SB
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_ADLIB
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_GUS
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_MPU401
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_PSS
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_GUS16
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_GUSMAX
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_MSS
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_SSCAPE
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_TRIX
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_MAD16
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_CS4232
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_MAUI
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_OPL3SA1
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_SOFTOSS
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_YM3812_AUTO
ifneq ($(CONFIG_SEQUENCER),Y)
CONFIG_SEQUENCER=y
endif
endif
ifdef CONFIG_PAS
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_SB
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_GUS
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_PSS
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_GUS16
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_GUSMAX
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_MSS
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_SSCAPE
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_TRIX
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_MAD16
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_CS4232
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_OPL3SA1
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_SOFTOSS
ifneq ($(CONFIG_AUDIO),Y)
CONFIG_AUDIO=y
endif
endif
ifdef CONFIG_PAS
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_SB
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_GUS
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_MPU401
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_PSS
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_GUS16
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_GUSMAX
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_SSCAPE
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_TRIX
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_MAD16
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_CS4232
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_MAUI
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_OPL3SA1
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
ifdef CONFIG_SOFTOSS
ifneq ($(CONFIG_MIDI),Y)
CONFIG_MIDI=y
endif
endif
...@@ -24,21 +24,9 @@ ifeq ($(ARCH),m68k) ...@@ -24,21 +24,9 @@ ifeq ($(ARCH),m68k)
clean: clean:
rm -f core *.o *.a *.s rm -f core *.o *.a *.s
# dummy rule to keep 'make xconfig' happy
mkscript:
# More dummy targets for make [menu]config
mkscript:
kernelconfig:
else else
ifeq (.defines,$(wildcard .defines)) include Defines
include .defines
#include .objects
endif
TARGET_OS=linux
ifndef TOPDIR ifndef TOPDIR
TOPDIR=/usr/src/linux TOPDIR=/usr/src/linux
...@@ -92,7 +80,7 @@ else ...@@ -92,7 +80,7 @@ else
ifeq ($(CONFIG_GUS),m) ifeq ($(CONFIG_GUS),m)
M_OBJS += gus.o M_OBJS += gus.o
endif endif
ifeq ($(CONFIG_GUSMAX),m) ifeq ($(CONFIG_GUSMAX),y)
ifneq ($(CONFIG_MSS),y) ifneq ($(CONFIG_MSS),y)
CONFIG_MSS = m CONFIG_MSS = m
endif endif
...@@ -259,33 +247,80 @@ sound.o: soundcard.o dev_table.o sound_switch.o audio.o dmabuf.o sequencer.o sys ...@@ -259,33 +247,80 @@ sound.o: soundcard.o dev_table.o sound_switch.o audio.o dmabuf.o sequencer.o sys
gus.o: gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o gus.o: gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o
ld -r -o gus.o gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o ld -r -o gus.o gus_card.o gus_midi.o gus_vol.o gus_wave.o ics2101.o
kernelconfig: setup # Firmware files that need translation
rm -f configure #
$(HOSTCC) -o configure configure.c # The translated files are protected by a file that keeps track
./configure fixedlocal > local.h # of what name was used to build them. If the name changes, they
./configure fixeddefines > .defines # will be forced to be remade.
@echo \#define SOUND_CONFIG_DATE \"`date`\" >> local.h
@echo \#define SOUND_CONFIG_BY \"`whoami`\" >> local.h bin2hex: bin2hex.c
# @echo \#define SOUND_CONFIG_HOST \"`hostname`\" >> local.h 2>/dev/null $(HOSTCC) -o bin2hex bin2hex.c
# @echo \#define SOUND_CONFIG_DOMAIN \"`hostname -d`\" >> local.h 2>/dev/null
@echo \#define SOUND_UNAME_A \"`uname -a`\" >> local.h hex2hex: hex2hex.c
$(HOSTCC) -o hex2hex hex2hex.c
configure: configure.c
$(HOSTCC) -o configure configure.c ifeq ($(MAUI_HAVE_BOOT),y)
@cat .blurb
MAUI_BOOT_FILE := $(patsubst "%", %, $(MAUI_BOOT_FILE))
setup:
@echo Compiling Sound Driver v $(VERSION) for Linux maui.o: maui_boot.h
mkscript: maui_boot.h: $(MAUI_BOOT_FILE) bin2hex
bin2hex maui_os < "$(MAUI_BOOT_FILE)" > $@
config: configure @ ( \
@$(MAKE) setup echo 'ifeq ($(strip $(MAUI_BOOT_FILE)),$$(strip $$(MAUI_BOOT_FILE)))'; \
@./configure > local.h echo 'FILES_BOOT_UP_TO_DATE += $@'; \
@echo \#define SOUND_CONFIG_DATE \"`date`\" >> local.h echo 'endif' \
@echo \#define SOUND_CONFIG_BY \"`whoami`\" >> local.h ) > .$@.boot
# @echo \#define SOUND_CONFIG_HOST \"`hostname`\" >> local.h 2>/dev/null
# @echo \#define SOUND_CONFIG_DOMAIN \"`hostname -d`\" >> local.h 2>/dev/null endif
@echo \#define SOUND_UNAME_A \"`uname -a`\" >> local.h
ifeq ($(PSS_HAVE_BOOT),y)
PSS_BOOT_FILE := $(patsubst "%", %, $(PSS_BOOT_FILE))
pss.o: pss_boot.h
pss_boot.h: $(PSS_BOOT_FILE) bin2hex
bin2hex pss_synth < "$(PSS_BOOT_FILE)" > $@
@ ( \
echo 'ifeq ($(strip $(PSS_BOOT_FILE)),$$(strip $$(PSS_BOOT_FILE)))'; \
echo 'FILES_BOOT_UP_TO_DATE += $@'; \
echo 'endif' \
) > .$@.boot
endif
ifeq ($(TRIX_HAVE_BOOT),y)
TRIX_BOOT_FILE := $(patsubst "%", %, $(TRIX_BOOT_FILE))
trix.o: trix_boot.h
trix_boot.h: $(TRIX_BOOT_FILE) hex2hex
hex2hex trix_boot < "$(TRIX_BOOT_FILE)" > $@
@ ( \
echo 'ifeq ($(strip $(TRIX_BOOT_FILE)),$$(strip $$(strip $$(TRIX_BOOT_FILE)))'; \
echo 'FILES_BOOT_UP_TO_DATE += $@'; \
echo 'endif' \
) > .$@.boot
endif
# Find boot files whose source file names have changed and force rebuild.
FILES_BOOT_UP_TO_DATE :=
FILES_BOOT_EXIST := $(wildcard .*.boot)
ifneq ($(FILES_BOOT_EXIST),)
include $(FILES_BOOT_EXIST)
endif
FILES_BOOT_CHANGED := $(strip \
$(filter-out $(FILES_BOOT_UP_TO_DATE), \
maui_boot.h pss_boot.h trix_boot.h))
ifneq ($(FILES_BOOT_CHANGED),)
$(FILES_BOOT_CHANGED): dummy
endif
endif endif
...@@ -18,32 +18,8 @@ IMPORTANT! This document covers only cards that were "known" when ...@@ -18,32 +18,8 @@ IMPORTANT! This document covers only cards that were "known" when
http://www.opensound.com/ossfree for info about http://www.opensound.com/ossfree for info about
cards introduced recently. cards introduced recently.
The following covers mainly the "old" configuration When configuring the sound driver, you should carefully
method (make config). Most of it is valid for the "new" check each sound configuration option (particularly
configuration (make menuconfig/xconfig) too.
Cards having some kind of loadable "microcode" such as
PSS, SM Wave, AudioTrix Pro and Maui/Tropez must be
configured using the old method. The new one will not
work with them. The "old" method is used by default by
"make config". "make xconfig" will always use the "new"
method. "make menuconfig" will allow you to select which
method to use. After you have used the "new" method once
it will always be used when you use any of the config
programs. To return back to the "old" method you should
execute "cp Config.std Config.in" in linux/drivers/sound.
The /etc/soundconf file (forget it if you don't know what
this file does) contains settings that are used only by
the "old" method. Don't ever think the "active" settings
are stored there (they really are _NOT_ stored
there). Don't try to edit /etc/soundconf or any other
kernel or sound driver config files manually. The _only_
proper ways to change the settings are make config or
make menuconfig (the "old" method).
When using make xconfig and/or make menuconfig, you should
carefully check each sound configuration option (particularly
"Support for /dev/dsp and /dev/audio"). The default values "Support for /dev/dsp and /dev/audio"). The default values
offered by these programs are not necessarily valid. offered by these programs are not necessarily valid.
...@@ -377,9 +353,6 @@ MediaTrix AudioTrix Pro ...@@ -377,9 +353,6 @@ MediaTrix AudioTrix Pro
chips. The OPL4 mode is supported by a microcontroller running a chips. The OPL4 mode is supported by a microcontroller running a
General MIDI emulator. There is also a SB 1.5 compatible playback mode. General MIDI emulator. There is also a SB 1.5 compatible playback mode.
NOTE! You will have to use the "old" config script when configuring
AudioTrix Pro.
Ensoniq SoundScape and compatibles Ensoniq SoundScape and compatibles
Ensoniq has designed a soundcard architecture based on the Ensoniq has designed a soundcard architecture based on the
OTTO synthesizer chip used in their professional MIDI synthesizers. OTTO synthesizer chip used in their professional MIDI synthesizers.
...@@ -411,8 +384,8 @@ OPTi MAD16 and Mozart based cards ...@@ -411,8 +384,8 @@ OPTi MAD16 and Mozart based cards
Audio Excel DSP16 Audio Excel DSP16
Support for this card was written by Riccardo Faccetti Support for this card was written by Riccardo Faccetti
(riccardo@cdc8g5.cdc.polimi.it). The AEDSP16 driver included in (riccardo@cdc8g5.cdc.polimi.it). The AEDSP16 driver included in
the lowlevel/ directory. To use it you should use the "new" config the lowlevel/ directory. To use it you should enable the
script and to enable the "Additional low level drivers" option. "Additional low level drivers" option.
Crystal CS4232 and CS4236 based cards such as AcerMagic S23, TB Tropez _Plus_ and Crystal CS4232 and CS4236 based cards such as AcerMagic S23, TB Tropez _Plus_ and
many PC motherboards (Compaq, HP, Intel, ...) many PC motherboards (Compaq, HP, Intel, ...)
...@@ -431,8 +404,6 @@ Turtle Beach Maui and Tropez "classic" ...@@ -431,8 +404,6 @@ Turtle Beach Maui and Tropez "classic"
described in the Maui/Tropez User's manual. described in the Maui/Tropez User's manual.
There is now full initialization support too. The audio side of There is now full initialization support too. The audio side of
the Tropez is based on the MAD16 chip (see above). the Tropez is based on the MAD16 chip (see above).
NOTE! You will have to use the "old" config script when configuring
Maui or Tropez.
NOTE! Tropez Plus is different card than Tropez "classic" and will not NOTE! Tropez Plus is different card than Tropez "classic" and will not
work fully in Linux. You can get audio features working by configuring work fully in Linux. You can get audio features working by configuring
the card as a CS4232 based card (above). the card as a CS4232 based card (above).
...@@ -529,29 +500,20 @@ the kernel following instructions in the kernel README. ...@@ -529,29 +500,20 @@ the kernel following instructions in the kernel README.
The sound driver configuration dialog The sound driver configuration dialog
------------------------------------- -------------------------------------
All config information of the sound driver is written to file
linux/drivers/sound/local.h. You may save the old version is this file and
use it again in case you want to use the same config later. In this case
just answer n to each question made by the sound config program and put
the original local.h back before running "make dep".
Don't do this if the version number of the sound driver has changed. In this
case you have to enter the configuration information again.
If you already have the sound driver installed, consult printout of If you already have the sound driver installed, consult printout of
"cat /dev/sndstat" when configuring the driver again. It gives the I/O, "cat /dev/sndstat" when configuring the driver again. It gives the I/O,
IRQ and DMA settings you have used earlier. IRQ and DMA settings you have used earlier.
Sound configuration starts by making some yes/no questions. Be careful
The sound config program (linux/drivers/sound/configure) starts by making when answering to these questions since answering y to a question may
some yes/no questions. Be careful when answering to these questions since prevent some later ones from being asked. For example don't answer y to
answering y to a question may prevent some later ones from being asked. For the first question (PAS16) if you don't really have a PAS16. Don't enable
example don't answer y to the first question (PAS16) if you don't really more cards than you really need since they just consume memory. Also
have a PAS16. Don't enable more cards than you really need since they some drivers (like MPU401) may conflict with your SCSI controller and
just consume memory. Also some drivers (like MPU401) may conflict with your prevent kernel from booting. If you card was in the list of supported
SCSI controller and prevent kernel from booting. If you card was in the list cards (above), please look at the card specific config instructions
of supported cards (above), please look at the card specific config (later in this file) before starting to configure. Some cards must be
instructions (later in this file) before starting to configure. Some cards configured in way which is not obvious.
must be configured in way which is not obvious.
So here is the beginning of the config dialog. Answer 'y' or 'n' to these So here is the beginning of the config dialog. Answer 'y' or 'n' to these
questions. The default answer is shown so that (y/n) means 'y' by default and questions. The default answer is shown so that (y/n) means 'y' by default and
...@@ -688,9 +650,7 @@ card specific configuration information. Usually just a set of ...@@ -688,9 +650,7 @@ card specific configuration information. Usually just a set of
I/O address, IRQ and DMA numbers are asked. With some cards the program I/O address, IRQ and DMA numbers are asked. With some cards the program
asks for some files to be used during initialization of the card. For example asks for some files to be used during initialization of the card. For example
many cards have a DSP chip or microprocessor which must be initialized by many cards have a DSP chip or microprocessor which must be initialized by
downloading a program (microcode) file to the card. In some cases this file downloading a program (microcode) file to the card.
is written to a .h file by the config program and then included to the driver
during compile.
Instructions for answering these questions are given in the next section. Instructions for answering these questions are given in the next section.
...@@ -1041,9 +1001,6 @@ specific section for instructions about configuring more than one MPU401 cards. ...@@ -1041,9 +1001,6 @@ specific section for instructions about configuring more than one MPU401 cards.
Logitech Soundman Wave Logitech Soundman Wave
---------------------- ----------------------
NOTE! You will have to use the "old" config script when configuring
SM Wave.
Read the above MV Jazz specific instructions first. Read the above MV Jazz specific instructions first.
The Logitech SoundMan Wave (don't confuse with the SM16 or SM Games) is The Logitech SoundMan Wave (don't confuse with the SM16 or SM Games) is
......
#include <stdio.h>
int main( int argc, const char * argv [] )
{
const char * varname = argv[1];
int i = 0;
int c;
printf( "/* automatically generated by bin2hex */\n" );
printf( "static unsigned char %s [] =\n{\n", varname );
while ( ( c = getchar( ) ) != EOF )
{
if ( i != 0 && i % 10 == 0 )
printf( "\n" );
printf( "0x%02lx,", c & 0xFFl );
i++;
}
printf( "};\n#define %sLen %d\n", varname, i );
return 0;
}
This diff is collapsed.
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#ifndef _DEV_TABLE_H_ #ifndef _DEV_TABLE_H_
#define _DEV_TABLE_H_ #define _DEV_TABLE_H_
#include <linux/config.h>
/* /*
* Sound card numbers 27 to 999. (1 to 26 are defined in soundcard.h) * Sound card numbers 27 to 999. (1 to 26 are defined in soundcard.h)
......
/* /*
* This file is a part of configure.c * hex2hex reads stdin in Intel HEX format and produces an
* * (unsigned char) array which contains the bytes and writes it
* hex2hex reads an input file in Intel HEX format and produces * to stdout using C syntax
* an (unsigned char) array which contains the bytes and writes it to the
* output file using C syntax
*/ */
#include <stdio.h>
#include <stdlib.h>
#define ABANDON(why) { fprintf(stderr, "%s\n", why); exit(1); }
#define MAX_SIZE (256*1024) #define MAX_SIZE (256*1024)
#define ABANDON(why) { \ unsigned char buf[MAX_SIZE];
fprintf(stderr, "%s: " why "\n", source); \
return 0; \
}
int loadhex(FILE *inf, unsigned char *buf, char *source) int loadhex(FILE *inf, unsigned char *buf)
{ {
int l=0, c, i; int l=0, c, i;
...@@ -65,48 +64,24 @@ int loadhex(FILE *inf, unsigned char *buf, char *source) ...@@ -65,48 +64,24 @@ int loadhex(FILE *inf, unsigned char *buf, char *source)
return l; return l;
} }
int hex2hex(char *source, char *target, char *varline) int main( int argc, const char * argv [] )
{ {
FILE *inf, *outf; const char * varline = argv[1];
int i,l; int i,l;
unsigned char buf[MAX_SIZE];
if ((inf=fopen(source, "r"))==NULL)
{
perror(source);
return 0;
}
if ((outf=fopen(target, "w"))==NULL)
{
perror(target);
fclose(inf);
return 0;
}
l=loadhex(inf, buf, source);
if (l<=0)
{
fclose(inf);
fclose(outf);
return l;
}
l = loadhex(stdin, buf);
fprintf(outf, "/*\n *\t Computer generated file. Do not edit.\n */\n"); printf("/*\n *\t Computer generated file. Do not edit.\n */\n");
fprintf(outf, "static int %s_len = %d;\n", varline, l); printf("static int %s_len = %d;\n", varline, l);
fprintf(outf, "static unsigned char %s[] = {\n", varline); printf("static unsigned char %s[] = {\n", varline);
for (i=0;i<l;i++) for (i=0;i<l;i++)
{ {
if (i) fprintf(outf, ","); if (i) printf(",");
if (i && !(i % 16)) fprintf(outf, "\n"); if (i && !(i % 16)) printf("\n");
fprintf(outf, "0x%02x", buf[i]); printf("0x%02x", buf[i]);
} }
fprintf(outf, "\n};\n\n"); printf("\n};\n\n");
fclose(inf); return 0;
fclose(outf);
return 1;
} }
/* Computer generated file. Please don't edit! */ /* Computer generated file. Please don't edit! */
#include <linux/config.h>
#define KERNEL_COMPATIBLE_CONFIG #define KERNEL_COMPATIBLE_CONFIG
#define SELECTED_SOUND_OPTIONS 0x00000000 #define SELECTED_SOUND_OPTIONS 0x00000000
......
...@@ -41,12 +41,11 @@ static int *maui_osp; ...@@ -41,12 +41,11 @@ static int *maui_osp;
static int (*orig_load_patch) (int dev, int format, const char *addr, static int (*orig_load_patch) (int dev, int format, const char *addr,
int offs, int count, int pmgr_flag) = NULL; int offs, int count, int pmgr_flag) = NULL;
#ifdef HAVE_MAUI_BOOT #ifdef MAUI_HAVE_BOOT
#include "maui_boot.h" #include "maui_boot.h"
#else #else
static unsigned char *maui_os = NULL; static unsigned char *maui_os = NULL;
static int maui_osLen = 0; static int maui_osLen = 0;
#endif #endif
static struct wait_queue *maui_sleeper = NULL; static struct wait_queue *maui_sleeper = NULL;
......
...@@ -1204,7 +1204,6 @@ void cleanup_module(void) ...@@ -1204,7 +1204,6 @@ void cleanup_module(void)
{ {
if (devc) if (devc)
{ {
vfree(devc);
devc = NULL; devc = NULL;
sound_unload_synthdev(me); sound_unload_synthdev(me);
} }
......
...@@ -51,13 +51,11 @@ ...@@ -51,13 +51,11 @@
#include "coproc.h" #include "coproc.h"
#ifdef PSS_HAVE_LD #ifdef PSS_HAVE_BOOT
#include "synth-ld.h" #include "pss_boot.h"
#else #else
static unsigned char *pss_synth = NULL;
static int pss_synthLen = 0; static int pss_synthLen = 0;
static unsigned char *pss_synth =
NULL;
#endif #endif
typedef struct pss_confdata typedef struct pss_confdata
......
#include <linux/config.h>
#ifdef CONFIG_SBDSP #ifdef CONFIG_SBDSP
#define DSP_RESET (devc->base + 0x6) #define DSP_RESET (devc->base + 0x6)
#define DSP_READ (devc->base + 0xA) #define DSP_READ (devc->base + 0xA)
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
* Added defines for the Sound Galaxy NX Pro mixer. * Added defines for the Sound Galaxy NX Pro mixer.
* *
*/ */
#include <linux/config.h>
#ifdef CONFIG_SBDSP #ifdef CONFIG_SBDSP
#define SBPRO_RECORDING_DEVICES (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD) #define SBPRO_RECORDING_DEVICES (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD)
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
* (C) Copyright 1997 Alan Cox, Licensed under the GNU GPL * (C) Copyright 1997 Alan Cox, Licensed under the GNU GPL
*/ */
#include <linux/config.h>
#include <linux/module.h> #include <linux/module.h>
#include "sound_config.h" #include "sound_config.h"
#define _MIDI_SYNTH_C_ #define _MIDI_SYNTH_C_
......
...@@ -27,12 +27,11 @@ ...@@ -27,12 +27,11 @@
#endif #endif
#endif #endif
#ifdef INCLUDE_TRIX_BOOT #ifdef TRIX_HAVE_BOOT
#include "trix_boot.h" #include "trix_boot.h"
#else #else
static unsigned char *trix_boot = NULL; static unsigned char *trix_boot = NULL;
static int trix_boot_len = 0; static int trix_boot_len = 0;
#endif #endif
......
...@@ -452,8 +452,8 @@ unload_uart401(struct address_info *hw_config) ...@@ -452,8 +452,8 @@ unload_uart401(struct address_info *hw_config)
if (!devc->share_irq) if (!devc->share_irq)
snd_release_irq(devc->irq); snd_release_irq(devc->irq);
if (!devc) if (devc)
vfree(devc); devc = NULL;
sound_unload_mididev(hw_config->slots[4]); sound_unload_mididev(hw_config->slots[4]);
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/net.h> #include <linux/net.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/signal.h>
#include <net/scm.h> #include <net/scm.h>
#include <net/sock.h> #include <net/sock.h>
#include <linux/ipx.h> #include <linux/ipx.h>
...@@ -124,12 +125,12 @@ static int do_ncp_rpc_call(struct ncp_server *server, int size) ...@@ -124,12 +125,12 @@ static int do_ncp_rpc_call(struct ncp_server *server, int size)
What if we've blocked it ourselves? What about What if we've blocked it ourselves? What about
alarms? Why, in fact, are we mucking with the alarms? Why, in fact, are we mucking with the
sigmask at all? -- r~ */ sigmask at all? -- r~ */
if (current->sig->action[SIGINT - 1].sa_handler == SIG_DFL) if (current->sig->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
mask |= sigmask(SIGINT); mask |= sigmask(SIGINT);
if (current->sig->action[SIGQUIT - 1].sa_handler == SIG_DFL) if (current->sig->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
mask |= sigmask(SIGQUIT); mask |= sigmask(SIGQUIT);
} }
siginitmaskinv(&current->blocked, mask); siginitsetinv(&current->blocked, mask);
recalc_sigpending(current); recalc_sigpending(current);
spin_unlock_irqrestore(&current->sigmask_lock, flags); spin_unlock_irqrestore(&current->sigmask_lock, flags);
...@@ -278,7 +279,7 @@ static int do_ncp_rpc_call(struct ncp_server *server, int size) ...@@ -278,7 +279,7 @@ static int do_ncp_rpc_call(struct ncp_server *server, int size)
} }
spin_lock_irqsave(&current->sigmask_lock, flags); spin_lock_irqsave(&current->sigmask_lock, flags);
current->blocked = old_mask; current->blocked = old_set;
recalc_sigpending(current); recalc_sigpending(current);
spin_unlock_irqrestore(&current->sigmask_lock, flags); spin_unlock_irqrestore(&current->sigmask_lock, flags);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -224,8 +224,8 @@ __initfunc(static void check_pentium_f00f(void)) ...@@ -224,8 +224,8 @@ __initfunc(static void check_pentium_f00f(void))
__initfunc(static void check_bugs(void)) __initfunc(static void check_bugs(void))
{ {
#ifndef __SMP__
identify_cpu(&boot_cpu_data); identify_cpu(&boot_cpu_data);
#ifndef __SMP__
printk("CPU: "); printk("CPU: ");
print_cpu_info(&boot_cpu_data); print_cpu_info(&boot_cpu_data);
#endif #endif
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#ifndef _LINUX_POLL_H #ifndef _LINUX_POLL_H
#define _LINUX_POLL_H
#include <asm/poll.h> #include <asm/poll.h>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment