## Automatically generated incremental diff ## From: linux-2.4.23-bk18 ## To: linux-2.4.23-bk19 ## Robot: $Id: make-incremental-diff,v 1.11 2002/02/20 02:59:33 hpa Exp $ diff -urN linux-2.4.23-bk18/Documentation/Configure.help linux-2.4.23-bk19/Documentation/Configure.help --- linux-2.4.23-bk18/Documentation/Configure.help 2003-12-30 02:50:23.000000000 -0800 +++ linux-2.4.23-bk19/Documentation/Configure.help 2003-12-30 02:50:28.000000000 -0800 @@ -11372,6 +11372,18 @@ Say 'Y' to this option if you are planning to use Multilink PPP over the PC300 synchronous communication boards. +CONFIG_PCI200SYN + This driver is for PCI200SYN cards made by Goramo sp. j. + If you have such a card, say Y or M here and see + + + If you want to compile the driver as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read . The module + will be called pci200syn.o. + + If unsure, say N here. + SDL RISCom/N2 support CONFIG_N2 This driver is for RISCom/N2 single or dual channel ISA cards @@ -11400,25 +11412,6 @@ If unsure, say N here. -CONFIG_HDLC_DEBUG_PKT - This option is for developers only - do NOT use on production - systems. - -CONFIG_HDLC_DEBUG_HARD_HEADER - This option is for developers only - do NOT use on production - systems. - -CONFIG_HDLC_DEBUG_ECN - This option is for developers only - do NOT use on production - systems. - -CONFIG_HDLC_DEBUG_RINGS - If you answer Y here you will be able to get a diagnostic dump of - port's TX and RX packet rings, using "sethdlc hdlcX private" - command. It does not affect normal operations. - - If unsure, say Y here. - Ethernet (10 or 100Mbit) CONFIG_NET_ETHERNET Ethernet (also called IEEE 802.3 or ISO 8802-2) is the most common @@ -19052,9 +19045,9 @@ . The module will be called i2c-elv.o. -Velleman K9000 adapter +Velleman K8000 adapter CONFIG_I2C_VELLEMAN - This supports the Velleman K9000 parallel-port I2C adapter. Say Y + This supports the Velleman K8000 parallel-port I2C adapter. Say Y if you own such an adapter. This driver is also available as a module. If you want to compile @@ -28276,6 +28269,14 @@ This support is also available as a module. If compiled as a module, it will be called scx200.o. +NatSemi SCx200 GPIO support +CONFIG_SCx200_GPIO + Give userspace access to the GPIO pins on the National + Semiconductor SCx200 processors. + + This support is also available as a module. If compiled as a + module, it will be called scx200_gpio.o. + NatSemi SCx200 Watchdog CONFIG_SCx200_WDT Enable the built-in watchdog timer support on the National @@ -28427,7 +28428,7 @@ If compiled as a module, it will be called uclinux.o. NatSemi SCx200 I2C using GPIO pins -CONFIG_SCx200_GPIO +CONFIG_SCx200_I2C Enable the use of two GPIO pins of a SCx200 processor as an I2C bus. If you don't know what to do here, say N. diff -urN linux-2.4.23-bk18/Documentation/i2c/i2c-velleman linux-2.4.23-bk19/Documentation/i2c/i2c-velleman --- linux-2.4.23-bk18/Documentation/i2c/i2c-velleman 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/Documentation/i2c/i2c-velleman 2003-12-30 02:50:28.000000000 -0800 @@ -0,0 +1,23 @@ +i2c-velleman driver +------------------- +This is a driver for i2c-hw access for Velleman K8000 and other adapters. + +Useful links +------------ +Velleman: + http://www.velleman.be/ + +Velleman K8000 Howto: + http://howto.htlw16.ac.at/k8000-howto.html + +K8000 and K8005 libraries +------------------------- +The project has lead to new libs for the Velleman K8000 and K8005: +LIBK8000 v1.99.1 and LIBK8005 v0.21 + +With these libs, you can control the K8000 interface card and the K8005 +stepper motor card with the simple commands which are in the original +Velleman software, like SetIOchannel, ReadADchannel, SendStepCCWFull and +many more, using /dev/velleman. + +The libs can be found on http://groups.yahoo.com/group/k8000/files/linux/ diff -urN linux-2.4.23-bk18/Documentation/i2c/summary linux-2.4.23-bk19/Documentation/i2c/summary --- linux-2.4.23-bk18/Documentation/i2c/summary 2003-12-30 02:50:23.000000000 -0800 +++ linux-2.4.23-bk19/Documentation/i2c/summary 2003-12-30 02:50:28.000000000 -0800 @@ -71,5 +71,5 @@ i2c-ppc405: IBM 405xx processor I2C device (uses i2c-algo-ppc405) (NOT BUILT BY DEFAULT) i2c-pport: Primitive parallel port adapter (uses i2c-algo-bit) i2c-rpx: RPX board Motorola 8xx I2C device (uses i2c-algo-8xx) (NOT BUILT BY DEFAULT) -i2c-velleman: Velleman K9000 parallel port adapter (uses i2c-algo-bit) +i2c-velleman: Velleman K8000 parallel port adapter (uses i2c-algo-bit) diff -urN linux-2.4.23-bk18/Makefile linux-2.4.23-bk19/Makefile --- linux-2.4.23-bk18/Makefile 2003-12-30 02:50:23.000000000 -0800 +++ linux-2.4.23-bk19/Makefile 2003-12-30 02:50:28.000000000 -0800 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 23 -EXTRAVERSION = -bk18 +EXTRAVERSION = -bk19 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) diff -urN linux-2.4.23-bk18/arch/ppc/boot/Makefile linux-2.4.23-bk19/arch/ppc/boot/Makefile --- linux-2.4.23-bk18/arch/ppc/boot/Makefile 2003-12-30 02:50:23.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/boot/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -33,6 +33,7 @@ tools-$(CONFIG_4xx) := mktree tools-$(CONFIG_LOPEC) := mkbugboot mkprep tools-$(CONFIG_PPLUS) := mkbugboot mkprep +tools-$(CONFIG_PRPMC750) := mkbugboot mkprep tools-$(CONFIG_SPRUCE) := mktree # These are dirs we don't want to go into on BOOT_TARGETS. We have them for diff -urN linux-2.4.23-bk18/arch/ppc/boot/chrp/Makefile linux-2.4.23-bk19/arch/ppc/boot/chrp/Makefile --- linux-2.4.23-bk18/arch/ppc/boot/chrp/Makefile 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/boot/chrp/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -50,13 +50,13 @@ --set-section-flags=.sysmap=contents,alloc,load,readonly,data endif -zImage: $(OBJS) $(LIBS) $(ADDNOTE) +zImage: $(OBJS) $(LIBS) $(ADDNOTE) ../ld.script $(LD) $(LD_ARGS) -o ../images/$@.chrp $(OBJS) $(LIBS) $(OBJCOPY) ../images/$@.chrp ../images/$@.chrp -R .comment -R .ramdisk cp ../images/$@.chrp ../images/$@.chrp-rs6k $(ADDNOTE) ../images/$@.chrp-rs6k -zImage.initrd: $(OBJS) $(LIBS) $(ADDNOTE) ../images/ramdisk.image.gz +zImage.initrd: $(OBJS) $(LIBS) $(ADDNOTE) ../images/ramdisk.image.gz ../ld.script $(OBJCOPY) image.o image.o \ --add-section=.ramdisk=../images/ramdisk.image.gz \ --set-section-flags=.ramdisk=contents,alloc,load,readonly,data diff -urN linux-2.4.23-bk18/arch/ppc/boot/common/misc-simple.c linux-2.4.23-bk19/arch/ppc/boot/common/misc-simple.c --- linux-2.4.23-bk18/arch/ppc/boot/common/misc-simple.c 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/boot/common/misc-simple.c 2003-12-30 02:50:29.000000000 -0800 @@ -75,16 +75,9 @@ extern void gunzip(void *, int, unsigned char *, int *); extern void serial_fixups(void); -/* Allow decompress_kernel to be hooked into. This is the default. */ -void * __attribute__ ((weak)) -load_kernel(unsigned long load_addr, int num_words, unsigned long cksum, - void *bp) -{ - return decompress_kernel(load_addr, num_words, cksum, bp); -} - -struct bi_record * -decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum) +static struct bi_record * +decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum, + void *ignored) { #ifdef INTERACTIVE_CONSOLE int timer = 0; @@ -271,3 +264,11 @@ return (struct bi_record *)rec_loc; } + +/* Allow decompress_kernel to be hooked into. This is the default. */ +void * __attribute__ ((weak)) +load_kernel(unsigned long load_addr, int num_words, unsigned long cksum, + void *bp) +{ + return decompress_kernel(load_addr, num_words, cksum, bp); +} diff -urN linux-2.4.23-bk18/arch/ppc/boot/pmac/Makefile linux-2.4.23-bk19/arch/ppc/boot/pmac/Makefile --- linux-2.4.23-bk18/arch/ppc/boot/pmac/Makefile 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/boot/pmac/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -84,7 +84,7 @@ rm -f coffboot.initrd ln -sf vmlinux.initrd.coff ../images/zImage.initrd.pmac -vmlinux.elf-pmac: $(CHRPOBJS) $(LIBS) $(MKNOTE) image.o +vmlinux.elf-pmac: $(CHRPOBJS) $(LIBS) $(MKNOTE) image.o ../ld.script $(LD) $(CHRP_LD_ARGS) -o ../images/$@ $(CHRPOBJS) $(LIBS) image.o $(MKNOTE) > note $(OBJCOPY) ../images/$@ ../images/$@ --add-section=.note=note \ @@ -92,7 +92,7 @@ rm -f note vmlinux.initrd.elf-pmac: $(CHRPOBJS) $(LIBS) $(MKNOTE) image.o \ - ../images/ramdisk.image.gz + ../images/ramdisk.image.gz ../ld.script $(OBJCOPY) image.o image-elf.o \ --add-section=.ramdisk=../images/ramdisk.image.gz \ --set-section-flags=.ramdisk=contents,alloc,load,readonly,data diff -urN linux-2.4.23-bk18/arch/ppc/boot/simple/Makefile linux-2.4.23-bk19/arch/ppc/boot/simple/Makefile --- linux-2.4.23-bk18/arch/ppc/boot/simple/Makefile 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/boot/simple/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -9,12 +9,10 @@ # or implied. # # Notes: -# (1) For machine targets which produce more than one image, define -# ZNETBOOT and ZNETBOOTRD to the image which should be available for -# 'znetboot' and 'znetboot.initrd` -# (2) For machine targets which use the mktree program, define END to be -# the machine name you want in the image, and you can optionally set -# ENTRYPOINT which the image should be loaded at. The optimal setting +# (1) All machines must set the END variable to the suffix of the preferred +# final image (i.e. would be copied in 'make znetboot'. +# (2) For machine targets which use the mktree program you can optionally +# set ENTRYPOINT which the image should be loaded at. The optimal setting # for ENTRYPOINT is the link address. USE_STANDARD_AS_RULE := true @@ -25,15 +23,13 @@ ifeq ($(CONFIG_EMBEDDEDBOOT),y) ZIMAGE := zImage-EMBEDDED ZIMAGEINITRD := zImage.initrd-EMBEDDED -TFTPIMAGE := /tftpboot/zImage.embedded MISC := misc-embedded.o +END := embedded endif ifeq ($(CONFIG_IBM_OPENBIOS),y) ZIMAGE := zImage-TREE ZIMAGEINITRD := zImage.initrd-TREE END := treeboot -ZNETBOOT := zImage.treeboot -ZNETBOOTRD := zImage.initrd.treeboot TFTPIMAGE := /tftpboot/zImage.embedded MISC := misc-embedded.o endif @@ -42,9 +38,6 @@ ZIMAGEINITRD := zImage.initrd-TREE END := ebony ENTRYPOINT := 0x00800000 -ZNETBOOT := zImage.treeboot -ZNETBOOTRD := zImage.initrd.treeboot -TFTPIMAGE := /tftpboot/zImage.$(END) EXTRA := misc-44x.o endif ifeq ($(CONFIG_OCOTEA),y) @@ -52,25 +45,21 @@ ZIMAGEINITRD := zImage.initrd-TREE END := ocotea ENTRYPOINT := 0x00800000 -ZNETBOOT := zImage.treeboot -ZNETBOOTRD := zImage.initrd.treeboot -TFTPIMAGE := /tftpboot/zImage.$(END) EXTRA := misc-44x.o endif ifeq ($(CONFIG_GEMINI),y) ZIMAGE := zImage-SMON ZIMAGEINITRD := zImage.initrd-SMON -TFTPIMAGE := /tftpboot/zImage.gemini +END := gemini endif # kbuild-2.4 'feature', only one of these will ever by 'y' at a time. # The rest will be unset. -ifeq ($(CONFIG_LOPEC)$(CONFIG_PPLUS),y) +ifeq ($(CONFIG_LOPEC)$(CONFIG_PPLUS)$(CONFIG_PRPMC750),y) ZIMAGE := zImage-PPLUS ZIMAGEINITRD := zImage.initrd-PPLUS EXTRA := ../common/mpc10x_memory.o TFTPIMAGE := /tftpboot/zImage.pplus -ZNETBOOT := zImage.pplus -ZNETBOOTRD := zImage.initrd.pplus +END := pplus endif ifeq ($(CONFIG_PPLUS),y) EXTRA := legacy.o @@ -78,7 +67,14 @@ ifeq ($(CONFIG_PAL4),y) ZIMAGE := zImage-PAL4 ZIMAGEINITRD := zImage.initrd-PAL4 -TFTPIMAGE := /tftpboot/zImage.pal4 +END := pal4 +endif +ifeq ($(CONFIG_SANDPOINT),y) +ZIMAGE := zImage-SP +ZIMAGEINITRD := zImage.initrd-SP +CACHEFLAG := -include clear.S +TFTPIMAGE := /tftpboot/zImage.sandpoint +END := sandpoint endif ifeq ($(CONFIG_SPRUCE),y) ZIMAGE := zImage-TREE @@ -86,12 +82,14 @@ ENTRYPOINT := 0x00800000 MISC := misc-spruce.o END := spruce -TFTPIMAGE := /tftpboot/zImage.$(END) endif + +TFTPIMAGE ?= /tftpboot/zImage.$(END) ifeq ($(CONFIG_SMP),y) TFTPIMAGE += .smp endif + # Setup a default address to put ourselves, change it as needed. LD_ARGS = -T ../ld.script -Ttext 0x00800000 -Bstatic ifdef CONFIG_8xx @@ -156,30 +154,22 @@ rm -f zvmlinux.initrd znetboot: zImage -ifneq ($(ZNETBOOT),) - cp ../images/$(ZNETBOOT) $(TFTPIMAGE) -else - cp ../images/zImage.* $(TFTPIMAGE) -endif + cp ../images/zImage.$(END) $(TFTPIMAGE) znetboot.initrd: zImage.initrd -ifneq ($(ZNETBOOTRD),) - cp ../images/$(ZNETBOOTRD) $(TFTPIMAGE) -else - cp ../images/zImage.* $(TFTPIMAGE) -endif + cp ../images/zImage.initrd.$(END) $(TFTPIMAGE) zImage-EMBEDDED: zvmlinux - mv zvmlinux ../images/zImage.embedded + mv zvmlinux ../images/zImage.$(END) zImage.initrd-EMBEDDED: zvmlinux.initrd - mv zvmlinux.initrd ../images/zImage.initrd.embedded + mv zvmlinux.initrd ../images/zImage.initrd.$(END) zImage-PAL4: zvmlinux - mv zvmlinux ../images/zImage.pal4 + mv zvmlinux ../images/zImage.$(END) zImage.initrd-PAL4: zvmlinux.initrd - mv zvmlinux.initrd ../images/zImage.initrd.pal4 + mv zvmlinux.initrd ../images/zImage.initrd.$(END) zImage-PPLUS: zvmlinux $(MKPREP) $(MKBUGBOOT) $(MKPREP) -pbp zvmlinux ../images/zImage.pplus @@ -189,11 +179,17 @@ $(MKPREP) -pbp zvmlinux.initrd ../images/zImage.initrd.pplus $(MKBUGBOOT) zvmlinux.initrd ../images/zImage.initrd.bugboot +zImage-SP: zvmlinux + mv zvmlinux ../images/zImage.sandpoint + +zImage.initrd-SP: zvmlinux.initrd + mv zvmlinux.initrd ../images/zImage.initrd.sandpoint + zImage-SMON: zvmlinux - dd if=zvmlinux of=../images/zImage.gemini skip=64 bs=1k + dd if=zvmlinux of=../images/zImage.$(END) skip=64 bs=1k zImage.initrd-SMON: zvmlinux.initrd - dd if=zvmlinux.initrd of=../images/zImage.initrd.gemini skip=64 bs=1k + dd if=zvmlinux.initrd of=../images/zImage.initrd.$(END) skip=64 bs=1k zImage-TREE: zvmlinux $(MKTREE) zvmlinux ../images/zImage.$(END) $(ENTRYPOINT) diff -urN linux-2.4.23-bk18/arch/ppc/boot/simple/clear.S linux-2.4.23-bk19/arch/ppc/boot/simple/clear.S --- linux-2.4.23-bk18/arch/ppc/boot/simple/clear.S 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/boot/simple/clear.S 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,19 @@ +/* + * Code to call _setup_L2CR to flus, invalidate and disable the L2, + * and if present, do the same to the L3. + */ + +#define CLEAR_CACHES \ + bl _setup_L2CR; \ + \ + /* If 745x, turn off L3CR as well */ \ + mfspr r8,PVR; \ + srwi r8,r8,16; \ + \ + cmpli cr0,r8,0x8000; /* 7450 */ \ + cmpli cr1,r8,0x8001; /* 7455 */ \ + cmpli cr2,r8,0x8002; /* 7457 */ \ + /* Now test if any are true. */ \ + cror 4*cr0+eq,4*cr0+eq,4*cr1+eq; \ + cror 4*cr0+eq,4*cr0+eq,4*cr2+eq; \ + beql _setup_L3CR diff -urN linux-2.4.23-bk18/arch/ppc/boot/utils/mkprep.c linux-2.4.23-bk19/arch/ppc/boot/utils/mkprep.c --- linux-2.4.23-bk18/arch/ppc/boot/utils/mkprep.c 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/boot/utils/mkprep.c 2003-12-30 02:50:29.000000000 -0800 @@ -12,12 +12,14 @@ * -- Cort * * Modified for x86 hosted builds by Matt Porter + * Modified for Sparc hosted builds by Peter Wahl */ #include #include #include #include +#include #include #include @@ -147,7 +149,7 @@ void write_prep_partition(int in, int out) { unsigned char block[512]; - partition_entry_t *pe = (partition_entry_t *)&block[0x1BE]; + partition_entry_t pe; dword_t *entry = (dword_t *)&block[0]; dword_t *length = (dword_t *)&block[sizeof(long)]; struct stat info; @@ -177,8 +179,8 @@ * Build a "PReP" partition table entry in the boot record * - "PReP" may only look at the system_indicator */ - pe->boot_indicator = BootActive; - pe->system_indicator = SystemPrep; + pe.boot_indicator = BootActive; + pe.system_indicator = SystemPrep; /* * The first block of the diskette is used by this "boot record" which * actually contains the partition table. (The first block of the @@ -186,12 +188,12 @@ * one partition on the diskette and it shall contain the rest of the * diskette. */ - pe->starting_head = 0; /* zero-based */ - pe->starting_sector = 2; /* one-based */ - pe->starting_cylinder = 0; /* zero-based */ - pe->ending_head = 1; /* assumes two heads */ - pe->ending_sector = 18; /* assumes 18 sectors/track */ - pe->ending_cylinder = 79; /* assumes 80 cylinders/diskette */ + pe.starting_head = 0; /* zero-based */ + pe.starting_sector = 2; /* one-based */ + pe.starting_cylinder = 0; /* zero-based */ + pe.ending_head = 1; /* assumes two heads */ + pe.ending_sector = 18; /* assumes 18 sectors/track */ + pe.ending_cylinder = 79; /* assumes 80 cylinders/diskette */ /* * The "PReP" software ignores the above fields and just looks at @@ -201,22 +203,24 @@ * - unlike the above sector numbers, the beginning sector is zero-based! */ #if 0 - pe->beginning_sector = cpu_to_le32(1); + pe.beginning_sector = cpu_to_le32(1); #else /* This has to be 0 on the PowerStack? */ #ifdef __i386__ - pe->beginning_sector = 0; + pe.beginning_sector = 0; #else - pe->beginning_sector = cpu_to_le32(0); + pe.beginning_sector = cpu_to_le32(0); #endif /* __i386__ */ #endif #ifdef __i386__ - pe->number_of_sectors = 2*18*80-1; + pe.number_of_sectors = 2*18*80-1; #else - pe->number_of_sectors = cpu_to_le32(2*18*80-1); + pe.number_of_sectors = cpu_to_le32(2*18*80-1); #endif /* __i386__ */ + memcpy(&block[0x1BE],&pe,sizeof(pe)); + write( out, block, sizeof(block) ); write( out, entry, sizeof(*entry) ); write( out, length, sizeof(*length) ); diff -urN linux-2.4.23-bk18/arch/ppc/config.in linux-2.4.23-bk19/arch/ppc/config.in --- linux-2.4.23-bk18/arch/ppc/config.in 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/config.in 2003-12-30 02:50:29.000000000 -0800 @@ -111,13 +111,15 @@ Amiga-APUS CONFIG_APUS \ IBM-Spruce CONFIG_SPRUCE \ Motorola-LoPEC CONFIG_LOPEC \ + Motorola-Sandpoint CONFIG_SANDPOINT \ Motorola-PowerPlus CONFIG_PPLUS \ + Motorola-PrPMC750 CONFIG_PRPMC750 \ SBS-Palomar4 CONFIG_PAL4 \ Synergy-Gemini CONFIG_GEMINI" CHRP/PowerMac/PReP fi -if [ "$CONFIG_SPRUCE" = "y" ]; then - define_bool CONFIG_GEN550 y +if [ "$CONFIG_SANDPOINT" = "y" ]; then + bool 'Enable MPC10x store gathering' CONFIG_MPC10X_STORE_GATHERING fi if [ "$CONFIG_LOPEC" = "y" ]; then @@ -129,6 +131,19 @@ define_bool CONFIG_GEN550 y fi +if [ "$CONFIG_PRPMC750" = "y" ]; then + define_bool CONFIG_GEN550 y +fi + +if [ "$CONFIG_SANDPOINT" = "y" ]; then + define_bool CONFIG_EPIC_SERIAL_MODE y + define_bool CONFIG_GEN550 y +fi + +if [ "$CONFIG_SPRUCE" = "y" ]; then + define_bool CONFIG_GEN550 y +fi + bool 'Symmetric multi-processing support' CONFIG_SMP if [ "$CONFIG_SMP" = "y" ]; then bool ' Distribute interrupts on all CPUs by default' CONFIG_IRQ_ALL_CPUS @@ -331,6 +346,7 @@ define_bool CONFIG_BINFMT_ELF y define_bool CONFIG_KERNEL_ELF y tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC +bool 'Select task to kill on out of memory condition' CONFIG_OOM_KILLER source drivers/pci/Config.in diff -urN linux-2.4.23-bk18/arch/ppc/configs/IVMS8_defconfig linux-2.4.23-bk19/arch/ppc/configs/IVMS8_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/IVMS8_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/IVMS8_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -69,6 +69,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/SM850_defconfig linux-2.4.23-bk19/arch/ppc/configs/SM850_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/SM850_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/SM850_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -70,6 +70,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/SPD823TS_defconfig linux-2.4.23-bk19/arch/ppc/configs/SPD823TS_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/SPD823TS_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/SPD823TS_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -69,6 +69,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/TQM823L_defconfig linux-2.4.23-bk19/arch/ppc/configs/TQM823L_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/TQM823L_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/TQM823L_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -70,6 +70,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/TQM850L_defconfig linux-2.4.23-bk19/arch/ppc/configs/TQM850L_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/TQM850L_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/TQM850L_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -70,6 +70,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/TQM860L_defconfig linux-2.4.23-bk19/arch/ppc/configs/TQM860L_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/TQM860L_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/TQM860L_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -70,6 +70,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/apus_defconfig linux-2.4.23-bk19/arch/ppc/configs/apus_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/apus_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/apus_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -59,6 +59,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=m +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/briq_defconfig linux-2.4.23-bk19/arch/ppc/configs/briq_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/briq_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/briq_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=m +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/bseip_defconfig linux-2.4.23-bk19/arch/ppc/configs/bseip_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/bseip_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/bseip_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -67,6 +67,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/common_defconfig linux-2.4.23-bk19/arch/ppc/configs/common_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/common_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/common_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=m +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y CONFIG_HOTPLUG=y diff -urN linux-2.4.23-bk18/arch/ppc/configs/ebony_defconfig linux-2.4.23-bk19/arch/ppc/configs/ebony_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/ebony_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/ebony_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -62,6 +62,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/est8260_defconfig linux-2.4.23-bk19/arch/ppc/configs/est8260_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/est8260_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/est8260_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -50,6 +50,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/gemini_defconfig linux-2.4.23-bk19/arch/ppc/configs/gemini_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/gemini_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/gemini_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/ibmchrp_defconfig linux-2.4.23-bk19/arch/ppc/configs/ibmchrp_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/ibmchrp_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/ibmchrp_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -58,6 +58,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=y +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/mbx_defconfig linux-2.4.23-bk19/arch/ppc/configs/mbx_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/mbx_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/mbx_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -67,6 +67,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/oak_defconfig linux-2.4.23-bk19/arch/ppc/configs/oak_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/oak_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/oak_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -52,6 +52,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/ocotea_defconfig linux-2.4.23-bk19/arch/ppc/configs/ocotea_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/ocotea_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/ocotea_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -63,6 +63,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/pal4_defconfig linux-2.4.23-bk19/arch/ppc/configs/pal4_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/pal4_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/pal4_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -58,6 +58,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=m +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/pmac_defconfig linux-2.4.23-bk19/arch/ppc/configs/pmac_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/pmac_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/pmac_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=m +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y CONFIG_HOTPLUG=y diff -urN linux-2.4.23-bk18/arch/ppc/configs/power3_defconfig linux-2.4.23-bk19/arch/ppc/configs/power3_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/power3_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/power3_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -52,6 +52,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=y +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/pplus_defconfig linux-2.4.23-bk19/arch/ppc/configs/pplus_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/pplus_defconfig 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/pplus_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_PCI_NAMES is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/prpmc750_defconfig linux-2.4.23-bk19/arch/ppc/configs/prpmc750_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/prpmc750_defconfig 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/prpmc750_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,622 @@ +# +# Automatically generated make config: don't edit +# +# CONFIG_UID16 is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_HAVE_DEC_LOCK=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +# CONFIG_ADVANCED_OPTIONS is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODVERSIONS=y +CONFIG_KMOD=y + +# +# Platform support +# +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_6xx=y +# CONFIG_40x is not set +# CONFIG_44x is not set +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_8260 is not set +CONFIG_PPC_STD_MMU=y +# CONFIG_ALL_PPC is not set +# CONFIG_APUS is not set +# CONFIG_SPRUCE is not set +# CONFIG_LOPEC is not set +# CONFIG_SANDPOINT is not set +# CONFIG_PPLUS is not set +CONFIG_PRPMC750=y +# CONFIG_PAL4 is not set +# CONFIG_GEMINI is not set +CONFIG_GEN550=y +# CONFIG_SMP is not set +# CONFIG_ALTIVEC is not set +# CONFIG_TAU is not set +CONFIG_PPC_ISATIMER=y + +# +# General setup +# +# CONFIG_HIGHMEM is not set +CONFIG_HIGHMEM_START=0xfe000000 +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_KERNEL_START=0xc0000000 +CONFIG_TASK_SIZE=0x80000000 +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_SBUS is not set +# CONFIG_MCA is not set +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_SYSCTL=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_KCORE_ELF=y +CONFIG_BINFMT_ELF=y +CONFIG_KERNEL_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set +# CONFIG_PCI_NAMES is not set +# CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +# CONFIG_GEN_RTC is not set +# CONFIG_PPC_RTC is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="ip=on" + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_CISS_SCSI_TAPE is not set +# CONFIG_CISS_MONITOR_THREAD is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_STATS is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set +# CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID5 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_BLK_DEV_LVM is not set + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +# CONFIG_NETLINK_DEV is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_INET_ECN is not set +# CONFIG_SYN_COOKIES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=m +CONFIG_IP_NF_FTP=m +# CONFIG_IP_NF_AMANDA is not set +# CONFIG_IP_NF_TFTP is not set +# CONFIG_IP_NF_IRC is not set +# CONFIG_IP_NF_QUEUE is not set +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_LIMIT=m +CONFIG_IP_NF_MATCH_MAC=m +# CONFIG_IP_NF_MATCH_PKTTYPE is not set +CONFIG_IP_NF_MATCH_MARK=m +CONFIG_IP_NF_MATCH_MULTIPORT=m +CONFIG_IP_NF_MATCH_TOS=m +# CONFIG_IP_NF_MATCH_RECENT is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_DSCP is not set +# CONFIG_IP_NF_MATCH_AH_ESP is not set +# CONFIG_IP_NF_MATCH_LENGTH is not set +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_MATCH_TCPMSS=m +# CONFIG_IP_NF_MATCH_HELPER is not set +CONFIG_IP_NF_MATCH_STATE=m +# CONFIG_IP_NF_MATCH_CONNTRACK is not set +CONFIG_IP_NF_MATCH_UNCLEAN=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_MIRROR=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +# CONFIG_IP_NF_NAT_LOCAL is not set +# CONFIG_IP_NF_NAT_SNMP_BASIC is not set +CONFIG_IP_NF_NAT_FTP=m +# CONFIG_IP_NF_MANGLE is not set +# CONFIG_IP_NF_TARGET_LOG is not set +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_IP_NF_TARGET_TCPMSS=m +# CONFIG_IP_NF_ARPTABLES is not set +CONFIG_IP_NF_COMPAT_IPCHAINS=m +CONFIG_IP_NF_NAT_NEEDED=y +# CONFIG_IP_NF_COMPAT_IPFWADM is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +CONFIG_IPV6_SCTP__=y +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set + +# +# +# +# CONFIG_IPX is not set +# CONFIG_ATALK is not set + +# +# Appletalk devices +# +# CONFIG_DEV_APPLETALK is not set +# CONFIG_DECNET is not set +# CONFIG_BRIDGE is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_LLC is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set + +# +# ATA/IDE/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# IEEE 1394 (FireWire) support (EXPERIMENTAL) +# +# CONFIG_IEEE1394 is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_ETHERTAP is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MACE is not set +# CONFIG_BMAC is not set +# CONFIG_GMAC is not set +# CONFIG_SUNLANCE is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_LANCE is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_NET_VENDOR_RACAL is not set +# CONFIG_HP100 is not set +# CONFIG_NET_ISA is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_APRICOT is not set +# CONFIG_B44 is not set +# CONFIG_CS89x0 is not set +CONFIG_TULIP=y +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_DE4X5 is not set +# CONFIG_DGRS is not set +# CONFIG_DM9102 is not set +CONFIG_EEPRO100=y +# CONFIG_EEPRO100_PIO is not set +# CONFIG_E100 is not set +# CONFIG_LNE390 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_NE3210 is not set +# CONFIG_ES3210 is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_SUNDANCE_MMIO is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_VIA_RHINE_MMIO is not set +# CONFIG_WINBOND_840 is not set +# CONFIG_NET_POCKET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_MYRI_SBUS is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set +# CONFIG_NET_FC is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Old CD-ROM drivers (not SCSI, not IDE) +# +# CONFIG_CD_NO_IDESCSI is not set + +# +# Console drivers +# +# CONFIG_VGA_CONSOLE is not set + +# +# Frame-buffer support +# +# CONFIG_FB is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set + +# +# Macintosh device drivers +# + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_SERIAL_CONSOLE=y +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX98_PTY_COUNT=256 + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +CONFIG_BUSMOUSE=y +# CONFIG_ATIXL_BUSMOUSE is not set +# CONFIG_LOGIBUSMOUSE is not set +# CONFIG_MS_BUSMOUSE is not set +CONFIG_MOUSE=y +CONFIG_PSMOUSE=y +# CONFIG_82C710_MOUSE is not set +# CONFIG_PC110_PAD is not set +# CONFIG_MK712_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set + +# +# Input core support is needed for gameports +# + +# +# Input core support is needed for joysticks +# +# CONFIG_QIC02_TAPE is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_IPMI_PANIC_EVENT is not set +# CONFIG_IPMI_DEVICE_INTERFACE is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_IPMI_WATCHDOG is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_SCx200_GPIO is not set +# CONFIG_AMD_PM768 is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set + +# +# Direct Rendering Manager (XFree86 DRI support) +# +# CONFIG_DRM is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_QFMT_V2 is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +# CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BEFS_DEBUG is not set +# CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set +# CONFIG_FAT_FS is not set +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_TMPFS=y +CONFIG_RAMFS=y +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set +# CONFIG_JFS_FS is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS_RW is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVFS_MOUNT is not set +# CONFIG_DEVFS_DEBUG is not set +CONFIG_DEVPTS_FS=y +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX4FS_RW is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UDF_RW is not set +# CONFIG_UFS_FS is not set +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_XFS_FS is not set +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_RT is not set +# CONFIG_XFS_TRACE is not set +# CONFIG_XFS_DEBUG is not set + +# +# Network File Systems +# +# CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set +CONFIG_NFS_FS=y +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_DIRECTIO is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +# CONFIG_NFSD_TCP is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS is not set +# CONFIG_NCP_FS is not set +# CONFIG_NCPFS_PACKET_SIGNING is not set +# CONFIG_NCPFS_IOCTL_LOCKING is not set +# CONFIG_NCPFS_STRONG is not set +# CONFIG_NCPFS_NFS_NS is not set +# CONFIG_NCPFS_OS2_NS is not set +# CONFIG_NCPFS_SMALLDOS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +# CONFIG_NLS is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Support for USB gadgets +# +# CONFIG_USB_GADGET is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +# CONFIG_CRC32 is not set +# CONFIG_ZLIB_INFLATE is not set +# CONFIG_ZLIB_DEFLATE is not set + +# +# Kernel hacking +# +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SERIAL_TEXT_DEBUG is not set +CONFIG_LOG_BUF_SHIFT=0 diff -urN linux-2.4.23-bk18/arch/ppc/configs/rpxcllf_defconfig linux-2.4.23-bk19/arch/ppc/configs/rpxcllf_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/rpxcllf_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/rpxcllf_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -69,6 +69,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set CONFIG_HOTPLUG=y # diff -urN linux-2.4.23-bk18/arch/ppc/configs/rpxlite_defconfig linux-2.4.23-bk19/arch/ppc/configs/rpxlite_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/rpxlite_defconfig 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/rpxlite_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -69,6 +69,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set CONFIG_HOTPLUG=y # diff -urN linux-2.4.23-bk18/arch/ppc/configs/sandpoint_defconfig linux-2.4.23-bk19/arch/ppc/configs/sandpoint_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/sandpoint_defconfig 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/configs/sandpoint_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,720 @@ +# +# Automatically generated make config: don't edit +# +# CONFIG_UID16 is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_HAVE_DEC_LOCK=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +# CONFIG_ADVANCED_OPTIONS is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# +# Platform support +# +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_6xx=y +# CONFIG_40x is not set +# CONFIG_44x is not set +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_8260 is not set +CONFIG_PPC_STD_MMU=y +# CONFIG_ALL_PPC is not set +# CONFIG_APUS is not set +# CONFIG_SPRUCE is not set +# CONFIG_LOPEC is not set +CONFIG_SANDPOINT=y +# CONFIG_PPLUS is not set +# CONFIG_PAL4 is not set +# CONFIG_GEMINI is not set +# CONFIG_MPC10X_STORE_GATHERING is not set +CONFIG_EPIC_SERIAL_MODE=y +CONFIG_GEN550=y +# CONFIG_SMP is not set +CONFIG_ALTIVEC=y +CONFIG_TAU=y +# CONFIG_TAU_INT is not set +# CONFIG_TAU_AVERAGE is not set +CONFIG_PPC_ISATIMER=y + +# +# General setup +# +# CONFIG_HIGHMEM is not set +CONFIG_HIGHMEM_START=0xfe000000 +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_KERNEL_START=0xc0000000 +CONFIG_TASK_SIZE=0x80000000 +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_SBUS is not set +# CONFIG_MCA is not set +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_SYSCTL=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_KCORE_ELF=y +CONFIG_BINFMT_ELF=y +CONFIG_KERNEL_ELF=y +CONFIG_BINFMT_MISC=y +# CONFIG_OOM_KILLER is not set +# CONFIG_PCI_NAMES is not set +# CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +CONFIG_GEN_RTC=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="console=ttyS0,9600 ip=on" + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# +# Block devices +# +CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_CISS_SCSI_TAPE is not set +# CONFIG_CISS_MONITOR_THREAD is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_STATS is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set +# CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID5 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_BLK_DEV_LVM is not set + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +# CONFIG_NETLINK_DEV is not set +# CONFIG_NETFILTER is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_INET_ECN is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +CONFIG_IPV6_SCTP__=y +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set + +# +# +# +# CONFIG_IPX is not set +# CONFIG_ATALK is not set + +# +# Appletalk devices +# +# CONFIG_DEV_APPLETALK is not set +# CONFIG_DECNET is not set +# CONFIG_BRIDGE is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_LLC is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_IDEDISK_STROKE is not set +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_BLK_DEV_GENERIC is not set +CONFIG_IDEPCI_SHARE_IRQ=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +# CONFIG_IDEDMA_PCI_AUTO is not set +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_PCI_WIP is not set +# CONFIG_BLK_DEV_ADMA100 is not set +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_WDC_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_AMD74XX_OVERRIDE is not set +CONFIG_BLK_DEV_CMD64X=y +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_HPT34X_AUTODMA is not set +# CONFIG_BLK_DEV_HPT366 is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_PDC202XX_BURST is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_RZ1000 is not set +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SIS5513 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +CONFIG_BLK_DEV_SL82C105=y +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_IDEDMA_IVB is not set +# CONFIG_DMA_NONPCI is not set +CONFIG_BLK_DEV_IDE_MODES=y +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set +# CONFIG_BLK_DEV_ATARAID_SII is not set + +# +# SCSI support +# +CONFIG_SCSI=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_SD_EXTRA_DEVS=40 +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_SR_EXTRA_DEVS=2 +CONFIG_CHR_DEV_SG=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_DEBUG_QUEUES is not set +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI low-level drivers +# +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_7000FASST is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AHA152X is not set +# CONFIG_SCSI_AHA1542 is not set +# CONFIG_SCSI_AHA1740 is not set +# CONFIG_SCSI_AACRAID is not set +CONFIG_SCSI_AIC7XXX=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_PROBE_EISA_VL is not set +# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_IN2000 is not set +# CONFIG_SCSI_AM53C974 is not set +# CONFIG_SCSI_MEGARAID is not set +# CONFIG_SCSI_MEGARAID2 is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_CPQFCTS is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_DTC3280 is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_EATA_DMA is not set +# CONFIG_SCSI_EATA_PIO is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR53C7xx is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_NCR53C8XX is not set +CONFIG_SCSI_SYM53C8XX=y +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 +CONFIG_SCSI_NCR53C8XX_SYNC=20 +# CONFIG_SCSI_NCR53C8XX_PROFILE is not set +# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set +# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set +# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set +# CONFIG_SCSI_PAS16 is not set +# CONFIG_SCSI_PCI2000 is not set +# CONFIG_SCSI_PCI2220I is not set +# CONFIG_SCSI_PSI240I is not set +# CONFIG_SCSI_QLOGIC_FAS is not set +# CONFIG_SCSI_QLOGIC_ISP is not set +# CONFIG_SCSI_QLOGIC_FC is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_SIM710 is not set +# CONFIG_SCSI_SYM53C416 is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_T128 is not set +# CONFIG_SCSI_U14_34F is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set + +# +# IEEE 1394 (FireWire) support (EXPERIMENTAL) +# +# CONFIG_IEEE1394 is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_ETHERTAP is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MACE is not set +# CONFIG_BMAC is not set +# CONFIG_GMAC is not set +# CONFIG_SUNLANCE is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_LANCE is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_NET_VENDOR_RACAL is not set +# CONFIG_HP100 is not set +# CONFIG_NET_ISA is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=y +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_APRICOT is not set +# CONFIG_B44 is not set +# CONFIG_CS89x0 is not set +CONFIG_TULIP=y +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +CONFIG_DE4X5=y +# CONFIG_DGRS is not set +# CONFIG_DM9102 is not set +CONFIG_EEPRO100=y +# CONFIG_EEPRO100_PIO is not set +# CONFIG_E100 is not set +# CONFIG_LNE390 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_NE3210 is not set +# CONFIG_ES3210 is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_SUNDANCE_MMIO is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_VIA_RHINE_MMIO is not set +# CONFIG_WINBOND_840 is not set +# CONFIG_NET_POCKET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_MYRI_SBUS is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set +# CONFIG_NET_FC is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Old CD-ROM drivers (not SCSI, not IDE) +# +# CONFIG_CD_NO_IDESCSI is not set + +# +# Console drivers +# +# CONFIG_VGA_CONSOLE is not set + +# +# Frame-buffer support +# +# CONFIG_FB is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set + +# +# Macintosh device drivers +# + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_SERIAL_CONSOLE=y +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX98_PTY_COUNT=256 + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set + +# +# Input core support is needed for gameports +# + +# +# Input core support is needed for joysticks +# +# CONFIG_QIC02_TAPE is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_IPMI_PANIC_EVENT is not set +# CONFIG_IPMI_DEVICE_INTERFACE is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_IPMI_WATCHDOG is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_SCx200_GPIO is not set +# CONFIG_AMD_PM768 is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set + +# +# Direct Rendering Manager (XFree86 DRI support) +# +# CONFIG_DRM is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_QFMT_V2 is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +# CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BEFS_DEBUG is not set +# CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set +# CONFIG_FAT_FS is not set +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_TMPFS=y +CONFIG_RAMFS=y +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set +# CONFIG_JFS_FS is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS_RW is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVFS_MOUNT is not set +# CONFIG_DEVFS_DEBUG is not set +CONFIG_DEVPTS_FS=y +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX4FS_RW is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UDF_RW is not set +# CONFIG_UFS_FS is not set +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_XFS_FS is not set +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_RT is not set +# CONFIG_XFS_TRACE is not set +# CONFIG_XFS_DEBUG is not set + +# +# Network File Systems +# +# CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set +CONFIG_NFS_FS=y +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_DIRECTIO is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +# CONFIG_NFSD_TCP is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS is not set +# CONFIG_NCP_FS is not set +# CONFIG_NCPFS_PACKET_SIGNING is not set +# CONFIG_NCPFS_IOCTL_LOCKING is not set +# CONFIG_NCPFS_STRONG is not set +# CONFIG_NCPFS_NFS_NS is not set +# CONFIG_NCPFS_OS2_NS is not set +# CONFIG_NCPFS_SMALLDOS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +# CONFIG_NLS is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Support for USB gadgets +# +# CONFIG_USB_GADGET is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +# CONFIG_CRC32 is not set +# CONFIG_ZLIB_INFLATE is not set +# CONFIG_ZLIB_DEFLATE is not set + +# +# Kernel hacking +# +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SERIAL_TEXT_DEBUG is not set +CONFIG_LOG_BUF_SHIFT=0 diff -urN linux-2.4.23-bk18/arch/ppc/configs/spruce_defconfig linux-2.4.23-bk19/arch/ppc/configs/spruce_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/spruce_defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/spruce_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -59,6 +59,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_PCI_NAMES is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/configs/walnut_defconfig linux-2.4.23-bk19/arch/ppc/configs/walnut_defconfig --- linux-2.4.23-bk18/arch/ppc/configs/walnut_defconfig 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/configs/walnut_defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y # CONFIG_BINFMT_MISC is not set +# CONFIG_OOM_KILLER is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set diff -urN linux-2.4.23-bk18/arch/ppc/defconfig linux-2.4.23-bk19/arch/ppc/defconfig --- linux-2.4.23-bk18/arch/ppc/defconfig 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/defconfig 2003-12-30 02:50:29.000000000 -0800 @@ -60,6 +60,7 @@ CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y CONFIG_BINFMT_MISC=m +# CONFIG_OOM_KILLER is not set CONFIG_PCI_NAMES=y CONFIG_HOTPLUG=y diff -urN linux-2.4.23-bk18/arch/ppc/kernel/Makefile linux-2.4.23-bk19/arch/ppc/kernel/Makefile --- linux-2.4.23-bk18/arch/ppc/kernel/Makefile 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/kernel/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -64,6 +64,7 @@ obj-$(CONFIG_PPC4xx_DMA) += ppc4xx_dma.o obj-$(CONFIG_PPC4xx_EDMA) += ppc4xx_sgdma.o obj-$(CONFIG_8xx) += m8xx_setup.o ppc8xx_pic.o +obj-$(CONFIG_8xx_WDT) += m8xx_wdt.o ifeq ($(CONFIG_8xx),y) obj-$(CONFIG_PCI) += qspan_pci.o ifndef CONFIG_MATH_EMULATION @@ -79,6 +80,10 @@ obj-$(CONFIG_PAL4) += indirect_pci.o pci_auto.o todc_time.o obj-$(CONFIG_PPLUS) += pplus_common.o open_pic.o i8259.o \ indirect_pci.o todc_time.o pci_auto.o +obj-$(CONFIG_PRPMC750) += open_pic.o indirect_pci.o pci_auto.o \ + pplus_common.o +obj-$(CONFIG_SANDPOINT) += i8259.o open_pic.o mpc10x_common.o \ + pci_auto.o indirect_pci.o todc_time.o obj-$(CONFIG_SPRUCE) += indirect_pci.o pci_auto.o todc_time.o obj-$(CONFIG_8260) += m8260_setup.o ppc8260_pic.o obj-$(CONFIG_BOOTX_TEXT) += btext.o diff -urN linux-2.4.23-bk18/arch/ppc/kernel/m8xx_setup.c linux-2.4.23-bk19/arch/ppc/kernel/m8xx_setup.c --- linux-2.4.23-bk18/arch/ppc/kernel/m8xx_setup.c 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/kernel/m8xx_setup.c 2003-12-30 02:50:29.000000000 -0800 @@ -58,6 +58,7 @@ extern unsigned long find_available_memory(void); extern void m8xx_cpm_reset(uint); +extern void m8xx_wdt_handler_install(bd_t *bp); void __init m8xx_setup_arch(void) @@ -184,6 +185,13 @@ if (request_irq(DEC_INTERRUPT, timebase_interrupt, 0, "tbint", NULL) != 0) panic("Could not allocate timer IRQ!"); + +#ifdef CONFIG_8xx_WDT + /* Install watchdog timer handler early because it might be + * already enabled by the bootloader + */ + m8xx_wdt_handler_install(binfo); +#endif } /* The RTC on the MPC8xx is an internal register. diff -urN linux-2.4.23-bk18/arch/ppc/kernel/m8xx_wdt.c linux-2.4.23-bk19/arch/ppc/kernel/m8xx_wdt.c --- linux-2.4.23-bk18/arch/ppc/kernel/m8xx_wdt.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/kernel/m8xx_wdt.c 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,110 @@ +/* + * m8xx_wdt.c - MPC8xx watchdog driver + * + * Copyright (C) 2002 Florian Schirmer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include +#include +#include + +static int wdt_timeout; + +void +m8xx_wdt_reset(void) +{ + volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR; + + imap->im_siu_conf.sc_swsr = 0x556c; /* write magic1 */ + imap->im_siu_conf.sc_swsr = 0xaa39; /* write magic2 */ +} + +static void +m8xx_wdt_interrupt(int irq, void *dev, struct pt_regs *regs) +{ + volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR; + + m8xx_wdt_reset(); + + imap->im_sit.sit_piscr |= PISCR_PS; /* clear irq */ +} + +void __init +m8xx_wdt_handler_install(bd_t * binfo) +{ + volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR; + u32 pitc; + u32 sypcr; + u32 pitrtclk; + + sypcr = imap->im_siu_conf.sc_sypcr; + + if (!(sypcr & 0x04)) { + printk(KERN_NOTICE "m8xx_wdt: wdt disabled (SYPCR: 0x%08X)\n", + sypcr); + return; + } + + m8xx_wdt_reset(); + + printk(KERN_NOTICE + "m8xx_wdt: active wdt found (SWTC: 0x%04X, SWP: 0x%01X)\n", + (sypcr >> 16), sypcr & 0x01); + + wdt_timeout = (sypcr >> 16) & 0xFFFF; + + if (!wdt_timeout) + wdt_timeout = 0xFFFF; + + if (sypcr & 0x01) + wdt_timeout *= 2048; + + /* + * Fire trigger if half of the wdt ticked down + */ + + if (imap->im_sit.sit_rtcsc & RTCSC_38K) + pitrtclk = 9600; + else + pitrtclk = 8192; + + if ((wdt_timeout) > (UINT_MAX / pitrtclk)) + pitc = wdt_timeout / binfo->bi_intfreq * pitrtclk / 2; + else + pitc = pitrtclk * wdt_timeout / binfo->bi_intfreq / 2; + + imap->im_sit.sit_pitc = pitc << 16; + imap->im_sit.sit_piscr = + (mk_int_int_mask(PIT_INTERRUPT) << 8) | PISCR_PIE | PISCR_PTE; + + if (request_irq(PIT_INTERRUPT, m8xx_wdt_interrupt, 0, "watchdog", NULL)) + panic("m8xx_wdt: could not allocate watchdog irq!"); + + printk(KERN_NOTICE + "m8xx_wdt: keep-alive trigger installed (PITC: 0x%04X)\n", pitc); + + wdt_timeout /= binfo->bi_intfreq; +} + +int +m8xx_wdt_get_timeout(void) +{ + return wdt_timeout; +} diff -urN linux-2.4.23-bk18/arch/ppc/kernel/open_pic.c linux-2.4.23-bk19/arch/ppc/kernel/open_pic.c --- linux-2.4.23-bk18/arch/ppc/kernel/open_pic.c 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/kernel/open_pic.c 2003-12-30 02:50:29.000000000 -0800 @@ -69,7 +69,6 @@ * These functions are not used but the code is kept here * for completeness and future reference. */ -static void openpic_reset(void); #ifdef notused static void openpic_enable_8259_pass_through(void); static u_int openpic_get_priority(void); diff -urN linux-2.4.23-bk18/arch/ppc/kernel/ppc_ksyms.c linux-2.4.23-bk19/arch/ppc/kernel/ppc_ksyms.c --- linux-2.4.23-bk18/arch/ppc/kernel/ppc_ksyms.c 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/kernel/ppc_ksyms.c 2003-12-30 02:50:29.000000000 -0800 @@ -357,6 +357,12 @@ EXPORT_SYMBOL(cpm_free_handler); EXPORT_SYMBOL(m8xx_cpm_hostalloc); EXPORT_SYMBOL(m8xx_cpm_dpalloc); +#ifdef CONFIG_8xx_WDT +extern int m8xx_wdt_get_timeout(void); +extern void m8xx_wdt_reset(void); +EXPORT_SYMBOL(m8xx_wdt_get_timeout); +EXPORT_SYMBOL(m8xx_wdt_reset); +#endif #endif /* CONFIG_8xx */ /* Those should really be inline */ diff -urN linux-2.4.23-bk18/arch/ppc/kernel/setup.c linux-2.4.23-bk19/arch/ppc/kernel/setup.c --- linux-2.4.23-bk18/arch/ppc/kernel/setup.c 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/kernel/setup.c 2003-12-30 02:50:29.000000000 -0800 @@ -157,7 +157,7 @@ lpj = loops_per_jiffy; #endif - seq_printf(m, "processor\t: %lu\n", i); + seq_printf(m, "processor\t: %u\n", i); seq_printf(m, "cpu\t\t: "); if (cur_cpu_spec[i]->pvr_mask) diff -urN linux-2.4.23-bk18/arch/ppc/platforms/Makefile linux-2.4.23-bk19/arch/ppc/platforms/Makefile --- linux-2.4.23-bk18/arch/ppc/platforms/Makefile 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -53,6 +53,8 @@ obj-$(CONFIG_LOPEC) += lopec_setup.o lopec_pci.o obj-$(CONFIG_PAL4) += pal4_setup.o pal4_pci.o cpc700_pic.o obj-$(CONFIG_PPLUS) += pplus_pci.o pplus_setup.o +obj-$(CONFIG_PRPMC750) += prpmc750.o +obj-$(CONFIG_SANDPOINT) += sandpoint.o obj-$(CONFIG_SPRUCE) += spruce_setup.o spruce_pci.o cpc700_pic.o ifeq ($(CONFIG_SMP),y) diff -urN linux-2.4.23-bk18/arch/ppc/platforms/ebony.c linux-2.4.23-bk19/arch/ppc/platforms/ebony.c --- linux-2.4.23-bk18/arch/ppc/platforms/ebony.c 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/ebony.c 2003-12-30 02:50:29.000000000 -0800 @@ -301,7 +301,7 @@ serial_req.baud_base = BASE_BAUD; serial_req.port = 0; serial_req.irq = 0; - serial_req.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; + serial_req.flags = ASYNC_BOOT_AUTOCONF; serial_req.io_type = SERIAL_IO_MEM; serial_req.iomem_base = ioremap64(PPC440GP_UART0_ADDR, 8); serial_req.iomem_reg_shift = 0; diff -urN linux-2.4.23-bk18/arch/ppc/platforms/ebony.h linux-2.4.23-bk19/arch/ppc/platforms/ebony.h --- linux-2.4.23-bk18/arch/ppc/platforms/ebony.h 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/ebony.h 2003-12-30 02:50:29.000000000 -0800 @@ -68,7 +68,7 @@ #define STD_UART_OP(num) \ { 0, BASE_BAUD, 0, UART##num##_INT, \ - (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST), \ + ASYNC_BOOT_AUTOCONF, \ iomem_base: UART##num##_IO_BASE, \ io_type: SERIAL_IO_MEM}, diff -urN linux-2.4.23-bk18/arch/ppc/platforms/gemini_serial.h linux-2.4.23-bk19/arch/ppc/platforms/gemini_serial.h --- linux-2.4.23-bk18/arch/ppc/platforms/gemini_serial.h 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/gemini_serial.h 2003-12-30 02:50:29.000000000 -0800 @@ -15,11 +15,11 @@ #define BASE_BAUD (24576000 / 16) #ifdef CONFIG_SERIAL_DETECT_IRQ -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ) +#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_AUTO_IRQ) #define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_AUTO_IRQ) #else -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST) -#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF) +#define STD_COM_FLAGS ASYNC_BOOT_AUTOCONF +#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF #endif #define STD_SERIAL_PORT_DEFNS \ diff -urN linux-2.4.23-bk18/arch/ppc/platforms/ibm405gp.h linux-2.4.23-bk19/arch/ppc/platforms/ibm405gp.h --- linux-2.4.23-bk18/arch/ppc/platforms/ibm405gp.h 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/ibm405gp.h 2003-12-30 02:50:29.000000000 -0800 @@ -108,7 +108,7 @@ #define STD_UART_OP(num) \ { 0, BASE_BAUD, 0, UART##num##_INT, \ - (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST), \ + ASYNC_BOOT_AUTOCONF, \ iomem_base: (u8 *)UART##num##_IO_BASE, \ io_type: SERIAL_IO_MEM}, diff -urN linux-2.4.23-bk18/arch/ppc/platforms/lopec_serial.h linux-2.4.23-bk19/arch/ppc/platforms/lopec_serial.h --- linux-2.4.23-bk18/arch/ppc/platforms/lopec_serial.h 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/lopec_serial.h 2003-12-30 02:50:29.000000000 -0800 @@ -33,7 +33,7 @@ #define STD_UART_OP(num) \ { 0, BASE_BAUD, UART##num##_PORT, UART##num##_INT, \ - (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST), \ + ASYNC_BOOT_AUTOCONF, \ iomem_base: UART##num##_IO_BASE, \ io_type: SERIAL_IO_MEM }, diff -urN linux-2.4.23-bk18/arch/ppc/platforms/lopec_setup.c linux-2.4.23-bk19/arch/ppc/platforms/lopec_setup.c --- linux-2.4.23-bk18/arch/ppc/platforms/lopec_setup.c 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/lopec_setup.c 2003-12-30 02:50:29.000000000 -0800 @@ -299,7 +299,7 @@ serial_req.line = 0; serial_req.baud_base = BASE_BAUD; serial_req.irq = UART0_INT; - serial_req.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; + serial_req.flags = ASYNC_BOOT_AUTOCONF; serial_req.io_type = SERIAL_IO_MEM; serial_req.iomem_base = ioremap(UART0_PORT, 8); diff -urN linux-2.4.23-bk18/arch/ppc/platforms/ocotea.c linux-2.4.23-bk19/arch/ppc/platforms/ocotea.c --- linux-2.4.23-bk18/arch/ppc/platforms/ocotea.c 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/ocotea.c 2003-12-30 02:50:29.000000000 -0800 @@ -215,7 +215,7 @@ serial_req.baud_base = BASE_BAUD; serial_req.port = 0; serial_req.irq = 0; - serial_req.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; + serial_req.flags = ASYNC_BOOT_AUTOCONF; serial_req.io_type = SERIAL_IO_MEM; serial_req.iomem_base = ioremap64(PPC440GX_UART0_ADDR, 8); serial_req.iomem_reg_shift = 0; diff -urN linux-2.4.23-bk18/arch/ppc/platforms/ocotea.h linux-2.4.23-bk19/arch/ppc/platforms/ocotea.h --- linux-2.4.23-bk18/arch/ppc/platforms/ocotea.h 2003-11-28 10:26:19.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/ocotea.h 2003-12-30 02:50:29.000000000 -0800 @@ -58,7 +58,7 @@ #define BASE_BAUD 11059200/16 #define STD_UART_OP(num) \ { 0, BASE_BAUD, 0, UART##num##_INT, \ - (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST), \ + ASYNC_BOOT_AUTOCONF, \ iomem_base: UART##num##_IO_BASE, \ io_type: SERIAL_IO_MEM}, diff -urN linux-2.4.23-bk18/arch/ppc/platforms/pal4_serial.h linux-2.4.23-bk19/arch/ppc/platforms/pal4_serial.h --- linux-2.4.23-bk18/arch/ppc/platforms/pal4_serial.h 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/pal4_serial.h 2003-12-30 02:50:29.000000000 -0800 @@ -20,19 +20,11 @@ #define RS_TABLE_SIZE 2 #define BASE_BAUD (33333333 / 4 / 16) -#ifdef CONFIG_SERIAL_DETECT_IRQ -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ) -#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_AUTO_IRQ) -#else -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST) -#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF) -#endif - #define SERIAL_PORT_DFNS \ - {0, BASE_BAUD, CPC700_SERIAL_1, 3, STD_COM_FLAGS, \ + {0, BASE_BAUD, CPC700_SERIAL_1, 3, ASYNC_BOOT_AUTOCONF, \ iomem_base: (unsigned char *) CPC700_SERIAL_1, \ io_type: SERIAL_IO_MEM}, /* ttyS0 */ \ - {0, BASE_BAUD, CPC700_SERIAL_2, 4, STD_COM_FLAGS, \ + {0, BASE_BAUD, CPC700_SERIAL_2, 4, ASYNC_BOOT_AUTOCONF, \ iomem_base: (unsigned char *) CPC700_SERIAL_2, \ io_type: SERIAL_IO_MEM} diff -urN linux-2.4.23-bk18/arch/ppc/platforms/prpmc750.c linux-2.4.23-bk19/arch/ppc/platforms/prpmc750.c --- linux-2.4.23-bk18/arch/ppc/platforms/prpmc750.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/prpmc750.c 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,392 @@ +/* + * arch/ppc/platforms/prpmc750_setup.c + * + * Board setup routines for Motorola PrPMC750 + * + * Author: Matt Porter + * + * 2001-2003 (c) MontaVista, Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "prpmc750_serial.h" + +extern int mpic_init(void); +extern unsigned long loops_per_jiffy; +extern void gen550_progress(char *, unsigned short); + +static u_char prpmc750_openpic_initsenses[] __initdata = +{ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_HOSTINT0 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_UART */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_DEBUGINT */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_HAWK_WDT */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_UNUSED */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_ABORT */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_HOSTINT1 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_HOSTINT2 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_HOSTINT3 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_PMC_INTA */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_PMC_INTB */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_PMC_INTC */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_PMC_INTD */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_UNUSED */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_UNUSED */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* PRPMC750_INT_UNUSED */ +}; + +/* + * Motorola PrPMC750/PrPMC800 in PrPMCBASE or PrPMC-Carrier + * Combined irq tables. Only Base has IDSEL 14, only Carrier has 21 and 22. + */ +static inline int +prpmc_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { + {12, 0, 0, 0}, /* IDSEL 14 - Ethernet, base */ + {0, 0, 0, 0}, /* IDSEL 15 - unused */ + {10, 11, 12, 9}, /* IDSEL 16 - PMC A1, PMC1 */ + {10, 11, 12, 9}, /* IDSEL 17 - PrPMC-A-B, PMC2-B */ + {11, 12, 9, 10}, /* IDSEL 18 - PMC A1-B, PMC1-B */ + {0, 0, 0, 0}, /* IDSEL 19 - unused */ + {9, 10, 11, 12}, /* IDSEL 20 - P2P Bridge */ + {11, 12, 9, 10}, /* IDSEL 21 - PMC A2, carrier */ + {12, 9, 10, 11}, /* IDSEL 22 - PMC A2-B, carrier */ + }; + const long min_idsel = 14, max_idsel = 22, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; + +static void __init +prpmc750_pcibios_fixup(void) +{ + struct pci_dev *dev; + unsigned short wtmp; + + /* + * Kludge to clean up after PPC6BUG which doesn't + * configure the CL5446 VGA card. Also the + * resource subsystem doesn't fixup the + * PCI mem resources on the CL5446. + */ + if ((dev = pci_find_device(PCI_VENDOR_ID_CIRRUS, + PCI_DEVICE_ID_CIRRUS_5446, 0))) + { + dev->resource[0].start += PRPMC750_PCI_PHY_MEM_BASE; + dev->resource[0].end += PRPMC750_PCI_PHY_MEM_BASE; + pci_read_config_word(dev, + PCI_COMMAND, + &wtmp); + pci_write_config_word(dev, + PCI_COMMAND, + wtmp|3); + /* Enable Color mode in MISC reg */ + outb(0x03, 0x3c2); + /* Select DRAM config reg */ + outb(0x0f, 0x3c4); + /* Set proper DRAM config */ + outb(0xdf, 0x3c5); + } +} + +static void __init +prpmc750_find_bridges(void) +{ + struct pci_controller* hose; + + hose = pcibios_alloc_controller(); + if (!hose) + return; + + hose->first_busno = 0; + hose->last_busno = 0xff; + hose->pci_mem_offset = PRPMC750_PCI_PHY_MEM_BASE; + + pci_init_resource(&hose->io_resource, + PRPMC750_PCI_LOWER_IO, + PRPMC750_PCI_UPPER_IO, + IORESOURCE_IO, + "PCI host bridge"); + + pci_init_resource(&hose->mem_resources[0], + PRPMC750_PCI_LOWER_MEM + PRPMC750_PCI_PHY_MEM_BASE, + PRPMC750_PCI_UPPER_MEM + PRPMC750_PCI_PHY_MEM_BASE, + IORESOURCE_MEM, + "PCI host bridge"); + + hose->io_space.start = PRPMC750_PCI_LOWER_IO; + hose->io_space.end = PRPMC750_PCI_UPPER_IO; + hose->mem_space.start = PRPMC750_PCI_LOWER_MEM; + hose->mem_space.end = PRPMC750_PCI_UPPER_MEM_AUTO; + + hose->io_base_virt = (void *)PRPMC750_ISA_IO_BASE; + + setup_indirect_pci(hose, + PRPMC750_PCI_CONFIG_ADDR, + PRPMC750_PCI_CONFIG_DATA); + + /* + * Disable MPIC response to PCI I/O space (BAR 0). + * Make MPIC respond to PCI Mem space at specified address. + * (BAR 1). + */ + early_write_config_dword(hose, + 0, + PCI_DEVFN(0,0), + PCI_BASE_ADDRESS_0, + 0x00000000 | 0x1); + + early_write_config_dword(hose, + 0, + PCI_DEVFN(0,0), + PCI_BASE_ADDRESS_1, + (PRPMC750_HAWK_MPIC_BASE - + PRPMC750_PCI_MEM_OFFSET) | 0x0); + + hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); + + ppc_md.pcibios_fixup = prpmc750_pcibios_fixup; + ppc_md.pci_swizzle = common_swizzle; + ppc_md.pci_map_irq = prpmc_map_irq; +} + +static int +prpmc750_show_cpuinfo(struct seq_file *m) +{ + seq_printf(m, "machine\t\t: PrPMC750\n"); + + return 0; +} + +static void __init +prpmc750_setup_arch(void) +{ + /* init to some ~sane value until calibrate_delay() runs */ + loops_per_jiffy = 50000000/HZ; + + /* Lookup PCI host bridges */ + prpmc750_find_bridges(); + +#ifdef CONFIG_BLK_DEV_INITRD + if (initrd_start) + ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); /* /dev/ram */ + else +#endif +#ifdef CONFIG_ROOT_NFS + ROOT_DEV = to_kdev_t(0x00ff); /* /dev/nfs pseudo device */ +#else + ROOT_DEV = to_kdev_t(0x0802); /* /dev/sda2 */ +#endif + +#ifdef CONFIG_DUMMY_CONSOLE + conswitchp = &dummy_con; +#endif + + /* Find and map our OpenPIC */ + pplus_mpic_init(PRPMC750_PCI_MEM_OFFSET); + OpenPIC_InitSenses = prpmc750_openpic_initsenses; + OpenPIC_NumInitSenses = sizeof(prpmc750_openpic_initsenses); +} + +/* + * Compute the PrPMC750's bus speed using the baud clock as a + * reference. + */ +static unsigned long __init +prpmc750_get_bus_speed(void) +{ + unsigned long tbl_start, tbl_end; + unsigned long current_state, old_state, bus_speed; + unsigned char lcr, dll, dlm; + int baud_divisor, count; + + /* Read the UART's baud clock divisor */ + lcr = readb(PRPMC750_SERIAL_0_LCR); + writeb(lcr | UART_LCR_DLAB, PRPMC750_SERIAL_0_LCR); + dll = readb(PRPMC750_SERIAL_0_DLL); + dlm = readb(PRPMC750_SERIAL_0_DLM); + writeb(lcr & ~UART_LCR_DLAB, PRPMC750_SERIAL_0_LCR); + baud_divisor = (dlm << 8) | dll; + + /* + * Use the baud clock divisor and base baud clock + * to determine the baud rate and use that as + * the number of baud clock edges we use for + * the time base sample. Make it half the baud + * rate. + */ + count = PRPMC750_BASE_BAUD / (baud_divisor * 16); + + /* Find the first edge of the baud clock */ + old_state = readb(PRPMC750_STATUS_REG) & PRPMC750_BAUDOUT_MASK; + do { + current_state = readb(PRPMC750_STATUS_REG) & + PRPMC750_BAUDOUT_MASK; + } while(old_state == current_state); + + old_state = current_state; + + /* Get the starting time base value */ + tbl_start = get_tbl(); + + /* + * Loop until we have found a number of edges equal + * to half the count (half the baud rate) + */ + do { + do { + current_state = readb(PRPMC750_STATUS_REG) & + PRPMC750_BAUDOUT_MASK; + } while(old_state == current_state); + old_state = current_state; + } while (--count); + + /* Get the ending time base value */ + tbl_end = get_tbl(); + + /* Compute bus speed */ + bus_speed = (tbl_end-tbl_start)*128; + + return bus_speed; +} + +static void __init +prpmc750_calibrate_decr(void) +{ + unsigned long freq; + int divisor = 4; + + freq = prpmc750_get_bus_speed(); + + tb_ticks_per_jiffy = freq / (HZ * divisor); + tb_to_us = mulhwu_scale_factor(freq/divisor, 1000000); +} + +static void +prpmc750_restart(char *cmd) +{ + __cli(); + writeb(PRPMC750_MODRST_MASK, PRPMC750_MODRST_REG); + while(1); +} + +static void +prpmc750_halt(void) +{ + __cli(); + while (1); +} + +static void +prpmc750_power_off(void) +{ + prpmc750_halt(); +} + +static void __init +prpmc750_init_IRQ(void) +{ + openpic_init(0); +} + +/* + * Set BAT 3 to map 0xf0000000 to end of physical memory space. + */ +static __inline__ void +prpmc750_set_bat(void) +{ + mb(); + mtspr(DBAT1U, 0xf0001ffe); + mtspr(DBAT1L, 0xf000002a); + mb(); +} + +/* + * We need to read the Falcon/Hawk memory controller + * to properly determine this value + */ +static unsigned long __init +prpmc750_find_end_of_memory(void) +{ + /* Read the memory size from the Hawk SMC */ + return pplus_get_mem_size(PRPMC750_HAWK_SMC_BASE); +} + +static void __init +prpmc750_map_io(void) +{ + io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO); + io_block_mapping(0xf0000000, 0xc0000000, 0x08000000, _PAGE_IO); + io_block_mapping(0xf8000000, 0xf8000000, 0x08000000, _PAGE_IO); +} + +void __init +platform_init(unsigned long r3, unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7) +{ + parse_bootinfo(find_bootinfo()); + + isa_io_base = PRPMC750_ISA_IO_BASE; + isa_mem_base = PRPMC750_ISA_MEM_BASE; + pci_dram_offset = PRPMC750_SYS_MEM_BASE; + + prpmc750_set_bat(); + + ppc_md.setup_arch = prpmc750_setup_arch; + ppc_md.show_cpuinfo = prpmc750_show_cpuinfo; + ppc_md.init_IRQ = prpmc750_init_IRQ; + ppc_md.get_irq = openpic_get_irq; + + ppc_md.find_end_of_memory = prpmc750_find_end_of_memory; + ppc_md.setup_io_mappings = prpmc750_map_io; + + ppc_md.restart = prpmc750_restart; + ppc_md.power_off = prpmc750_power_off; + ppc_md.halt = prpmc750_halt; + + /* PrPMC750 has no timekeeper part */ + ppc_md.time_init = NULL; + ppc_md.get_rtc_time = NULL; + ppc_md.set_rtc_time = NULL; + ppc_md.calibrate_decr = prpmc750_calibrate_decr; + +#ifdef CONFIG_SERIAL_TEXT_DEBUG + ppc_md.progress = gen550_progress; +#endif /* CONFIG_SERIAL_TEXT_DEBUG */ +} diff -urN linux-2.4.23-bk18/arch/ppc/platforms/prpmc750.h linux-2.4.23-bk19/arch/ppc/platforms/prpmc750.h --- linux-2.4.23-bk18/arch/ppc/platforms/prpmc750.h 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/prpmc750.h 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,65 @@ +/* + * include/asm-ppc/platforms/prpmc750.h + * + * Definitions for Motorola PrPMC750 board support + * + * Author: Matt Porter + * + * Copyright 2001 MontaVista Software Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#ifdef __KERNEL__ +#ifndef __ASM_PRPMC750_H__ +#define __ASM_PRPMC750_H__ + +#include + +#define PRPMC750_PCI_CONFIG_ADDR 0x80000cf8 +#define PRPMC750_PCI_CONFIG_DATA 0x80000cfc + +#define PRPMC750_PCI_PHY_MEM_BASE 0xc0000000 +#define PRPMC750_PCI_MEM_BASE 0xf0000000 +#define PRPMC750_PCI_IO_BASE 0x80000000 + +#define PRPMC750_ISA_IO_BASE PRPMC750_PCI_IO_BASE +#define PRPMC750_ISA_MEM_BASE PRPMC750_PCI_MEM_BASE +#define PRPMC750_PCI_MEM_OFFSET PRPMC750_PCI_PHY_MEM_BASE + +#define PRPMC750_SYS_MEM_BASE 0x80000000 + +#define PRPMC750_PCI_LOWER_MEM 0x00000000 +#define PRPMC750_PCI_UPPER_MEM_AUTO 0x3bf7ffff +#define PRPMC750_PCI_UPPER_MEM 0x3bffffff +#define PRPMC750_PCI_LOWER_IO 0x00000000 +#define PRPMC750_PCI_UPPER_IO 0x0ff7ffff + +#define PRPMC750_HAWK_MPIC_BASE 0xfbf80000 +#define PRPMC750_HAWK_SMC_BASE 0xfef80000 + +#define PRPMC750_BASE_BAUD 1843200 +#define PRPMC750_SERIAL_0 0xfef88000 +#define PRPMC750_SERIAL_0_DLL (PRPMC750_SERIAL_0 + (UART_DLL << 4)) +#define PRPMC750_SERIAL_0_DLM (PRPMC750_SERIAL_0 + (UART_DLM << 4)) +#define PRPMC750_SERIAL_0_LCR (PRPMC750_SERIAL_0 + (UART_LCR << 4)) + +#define PRPMC750_STATUS_REG 0xfef88080 +#define PRPMC750_BAUDOUT_MASK 0x02 +#define PRPMC750_MONARCH_MASK 0x01 + +#define PRPMC750_MODRST_REG 0xfef880a0 +#define PRPMC750_MODRST_MASK 0x01 + +#define PRPMC750_PIRQ_REG 0xfef880b0 +#define PRPMC750_SEL1_MASK 0x02 +#define PRPMC750_SEL0_MASK 0x01 + +#define PRPMC750_TBEN_REG 0xfef880c0 +#define PRPMC750_TBEN_MASK 0x01 + +#endif /* __ASM_PRPMC750_H__ */ +#endif /* __KERNEL__ */ diff -urN linux-2.4.23-bk18/arch/ppc/platforms/prpmc750_serial.h linux-2.4.23-bk19/arch/ppc/platforms/prpmc750_serial.h --- linux-2.4.23-bk18/arch/ppc/platforms/prpmc750_serial.h 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/prpmc750_serial.h 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,39 @@ +/* + * include/asm-ppc/platforms/prpmc750_serial.h + * + * Motorola PrPMC750 serial support + * + * Author: Matt Porter + * + * Copyright 2001 MontaVista Software Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#ifdef __KERNEL__ +#ifndef __ASM_PRPMC750_SERIAL_H__ +#define __ASM_PRPMC750_SERIAL_H__ + +#include +#include + +#define RS_TABLE_SIZE 4 + +/* Rate for the 1.8432 Mhz clock for the onboard serial chip */ +#define BASE_BAUD (PRPMC750_BASE_BAUD / 16) + +#ifndef SERIAL_MAGIC_KEY +#define kernel_debugger ppc_kernel_debug +#endif + +#define SERIAL_PORT_DFNS \ + { 0, BASE_BAUD, PRPMC750_SERIAL_0, 1, ASYNC_SKIP_TEST, \ + iomem_base: (unsigned char *)PRPMC750_SERIAL_0, \ + iomem_reg_shift: 4, \ + io_type: SERIAL_IO_MEM } /* ttyS0 */ + +#endif /* __ASM_PRPMC750_SERIAL_H__ */ +#endif /* __KERNEL__ */ diff -urN linux-2.4.23-bk18/arch/ppc/platforms/sandpoint.c linux-2.4.23-bk19/arch/ppc/platforms/sandpoint.c --- linux-2.4.23-bk18/arch/ppc/platforms/sandpoint.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/sandpoint.c 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,742 @@ +/* + * arch/ppc/platforms/sandpoint.c + * + * Board setup routines for the Motorola SPS Sandpoint Test Platform. + * + * Author: Mark A. Greer + * mgreer@mvista.com + * + * 2000-2003 (c) MontaVista, Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +/* + * This file adds support for the Motorola SPS Sandpoint Test Platform. + * These boards have a PPMC slot for the processor so any combination + * of cpu and host bridge can be attached. This port is for an 8240 PPMC + * module from Motorola SPS and other closely related cpu/host bridge + * combinations (e.g., 750/755/7400 with MPC107 host bridge). + * The sandpoint itself has a Windbond 83c553 (PCI-ISA bridge, 2 DMA ctlrs, 2 + * cascaded 8259 interrupt ctlrs, 8254 Timer/Counter, and an IDE ctlr), a + * National 87308 (RTC, 2 UARTs, Keyboard & mouse ctlrs, and a floppy ctlr), + * and 4 PCI slots (only 2 of which are usable; the other 2 are keyed for 3.3V + * but are really 5V). + * + * The firmware on the sandpoint is called DINK (not my acronym :). This port + * depends on DINK to do some basic initialization (e.g., initialize the memory + * ctlr) and to ensure that the processor is using MAP B (CHRP map). + * + * The switch settings for the Sandpoint board MUST be as follows: + * S3: down + * S4: up + * S5: up + * S6: down + * + * 'down' is in the direction from the PCI slots towards the PPMC slot; + * 'up' is in the direction from the PPMC slot towards the PCI slots. + * Be careful, the way the sandpoint board is installed in XT chasses will + * make the directions reversed. + * + * Since Motorola listened to our suggestions for improvement, we now have + * the Sandpoint X3 board. All of the PCI slots are available, it uses + * the serial interrupt interface (just a hardware thing we need to + * configure properly). + * + * Use the default X3 switch settings. The interrupts are then: + * EPIC Source + * 0 SIOINT (8259, active low) + * 1 PCI #1 + * 2 PCI #2 + * 3 PCI #3 + * 4 PCI #4 + * 7 Winbond INTC (IDE interrupt) + * 8 Winbond INTD (IDE interrupt) + * + * It is important to note that this code only supports the Sandpoint X3 + * (all flavors) platform, and it does not support the X2 anymore. Code + * that at one time worked on the X2 can be found at: + * ftp://source.mvista.com/pub/linuxppc/obsolete/sandpoint/ + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "sandpoint_serial.h" + +extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode); +extern int pckbd_getkeycode(unsigned int scancode); +extern int pckbd_translate(unsigned char scancode, unsigned char *keycode, + char raw_mode); +extern char pckbd_unexpected_up(unsigned char keycode); +extern void pckbd_leds(unsigned char leds); +extern void pckbd_init_hw(void); +extern unsigned char pckbd_sysrq_xlate[128]; + +extern void gen550_progress(char *, unsigned short); +extern void gen550_init(int, struct serial_struct *); + +unsigned char __res[sizeof (bd_t)]; + +static void sandpoint_halt(void); + +/* + * Define all of the IRQ senses and polarities. Taken from the + * Sandpoint X3 User's manual. + */ +static u_char sandpoint_openpic_initsenses[] __initdata = { + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 0: SIOINT */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 2: PCI Slot 1 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 3: PCI Slot 2 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 4: PCI Slot 3 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 5: PCI Slot 4 */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 8: IDE (INT C) */ + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE) /* 9: IDE (INT D) */ +}; + +/* + * Motorola SPS Sandpoint interrupt routing. + */ +static inline int +sandpoint_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { + {16, 0, 0, 0}, /* IDSEL 11 - i8259 on Windbond */ + { 0, 0, 0, 0}, /* IDSEL 12 - unused */ + {17, 18, 19, 20}, /* IDSEL 13 - PCI slot 1 */ + {18, 19, 20, 17}, /* IDSEL 14 - PCI slot 2 */ + {19, 20, 17, 18}, /* IDSEL 15 - PCI slot 3 */ + {20, 17, 18, 19}, /* IDSEL 16 - PCI slot 4 */ + }; + + const long min_idsel = 11, max_idsel = 16, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +} + +static void __init +sandpoint_setup_winbond_83553(struct pci_controller *hose) +{ + int devfn; + + /* + * Route IDE interrupts directly to the 8259's IRQ 14 & 15. + * We can't route the IDE interrupt to PCI INTC# or INTD# because those + * woule interfere with the PMC's INTC# and INTD# lines. + */ + /* + * Winbond Fcn 0 + */ + devfn = PCI_DEVFN(11, 0); + + /* IDE Interrupt Routing Control */ + early_write_config_byte(hose, 0, devfn, 0x43, 0xef); + + /* PCI Interrupt Routing Control */ + early_write_config_word(hose, 0, devfn, 0x44, 0x0000); + + /* Want ISA memory cycles to be forwarded to PCI bus. + * ISA-to-PCI Addr Decoder Control. + */ + early_write_config_byte(hose, 0, devfn, 0x48, 0xf0); + + /* Enable RTC and Keyboard address locations. */ + early_write_config_byte(hose, 0, devfn, 0x4d, 0x00); + + /* Enable Port 92. */ + early_write_config_byte(hose, 0, devfn, 0x4e, 0x06); + + /* + * Winbond Fcn 1 + */ + devfn = PCI_DEVFN(11, 1); + + /* Put IDE controller into native mode (via PIR). */ + early_write_config_byte(hose, 0, devfn, 0x09, 0x8f); + + /* Init IRQ routing, enable both ports, disable fast 16, via + * IDE Control/Status Register. + */ + early_write_config_dword(hose, 0, devfn, 0x40, 0x00ff0011); +} + +static void __init +sandpoint_find_bridges(void) +{ + struct pci_controller *hose; + + hose = pcibios_alloc_controller(); + + if (!hose) + return; + + hose->first_busno = 0; + hose->last_busno = 0xff; + + if (mpc10x_bridge_init(hose, + MPC10X_MEM_MAP_B, + MPC10X_MEM_MAP_B, MPC10X_MAPB_EUMB_BASE) == 0) { + + /* Do early winbond init, then scan PCI bus */ + sandpoint_setup_winbond_83553(hose); + hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); + + ppc_md.pcibios_fixup = NULL; + ppc_md.pcibios_fixup_bus = NULL; + ppc_md.pci_swizzle = common_swizzle; + ppc_md.pci_map_irq = sandpoint_map_irq; + } else { + if (ppc_md.progress) + ppc_md.progress("Bridge init failed", 0x100); + printk("Host bridge init failed\n"); + } + + return; +} + +#ifdef CONFIG_SERIAL +static void __init +sandpoint_early_serial_map(void) +{ + struct serial_struct serial_req; + + /* Setup serial port access */ + memset(&serial_req, 0, sizeof (serial_req)); + serial_req.baud_base = BASE_BAUD; + serial_req.line = 0; + serial_req.port = 0; + serial_req.irq = 4; + serial_req.flags = ASYNC_BOOT_AUTOCONF; + serial_req.io_type = SERIAL_IO_MEM; + serial_req.iomem_base = (u_char *) SANDPOINT_SERIAL_0; + serial_req.iomem_reg_shift = 0; + +#if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) + gen550_init(0, &serial_req); +#endif + + if (early_serial_setup(&serial_req) != 0) + printk("Early serial init of port 0 failed\n"); + + /* Assume early_serial_setup() doesn't modify serial_req */ + serial_req.line = 1; + serial_req.port = 1; + serial_req.irq = 3; /* XXXX */ + serial_req.iomem_base = (u_char *) SANDPOINT_SERIAL_1; + +#if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) + gen550_init(1, &serial_req); +#endif + + if (early_serial_setup(&serial_req) != 0) + printk("Early serial init of port 1 failed\n"); +} +#endif + +static void __init +sandpoint_setup_arch(void) +{ + loops_per_jiffy = 100000000 / HZ; + +#ifdef CONFIG_BLK_DEV_INITRD + if (initrd_start) + ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); + else +#endif +#ifdef CONFIG_ROOT_NFS + ROOT_DEV = to_kdev_t(0x00FF); /* /dev/nfs pseudo device */ +#else + ROOT_DEV = to_kdev_t(0x0301); /* /dev/hda1 IDE disk */ +#endif + + /* Lookup PCI host bridges */ + sandpoint_find_bridges(); + +#ifdef CONFIG_SERIAL + sandpoint_early_serial_map(); +#endif + +#ifdef CONFIG_DUMMY_CONSOLE + conswitchp = &dummy_con; +#endif + + printk(KERN_INFO "Motorola SPS Sandpoint Test Platform\n"); + + /* DINK32 12.3 and below do not correctly enable any caches. + * We will do this now with good known values. Future versions + * of DINK32 are supposed to get this correct. + */ + if (cur_cpu_spec[0]->cpu_features & CPU_FTR_SPEC7450) + /* 745x is different. We only want to pass along enable. */ + _set_L2CR(L2CR_L2E); + else if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR) + /* All modules have 1MB of L2. We also assume that an + * L2 divisor of 3 will work. + */ + _set_L2CR(L2CR_L2E | L2CR_L2SIZ_1MB | L2CR_L2CLK_DIV3 + | L2CR_L2RAM_PIPE | L2CR_L2OH_1_0 | L2CR_L2DF); +#if 0 + /* Untested right now. */ + if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L3CR) { + /* Magic value. */ + _set_L3CR(0x8f032000); + } +#endif +} + +#define SANDPOINT_87308_CFG_ADDR 0x15c +#define SANDPOINT_87308_CFG_DATA 0x15d + +#define SANDPOINT_87308_CFG_INB(addr, byte) { \ + outb((addr), SANDPOINT_87308_CFG_ADDR); \ + (byte) = inb(SANDPOINT_87308_CFG_DATA); \ +} + +#define SANDPOINT_87308_CFG_OUTB(addr, byte) { \ + outb((addr), SANDPOINT_87308_CFG_ADDR); \ + outb((byte), SANDPOINT_87308_CFG_DATA); \ +} + +#define SANDPOINT_87308_SELECT_DEV(dev_num) { \ + SANDPOINT_87308_CFG_OUTB(0x07, (dev_num)); \ +} + +#define SANDPOINT_87308_DEV_ENABLE(dev_num) { \ + SANDPOINT_87308_SELECT_DEV(dev_num); \ + SANDPOINT_87308_CFG_OUTB(0x30, 0x01); \ +} + +/* + * Initialize the ISA devices on the Nat'l PC87308VUL SuperIO chip. + */ +static void __init +sandpoint_setup_natl_87308(void) +{ + u_char reg; + + /* + * Enable all the devices on the Super I/O chip. + */ + SANDPOINT_87308_SELECT_DEV(0x00); /* Select kbd logical device */ + SANDPOINT_87308_CFG_OUTB(0xf0, 0x00); /* Set KBC clock to 8 Mhz */ + SANDPOINT_87308_DEV_ENABLE(0x00); /* Enable keyboard */ + SANDPOINT_87308_DEV_ENABLE(0x01); /* Enable mouse */ + SANDPOINT_87308_DEV_ENABLE(0x02); /* Enable rtc */ + SANDPOINT_87308_DEV_ENABLE(0x03); /* Enable fdc (floppy) */ + SANDPOINT_87308_DEV_ENABLE(0x04); /* Enable parallel */ + SANDPOINT_87308_DEV_ENABLE(0x05); /* Enable UART 2 */ + SANDPOINT_87308_CFG_OUTB(0xf0, 0x82); /* Enable bank select regs */ + SANDPOINT_87308_DEV_ENABLE(0x06); /* Enable UART 1 */ + SANDPOINT_87308_CFG_OUTB(0xf0, 0x82); /* Enable bank select regs */ + + /* Set up floppy in PS/2 mode */ + outb(0x09, SIO_CONFIG_RA); + reg = inb(SIO_CONFIG_RD); + reg = (reg & 0x3F) | 0x40; + outb(reg, SIO_CONFIG_RD); + outb(reg, SIO_CONFIG_RD); /* Have to write twice to change! */ + + return; +} + +/* + * Fix IDE interrupts. + */ +static void __init +sandpoint_fix_winbond_83553(void) +{ + /* Make all 8259 interrupt level sensitive */ + outb(0xf8, 0x4d0); + outb(0xde, 0x4d1); + + return; +} + +static void __init +sandpoint_init2(void) +{ + /* Do Sandpoint board specific initialization. */ + sandpoint_fix_winbond_83553(); + sandpoint_setup_natl_87308(); + + request_region(0x00, 0x20, "dma1"); + request_region(0x20, 0x20, "pic1"); + request_region(0x40, 0x20, "timer"); + request_region(0x80, 0x10, "dma page reg"); + request_region(0xa0, 0x20, "pic2"); + request_region(0xc0, 0x20, "dma2"); + + return; +} + +/* + * Interrupt setup and service. The i8259 is cascaded from EPIC IRQ0, + * IRQ1-4 map to PCI slots 1-4, IDE is on EPIC 7 and 8. + */ +static void __init +sandpoint_init_IRQ(void) +{ + int i; + + OpenPIC_InitSenses = sandpoint_openpic_initsenses; + OpenPIC_NumInitSenses = sizeof (sandpoint_openpic_initsenses); + + /* + * We need to tell openpic_set_sources where things actually are. + * mpc10x_common will setup OpenPIC_Addr at ioremap(EUMB phys base + + * EPIC offset (0x40000)); The EPIC IRQ Register Address Map - + * Interrupt Source Configuration Registers gives these numbers + * as offsets starting at 0x50200, we need to adjust occordinly. + */ + + /* Map serial interrupt 0 */ + openpic_set_sources(0, 1, OpenPIC_Addr + 0x10200); + /* Map serial interrupts 2-5 */ + openpic_set_sources(1, 4, OpenPIC_Addr + 0x10240); + /* Map serial interrupts 8-9 */ + openpic_set_sources(5, 2, OpenPIC_Addr + 0x10300); + /* Skip reserved space and map i2c and DMA Ch[01] */ + openpic_set_sources(7, 3, OpenPIC_Addr + 0x11020); + /* Skip reserved space and map Message Unit Interrupt (I2O) */ + openpic_set_sources(10, 1, OpenPIC_Addr + 0x110C0); + + openpic_init(NUM_8259_INTERRUPTS); + /* The cascade is on EPIC IRQ 0 (Linux IRQ 16). */ + openpic_hookup_cascade(16, "8259 cascade to EPIC", &i8259_irq); + + /* + * openpic_init() has set up irq_desc[0-23] to be openpic + * interrupts. We need to set irq_desc[0-15] to be 8259 interrupts. + * We then need to request and enable the 8259 irq. + */ + for (i = 0; i < NUM_8259_INTERRUPTS; i++) + irq_desc[i].handler = &i8259_pic; + + /* + * The EPIC allows for a read in the range of 0xFEF00000 -> + * 0xFEFFFFFF to generate a PCI interrupt-acknowledge transaction. + */ + i8259_init(0xfef00000); +} + +static u32 +sandpoint_irq_cannonicalize(u32 irq) +{ + if (irq == 2) + return 9; + else + return irq; +} + +static unsigned long __init +sandpoint_find_end_of_memory(void) +{ + bd_t *bp = (bd_t *) __res; + + if (bp->bi_memsize) + return bp->bi_memsize; + + /* This might be fixed in DINK32 12.4, or we'll have another + * way to determine the correct memory size anyhow. */ + /* return mpc10x_get_mem_size(MPC10X_MEM_MAP_B); */ + return 32 * 1024 * 1024; +} + +static void __init +sandpoint_map_io(void) +{ + io_block_mapping(0xfe000000, 0xfe000000, 0x02000000, _PAGE_IO); +} + +static void +sandpoint_restart(char *cmd) +{ + __cli(); + + /* Set exception prefix high - to the firmware */ + _nmask_and_or_msr(0, MSR_IP); + + /* Reset system via Port 92 */ + outb(0x00, 0x92); + outb(0x01, 0x92); + for (;;) ; /* Spin until reset happens */ +} + +static void +sandpoint_power_off(void) +{ + __cli(); + for (;;) ; /* No way to shut power off with software */ + /* NOTREACHED */ +} + +static void +sandpoint_halt(void) +{ + sandpoint_power_off(); + /* NOTREACHED */ +} + +static int +sandpoint_show_cpuinfo(struct seq_file *m) +{ + seq_printf(m, "vendor\t\t: Motorola SPS\n"); + seq_printf(m, "machine\t\t: Sandpoint\n"); + + return 0; +} + +#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) +/* + * IDE support. + */ +static int sandpoint_ide_ports_known = 0; +static ide_ioreg_t sandpoint_ide_regbase[MAX_HWIFS]; +static ide_ioreg_t sandpoint_ide_ctl_regbase[MAX_HWIFS]; +static ide_ioreg_t sandpoint_idedma_regbase; + +static void +sandpoint_ide_probe(void) +{ + struct pci_dev *pdev = pci_find_device(PCI_VENDOR_ID_WINBOND, + PCI_DEVICE_ID_WINBOND_82C105, + NULL); + + if (pdev) { + sandpoint_ide_regbase[0] = pdev->resource[0].start; + sandpoint_ide_regbase[1] = pdev->resource[2].start; + sandpoint_ide_ctl_regbase[0] = pdev->resource[1].start; + sandpoint_ide_ctl_regbase[1] = pdev->resource[3].start; + sandpoint_idedma_regbase = pdev->resource[4].start; + } + + sandpoint_ide_ports_known = 1; + return; +} + +/* The Sandpoint X3 allows the IDE interrupt to be directly connected + * from the Windbond (PCI INTC or INTD) to the serial EPIC. Someday + * we should try this, but it was easier to use the existing 83c553 + * initialization than change it to route the different interrupts :-). + * -- Dan + */ +#if 0 +#define SANDPOINT_IDE_INT0 23 /* EPIC 7 */ +#define SANDPOINT_IDE_INT1 24 /* EPIC 8 */ +#else +#define SANDPOINT_IDE_INT0 14 /* 8259 Test */ +#define SANDPOINT_IDE_INT1 15 /* 8259 Test */ +#endif +static int +sandpoint_ide_default_irq(ide_ioreg_t base) +{ + if (sandpoint_ide_ports_known == 0) + sandpoint_ide_probe(); + + if (base == sandpoint_ide_regbase[0]) + return SANDPOINT_IDE_INT0; + else if (base == sandpoint_ide_regbase[1]) + return SANDPOINT_IDE_INT1; + else + return 0; +} + +static ide_ioreg_t +sandpoint_ide_default_io_base(int index) +{ + if (sandpoint_ide_ports_known == 0) + sandpoint_ide_probe(); + + return sandpoint_ide_regbase[index]; +} + +static void __init +sandpoint_ide_init_hwif_ports(hw_regs_t * hw, ide_ioreg_t data_port, + ide_ioreg_t ctrl_port, int *irq) +{ + ide_ioreg_t reg = data_port; + unsigned int alt_status_base; + int i; + + for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) + hw->io_ports[i] = reg++; + + if (data_port == sandpoint_ide_regbase[0]) { + alt_status_base = sandpoint_ide_ctl_regbase[0] + 2; + hw->irq = 14; + } else if (data_port == sandpoint_ide_regbase[1]) { + alt_status_base = sandpoint_ide_ctl_regbase[1] + 2; + hw->irq = 15; + } else { + alt_status_base = 0; + hw->irq = 0; + } + + if (ctrl_port) + hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port; + else + hw->io_ports[IDE_CONTROL_OFFSET] = alt_status_base; + + if (irq != NULL) + *irq = hw->irq; + + return; +} +#endif + +/* + * Set BAT 3 to map 0xf8000000 to end of physical memory space 1-to-1. + */ +static __inline__ void +sandpoint_set_bat(void) +{ +#if 1 + mb(); + mtspr(DBAT1U, 0xf8000ffe); + mtspr(DBAT1L, 0xf800002a); + mb(); +#else + unsigned long bat3u, bat3l; + + __asm__ __volatile__(" lis %0,0xf800\n \ + ori %1,%0,0x002a\n \ + ori %0,%0,0x0ffe\n \ + mtspr 0x21e,%0\n \ + mtspr 0x21f,%1\n \ + isync\n \ + sync ":"=r"(bat3u), "=r"(bat3l)); +#endif +} + +TODC_ALLOC(); + +void __init +platform_init(unsigned long r3, unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7) +{ + parse_bootinfo(find_bootinfo()); + + /* ASSUMPTION: If both r3 (bd_t pointer) and r6 (cmdline pointer) + * are non-zero, then we should use the board info from the bd_t + * structure and the cmdline pointed to by r6 instead of the + * information from birecs, if any. Otherwise, use the information + * from birecs as discovered by the preceeding call to + * parse_bootinfo(). This rule should work with both PPCBoot, which + * uses a bd_t board info structure, and the kernel boot wrapper, + * which uses birecs. + */ + if (r3 && r6) { + /* copy board info structure */ + memcpy((void *) __res, (void *) (r3 + KERNELBASE), + sizeof (bd_t)); + /* copy command line */ + *(char *) (r7 + KERNELBASE) = 0; + strcpy(cmd_line, (char *) (r6 + KERNELBASE)); + } +#ifdef CONFIG_BLK_DEV_INITRD + /* take care of initrd if we have one */ + if (r4) { + initrd_start = r4 + KERNELBASE; + initrd_end = r5 + KERNELBASE; + } +#endif /* CONFIG_BLK_DEV_INITRD */ + + /* Map in board regs, etc. */ + sandpoint_set_bat(); + + isa_io_base = MPC10X_MAPB_ISA_IO_BASE; + isa_mem_base = MPC10X_MAPB_ISA_MEM_BASE; + pci_dram_offset = MPC10X_MAPB_DRAM_OFFSET; + ISA_DMA_THRESHOLD = 0x00ffffff; + DMA_MODE_READ = 0x44; + DMA_MODE_WRITE = 0x48; + + ppc_md.setup_arch = sandpoint_setup_arch; + ppc_md.show_cpuinfo = sandpoint_show_cpuinfo; + ppc_md.irq_cannonicalize = sandpoint_irq_cannonicalize; + ppc_md.init_IRQ = sandpoint_init_IRQ; + ppc_md.get_irq = openpic_get_irq; + ppc_md.init = sandpoint_init2; + + ppc_md.restart = sandpoint_restart; + ppc_md.power_off = sandpoint_power_off; + ppc_md.halt = sandpoint_halt; + + ppc_md.find_end_of_memory = sandpoint_find_end_of_memory; + ppc_md.setup_io_mappings = sandpoint_map_io; + + TODC_INIT(TODC_TYPE_PC97307, 0x70, 0x00, 0x71, 8); + ppc_md.time_init = todc_time_init; + ppc_md.set_rtc_time = todc_set_rtc_time; + ppc_md.get_rtc_time = todc_get_rtc_time; + ppc_md.calibrate_decr = todc_calibrate_decr; + + ppc_md.nvram_read_val = todc_mc146818_read_val; + ppc_md.nvram_write_val = todc_mc146818_write_val; + +#ifdef CONFIG_SERIAL +#ifdef CONFIG_SERIAL_TEXT_DEBUG + ppc_md.progress = gen550_progress; +#endif + ppc_md.early_serial_map = sandpoint_early_serial_map; +#endif + +#ifdef CONFIG_VT + ppc_md.kbd_setkeycode = pckbd_setkeycode; + ppc_md.kbd_getkeycode = pckbd_getkeycode; + ppc_md.kbd_translate = pckbd_translate; + ppc_md.kbd_unexpected_up = pckbd_unexpected_up; + ppc_md.kbd_leds = pckbd_leds; + ppc_md.kbd_init_hw = pckbd_init_hw; +#ifdef CONFIG_MAGIC_SYSRQ + ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate; + SYSRQ_KEY = 0x54; +#endif +#endif + +#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) + ppc_ide_md.default_irq = sandpoint_ide_default_irq; + ppc_ide_md.default_io_base = sandpoint_ide_default_io_base; + ppc_ide_md.ide_init_hwif = sandpoint_ide_init_hwif_ports; +#endif + + return; +} diff -urN linux-2.4.23-bk18/arch/ppc/platforms/sandpoint_serial.h linux-2.4.23-bk19/arch/ppc/platforms/sandpoint_serial.h --- linux-2.4.23-bk18/arch/ppc/platforms/sandpoint_serial.h 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/arch/ppc/platforms/sandpoint_serial.h 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,47 @@ +/* + * include/asm-ppc/sandpoint_serial.h + * + * Definitions for Motorola SPS Sandpoint Test Platform + * + * Author: Mark A. Greer + * mgreer@mvista.com + * + * Copyright 2001 MontaVista Software Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ + +#ifndef __ASMPPC_SANDPOINT_SERIAL_H +#define __ASMPPC_SANDPOINT_SERIAL_H + +#include + +#define SANDPOINT_SERIAL_0 0xfe0003f8 +#define SANDPOINT_SERIAL_1 0xfe0002f8 + +#ifdef CONFIG_SERIAL_MANY_PORTS +#define RS_TABLE_SIZE 64 +#else +#define RS_TABLE_SIZE 2 +#endif + +/* Rate for the 1.8432 Mhz clock for the onboard serial chip */ +#define BASE_BAUD ( 1843200 / 16 ) + +#define STD_SERIAL_PORT_DFNS \ + /* ttyS0 */ \ + { 0, BASE_BAUD, SANDPOINT_SERIAL_0, 4, ASYNC_BOOT_AUTOCONF, \ + iomem_base: (u8 *)SANDPOINT_SERIAL_0, \ + io_type: SERIAL_IO_MEM }, \ + /* ttyS1 */ \ + { 0, BASE_BAUD, SANDPOINT_SERIAL_1, 3, ASYNC_BOOT_AUTOCONF, \ + iomem_base: (u8 *)SANDPOINT_SERIAL_1, \ + io_type: SERIAL_IO_MEM }, + +#define SERIAL_PORT_DFNS \ + STD_SERIAL_PORT_DFNS + +#endif /* __ASMPPC_SANDPOINT_SERIAL_H */ diff -urN linux-2.4.23-bk18/arch/ppc/platforms/spruce.h linux-2.4.23-bk19/arch/ppc/platforms/spruce.h --- linux-2.4.23-bk18/arch/ppc/platforms/spruce.h 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/spruce.h 2003-12-30 02:50:29.000000000 -0800 @@ -70,7 +70,7 @@ #define STD_UART_OP(num) \ { 0, BASE_BAUD, 0, UART##num##_INT, \ - (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST), \ + ASYNC_BOOT_AUTOCONF, \ iomem_base: UART##num##_IO_BASE, \ io_type: SERIAL_IO_MEM}, diff -urN linux-2.4.23-bk18/arch/ppc/platforms/spruce_setup.c linux-2.4.23-bk19/arch/ppc/platforms/spruce_setup.c --- linux-2.4.23-bk18/arch/ppc/platforms/spruce_setup.c 2003-06-13 07:51:31.000000000 -0700 +++ linux-2.4.23-bk19/arch/ppc/platforms/spruce_setup.c 2003-12-30 02:50:29.000000000 -0800 @@ -132,7 +132,7 @@ serial_req.line = 0; serial_req.port = 0; serial_req.irq = 3; - serial_req.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; + serial_req.flags = ASYNC_BOOT_AUTOCONF; serial_req.io_type = SERIAL_IO_MEM; serial_req.iomem_base = (u_char *)UART0_IO_BASE; serial_req.iomem_reg_shift = 0; diff -urN linux-2.4.23-bk18/drivers/block/cciss.c linux-2.4.23-bk19/drivers/block/cciss.c --- linux-2.4.23-bk18/drivers/block/cciss.c 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/drivers/block/cciss.c 2003-12-30 02:50:29.000000000 -0800 @@ -2677,11 +2677,13 @@ } #ifdef CONFIG_X86 +{ /* Need to enable prefetch in the SCSI core for 6400 in x86 */ __u32 prefetch; prefetch = readl(&(c->cfgtable->SCSI_Prefetch)); prefetch |= 0x100; writel(prefetch, &(c->cfgtable->SCSI_Prefetch)); +} #endif #ifdef CCISS_DEBUG diff -urN linux-2.4.23-bk18/drivers/char/Config.in linux-2.4.23-bk19/drivers/char/Config.in --- linux-2.4.23-bk18/drivers/char/Config.in 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/drivers/char/Config.in 2003-12-30 02:50:29.000000000 -0800 @@ -274,6 +274,9 @@ dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22 fi dep_tristate ' AMD 766/768 TCO Timer/Watchdog' CONFIG_AMD7XX_TCO $CONFIG_EXPERIMENTAL + if [ "$CONFIG_8xx" = "y" ]; then + tristate ' MPC8xx Watchdog Timer' CONFIG_8xx_WDT + fi fi endmenu @@ -285,7 +288,8 @@ fi tristate 'NetWinder flash support' CONFIG_NWFLASH fi -dep_tristate 'NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200 +tristate 'NatSemi SCx200 Support' CONFIG_SCx200 +dep_tristate ' NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200 if [ "$CONFIG_IA64_GENERIC" = "y" -o "$CONFIG_IA64_SGI_SN2" = "y" ] ; then bool 'SGI SN2 fetchop support' CONFIG_FETCHOP diff -urN linux-2.4.23-bk18/drivers/char/Makefile linux-2.4.23-bk19/drivers/char/Makefile --- linux-2.4.23-bk18/drivers/char/Makefile 2003-12-30 02:50:24.000000000 -0800 +++ linux-2.4.23-bk19/drivers/char/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -288,7 +288,8 @@ obj-$(CONFIG_DZ) += dz.o obj-$(CONFIG_NWBUTTON) += nwbutton.o obj-$(CONFIG_NWFLASH) += nwflash.o -obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o scx200.o +obj-$(CONFIG_SCx200) += scx200.o +obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o # Only one watchdog can succeed. We probe the hardware watchdog # drivers first, then the softdog driver. This means if your hardware @@ -320,6 +321,7 @@ obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o obj-$(CONFIG_INDYDOG) += indydog.o +obj-$(CONFIG_8xx_WDT) += mpc8xx_wdt.o subdir-$(CONFIG_MWAVE) += mwave ifeq ($(CONFIG_MWAVE),y) diff -urN linux-2.4.23-bk18/drivers/char/mpc8xx_wdt.c linux-2.4.23-bk19/drivers/char/mpc8xx_wdt.c --- linux-2.4.23-bk18/drivers/char/mpc8xx_wdt.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/drivers/char/mpc8xx_wdt.c 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,191 @@ +/* + * mpc8xx_wdt.c - MPC8xx watchdog userspace interface + * + * Copyright (C) 2002 Florian Schirmer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +extern int m8xx_wdt_get_timeout(void); +extern void m8xx_wdt_reset(void); + +static struct semaphore wdt_sem; +static int wdt_status; + +static struct watchdog_info ident = { + .identity = "MPC8xx watchdog", + .options = WDIOF_KEEPALIVEPING, +}; + +static void +mpc8xx_wdt_handler_disable(void) +{ + volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR; + + imap->im_sit.sit_piscr &= ~(PISCR_PIE | PISCR_PTE); + + printk(KERN_NOTICE "mpc8xx_wdt: keep-alive handler deactivated\n"); +} + +static void +mpc8xx_wdt_handler_enable(void) +{ + volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR; + + imap->im_sit.sit_piscr |= PISCR_PIE | PISCR_PTE; + + printk(KERN_NOTICE "mpc8xx_wdt: keep-alive handler activated\n"); +} + +static int +mpc8xx_wdt_open(struct inode *inode, struct file *file) +{ + switch (MINOR(inode->i_rdev)) { + case WATCHDOG_MINOR: + if (down_trylock(&wdt_sem)) + return -EBUSY; + + m8xx_wdt_reset(); + mpc8xx_wdt_handler_disable(); + break; + + default: + return -ENODEV; + } + + return 0; +} + +static int +mpc8xx_wdt_release(struct inode *inode, struct file *file) +{ + m8xx_wdt_reset(); + +#if !defined(CONFIG_WATCHDOG_NOWAYOUT) + mpc8xx_wdt_handler_enable(); +#endif + + up(&wdt_sem); + + return 0; +} + +static ssize_t +mpc8xx_wdt_write(struct file *file, const char *data, size_t len, loff_t * ppos) +{ + /* Can't seek (pwrite) on this device */ + if (ppos != &file->f_pos) + return -ESPIPE; + + if (!len) + return 0; + + m8xx_wdt_reset(); + + return 1; +} + +static int +mpc8xx_wdt_ioctl(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg) +{ + switch (cmd) { + case WDIOC_GETSUPPORT: + if (copy_to_user((void *) arg, &ident, sizeof (ident))) + return -EFAULT; + break; + + case WDIOC_GETSTATUS: + case WDIOC_GETBOOTSTATUS: + if (put_user(wdt_status, (int *) arg)) + return -EFAULT; + wdt_status &= ~WDIOF_KEEPALIVEPING; + break; + + case WDIOC_KEEPALIVE: + m8xx_wdt_reset(); + wdt_status |= WDIOF_KEEPALIVEPING; + break; + + case WDIOC_GETTIMEOUT: + { + int timeout = m8xx_wdt_get_timeout(); + if (put_user(timeout, (int *) arg)) + return -EFAULT; + break; + } + + default: + return -ENOTTY; + } + + return 0; +} + +static struct file_operations mpc8xx_wdt_fops = { + .owner = THIS_MODULE, + .write = mpc8xx_wdt_write, + .ioctl = mpc8xx_wdt_ioctl, + .open = mpc8xx_wdt_open, + .release = mpc8xx_wdt_release, +}; + +static struct miscdevice mpc8xx_wdt_miscdev = { + .minor = WATCHDOG_MINOR, + .name = "watchdog", + .fops = &mpc8xx_wdt_fops, +}; + +static int __init +mpc8xx_wdt_init(void) +{ + int ret; + + sema_init(&wdt_sem, 1); + + if ((ret = misc_register(&mpc8xx_wdt_miscdev))) { + printk(KERN_WARNING + "mpc8xx_wdt: could not register userspace interface\n"); + return ret; + } + + return 0; +} + +static void __exit +mpc8xx_wdt_exit(void) +{ + misc_deregister(&mpc8xx_wdt_miscdev); + + m8xx_wdt_reset(); + mpc8xx_wdt_handler_enable(); +} + +module_init(mpc8xx_wdt_init); +module_exit(mpc8xx_wdt_exit); + +MODULE_AUTHOR("Florian Schirmer "); +MODULE_DESCRIPTION("MPC8xx watchdog driver"); +MODULE_LICENSE("GPL"); diff -urN linux-2.4.23-bk18/drivers/i2c/Config.in linux-2.4.23-bk19/drivers/i2c/Config.in --- linux-2.4.23-bk18/drivers/i2c/Config.in 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/Config.in 2003-12-30 02:50:29.000000000 -0800 @@ -12,15 +12,16 @@ if [ "$CONFIG_I2C_ALGOBIT" != "n" ]; then dep_tristate ' Philips style parallel port adapter' CONFIG_I2C_PHILIPSPAR $CONFIG_I2C_ALGOBIT $CONFIG_PARPORT dep_tristate ' ELV adapter' CONFIG_I2C_ELV $CONFIG_I2C_ALGOBIT - dep_tristate ' Velleman K9000 adapter' CONFIG_I2C_VELLEMAN $CONFIG_I2C_ALGOBIT + dep_tristate ' Velleman K8000 adapter' CONFIG_I2C_VELLEMAN $CONFIG_I2C_ALGOBIT dep_tristate ' NatSemi SCx200 I2C using GPIO pins' CONFIG_SCx200_I2C $CONFIG_SCx200 $CONFIG_I2C_ALGOBIT if [ "$CONFIG_SCx200_I2C" != "n" ]; then int ' GPIO pin used for SCL' CONFIG_SCx200_I2C_SCL 12 int ' GPIO pin used for SDA' CONFIG_SCx200_I2C_SDA 13 fi - dep_tristate ' NatSemi SCx200 ACCESS.bus' CONFIG_SCx200_ACB $CONFIG_I2C fi + dep_tristate 'NatSemi SCx200 ACCESS.bus' CONFIG_SCx200_ACB $CONFIG_I2C + dep_tristate 'I2C PCF 8584 interfaces' CONFIG_I2C_ALGOPCF $CONFIG_I2C if [ "$CONFIG_I2C_ALGOPCF" != "n" ]; then dep_tristate ' Elektor ISA card' CONFIG_I2C_ELEKTOR $CONFIG_I2C_ALGOPCF diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-adap-ite.c linux-2.4.23-bk19/drivers/i2c/i2c-adap-ite.c --- linux-2.4.23-bk18/drivers/i2c/i2c-adap-ite.c 2002-08-02 17:39:44.000000000 -0700 +++ linux-2.4.23-bk19/drivers/i2c/i2c-adap-ite.c 2003-12-30 02:50:29.000000000 -0800 @@ -38,7 +38,6 @@ #include #include #include -#include #include #include #include @@ -61,11 +60,7 @@ static int i2c_debug=0; static struct iic_ite gpi; -#if (LINUX_VERSION_CODE < 0x020301) -static struct wait_queue *iic_wait = NULL; -#else static wait_queue_head_t iic_wait; -#endif static int iic_pending; /* ----- global defines ----------------------------------------------- */ @@ -271,9 +266,6 @@ piic->iic_own = own; iic_ite_data.data = (void *)piic; -#if (LINUX_VERSION_CODE >= 0x020301) - init_waitqueue_head(&iic_wait); -#endif if (iic_hw_resrc_init() == 0) { if (i2c_iic_add_bus(&iic_ite_ops) < 0) return -ENODEV; diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-algo-bit.c linux-2.4.23-bk19/drivers/i2c/i2c-algo-bit.c --- linux-2.4.23-bk18/drivers/i2c/i2c-algo-bit.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-algo-bit.c 2003-12-30 02:50:29.000000000 -0800 @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-algo-ite.c linux-2.4.23-bk19/drivers/i2c/i2c-algo-ite.c --- linux-2.4.23-bk18/drivers/i2c/i2c-algo-ite.c 2001-10-11 08:05:47.000000000 -0700 +++ linux-2.4.23-bk19/drivers/i2c/i2c-algo-ite.c 2003-12-30 02:50:29.000000000 -0800 @@ -38,7 +38,6 @@ #include #include #include -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-algo-pcf.c linux-2.4.23-bk19/drivers/i2c/i2c-algo-pcf.c --- linux-2.4.23-bk18/drivers/i2c/i2c-algo-pcf.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-algo-pcf.c 2003-12-30 02:50:29.000000000 -0800 @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-core.c linux-2.4.23-bk19/drivers/i2c/i2c-core.c --- linux-2.4.23-bk18/drivers/i2c/i2c-core.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-core.c 2003-12-30 02:50:29.000000000 -0800 @@ -33,13 +33,8 @@ /* ----- compatibility stuff ----------------------------------------------- */ -#include #include -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1) -#define init_MUTEX(s) do { *(s) = MUTEX; } while(0) -#endif - #include /* ----- global defines ---------------------------------------------------- */ @@ -84,10 +79,6 @@ static int i2cproc_init(void); static int i2cproc_cleanup(void); -#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,3,27)) -static void monitor_bus_i2c(struct inode *inode, int fill); -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,58)) */ - static ssize_t i2cproc_bus_read(struct file * file, char * buf,size_t count, loff_t *ppos); static int read_bus_i2c(char *buf, char **start, off_t offset, int len, @@ -99,12 +90,6 @@ read: i2cproc_bus_read, }; -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,48)) -static struct inode_operations i2cproc_inode_operations = { - &i2cproc_operations -}; -#endif - static int i2cproc_initialized = 0; #else /* undef CONFIG_PROC_FS */ @@ -164,16 +149,8 @@ goto ERROR1; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,48)) proc_entry->proc_fops = &i2cproc_operations; -#else - proc_entry->ops = &i2cproc_inode_operations; -#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,27)) proc_entry->owner = THIS_MODULE; -#else - proc_entry->fill_inode = &monitor_bus_i2c; -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,58)) */ adap->inode = proc_entry->low_ino; } @@ -611,18 +588,6 @@ #ifdef CONFIG_PROC_FS -#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,3,27)) -/* Monitor access to /proc/bus/i2c*; make unloading i2c-proc impossible - if some process still uses it or some file in it */ -void monitor_bus_i2c(struct inode *inode, int fill) -{ - if (fill) - MOD_INC_USE_COUNT; - else - MOD_DEC_USE_COUNT; -} -#endif /* (LINUX_VERSION_CODE <= KERNEL_VERSION(2,3,37)) */ - /* This function generates the output for /proc/bus/i2c */ int read_bus_i2c(char *buf, char **start, off_t offset, int len, int *eof, void *private) @@ -732,11 +697,7 @@ return -ENOENT; } proc_bus_i2c->read_proc = &read_bus_i2c; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,27)) proc_bus_i2c->owner = THIS_MODULE; -#else - proc_bus_i2c->fill_inode = &monitor_bus_i2c; -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,27)) */ i2cproc_initialized += 2; return 0; } diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-dev.c linux-2.4.23-bk19/drivers/i2c/i2c-dev.c --- linux-2.4.23-bk18/drivers/i2c/i2c-dev.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-dev.c 2003-12-30 02:50:29.000000000 -0800 @@ -35,10 +35,7 @@ #include #include #include -#include -#if LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) #include -#endif /* LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) */ #ifdef CONFIG_DEVFS_FS #include #endif @@ -60,9 +57,6 @@ /* struct file_operations changed too often in the 2.1 series for nice code */ -#if LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,9) -static loff_t i2cdev_lseek (struct file *file, loff_t offset, int origin); -#endif static ssize_t i2cdev_read (struct file *file, char *buf, size_t count, loff_t *offset); static ssize_t i2cdev_write (struct file *file, const char *buf, size_t count, @@ -88,14 +82,8 @@ static int i2cdev_cleanup(void); static struct file_operations i2cdev_fops = { -#if LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) owner: THIS_MODULE, -#endif /* LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) */ -#if LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,9) - llseek: i2cdev_lseek, -#else llseek: no_llseek, -#endif read: i2cdev_read, write: i2cdev_write, ioctl: i2cdev_ioctl, @@ -133,20 +121,6 @@ static int i2cdev_initialized; -#if LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,9) -/* Note that the lseek function is called llseek in 2.1 kernels. But things - are complicated enough as is. */ -loff_t i2cdev_lseek (struct file *file, loff_t offset, int origin) -{ -#ifdef DEBUG - struct inode *inode = file->f_dentry->d_inode; - printk("i2c-dev.o: i2c-%d lseek to %ld bytes relative to %d.\n", - MINOR(inode->i_rdev),(long) offset,origin); -#endif /* DEBUG */ - return -ESPIPE; -} -#endif - static ssize_t i2cdev_read (struct file *file, char *buf, size_t count, loff_t *offset) { @@ -434,9 +408,6 @@ if (i2cdev_adaps[minor]->inc_use) i2cdev_adaps[minor]->inc_use(i2cdev_adaps[minor]); -#if LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,0) - MOD_INC_USE_COUNT; -#endif /* LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,0) */ #ifdef DEBUG printk(KERN_DEBUG "i2c-dev.o: opened i2c-%d\n",minor); @@ -452,16 +423,10 @@ #ifdef DEBUG printk(KERN_DEBUG "i2c-dev.o: Closed: i2c-%d\n", minor); #endif -#if LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,0) - MOD_DEC_USE_COUNT; -#else /* LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) */ lock_kernel(); -#endif /* LINUX_KERNEL_VERSION < KERNEL_VERSION(2,4,0) */ if (i2cdev_adaps[minor]->dec_use) i2cdev_adaps[minor]->dec_use(i2cdev_adaps[minor]); -#if LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) unlock_kernel(); -#endif /* LINUX_KERNEL_VERSION >= KERNEL_VERSION(2,4,0) */ return 0; } diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-elektor.c linux-2.4.23-bk19/drivers/i2c/i2c-elektor.c --- linux-2.4.23-bk18/drivers/i2c/i2c-elektor.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-elektor.c 2003-12-30 02:50:29.000000000 -0800 @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include @@ -55,11 +54,7 @@ in some functions, called from the algo-pcf module. Sometimes it's need to be rewriten - but for now just remove this for simpler reading */ -#if (LINUX_VERSION_CODE < 0x020301) -static struct wait_queue *pcf_wait = NULL; -#else static wait_queue_head_t pcf_wait; -#endif static int pcf_pending; /* ----- global defines ----------------------------------------------- */ @@ -281,9 +276,7 @@ base = DEFAULT_BASE; } -#if (LINUX_VERSION_CODE >= 0x020301) init_waitqueue_head(&pcf_wait); -#endif if (pcf_isa_init() == 0) { if (i2c_pcf_add_bus(&pcf_isa_ops) < 0) return -ENODEV; diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-elv.c linux-2.4.23-bk19/drivers/i2c/i2c-elv.c --- linux-2.4.23-bk18/drivers/i2c/i2c-elv.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-elv.c 2003-12-30 02:50:29.000000000 -0800 @@ -27,7 +27,6 @@ #include #include #include -#include #include #include diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-keywest.c linux-2.4.23-bk19/drivers/i2c/i2c-keywest.c --- linux-2.4.23-bk18/drivers/i2c/i2c-keywest.c 2002-11-28 15:53:13.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-keywest.c 2003-12-30 02:50:29.000000000 -0800 @@ -45,7 +45,6 @@ #include #include -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-philips-par.c linux-2.4.23-bk19/drivers/i2c/i2c-philips-par.c --- linux-2.4.23-bk18/drivers/i2c/i2c-philips-par.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-philips-par.c 2003-12-30 02:50:29.000000000 -0800 @@ -250,41 +250,25 @@ } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,4) static struct parport_driver i2c_driver = { "i2c-philips-par", i2c_parport_attach, i2c_parport_detach, NULL }; -#endif int __init i2c_bitlp_init(void) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,4) - struct parport *port; -#endif printk(KERN_INFO "i2c-philips-par.o: i2c Philips parallel port adapter module version %s (%s)\n", I2C_VERSION, I2C_DATE); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,4) parport_register_driver(&i2c_driver); -#else - for (port = parport_enumerate(); port; port=port->next) - i2c_parport_attach(port); -#endif return 0; } void __exit i2c_bitlp_exit(void) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,4) parport_unregister_driver(&i2c_driver); -#else - struct parport *port; - for (port = parport_enumerate(); port; port=port->next) - i2c_parport_detach(port); -#endif } EXPORT_NO_SYMBOLS; diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-proc.c linux-2.4.23-bk19/drivers/i2c/i2c-proc.c --- linux-2.4.23-bk18/drivers/i2c/i2c-proc.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-proc.c 2003-12-30 02:50:29.000000000 -0800 @@ -23,7 +23,6 @@ This driver puts entries in /proc/sys/dev/sensors for each I2C device */ -#include #include #include #include @@ -63,10 +62,6 @@ static struct i2c_client *i2c_clients[SENSORS_ENTRY_MAX]; static unsigned short i2c_inodes[SENSORS_ENTRY_MAX]; -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1) -static void i2c_fill_inode(struct inode *inode, int fill); -static void i2c_dir_fill_inode(struct inode *inode, int fill); -#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1) */ static ctl_table sysctl_table[] = { {CTL_DEV, "dev", NULL, 0, 0555}, @@ -196,12 +191,7 @@ #endif /* DEBUG */ i2c_inodes[id - 256] = new_header->ctl_table->child->child->de->low_ino; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,27)) new_header->ctl_table->child->child->de->owner = controlling_mod; -#else - new_header->ctl_table->child->child->de->fill_inode = - &i2c_dir_fill_inode; -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,27)) */ return id; } @@ -863,12 +853,7 @@ if (! (i2c_proc_header = register_sysctl_table(i2c_proc, 0))) return -ENOMEM; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,1)) i2c_proc_header->ctl_table->child->de->owner = THIS_MODULE; -#else - i2c_proc_header->ctl_table->child->de->fill_inode = - &i2c_fill_inode; -#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,1)) */ i2c_initialized++; return 0; } diff -urN linux-2.4.23-bk18/drivers/i2c/i2c-velleman.c linux-2.4.23-bk19/drivers/i2c/i2c-velleman.c --- linux-2.4.23-bk18/drivers/i2c/i2c-velleman.c 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/i2c/i2c-velleman.c 2003-12-30 02:50:29.000000000 -0800 @@ -1,5 +1,5 @@ /* ------------------------------------------------------------------------- */ -/* i2c-velleman.c i2c-hw access for Velleman K9000 adapters */ +/* i2c-velleman.c i2c-hw access for Velleman K8000 adapters */ /* ------------------------------------------------------------------------- */ /* Copyright (C) 1995-96, 2000 Simon G. Vogl diff -urN linux-2.4.23-bk18/drivers/net/wan/Config.in linux-2.4.23-bk19/drivers/net/wan/Config.in --- linux-2.4.23-bk18/drivers/net/wan/Config.in 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/Config.in 2003-12-30 02:50:29.000000000 -0800 @@ -78,6 +78,7 @@ comment ' X.25/LAPB support is disabled' fi if [ "$CONFIG_PCI" != "n" ]; then + dep_tristate ' Goramo PCI200SYN support' CONFIG_PCI200SYN $CONFIG_HDLC dep_tristate ' Cyclades-PC300 support (RS-232/V.35, X.21, T1/E1 boards)' CONFIG_PC300 $CONFIG_HDLC if [ "$CONFIG_PC300" != "n" ]; then if [ "$CONFIG_PPP" != "n" -a "$CONFIG_PPP_MULTLINK" != "n" -a "$CONFIG_PPP_SYNCTTY" != "n" -a "$CONFIG_HDLC_PPP" = "y" ]; then @@ -87,14 +88,12 @@ comment ' Refer to the file README.mlppp, provided by PC300 package.' fi fi + dep_tristate ' FarSync T-Series support' CONFIG_FARSYNC $CONFIG_HDLC + fi + if [ "$CONFIG_ISA" != "n" ]; then + dep_tristate ' SDL RISCom/N2 support' CONFIG_N2 $CONFIG_HDLC + dep_tristate ' Moxa C101 support' CONFIG_C101 $CONFIG_HDLC fi - dep_tristate ' SDL RISCom/N2 support' CONFIG_N2 $CONFIG_HDLC - dep_tristate ' Moxa C101 support' CONFIG_C101 $CONFIG_HDLC - dep_tristate ' FarSync T-Series support' CONFIG_FARSYNC $CONFIG_HDLC - bool ' Debug received/transmitted packets' CONFIG_HDLC_DEBUG_PKT - bool ' Debug hard_header routines' CONFIG_HDLC_DEBUG_HARD_HEADER - bool ' Debug FECN/BECN conditions' CONFIG_HDLC_DEBUG_ECN - bool ' Debug RX/TX packet rings' CONFIG_HDLC_DEBUG_RINGS fi tristate ' Frame relay DLCI support' CONFIG_DLCI diff -urN linux-2.4.23-bk18/drivers/net/wan/Makefile linux-2.4.23-bk19/drivers/net/wan/Makefile --- linux-2.4.23-bk18/drivers/net/wan/Makefile 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/Makefile 2003-12-30 02:50:29.000000000 -0800 @@ -80,6 +80,7 @@ endif obj-$(CONFIG_N2) += n2.o obj-$(CONFIG_C101) += c101.o +obj-$(CONFIG_PCI200SYN) += pci200syn.o include $(TOPDIR)/Rules.make diff -urN linux-2.4.23-bk18/drivers/net/wan/c101.c linux-2.4.23-bk19/drivers/net/wan/c101.c --- linux-2.4.23-bk18/drivers/net/wan/c101.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/c101.c 2003-12-30 02:50:29.000000000 -0800 @@ -14,7 +14,6 @@ * Moxa C101 User's Manual */ -#include #include #include #include @@ -33,6 +32,9 @@ static const char* version = "Moxa C101 driver version: 1.14"; static const char* devname = "C101"; +#undef DEBUG_PKT +#define DEBUG_RINGS + #define C101_PAGE 0x1D00 #define C101_DTR 0x1E00 #define C101_SCA 0x1F00 @@ -188,7 +190,7 @@ hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = hdlc_to_port(hdlc); -#ifdef CONFIG_HDLC_DEBUG_RINGS +#ifdef DEBUG_RINGS if (cmd == SIOCDEVPRIVATE) { sca_dump_rings(hdlc); return 0; @@ -297,9 +299,6 @@ card->tx_ring_buffers = TX_RING_BUFFERS; card->rx_ring_buffers = RX_RING_BUFFERS; - printk(KERN_DEBUG "c101: using %u TX + %u RX packets rings\n", - card->tx_ring_buffers, card->rx_ring_buffers); - card->buff_offset = C101_WINDOW_SIZE; /* Bytes 1D00-1FFF reserved */ readb(card->win0base + C101_PAGE); /* Resets SCA? */ @@ -332,6 +331,11 @@ sca_init_sync_port(card); /* Set up C101 memory */ + printk(KERN_INFO "%s: Moxa C101 on IRQ%u," + " using %u TX + %u RX packets rings\n", + hdlc_to_name(&card->hdlc), card->irq, + card->tx_ring_buffers, card->rx_ring_buffers); + *new_card = card; new_card = &card->next_card; return 0; diff -urN linux-2.4.23-bk18/drivers/net/wan/hd64572.h linux-2.4.23-bk19/drivers/net/wan/hd64572.h --- linux-2.4.23-bk18/drivers/net/wan/hd64572.h 2003-12-30 02:50:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hd64572.h 2003-12-30 02:50:29.000000000 -0800 @@ -13,8 +13,8 @@ * */ -#ifndef _HD64572_H -#define _HD64572_H +#ifndef __HD64572_H +#define __HD64572_H /* Illegal Access Register */ #define ILAR 0x00 @@ -49,6 +49,9 @@ #define IR0_M(val, chan) ((val)<<(8*(chan))) /* Int MSCI */ /* MSCI Channel Registers */ +#define MSCI0_OFFSET 0x00 +#define MSCI1_OFFSET 0x80 + #define MD0 0x138 /* Mode reg 0 */ #define MD1 0x139 /* Mode reg 1 */ #define MD2 0x13a /* Mode reg 2 */ @@ -97,6 +100,11 @@ #define RCR 0x156 /* Rx DMA Critical Request Reg */ /* Timer Registers */ +#define TIMER0RX_OFFSET 0x00 +#define TIMER0TX_OFFSET 0x10 +#define TIMER1RX_OFFSET 0x20 +#define TIMER1TX_OFFSET 0x30 + #define TCNTL 0x200 /* Timer Upcounter L */ #define TCNTH 0x201 /* Timer Upcounter H */ #define TCONRL 0x204 /* Timer Constant Register L */ @@ -122,6 +130,11 @@ #define DCR_TX(chan) (0x59 + 2*chan) /* DMA Command Reg (Tx) */ /* DMA Channel Registers */ +#define DMAC0RX_OFFSET 0x00 +#define DMAC0TX_OFFSET 0x20 +#define DMAC1RX_OFFSET 0x40 +#define DMAC1TX_OFFSET 0x60 + #define DARL 0x80 /* Dest Addr Register L (single-block, RX only) */ #define DARH 0x81 /* Dest Addr Register H (single-block, RX only) */ #define DARB 0x82 /* Dest Addr Register B (single-block, RX only) */ @@ -156,7 +169,16 @@ unsigned char filler[5]; /* alignment filler (16 bytes) */ } pcsca_bd_t; -/* +typedef struct { + u32 cp; /* pointer to next block descriptor */ + u32 bp; /* buffer pointer */ + u16 len; /* data length */ + u8 stat; /* status */ + u8 unused; /* pads to 4-byte boundary */ +}pkt_desc; + + +/* Descriptor Status definitions: Bit Transmission Reception @@ -180,6 +202,23 @@ #define DST_SHRT 0x40 /* Short Frame */ #define DST_EOM 0x80 /* End of Message */ +/* Packet Descriptor Status bits */ + +#define ST_TX_EOM 0x80 /* End of frame */ +#define ST_TX_UNDRRUN 0x08 +#define ST_TX_OWNRSHP 0x02 +#define ST_TX_EOT 0x01 /* End of transmition */ + +#define ST_RX_EOM 0x80 /* End of frame */ +#define ST_RX_SHORT 0x40 /* Short frame */ +#define ST_RX_ABORT 0x20 /* Abort */ +#define ST_RX_RESBIT 0x10 /* Residual bit */ +#define ST_RX_OVERRUN 0x08 /* Overrun */ +#define ST_RX_CRC 0x04 /* CRC */ +#define ST_RX_OWNRSHP 0x02 + +#define ST_ERROR_MASK 0x7C + /* Status Counter Registers */ #define CMCR 0x158 /* Counter Master Ctl Reg */ #define TECNTL 0x160 /* Tx EOM Counter L */ @@ -236,11 +275,25 @@ #define MD0_BIT_SYNC 0x80 #define MD0_TRANSP 0xc0 +#define MD0_HDLC 0x80 /* Bit-sync HDLC mode */ + +#define MD0_CRC_NONE 0x00 +#define MD0_CRC_16_0 0x04 +#define MD0_CRC_16 0x05 +#define MD0_CRC_ITU32 0x06 +#define MD0_CRC_ITU 0x07 + #define MD1_NOADDR 0x00 #define MD1_SADDR1 0x40 #define MD1_SADDR2 0x80 #define MD1_DADDR 0xc0 +#define MD2_NRZI_IEEE 0x40 +#define MD2_MANCHESTER 0x80 +#define MD2_FM_MARK 0xA0 +#define MD2_FM_SPACE 0xC0 +#define MD2_LOOPBACK 0x03 /* Local data Loopback */ + #define MD2_F_DUPLEX 0x00 #define MD2_AUTO_ECHO 0x01 #define MD2_LOOP_HI_Z 0x02 @@ -264,6 +317,10 @@ #define CTL_URSKP 0x40 #define CTL_URCT 0x80 +#define CTL_NORTS 0x01 +#define CTL_NODTR 0x02 +#define CTL_IDLE 0x10 + #define RXS_BR0 0x01 #define RXS_BR1 0x02 #define RXS_BR2 0x04 @@ -292,6 +349,12 @@ #define EXS_TES1 0x20 #define EXS_TES2 0x40 +#define CLK_BRG_MASK 0x0F +#define CLK_PIN_OUT 0x80 +#define CLK_LINE 0x00 /* clock line input */ +#define CLK_BRG 0x40 /* internal baud rate generator */ +#define CLK_TX_RXCLK 0x60 /* TX clock from RX clock */ + #define CMD_RX_RST 0x11 #define CMD_RX_ENA 0x12 #define CMD_RX_DIS 0x13 @@ -314,6 +377,10 @@ #define CMD_SRCH_MODE 0x31 #define CMD_NOP 0x00 +#define CMD_RESET 0x21 +#define CMD_TX_ENABLE 0x02 +#define CMD_RX_ENABLE 0x12 + #define ST0_RXRDY 0x01 #define ST0_TXRDY 0x02 #define ST0_RXINTB 0x20 @@ -364,6 +431,8 @@ #define IE0_RXINTB 0x20 #define IE0_RXINTA 0x40 #define IE0_TXINT 0x80 +#define IE0_UDRN 0x00008000 /* TX underrun MSCI interrupt enable */ +#define IE0_CDCD 0x00000400 /* CD level change interrupt enable */ #define IE1_IDLD 0x01 #define IE1_ABTD 0x02 @@ -414,14 +483,28 @@ #define DIR_EOM 0x40 #define DIR_EOT 0x80 +#define DIR_REFE 0x04 +#define DIR_UDRFE 0x04 +#define DIR_COAE 0x08 +#define DIR_COFE 0x10 +#define DIR_BOFE 0x20 +#define DIR_EOME 0x40 +#define DIR_EOTE 0x80 + #define DMR_CNTE 0x02 #define DMR_NF 0x04 #define DMR_SEOME 0x08 #define DMR_TMOD 0x10 +#define DMER_DME 0x80 /* DMA Master Enable */ + #define DCR_SW_ABT 0x01 #define DCR_FCT_CLR 0x02 +#define DCR_ABORT 0x01 +#define DCR_CLEAR_EOF 0x02 + +#define PCR_COTE 0x80 #define PCR_PR0 0x01 #define PCR_PR1 0x02 #define PCR_PR2 0x04 @@ -430,4 +513,4 @@ #define PCR_OSB 0x40 #define PCR_BURST 0x80 -#endif /* (_HD64572_H) */ +#endif /* (__HD64572_H) */ diff -urN linux-2.4.23-bk18/drivers/net/wan/hd6457x.c linux-2.4.23-bk19/drivers/net/wan/hd6457x.c --- linux-2.4.23-bk18/drivers/net/wan/hd6457x.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hd6457x.c 2003-12-30 02:50:29.000000000 -0800 @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include @@ -255,9 +254,6 @@ card_t* card = port_to_card(port); u8 stat = sca_in(msci + ST1, card); /* read MSCI ST1 status */ - /* printk(KERN_DEBUG "MSCI INT: ST1=%02X ILAR=%02X\n", - stat, sca_in(ILAR, card)); */ - /* Reset MSCI TX underrun status bit */ sca_out(stat & ST1_UDRN, msci + ST1, card); @@ -307,7 +303,7 @@ openwin(card, 0); #endif skb_put(skb, len); -#ifdef CONFIG_HDLC_DEBUG_PKT +#ifdef DEBUG_PKT printk(KERN_DEBUG "%s RX(%i):", hdlc_to_name(&port->hdlc), skb->len); debug_frame(skb); #endif @@ -557,7 +553,7 @@ #endif /* We're using the following interrupts: - - TXINT (DMAC completed all transmisions, underflow or CTS change) + - TXINT (DMAC completed all transmisions, underrun or DCD change) - all DMA interrupts */ @@ -633,7 +629,7 @@ -#ifdef CONFIG_HDLC_DEBUG_RINGS +#ifdef DEBUG_RINGS static void sca_dump_rings(hdlc_device *hdlc) { port_t *port = hdlc_to_port(hdlc); @@ -648,30 +644,26 @@ openwin(card, 0); #endif - printk(KERN_ERR "RX ring: CDA=%u EDA=%u DSR=%02X in=%u %sactive", + printk(KERN_DEBUG "RX ring: CDA=%u EDA=%u DSR=%02X in=%u %sactive", sca_ina(get_dmac_rx(port) + CDAL, card), sca_ina(get_dmac_rx(port) + EDAL, card), - sca_in(DSR_RX(phy_node(port)), card), - port->rxin, + sca_in(DSR_RX(phy_node(port)), card), port->rxin, sca_in(DSR_RX(phy_node(port)), card) & DSR_DE?"":"in"); for (cnt = 0; cnt < port_to_card(port)->rx_ring_buffers; cnt++) - printk(" %02X", - readb(&(desc_address(port, cnt, 0)->stat))); + printk(" %02X", readb(&(desc_address(port, cnt, 0)->stat))); - printk("\n" KERN_ERR "TX ring: CDA=%u EDA=%u DSR=%02X in=%u " + printk("\n" KERN_DEBUG "TX ring: CDA=%u EDA=%u DSR=%02X in=%u " "last=%u %sactive", sca_ina(get_dmac_tx(port) + CDAL, card), sca_ina(get_dmac_tx(port) + EDAL, card), - sca_in(DSR_TX(phy_node(port)), card), port->txin, - port->txlast, + sca_in(DSR_TX(phy_node(port)), card), port->txin, port->txlast, sca_in(DSR_TX(phy_node(port)), card) & DSR_DE ? "" : "in"); for (cnt = 0; cnt < port_to_card(port)->tx_ring_buffers; cnt++) - printk(" %02X", - readb(&(desc_address(port, cnt, 1)->stat))); + printk(" %02X", readb(&(desc_address(port, cnt, 1)->stat))); printk("\n"); - printk(KERN_ERR "MSCI: MD: %02x %02x %02x, " + printk(KERN_DEBUG "MSCI: MD: %02x %02x %02x, " "ST: %02x %02x %02x %02x" #ifdef __HD64572_H " %02x" @@ -692,14 +684,14 @@ sca_in(get_msci(port) + CST1, card)); #ifdef __HD64572_H - printk(KERN_ERR "ILAR: %02x\n", sca_in(ILAR, card)); + printk(KERN_DEBUG "ILAR: %02x\n", sca_in(ILAR, card)); #endif #if !defined(PAGE0_ALWAYS_MAPPED) && !defined(ALL_PAGES_ALWAYS_MAPPED) openwin(card, page); /* Restore original page */ #endif } -#endif /* CONFIG_HDLC_DEBUG_RINGS */ +#endif /* DEBUG_RINGS */ @@ -720,7 +712,7 @@ desc = desc_address(port, port->txin + 1, 1); if (readb(&desc->stat)) { /* allow 1 packet gap */ /* should never happen - previous xmit should stop queue */ -#ifdef CONFIG_HDLC_DEBUG_PKT +#ifdef DEBUG_PKT printk(KERN_DEBUG "%s: transmitter buffer full\n", dev->name); #endif netif_stop_queue(dev); @@ -728,7 +720,7 @@ return 1; /* request packet to be queued */ } -#ifdef CONFIG_HDLC_DEBUG_PKT +#ifdef DEBUG_PKT printk(KERN_DEBUG "%s TX(%i):", hdlc_to_name(hdlc), skb->len); debug_frame(skb); #endif diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_cisco.c linux-2.4.23-bk19/drivers/net/wan/hdlc_cisco.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_cisco.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_cisco.c 2003-12-30 02:50:29.000000000 -0800 @@ -9,7 +9,6 @@ * as published by the Free Software Foundation. */ -#include #include #include #include @@ -24,6 +23,7 @@ #include #include +#undef DEBUG_HARD_HEADER #define CISCO_MULTICAST 0x8F /* Cisco multicast address */ #define CISCO_UNICAST 0x0F /* Cisco unicast address */ @@ -39,7 +39,7 @@ unsigned int len) { hdlc_header *data; -#ifdef CONFIG_HDLC_DEBUG_HARD_HEADER +#ifdef DEBUG_HARD_HEADER printk(KERN_DEBUG "%s: cisco_hard_header called\n", dev->name); #endif @@ -182,7 +182,7 @@ case CISCO_KEEPALIVE_REQ: hdlc->state.cisco.rxseq = ntohl(cisco_data->par1); - if (ntohl(cisco_data->par2) == hdlc->state.cisco.txseq) { + if (ntohl(cisco_data->par2)==hdlc->state.cisco.txseq) { hdlc->state.cisco.last_poll = jiffies; if (!hdlc->state.cisco.up) { u32 sec, min, hrs, days; @@ -219,8 +219,7 @@ { hdlc_device *hdlc = (hdlc_device*)arg; - if (hdlc->state.cisco.up && - jiffies - hdlc->state.cisco.last_poll >= + if (hdlc->state.cisco.up && jiffies - hdlc->state.cisco.last_poll >= hdlc->state.cisco.settings.timeout * HZ) { hdlc->state.cisco.up = 0; printk(KERN_INFO "%s: Link down\n", hdlc_to_name(hdlc)); @@ -281,10 +280,10 @@ return 0; case IF_PROTO_CISCO: - if(!capable(CAP_NET_ADMIN)) + if (!capable(CAP_NET_ADMIN)) return -EPERM; - if(dev->flags & IFF_UP) + if (dev->flags & IFF_UP) return -EBUSY; if (copy_from_user(&new_settings, cisco_s, size)) diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_fr.c linux-2.4.23-bk19/drivers/net/wan/hdlc_fr.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_fr.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_fr.c 2003-12-30 02:50:29.000000000 -0800 @@ -19,7 +19,6 @@ -> 1 when "PVC up" and (exist,new) = 1,0 */ -#include #include #include #include @@ -36,12 +35,95 @@ #include #include +#undef DEBUG_PKT +#undef DEBUG_ECN -__inline__ pvc_device* find_pvc(hdlc_device *hdlc, u16 dlci) +#define MAXLEN_LMISTAT 20 /* max size of status enquiry frame */ + +#define PVC_STATE_NEW 0x01 +#define PVC_STATE_ACTIVE 0x02 +#define PVC_STATE_FECN 0x08 /* FECN condition */ +#define PVC_STATE_BECN 0x10 /* BECN condition */ + + +#define FR_UI 0x03 +#define FR_PAD 0x00 + +#define NLPID_IP 0xCC +#define NLPID_IPV6 0x8E +#define NLPID_SNAP 0x80 +#define NLPID_PAD 0x00 +#define NLPID_Q933 0x08 + + +#define LMI_DLCI 0 /* LMI DLCI */ +#define LMI_PROTO 0x08 +#define LMI_CALLREF 0x00 /* Call Reference */ +#define LMI_ANSI_LOCKSHIFT 0x95 /* ANSI lockshift */ +#define LMI_REPTYPE 1 /* report type */ +#define LMI_CCITT_REPTYPE 0x51 +#define LMI_ALIVE 3 /* keep alive */ +#define LMI_CCITT_ALIVE 0x53 +#define LMI_PVCSTAT 7 /* pvc status */ +#define LMI_CCITT_PVCSTAT 0x57 +#define LMI_FULLREP 0 /* full report */ +#define LMI_INTEGRITY 1 /* link integrity report */ +#define LMI_SINGLE 2 /* single pvc report */ +#define LMI_STATUS_ENQUIRY 0x75 +#define LMI_STATUS 0x7D /* reply */ + +#define LMI_REPT_LEN 1 /* report type element length */ +#define LMI_INTEG_LEN 2 /* link integrity element length */ + +#define LMI_LENGTH 13 /* standard LMI frame length */ +#define LMI_ANSI_LENGTH 14 + + +typedef struct { +#if defined(__LITTLE_ENDIAN_BITFIELD) + unsigned ea1: 1; + unsigned cr: 1; + unsigned dlcih: 6; + + unsigned ea2: 1; + unsigned de: 1; + unsigned becn: 1; + unsigned fecn: 1; + unsigned dlcil: 4; +#else + unsigned dlcih: 6; + unsigned cr: 1; + unsigned ea1: 1; + + unsigned dlcil: 4; + unsigned fecn: 1; + unsigned becn: 1; + unsigned de: 1; + unsigned ea2: 1; +#endif +}__attribute__ ((packed)) fr_hdr; + + +static inline u16 q922_to_dlci(u8 *hdr) +{ + return ((hdr[0] & 0xFC) << 2) | ((hdr[1] & 0xF0) >> 4); +} + + + +static inline void dlci_to_q922(u8 *hdr, u16 dlci) +{ + hdr[0] = (dlci >> 2) & 0xFC; + hdr[1] = ((dlci << 4) & 0xF0) | 0x01; +} + + + +static inline pvc_device* find_pvc(hdlc_device *hdlc, u16 dlci) { pvc_device *pvc = hdlc->state.fr.first_pvc; - while(pvc) { + while (pvc) { if (pvc->dlci == dlci) return pvc; if (pvc->dlci > dlci) @@ -53,15 +135,15 @@ } -__inline__ pvc_device* add_pvc(hdlc_device *hdlc, u16 dlci) +static inline pvc_device* add_pvc(hdlc_device *hdlc, u16 dlci) { pvc_device *pvc, **pvc_p = &hdlc->state.fr.first_pvc; - while(*pvc_p) { + while (*pvc_p) { if ((*pvc_p)->dlci == dlci) return *pvc_p; if ((*pvc_p)->dlci > dlci) - break; /* the listed is sorted */ + break; /* the list is sorted */ pvc_p = &(*pvc_p)->next; } @@ -78,17 +160,17 @@ } -__inline__ int pvc_is_used(pvc_device *pvc) +static inline int pvc_is_used(pvc_device *pvc) { return pvc->main != NULL || pvc->ether != NULL; } -__inline__ void delete_unused_pvcs(hdlc_device *hdlc) +static inline void delete_unused_pvcs(hdlc_device *hdlc) { pvc_device **pvc_p = &hdlc->state.fr.first_pvc; - while(*pvc_p) { + while (*pvc_p) { if (!pvc_is_used(*pvc_p)) { pvc_device *pvc = *pvc_p; *pvc_p = pvc->next; @@ -100,7 +182,7 @@ } -__inline__ struct net_device** get_dev_p(pvc_device *pvc, int type) +static inline struct net_device** get_dev_p(pvc_device *pvc, int type) { if (type == ARPHRD_ETHER) return &pvc->ether; @@ -109,20 +191,19 @@ } -__inline__ u16 status_to_dlci(u8 *status, int *active, int *new) +static inline u16 status_to_dlci(u8 *status, int *active, int *new) { *new = (status[2] & 0x08) ? 1 : 0; *active = (status[2] & 0x02) ? 1 : 0; - return ((status[0] & 0x3F)<<4) | ((status[1] & 0x78)>>3); + return ((status[0] & 0x3F) << 4) | ((status[1] & 0x78) >> 3); } -__inline__ void dlci_to_status(u16 dlci, u8 *status, - int active, int new) +static inline void dlci_to_status(u16 dlci, u8 *status, int active, int new) { - status[0] = (dlci>>4) & 0x3F; - status[1] = ((dlci<<3) & 0x78) | 0x80; + status[0] = (dlci >> 4) & 0x3F; + status[1] = ((dlci << 3) & 0x78) | 0x80; status[2] = 0x80; if (new) @@ -138,7 +219,7 @@ u16 head_len; struct sk_buff *skb = *skb_p; - switch(skb->protocol) { + switch (skb->protocol) { case __constant_ntohs(ETH_P_IP): head_len = 4; skb_push(skb, head_len); @@ -260,7 +341,7 @@ } -__inline__ struct net_device_stats *pvc_get_stats(struct net_device *dev) +static inline struct net_device_stats *pvc_get_stats(struct net_device *dev) { return (struct net_device_stats *) ((char *)dev + sizeof(struct net_device)); @@ -632,8 +713,7 @@ pvc->state.exist = 1; pvc->state.deleted = 0; if (active != pvc->state.active || - new != pvc->state.new || - !pvc->state.exist) { + new != pvc->state.new) { pvc->state.new = new; pvc->state.active = active; fr_log_dlci_active(pvc); @@ -699,7 +779,7 @@ pvc = find_pvc(hdlc, dlci); if (!pvc) { -#ifdef CONFIG_HDLC_DEBUG_PKT +#ifdef DEBUG_PKT printk(KERN_INFO "%s: No PVC for received frame's DLCI %d\n", hdlc_to_name(hdlc), dlci); #endif @@ -708,7 +788,7 @@ } if (pvc->state.fecn != fh->fecn) { -#ifdef CONFIG_HDLC_DEBUG_ECN +#ifdef DEBUG_ECN printk(KERN_DEBUG "%s: DLCI %d FECN O%s\n", hdlc_to_name(pvc), dlci, fh->fecn ? "N" : "FF"); #endif @@ -716,7 +796,7 @@ } if (pvc->state.becn != fh->becn) { -#ifdef CONFIG_HDLC_DEBUG_ECN +#ifdef DEBUG_ECN printk(KERN_DEBUG "%s: DLCI %d BECN O%s\n", hdlc_to_name(pvc), dlci, fh->becn ? "N" : "FF"); #endif @@ -820,7 +900,7 @@ if (hdlc->state.fr.settings.lmi != LMI_NONE) del_timer_sync(&hdlc->state.fr.timer); - while(pvc) { /* Shutdown all PVCs for this FRAD */ + while (pvc) { /* Shutdown all PVCs for this FRAD */ if (pvc->main) dev_close(pvc->main); if (pvc->ether) @@ -941,7 +1021,7 @@ static void fr_destroy(hdlc_device *hdlc) { pvc_device *pvc = hdlc->state.fr.first_pvc; - while(pvc) { + while (pvc) { pvc_device *next = pvc->next; if (pvc->main) { unregister_netdevice(pvc->main); diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_generic.c linux-2.4.23-bk19/drivers/net/wan/hdlc_generic.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_generic.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_generic.c 2003-12-30 02:50:29.000000000 -0800 @@ -33,7 +33,7 @@ #include -static const char* version = "HDLC support module revision 1.14"; +static const char* version = "HDLC support module revision 1.14b"; static int hdlc_change_mtu(struct net_device *dev, int new_mtu) @@ -145,7 +145,7 @@ hdlc->proto_detach = NULL; result = dev_alloc_name(dev, "hdlc%d"); - if (result<0) + if (result < 0) return result; result = register_netdev(dev); @@ -177,8 +177,7 @@ EXPORT_SYMBOL(register_hdlc_device); EXPORT_SYMBOL(unregister_hdlc_device); -struct packet_type hdlc_packet_type= -{ +static struct packet_type hdlc_packet_type = { __constant_htons(ETH_P_HDLC), NULL, hdlc_rcv, diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_ppp.c linux-2.4.23-bk19/drivers/net/wan/hdlc_ppp.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_ppp.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_ppp.c 2003-12-30 02:50:29.000000000 -0800 @@ -9,7 +9,6 @@ * as published by the Free Software Foundation. */ -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_raw.c linux-2.4.23-bk19/drivers/net/wan/hdlc_raw.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_raw.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_raw.c 2003-12-30 02:50:29.000000000 -0800 @@ -9,7 +9,6 @@ * as published by the Free Software Foundation. */ -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_raw_eth.c linux-2.4.23-bk19/drivers/net/wan/hdlc_raw_eth.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_raw_eth.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_raw_eth.c 2003-12-30 02:50:29.000000000 -0800 @@ -9,7 +9,6 @@ * as published by the Free Software Foundation. */ -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/net/wan/hdlc_x25.c linux-2.4.23-bk19/drivers/net/wan/hdlc_x25.c --- linux-2.4.23-bk18/drivers/net/wan/hdlc_x25.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/hdlc_x25.c 2003-12-30 02:50:29.000000000 -0800 @@ -9,7 +9,6 @@ * as published by the Free Software Foundation. */ -#include #include #include #include diff -urN linux-2.4.23-bk18/drivers/net/wan/n2.c linux-2.4.23-bk19/drivers/net/wan/n2.c --- linux-2.4.23-bk18/drivers/net/wan/n2.c 2003-11-28 10:26:20.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/n2.c 2003-12-30 02:50:29.000000000 -0800 @@ -16,7 +16,6 @@ * SDL Inc. PPP/HDLC/CISCO driver */ -#include #include #include #include @@ -36,6 +35,9 @@ static const char* version = "SDL RISCom/N2 driver version: 1.14"; static const char* devname = "RISCom/N2"; +#undef DEBUG_PKT +#define DEBUG_RINGS + #define USE_WINDOWSIZE 16384 #define USE_BUS16BITS 1 #define CLOCK_BASE 9830400 /* 9.8304 MHz */ @@ -257,7 +259,7 @@ hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = hdlc_to_port(hdlc); -#ifdef CONFIG_HDLC_DEBUG_RINGS +#ifdef DEBUG_RINGS if (cmd == SIOCDEVPRIVATE) { sca_dump_rings(hdlc); return 0; @@ -415,7 +417,7 @@ card->buff_offset = (valid0 + valid1) * sizeof(pkt_desc) * (card->tx_ring_buffers + card->rx_ring_buffers); - printk(KERN_DEBUG "n2: RISCom/N2 %u KB RAM, IRQ%u, " + printk(KERN_INFO "n2: RISCom/N2 %u KB RAM, IRQ%u, " "using %u TX + %u RX packets rings\n", card->ram_size / 1024, card->irq, card->tx_ring_buffers, card->rx_ring_buffers); @@ -446,7 +448,7 @@ spin_lock_init(&port->lock); dev->irq = irq; dev->mem_start = winbase; - dev->mem_end = winbase + USE_WINDOWSIZE-1; + dev->mem_end = winbase + USE_WINDOWSIZE - 1; dev->tx_queue_len = 50; dev->do_ioctl = n2_ioctl; dev->open = n2_open; diff -urN linux-2.4.23-bk18/drivers/net/wan/pci200syn.c linux-2.4.23-bk19/drivers/net/wan/pci200syn.c --- linux-2.4.23-bk18/drivers/net/wan/pci200syn.c 1969-12-31 16:00:00.000000000 -0800 +++ linux-2.4.23-bk19/drivers/net/wan/pci200syn.c 2003-12-30 02:50:29.000000000 -0800 @@ -0,0 +1,476 @@ +/* + * Goramo PCI200SYN synchronous serial card driver for Linux + * + * Copyright (C) 2002-2003 Krzysztof Halasa + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + * + * For information see http://hq.pm.waw.pl/hdlc/ + * + * Sources of information: + * Hitachi HD64572 SCA-II User's Manual + * PLX Technology Inc. PCI9052 Data Book + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hd64572.h" + +static const char* version = "Goramo PCI200SYN driver version: 1.14c"; +static const char* devname = "PCI200SYN"; + +#undef DEBUG_PKT +#define DEBUG_RINGS + +#define PCI200SYN_PLX_SIZE 0x80 /* PLX control window size (128b) */ +#define PCI200SYN_SCA_SIZE 0x400 /* SCA window size (1Kb) */ +#define ALL_PAGES_ALWAYS_MAPPED +#define NEED_DETECT_RAM +#define MAX_TX_BUFFERS 10 + +static int pci_clock_freq = 33000000; +#define CLOCK_BASE pci_clock_freq + +#define PCI_VENDOR_ID_GORAMO 0x10B5 /* uses PLX:9050 ID - this card */ +#define PCI_DEVICE_ID_PCI200SYN 0x9050 /* doesn't have its own ID */ + + +/* + * PLX PCI9052 local configuration and shared runtime registers. + * This structure can be used to access 9052 registers (memory mapped). + */ +typedef struct { + u32 loc_addr_range[4]; /* 00-0Ch : Local Address Ranges */ + u32 loc_rom_range; /* 10h : Local ROM Range */ + u32 loc_addr_base[4]; /* 14-20h : Local Address Base Addrs */ + u32 loc_rom_base; /* 24h : Local ROM Base */ + u32 loc_bus_descr[4]; /* 28-34h : Local Bus Descriptors */ + u32 rom_bus_descr; /* 38h : ROM Bus Descriptor */ + u32 cs_base[4]; /* 3C-48h : Chip Select Base Addrs */ + u32 intr_ctrl_stat; /* 4Ch : Interrupt Control/Status */ + u32 init_ctrl; /* 50h : EEPROM ctrl, Init Ctrl, etc */ +}plx9052; + + + +typedef struct port_s { + hdlc_device hdlc; /* HDLC device struct - must be first */ + struct card_s *card; + spinlock_t lock; /* TX lock */ + sync_serial_settings settings; + int rxpart; /* partial frame received, next frame invalid*/ + unsigned short encoding; + unsigned short parity; + u16 rxin; /* rx ring buffer 'in' pointer */ + u16 txin; /* tx ring buffer 'in' and 'last' pointers */ + u16 txlast; + u8 rxs, txs, tmc; /* SCA registers */ + u8 phy_node; /* physical port # - 0 or 1 */ +}port_t; + + + +typedef struct card_s { + u8* rambase; /* buffer memory base (virtual) */ + u8* scabase; /* SCA memory base (virtual) */ + plx9052* plxbase; /* PLX registers memory base (virtual) */ + u16 rx_ring_buffers; /* number of buffers in a ring */ + u16 tx_ring_buffers; + u16 buff_offset; /* offset of first buffer of first channel */ + u8 irq; /* interrupt request level */ + + port_t ports[2]; +}card_t; + + +#define sca_in(reg, card) readb(card->scabase + (reg)) +#define sca_out(value, reg, card) writeb(value, card->scabase + (reg)) +#define sca_inw(reg, card) readw(card->scabase + (reg)) +#define sca_outw(value, reg, card) writew(value, card->scabase + (reg)) +#define sca_inl(reg, card) readl(card->scabase + (reg)) +#define sca_outl(value, reg, card) writel(value, card->scabase + (reg)) + +#define port_to_card(port) (port->card) +#define log_node(port) (port->phy_node) +#define phy_node(port) (port->phy_node) +#define winbase(card) (card->rambase) +#define get_port(card, port) (&card->ports[port]) +#define sca_flush(card) (sca_in(IER0, card)); + +static inline void new_memcpy_toio(char *dest, char *src, int length) +{ + int len; + do { + len = length > 256 ? 256 : length; + memcpy_toio(dest, src, len); + dest += len; + src += len; + length -= len; + readb(dest); + } while (len); +} + +#undef memcpy_toio +#define memcpy_toio new_memcpy_toio + +#include "hd6457x.c" + + +static void pci200_set_iface(port_t *port) +{ + card_t *card = port->card; + u16 msci = get_msci(port); + u8 rxs = port->rxs & CLK_BRG_MASK; + u8 txs = port->txs & CLK_BRG_MASK; + + sca_out(EXS_TES1, (phy_node(port) ? MSCI1_OFFSET : MSCI0_OFFSET) + EXS, + port_to_card(port)); + switch(port->settings.clock_type) { + case CLOCK_INT: + rxs |= CLK_BRG; /* BRG output */ + txs |= CLK_PIN_OUT | CLK_TX_RXCLK; /* RX clock */ + break; + + case CLOCK_TXINT: + rxs |= CLK_LINE; /* RXC input */ + txs |= CLK_PIN_OUT | CLK_BRG; /* BRG output */ + break; + + case CLOCK_TXFROMRX: + rxs |= CLK_LINE; /* RXC input */ + txs |= CLK_PIN_OUT | CLK_TX_RXCLK; /* RX clock */ + break; + + default: /* EXTernal clock */ + rxs |= CLK_LINE; /* RXC input */ + txs |= CLK_PIN_OUT | CLK_LINE; /* TXC input */ + break; + } + + port->rxs = rxs; + port->txs = txs; + sca_out(rxs, msci + RXS, card); + sca_out(txs, msci + TXS, card); + sca_set_port(port); +} + + + +static int pci200_open(struct net_device *dev) +{ + hdlc_device *hdlc = dev_to_hdlc(dev); + port_t *port = hdlc_to_port(hdlc); + + int result = hdlc_open(hdlc); + if (result) + return result; + + MOD_INC_USE_COUNT; + sca_open(hdlc); + pci200_set_iface(port); + sca_flush(port_to_card(port)); + return 0; +} + + + +static int pci200_close(struct net_device *dev) +{ + hdlc_device *hdlc = dev_to_hdlc(dev); + sca_close(hdlc); + sca_flush(port_to_card(dev_to_port(dev))); + hdlc_close(hdlc); + MOD_DEC_USE_COUNT; + return 0; +} + + + +static int pci200_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) +{ + const size_t size = sizeof(sync_serial_settings); + sync_serial_settings new_line, *line = ifr->ifr_settings.ifs_ifsu.sync; + hdlc_device *hdlc = dev_to_hdlc(dev); + port_t *port = hdlc_to_port(hdlc); + +#ifdef DEBUG_RINGS + if (cmd == SIOCDEVPRIVATE) { + sca_dump_rings(hdlc); + return 0; + } +#endif + if (cmd != SIOCWANDEV) + return hdlc_ioctl(dev, ifr, cmd); + + switch(ifr->ifr_settings.type) { + case IF_GET_IFACE: + ifr->ifr_settings.type = IF_IFACE_V35; + if (ifr->ifr_settings.size < size) { + ifr->ifr_settings.size = size; /* data size wanted */ + return -ENOBUFS; + } + if (copy_to_user(line, &port->settings, size)) + return -EFAULT; + return 0; + + case IF_IFACE_V35: + case IF_IFACE_SYNC_SERIAL: + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + + if (copy_from_user(&new_line, line, size)) + return -EFAULT; + + if (new_line.clock_type != CLOCK_EXT && + new_line.clock_type != CLOCK_TXFROMRX && + new_line.clock_type != CLOCK_INT && + new_line.clock_type != CLOCK_TXINT) + return -EINVAL; /* No such clock setting */ + + if (new_line.loopback != 0 && new_line.loopback != 1) + return -EINVAL; + + memcpy(&port->settings, &new_line, size); /* Update settings */ + pci200_set_iface(port); + sca_flush(port_to_card(port)); + return 0; + + default: + return hdlc_ioctl(dev, ifr, cmd); + } +} + + + +static void pci200_pci_remove_one(struct pci_dev *pdev) +{ + int i; + card_t *card = pci_get_drvdata(pdev); + + for(i = 0; i < 2; i++) + if (card->ports[i].card) + unregister_hdlc_device(&card->ports[i].hdlc); + + if (card->irq) + free_irq(card->irq, card); + + if (card->rambase) + iounmap(card->rambase); + if (card->scabase) + iounmap(card->scabase); + if (card->plxbase) + iounmap(card->plxbase); + + pci_release_regions(pdev); + pci_disable_device(pdev); + pci_set_drvdata(pdev, NULL); + kfree(card); +} + + + +static int __devinit pci200_pci_init_one(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + card_t *card; + u8 rev_id; + u32 *p; + int i; + u32 ramsize; + u32 ramphys; /* buffer memory base */ + u32 scaphys; /* SCA memory base */ + u32 plxphys; /* PLX registers memory base */ + +#ifndef MODULE + static int printed_version; + if (!printed_version++) + printk(KERN_INFO "%s\n", version); +#endif + + i = pci_enable_device(pdev); + if (i) + return i; + + i = pci_request_regions(pdev, "PCI200SYN"); + if (i) { + pci_disable_device(pdev); + return i; + } + + card = kmalloc(sizeof(card_t), GFP_KERNEL); + if (card == NULL) { + printk(KERN_ERR "pci200syn: unable to allocate memory\n"); + pci_release_regions(pdev); + pci_disable_device(pdev); + return -ENOBUFS; + } + memset(card, 0, sizeof(card_t)); + pci_set_drvdata(pdev, card); + + pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id); + if (pci_resource_len(pdev, 0) != PCI200SYN_PLX_SIZE || + pci_resource_len(pdev, 2) != PCI200SYN_SCA_SIZE || + pci_resource_len(pdev, 3) < 16384) { + printk(KERN_ERR "pci200syn: invalid card EEPROM parameters\n"); + pci200_pci_remove_one(pdev); + return -EFAULT; + } + + plxphys = pci_resource_start(pdev,0) & PCI_BASE_ADDRESS_MEM_MASK; + card->plxbase = ioremap(plxphys, PCI200SYN_PLX_SIZE); + + scaphys = pci_resource_start(pdev,2) & PCI_BASE_ADDRESS_MEM_MASK; + card->scabase = ioremap(scaphys, PCI200SYN_SCA_SIZE); + + ramphys = pci_resource_start(pdev,3) & PCI_BASE_ADDRESS_MEM_MASK; + card->rambase = ioremap(ramphys, pci_resource_len(pdev,3)); + + if (card->plxbase == NULL || + card->scabase == NULL || + card->rambase == NULL) { + printk(KERN_ERR "pci200syn: ioremap() failed\n"); + pci200_pci_remove_one(pdev); + } + + /* Reset PLX */ + p = &card->plxbase->init_ctrl; + writel(readl(p) | 0x40000000, p); + readl(p); /* Flush the write - do not use sca_flush */ + udelay(1); + + writel(readl(p) & ~0x40000000, p); + readl(p); /* Flush the write - do not use sca_flush */ + udelay(1); + + ramsize = sca_detect_ram(card, card->rambase, + pci_resource_len(pdev, 3)); + + /* number of TX + RX buffers for one port - this is dual port card */ + i = ramsize / (2 * (sizeof(pkt_desc) + HDLC_MAX_MRU)); + card->tx_ring_buffers = min(i / 2, MAX_TX_BUFFERS); + card->rx_ring_buffers = i - card->tx_ring_buffers; + + card->buff_offset = 2 * sizeof(pkt_desc) * (card->tx_ring_buffers + + card->rx_ring_buffers); + + printk(KERN_INFO "pci200syn: %u KB RAM at 0x%x, IRQ%u, using %u TX +" + " %u RX packets rings\n", ramsize / 1024, ramphys, + pdev->irq, card->tx_ring_buffers, card->rx_ring_buffers); + + if (card->tx_ring_buffers < 1) { + printk(KERN_ERR "pci200syn: RAM test failed\n"); + pci200_pci_remove_one(pdev); + return -EFAULT; + } + + /* Enable interrupts on the PCI bridge */ + p = &card->plxbase->intr_ctrl_stat; + writew(readw(p) | 0x0040, p); + + /* Allocate IRQ */ + if (request_irq(pdev->irq, sca_intr, SA_SHIRQ, devname, card)) { + printk(KERN_WARNING "pci200syn: could not allocate IRQ%d.\n", + pdev->irq); + pci200_pci_remove_one(pdev); + return -EBUSY; + } + card->irq = pdev->irq; + + sca_init(card, 0); + + for(i = 0; i < 2; i++) { + port_t *port = &card->ports[i]; + struct net_device *dev = hdlc_to_dev(&port->hdlc); + port->phy_node = i; + + spin_lock_init(&port->lock); + SET_MODULE_OWNER(dev); + dev->irq = card->irq; + dev->mem_start = ramphys; + dev->mem_end = ramphys + ramsize - 1; + dev->tx_queue_len = 50; + dev->do_ioctl = pci200_ioctl; + dev->open = pci200_open; + dev->stop = pci200_close; + port->hdlc.attach = sca_attach; + port->hdlc.xmit = sca_xmit; + port->settings.clock_type = CLOCK_EXT; + if (register_hdlc_device(&port->hdlc)) { + printk(KERN_ERR "pci200syn: unable to register hdlc " + "device\n"); + pci200_pci_remove_one(pdev); + return -ENOBUFS; + } + port->card = card; + sca_init_sync_port(port); /* Set up SCA memory */ + + printk(KERN_INFO "%s: PCI200SYN node %d\n", + hdlc_to_name(&port->hdlc), port->phy_node); + } + + sca_flush(card); + return 0; +} + + + +static struct pci_device_id pci200_pci_tbl[] __devinitdata = { + { PCI_VENDOR_ID_GORAMO, PCI_DEVICE_ID_PCI200SYN, PCI_ANY_ID, + PCI_ANY_ID, 0, 0, 0 }, + { 0, } +}; + + +static struct pci_driver pci200_pci_driver = { + name: "PCI200SYN", + id_table: pci200_pci_tbl, + probe: pci200_pci_init_one, + remove: pci200_pci_remove_one, +}; + + +static int __init pci200_init_module(void) +{ +#ifdef MODULE + printk(KERN_INFO "%s\n", version); +#endif + if (pci_clock_freq < 1000000 || pci_clock_freq > 80000000) { + printk(KERN_ERR "pci200syn: Invalid PCI clock frequency\n"); + return -EINVAL; + } + return pci_module_init(&pci200_pci_driver); +} + + + +static void __exit pci200_cleanup_module(void) +{ + pci_unregister_driver(&pci200_pci_driver); +} + +MODULE_AUTHOR("Krzysztof Halasa "); +MODULE_DESCRIPTION("Goramo PCI200SYN serial port driver"); +MODULE_LICENSE("GPL v2"); +MODULE_DEVICE_TABLE(pci, pci200_pci_tbl); +MODULE_PARM(pci_clock_freq, "i"); +MODULE_PARM_DESC(pci_clock_freq, "System PCI clock frequency in Hz"); +EXPORT_NO_SYMBOLS; +module_init(pci200_init_module); +module_exit(pci200_cleanup_module); diff -urN linux-2.4.23-bk18/drivers/video/clgenfb.c linux-2.4.23-bk19/drivers/video/clgenfb.c --- linux-2.4.23-bk18/drivers/video/clgenfb.c 2003-06-13 07:51:37.000000000 -0700 +++ linux-2.4.23-bk19/drivers/video/clgenfb.c 2003-12-30 02:50:30.000000000 -0800 @@ -2547,7 +2547,7 @@ pdev = clgen_pci_dev_get (btype); if (!pdev) { - printk (KERN_ERR " Couldn't find PCI device\n"); + printk (KERN_INFO "clgenfb: couldn't find Cirrus Logic PCI device\n"); DPRINTK ("EXIT, returning 1\n"); return 1; } diff -urN linux-2.4.23-bk18/drivers/video/hgafb.c linux-2.4.23-bk19/drivers/video/hgafb.c --- linux-2.4.23-bk18/drivers/video/hgafb.c 2001-11-12 09:46:25.000000000 -0800 +++ linux-2.4.23-bk19/drivers/video/hgafb.c 2003-12-30 02:50:30.000000000 -0800 @@ -704,7 +704,7 @@ int __init hgafb_init(void) { if (! hga_card_detect()) { - printk(KERN_ERR "hgafb: HGA card not detected.\n"); + printk(KERN_INFO "hgafb: HGA card not detected.\n"); return -EINVAL; } diff -urN linux-2.4.23-bk18/include/asm-ppc/pc_serial.h linux-2.4.23-bk19/include/asm-ppc/pc_serial.h --- linux-2.4.23-bk18/include/asm-ppc/pc_serial.h 2003-08-25 04:44:44.000000000 -0700 +++ linux-2.4.23-bk19/include/asm-ppc/pc_serial.h 2003-12-30 02:50:30.000000000 -0800 @@ -26,15 +26,6 @@ #define RS_TABLE_SIZE 4 #endif -/* Standard COM flags (except for COM4, because of the 8514 problem) */ -#ifdef CONFIG_SERIAL_DETECT_IRQ -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ) -#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ) -#else -#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) -#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF -#endif - #ifdef CONFIG_SERIAL_MANY_PORTS #define FOURPORT_FLAGS ASYNC_FOURPORT #define ACCENT_FLAGS 0 @@ -60,10 +51,10 @@ #define STD_SERIAL_PORT_DEFNS \ /* UART CLK PORT IRQ FLAGS */ \ - { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ - { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \ - { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ - { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */ + { 0, BASE_BAUD, 0x3F8, 4, ASYNC_BOOT_AUTOCONF }, /* ttyS0 */ \ + { 0, BASE_BAUD, 0x2F8, 3, ASYNC_BOOT_AUTOCONF }, /* ttyS1 */ \ + { 0, BASE_BAUD, 0x3E8, 4, ASYNC_BOOT_AUTOCONF }, /* ttyS2 */ \ + { 0, BASE_BAUD, 0x2E8, 3, ASYNC_BOOT_AUTOCONF }, /* ttyS3 */ #ifdef CONFIG_SERIAL_MANY_PORTS diff -urN linux-2.4.23-bk18/include/asm-ppc/serial.h linux-2.4.23-bk19/include/asm-ppc/serial.h --- linux-2.4.23-bk18/include/asm-ppc/serial.h 2003-11-28 10:26:21.000000000 -0800 +++ linux-2.4.23-bk19/include/asm-ppc/serial.h 2003-12-30 02:50:30.000000000 -0800 @@ -12,8 +12,12 @@ #include #elif defined(CONFIG_LOPEC) #include +#elif defined(CONFIG_SANDPOINT) +#include #elif defined(CONFIG_SPRUCE) #include +#elif defined(CONFIG_PRPMC750) +#include #elif defined(CONFIG_4xx) #include #else diff -urN linux-2.4.23-bk18/include/linux/hdlc.h linux-2.4.23-bk19/include/linux/hdlc.h --- linux-2.4.23-bk18/include/linux/hdlc.h 2003-11-28 10:26:21.000000000 -0800 +++ linux-2.4.23-bk19/include/linux/hdlc.h 2003-12-30 02:50:30.000000000 -0800 @@ -42,6 +42,9 @@ #define LMI_ANSI 2 /* ANSI Annex D */ #define LMI_CCITT 3 /* ITU-T Annex A */ +#define HDLC_MAX_MTU 1500 /* Ethernet 1500 bytes */ +#define HDLC_MAX_MRU (HDLC_MAX_MTU + 10 + 14 + 4) /* for ETH+VLAN over FR */ + #ifdef __KERNEL__ @@ -50,78 +53,6 @@ #include #include -#define HDLC_MAX_MTU 1500 /* Ethernet 1500 bytes */ -#define HDLC_MAX_MRU (HDLC_MAX_MTU + 10 + 14 + 4) /* for ETH+VLAN over FR */ - -#define MAXLEN_LMISTAT 20 /* max size of status enquiry frame */ - -#define PVC_STATE_NEW 0x01 -#define PVC_STATE_ACTIVE 0x02 -#define PVC_STATE_FECN 0x08 /* FECN condition */ -#define PVC_STATE_BECN 0x10 /* BECN condition */ - - -#define FR_UI 0x03 -#define FR_PAD 0x00 - -#define NLPID_IP 0xCC -#define NLPID_IPV6 0x8E -#define NLPID_SNAP 0x80 -#define NLPID_PAD 0x00 -#define NLPID_Q933 0x08 - - -#define LMI_DLCI 0 /* LMI DLCI */ -#define LMI_PROTO 0x08 -#define LMI_CALLREF 0x00 /* Call Reference */ -#define LMI_ANSI_LOCKSHIFT 0x95 /* ANSI lockshift */ -#define LMI_REPTYPE 1 /* report type */ -#define LMI_CCITT_REPTYPE 0x51 -#define LMI_ALIVE 3 /* keep alive */ -#define LMI_CCITT_ALIVE 0x53 -#define LMI_PVCSTAT 7 /* pvc status */ -#define LMI_CCITT_PVCSTAT 0x57 -#define LMI_FULLREP 0 /* full report */ -#define LMI_INTEGRITY 1 /* link integrity report */ -#define LMI_SINGLE 2 /* single pvc report */ -#define LMI_STATUS_ENQUIRY 0x75 -#define LMI_STATUS 0x7D /* reply */ - -#define LMI_REPT_LEN 1 /* report type element length */ -#define LMI_INTEG_LEN 2 /* link integrity element length */ - -#define LMI_LENGTH 13 /* standard LMI frame length */ -#define LMI_ANSI_LENGTH 14 - - - -typedef struct { -#if defined(__LITTLE_ENDIAN_BITFIELD) - unsigned ea1 : 1; - unsigned cr : 1; - unsigned dlcih: 6; - - unsigned ea2 : 1; - unsigned de : 1; - unsigned becn : 1; - unsigned fecn : 1; - unsigned dlcil: 4; -#elif defined (__BIG_ENDIAN_BITFIELD) - unsigned dlcih: 6; - unsigned cr : 1; - unsigned ea1 : 1; - - unsigned dlcil: 4; - unsigned fecn : 1; - unsigned becn : 1; - unsigned de : 1; - unsigned ea2 : 1; -#else -#error "Please fix " -#endif -}__attribute__ ((packed)) fr_hdr; - - typedef struct { /* Used in Cisco and PPP mode */ u8 address; @@ -271,26 +202,11 @@ } -static __inline__ u16 q922_to_dlci(u8 *hdr) -{ - return ((hdr[0] & 0xFC) << 2) | ((hdr[1] & 0xF0) >> 4); -} - - - -static __inline__ void dlci_to_q922(u8 *hdr, u16 dlci) -{ - hdr[0] = (dlci >> 2) & 0xFC; - hdr[1] = ((dlci << 4) & 0xF0) | 0x01; -} - - - static __inline__ void debug_frame(const struct sk_buff *skb) { int i; - for (i=0; ilen; i++) { + for (i=0; i < skb->len; i++) { if (i == 100) { printk("...\n"); return; diff -urN linux-2.4.23-bk18/include/linux/i2c.h linux-2.4.23-bk19/include/linux/i2c.h --- linux-2.4.23-bk18/include/linux/i2c.h 2003-06-13 07:51:38.000000000 -0700 +++ linux-2.4.23-bk19/include/linux/i2c.h 2003-12-30 02:50:30.000000000 -0800 @@ -42,17 +42,7 @@ /* --- Includes and compatibility declarations ------------------------ */ -#include -#ifndef KERNEL_VERSION -#define KERNEL_VERSION(a,b,c) (((a) << 16) | ((b) << 8) | (c)) -#endif - -#include /* for 2.2.xx */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,0,25) -#include -#else #include -#endif #include /* --- General options ------------------------------------------------ */ @@ -226,10 +216,6 @@ u32 (*functionality) (struct i2c_adapter *); }; -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,29) -struct proc_dir_entry; -#endif - /* * i2c_adapter is the structure used to identify a physical i2c bus along * with the access algorithms necessary to access it. @@ -267,9 +253,6 @@ #ifdef CONFIG_PROC_FS /* No need to set this when you initialize the adapter */ int inode; -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,29) - struct proc_dir_entry *proc_entry; -#endif #endif /* def CONFIG_PROC_FS */ };