update the 2.4 kernel to 2.4.32. it seems pl2303 has the fixes from 2.6, so we now...
authorkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 18 Nov 2005 11:40:36 +0000 (11:40 +0000)
committerkaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 18 Nov 2005 11:40:36 +0000 (11:40 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@2515 3c298f89-4303-0410-b956-a3cf2f4a3e73

openwrt/target/linux/linux-2.4/Makefile
openwrt/target/linux/linux-2.4/README
openwrt/target/linux/linux-2.4/broadcom.mk
openwrt/target/linux/linux-2.4/patches/generic/000-linux_mips.patch
openwrt/target/linux/linux-2.4/patches/generic/202-pl2303_backport.patch
openwrt/target/linux/linux-2.4/patches/generic/207-gcc_4.0_fixes.patch [deleted file]
openwrt/target/linux/linux-2.4/patches/generic/211-pl2303_bugfixes.patch [deleted file]
openwrt/toolchain/kernel-headers/Makefile

index 3982896..0e34245 100644 (file)
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 include ../rules.mk
 
 KERNEL:=2.4
-LINUX_VERSION:=2.4.30
+LINUX_VERSION:=2.4.32
 MODULES_SUBDIR:=lib/modules/$(LINUX_VERSION)
 LINUX_KCONFIG:=./config/$(BOARD)
 LINUX_BUILD_DIR:=$(BUILD_DIR)/linux-2.4-$(BOARD)
index 8dff7fc..15d9523 100644 (file)
@@ -5,9 +5,9 @@ generic/
        Generic patches for vanilla Linux kernel
 
 000-linux_mips.patch
-       This is the diff between vanilla linux-2.4.30 and linux-mips.org kernel
-       (CVS tag 2_4_30 used). The kernel source from linux-mips.org CVS repository has
-       newer drivers and code then vanilla linux-2.4.30 especially for the mips architecture.
+       This is the diff between vanilla linux-2.4.32 and linux-mips.org kernel
+       (CVS tag 2_4_32-rc1 used). The kernel source from linux-mips.org CVS repository has
+       newer drivers and code then vanilla linux-2.4.32 especially for the mips architecture.
 
 001-squashfs.patch
        Support for the squashfs filesystem. It has better compression ratio then cramfs.
@@ -77,7 +77,7 @@ brcm/
 
 001-bcm47xx.patch
        This is the broadcom specific code from asus (1941) GPL source tarball. 
-       There are many small patches included, so it works with linux 2.4.30 kernel. 
+       There are many small patches included, so it works with linux 2.4.32 kernel. 
        The original code is based on Linux 2.4.20.
 
 002-wl_fix.patch
index 4d94419..c8c4ece 100644 (file)
@@ -57,8 +57,8 @@ $(LINUX_DIR)/.drivers-unpacked: $(LINUX_DIR)/.unpacked
        touch $@
 
 $(LINUX_DIR)/.drivers-installed: $(LINUX_DIR)/.modules_done
-       mkdir -p $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.30/kernel/drivers/net/wl
-       @-[ -f $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.30/kernel/drivers/net/wl/wl.o ] || cp $(LINUX_DIR)/drivers/net/wl/wl.o $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.30/kernel/drivers/net/wl/
+       mkdir -p $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl
+       @-[ -f $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl/wl.o ] || cp $(LINUX_DIR)/drivers/net/wl/wl.o $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl/
        touch $@
 
 linux-dirclean: drivers-clean
index e2ebfce..7fae1ee 100644 (file)
@@ -1,128 +1,6 @@
-diff -Nur linux-2.4.30/Makefile linux-2.4.30-mips/Makefile
---- linux-2.4.30/Makefile      2005-04-04 03:42:20.000000000 +0200
-+++ linux-2.4.30-mips/Makefile 2005-04-05 21:09:54.000000000 +0200
-@@ -5,7 +5,7 @@
- KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
--ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
-+ARCH = mips
- KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
- CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
-@@ -462,10 +462,11 @@
-       $(MAKE) -C Documentation/DocBook mrproper
- distclean: mrproper
--      rm -f core `find . \( -not -type d \) -and \
--              \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
--              -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
--              -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f -print` TAGS tags
-+      find . \( -not -type d \) -and \
-+              \( -name core -o -name '*.orig' -o -name '*.rej' \
-+              -o -name '*~' -o -name '*.bak' -o -name '#*#' \
-+              -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \
-+              -o -name TAGS -o -name tags \) -print | env -i xargs rm -f
- backup: mrproper
-       cd .. && tar cf - linux/ | gzip -9 > backup.gz
-@@ -492,7 +493,7 @@
-       $(MAKE) -C Documentation/DocBook man
- sums:
--      find . -type f -print | sort | xargs sum > .SUMS
-+      find . -type f -print | sort | env -i xargs sum > .SUMS
- dep-files: scripts/mkdep archdep include/linux/version.h
-       rm -f .depend .hdepend
-diff -Nur linux-2.4.30/arch/mips/Makefile linux-2.4.30-mips/arch/mips/Makefile
---- linux-2.4.30/arch/mips/Makefile    2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/Makefile       2005-01-30 09:01:26.000000000 +0100
-@@ -211,7 +211,7 @@
- endif
- #
--# Au1000 (Alchemy Semi PB1000) eval board
-+# Au1x AMD Alchemy eval boards
- #
- ifdef CONFIG_MIPS_PB1000
- LIBS          += arch/mips/au1000/pb1000/pb1000.o \
-@@ -220,9 +220,6 @@
- LOADADDR      := 0x80100000
- endif
--#
--# Au1100 (Alchemy Semi PB1100) eval board
--#
- ifdef CONFIG_MIPS_PB1100
- LIBS          += arch/mips/au1000/pb1100/pb1100.o \
-                  arch/mips/au1000/common/au1000.o
-@@ -230,9 +227,6 @@
- LOADADDR      += 0x80100000
- endif
--#
--# Au1500 (Alchemy Semi PB1500) eval board
--#
- ifdef CONFIG_MIPS_PB1500
- LIBS          += arch/mips/au1000/pb1500/pb1500.o \
-                  arch/mips/au1000/common/au1000.o
-@@ -240,9 +234,6 @@
- LOADADDR      := 0x80100000
- endif
--#
--# Au1x00 (AMD/Alchemy) eval boards
--#
- ifdef CONFIG_MIPS_DB1000
- LIBS          += arch/mips/au1000/db1x00/db1x00.o \
-                  arch/mips/au1000/common/au1000.o
-@@ -313,6 +304,27 @@
- LOADADDR      += 0x80100000
- endif
-+ifdef CONFIG_MIPS_PB1200
-+LIBS          += arch/mips/au1000/pb1200/pb1200.o \
-+                 arch/mips/au1000/common/au1000.o
-+SUBDIRS       += arch/mips/au1000/pb1200 arch/mips/au1000/common
-+LOADADDR      += 0x80100000
-+endif
-+
-+ifdef CONFIG_MIPS_DB1200
-+LIBS          += arch/mips/au1000/pb1200/pb1200.o \
-+                 arch/mips/au1000/common/au1000.o
-+SUBDIRS       += arch/mips/au1000/pb1200 arch/mips/au1000/common
-+LOADADDR      += 0x80100000
-+endif
-+
-+ifdef CONFIG_MIPS_FICMMP
-+LIBS          += arch/mips/au1000/ficmmp/ficmmp.o \
-+                 arch/mips/au1000/common/au1000.o
-+SUBDIRS       += arch/mips/au1000/ficmmp arch/mips/au1000/common
-+LOADADDR      += 0x80100000
-+endif
-+
- #
- # Cogent CSB250
-diff -Nur linux-2.4.30/arch/mips/au1000/common/Makefile linux-2.4.30-mips/arch/mips/au1000/common/Makefile
---- linux-2.4.30/arch/mips/au1000/common/Makefile      2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/Makefile 2005-01-30 09:01:27.000000000 +0100
-@@ -19,9 +19,9 @@
- export-objs           = prom.o clocks.o power.o usbdev.o
- obj-y := prom.o int-handler.o irq.o puts.o time.o reset.o cputable.o \
--      au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o dma.o dbdma.o
-+      au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o dma.o dbdma.o gpio.o
-   
--export-objs += dma.o dbdma.o
-+export-objs += dma.o dbdma.o gpio.o
- obj-$(CONFIG_AU1X00_USB_DEVICE) += usbdev.o
- obj-$(CONFIG_KGDB) += dbg_io.o
-diff -Nur linux-2.4.30/arch/mips/au1000/common/au1xxx_irqmap.c linux-2.4.30-mips/arch/mips/au1000/common/au1xxx_irqmap.c
---- linux-2.4.30/arch/mips/au1000/common/au1xxx_irqmap.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/au1xxx_irqmap.c  2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/au1xxx_irqmap.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/au1xxx_irqmap.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/au1xxx_irqmap.c   2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/au1xxx_irqmap.c      2005-01-30 09:01:27.000000000 +0100
 @@ -172,14 +172,14 @@
        { AU1550_PSC1_INT, INTC_INT_HIGH_LEVEL, 0},
        { AU1550_PSC2_INT, INTC_INT_HIGH_LEVEL, 0},
@@ -169,9 +47,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/au1xxx_irqmap.c linux-2.4.30-mips
        { AU1200_NAND_INT, INTC_INT_RISE_EDGE, 0},
        { AU1200_USB_INT, INTC_INT_HIGH_LEVEL, 0 },
        { AU1200_LCD_INT, INTC_INT_HIGH_LEVEL, 0},
-diff -Nur linux-2.4.30/arch/mips/au1000/common/cputable.c linux-2.4.30-mips/arch/mips/au1000/common/cputable.c
---- linux-2.4.30/arch/mips/au1000/common/cputable.c    2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/cputable.c       2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/cputable.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/cputable.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/cputable.c        2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/cputable.c   2005-01-30 09:01:27.000000000 +0100
 @@ -39,7 +39,8 @@
      { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1 },
      { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1 },
@@ -182,9 +60,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/cputable.c linux-2.4.30-mips/arch
      { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0 },
  };
  
-diff -Nur linux-2.4.30/arch/mips/au1000/common/dbdma.c linux-2.4.30-mips/arch/mips/au1000/common/dbdma.c
---- linux-2.4.30/arch/mips/au1000/common/dbdma.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/dbdma.c  2005-02-08 07:28:37.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/dbdma.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/dbdma.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/dbdma.c   2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/dbdma.c      2005-02-08 07:28:37.000000000 +0100
 @@ -41,6 +41,8 @@
  #include <asm/au1xxx_dbdma.h>
  #include <asm/system.h>
@@ -763,9 +641,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/dbdma.c linux-2.4.30-mips/arch/mi
 +
  #endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */
  
-diff -Nur linux-2.4.30/arch/mips/au1000/common/gpio.c linux-2.4.30-mips/arch/mips/au1000/common/gpio.c
---- linux-2.4.30/arch/mips/au1000/common/gpio.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/gpio.c   2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/gpio.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/gpio.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/gpio.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/gpio.c       2005-01-30 09:01:27.000000000 +0100
 @@ -0,0 +1,118 @@
 +/*
 + *  This program is free software; you can redistribute        it and/or modify it
@@ -885,9 +763,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/gpio.c linux-2.4.30-mips/arch/mip
 +EXPORT_SYMBOL(au1xxx_gpio_tristate);
 +EXPORT_SYMBOL(au1xxx_gpio_write);
 +EXPORT_SYMBOL(au1xxx_gpio_read);
-diff -Nur linux-2.4.30/arch/mips/au1000/common/irq.c linux-2.4.30-mips/arch/mips/au1000/common/irq.c
---- linux-2.4.30/arch/mips/au1000/common/irq.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/irq.c    2005-03-13 08:56:57.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/irq.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/irq.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/irq.c     2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/irq.c        2005-03-13 08:56:57.000000000 +0100
 @@ -303,8 +303,30 @@
  };
  
@@ -955,9 +833,24 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/irq.c linux-2.4.30-mips/arch/mips
  }
  
  
-diff -Nur linux-2.4.30/arch/mips/au1000/common/pci_fixup.c linux-2.4.30-mips/arch/mips/au1000/common/pci_fixup.c
---- linux-2.4.30/arch/mips/au1000/common/pci_fixup.c   2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/pci_fixup.c      2004-12-03 09:00:32.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/Makefile linux-2.4.32-rc1.mips/arch/mips/au1000/common/Makefile
+--- linux-2.4.32-rc1/arch/mips/au1000/common/Makefile  2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/Makefile     2005-01-30 09:01:27.000000000 +0100
+@@ -19,9 +19,9 @@
+ export-objs           = prom.o clocks.o power.o usbdev.o
+ obj-y := prom.o int-handler.o irq.o puts.o time.o reset.o cputable.o \
+-      au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o dma.o dbdma.o
++      au1xxx_irqmap.o clocks.o power.o setup.o sleeper.o dma.o dbdma.o gpio.o
+   
+-export-objs += dma.o dbdma.o
++export-objs += dma.o dbdma.o gpio.o
+ obj-$(CONFIG_AU1X00_USB_DEVICE) += usbdev.o
+ obj-$(CONFIG_KGDB) += dbg_io.o
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/pci_fixup.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/pci_fixup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/pci_fixup.c       2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/pci_fixup.c  2004-12-03 09:00:32.000000000 +0100
 @@ -75,9 +75,13 @@
  
  #ifdef CONFIG_NONCOHERENT_IO
@@ -974,9 +867,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/pci_fixup.c linux-2.4.30-mips/arc
        printk("Non-coherent PCI accesses enabled\n");
  #endif
  
-diff -Nur linux-2.4.30/arch/mips/au1000/common/pci_ops.c linux-2.4.30-mips/arch/mips/au1000/common/pci_ops.c
---- linux-2.4.30/arch/mips/au1000/common/pci_ops.c     2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/pci_ops.c        2005-02-27 23:14:24.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/pci_ops.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/pci_ops.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/pci_ops.c 2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/pci_ops.c    2005-02-27 23:14:24.000000000 +0100
 @@ -162,6 +162,7 @@
  static int config_access(unsigned char access_type, struct pci_dev *dev, 
                         unsigned char where, u32 * data)
@@ -1018,9 +911,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/pci_ops.c linux-2.4.30-mips/arch/
  }
  #endif
  
-diff -Nur linux-2.4.30/arch/mips/au1000/common/power.c linux-2.4.30-mips/arch/mips/au1000/common/power.c
---- linux-2.4.30/arch/mips/au1000/common/power.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/power.c  2005-04-07 02:37:19.000000000 +0200
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/power.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/power.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/power.c   2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/power.c      2005-04-07 02:37:19.000000000 +0200
 @@ -50,7 +50,6 @@
  
  static void calibrate_delay(void);
@@ -1247,9 +1140,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/power.c linux-2.4.30-mips/arch/mi
        {0}
  };
  
-diff -Nur linux-2.4.30/arch/mips/au1000/common/reset.c linux-2.4.30-mips/arch/mips/au1000/common/reset.c
---- linux-2.4.30/arch/mips/au1000/common/reset.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/reset.c  2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/reset.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/reset.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/reset.c   2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/reset.c      2005-03-19 08:17:51.000000000 +0100
 @@ -37,8 +37,6 @@
  #include <asm/system.h>
  #include <asm/au1000.h>
@@ -1330,9 +1223,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/reset.c linux-2.4.30-mips/arch/mi
 +      /* If board can't power-off, spin forever */
        au1000_halt();
  }
-diff -Nur linux-2.4.30/arch/mips/au1000/common/setup.c linux-2.4.30-mips/arch/mips/au1000/common/setup.c
---- linux-2.4.30/arch/mips/au1000/common/setup.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/setup.c  2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/setup.c   2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/setup.c      2005-01-30 09:01:27.000000000 +0100
 @@ -174,6 +174,40 @@
        initrd_end = (unsigned long)&__rd_end;
  #endif
@@ -1427,9 +1320,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/setup.c linux-2.4.30-mips/arch/mi
        if ((ide_ops == NULL) || (ide_ops == &no_ide_ops))
                ide_ops = &std_ide_ops;
  #endif
-diff -Nur linux-2.4.30/arch/mips/au1000/common/sleeper.S linux-2.4.30-mips/arch/mips/au1000/common/sleeper.S
---- linux-2.4.30/arch/mips/au1000/common/sleeper.S     2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/sleeper.S        2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/sleeper.S linux-2.4.32-rc1.mips/arch/mips/au1000/common/sleeper.S
+--- linux-2.4.32-rc1/arch/mips/au1000/common/sleeper.S 2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/sleeper.S    2005-01-30 09:01:27.000000000 +0100
 @@ -15,17 +15,48 @@
  #include <asm/addrspace.h>
  #include <asm/regdef.h>
@@ -1698,9 +1591,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/sleeper.S linux-2.4.30-mips/arch/
 +      .set reorder
  END(save_and_sleep)
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/common/time.c linux-2.4.30-mips/arch/mips/au1000/common/time.c
---- linux-2.4.30/arch/mips/au1000/common/time.c        2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/common/time.c   2005-04-08 10:33:17.000000000 +0200
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/common/time.c linux-2.4.32-rc1.mips/arch/mips/au1000/common/time.c
+--- linux-2.4.32-rc1/arch/mips/au1000/common/time.c    2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/common/time.c       2005-04-08 10:33:17.000000000 +0200
 @@ -50,7 +50,6 @@
  #include <linux/mc146818rtc.h>
  #include <linux/timex.h>
@@ -1760,24 +1653,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/common/time.c linux-2.4.30-mips/arch/mip
        }
  
  #else
-diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/Makefile linux-2.4.30-mips/arch/mips/au1000/db1x00/Makefile
---- linux-2.4.30/arch/mips/au1000/db1x00/Makefile      2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/db1x00/Makefile 2005-01-30 09:06:19.000000000 +0100
-@@ -17,4 +17,11 @@
- obj-y := init.o board_setup.o irqmap.o
- obj-$(CONFIG_WM97XX_COMODULE) += mirage_ts.o
-+ifdef CONFIG_MIPS_DB1100
-+ifdef CONFIG_MMC
-+obj-y += mmc_support.o
-+export-objs += mmc_support.o
-+endif
-+endif
-+
- include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/board_setup.c linux-2.4.30-mips/arch/mips/au1000/db1x00/board_setup.c
---- linux-2.4.30/arch/mips/au1000/db1x00/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/db1x00/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/db1x00/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/db1x00/board_setup.c     2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -46,10 +46,22 @@
  #include <asm/au1000.h>
  #include <asm/db1x00.h>
@@ -1861,9 +1739,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/board_setup.c linux-2.4.30-mips/a
  #ifdef CONFIG_MIPS_DB1000
      printk("AMD Alchemy Au1000/Db1000 Board\n");
  #endif
-diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/irqmap.c linux-2.4.30-mips/arch/mips/au1000/db1x00/irqmap.c
---- linux-2.4.30/arch/mips/au1000/db1x00/irqmap.c      2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/db1x00/irqmap.c 2005-01-30 09:06:19.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/db1x00/irqmap.c linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/irqmap.c
+--- linux-2.4.32-rc1/arch/mips/au1000/db1x00/irqmap.c  2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/irqmap.c     2005-01-30 09:06:19.000000000 +0100
 @@ -53,6 +53,7 @@
  #ifdef CONFIG_MIPS_DB1550
        { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 IRQ#
@@ -1872,9 +1750,24 @@ diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/irqmap.c linux-2.4.30-mips/arch/m
  #else
        { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 Fully_Interted#
        { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, // PCMCIA Card 0 STSCHG#
-diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/mmc_support.c linux-2.4.30-mips/arch/mips/au1000/db1x00/mmc_support.c
---- linux-2.4.30/arch/mips/au1000/db1x00/mmc_support.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/db1x00/mmc_support.c    2005-01-30 09:07:01.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/db1x00/Makefile linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/Makefile
+--- linux-2.4.32-rc1/arch/mips/au1000/db1x00/Makefile  2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/Makefile     2005-01-30 09:06:19.000000000 +0100
+@@ -17,4 +17,11 @@
+ obj-y := init.o board_setup.o irqmap.o
+ obj-$(CONFIG_WM97XX_COMODULE) += mirage_ts.o
++ifdef CONFIG_MIPS_DB1100
++ifdef CONFIG_MMC
++obj-y += mmc_support.o
++export-objs += mmc_support.o
++endif
++endif
++
+ include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/db1x00/mmc_support.c linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/mmc_support.c
+--- linux-2.4.32-rc1/arch/mips/au1000/db1x00/mmc_support.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/db1x00/mmc_support.c        2005-01-30 09:07:01.000000000 +0100
 @@ -0,0 +1,126 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -2002,38 +1895,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/db1x00/mmc_support.c linux-2.4.30-mips/a
 +EXPORT_SYMBOL(mmc_power_on);
 +EXPORT_SYMBOL(mmc_power_off);
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/Makefile linux-2.4.30-mips/arch/mips/au1000/ficmmp/Makefile
---- linux-2.4.30/arch/mips/au1000/ficmmp/Makefile      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/ficmmp/Makefile 2005-01-30 09:01:27.000000000 +0100
-@@ -0,0 +1,25 @@
-+#
-+#  Copyright 2000 MontaVista Software Inc.
-+#  Author: MontaVista Software, Inc.
-+#             ppopov@mvista.com or source@mvista.com
-+#
-+# Makefile for the Alchemy Semiconductor FIC board.
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET := ficmmp.o
-+
-+obj-y := init.o board_setup.o irqmap.o au1200_ibutton.o au1xxx_dock.o
-+
-+ifdef CONFIG_MMC
-+obj-y += mmc_support.o
-+export-objs +=mmc_support.o
-+endif
-+
-+
-+include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/au1200_ibutton.c linux-2.4.30-mips/arch/mips/au1000/ficmmp/au1200_ibutton.c
---- linux-2.4.30/arch/mips/au1000/ficmmp/au1200_ibutton.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/ficmmp/au1200_ibutton.c 2005-02-03 07:35:29.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/ficmmp/au1200_ibutton.c linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/au1200_ibutton.c
+--- linux-2.4.32-rc1/arch/mips/au1000/ficmmp/au1200_ibutton.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/au1200_ibutton.c     2005-02-03 07:35:29.000000000 +0100
 @@ -0,0 +1,270 @@
 +/* ---------------------------------------------------------------------- 
 + *  mtwilson_keys.c
@@ -2305,9 +2169,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/au1200_ibutton.c linux-2.4.30-mip
 +MODULE_AUTHOR( DRIVER_AUTHOR );
 +MODULE_DESCRIPTION( DRIVER_DESC );
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/au1xxx_dock.c linux-2.4.30-mips/arch/mips/au1000/ficmmp/au1xxx_dock.c
---- linux-2.4.30/arch/mips/au1000/ficmmp/au1xxx_dock.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/ficmmp/au1xxx_dock.c    2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/ficmmp/au1xxx_dock.c linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/au1xxx_dock.c
+--- linux-2.4.32-rc1/arch/mips/au1000/ficmmp/au1xxx_dock.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/au1xxx_dock.c        2005-01-30 09:01:27.000000000 +0100
 @@ -0,0 +1,261 @@
 +/*
 + *  Copyright (C) 2003 Metrowerks, All Rights Reserved.
@@ -2570,9 +2434,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/au1xxx_dock.c linux-2.4.30-mips/a
 +
 +module_init(au1xxx_dock_init);
 +module_exit(au1xxx_dock_exit);
-diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/board_setup.c linux-2.4.30-mips/arch/mips/au1000/ficmmp/board_setup.c
---- linux-2.4.30/arch/mips/au1000/ficmmp/board_setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/ficmmp/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/ficmmp/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/ficmmp/board_setup.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -0,0 +1,226 @@
 +/*
 + *
@@ -2800,9 +2664,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/board_setup.c linux-2.4.30-mips/a
 +      return 0;
 +}
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/init.c linux-2.4.30-mips/arch/mips/au1000/ficmmp/init.c
---- linux-2.4.30/arch/mips/au1000/ficmmp/init.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/ficmmp/init.c   2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/ficmmp/init.c linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/init.c
+--- linux-2.4.32-rc1/arch/mips/au1000/ficmmp/init.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/init.c       2005-01-30 09:01:27.000000000 +0100
 @@ -0,0 +1,76 @@
 +/*
 + *
@@ -2880,9 +2744,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/init.c linux-2.4.30-mips/arch/mip
 +      return 0;
 +}
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/irqmap.c linux-2.4.30-mips/arch/mips/au1000/ficmmp/irqmap.c
---- linux-2.4.30/arch/mips/au1000/ficmmp/irqmap.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/ficmmp/irqmap.c 2005-01-30 09:01:27.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/ficmmp/irqmap.c linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/irqmap.c
+--- linux-2.4.32-rc1/arch/mips/au1000/ficmmp/irqmap.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/irqmap.c     2005-01-30 09:01:27.000000000 +0100
 @@ -0,0 +1,61 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -2945,25 +2809,38 @@ diff -Nur linux-2.4.30/arch/mips/au1000/ficmmp/irqmap.c linux-2.4.30-mips/arch/m
 +
 +int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/Makefile linux-2.4.30-mips/arch/mips/au1000/hydrogen3/Makefile
---- linux-2.4.30/arch/mips/au1000/hydrogen3/Makefile   2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/hydrogen3/Makefile      2005-02-11 22:09:55.000000000 +0100
-@@ -14,6 +14,11 @@
- O_TARGET := hydrogen3.o
--obj-y := init.o board_setup.o irqmap.o
-+obj-y := init.o board_setup.o irqmap.o buttons.o
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/ficmmp/Makefile linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/Makefile
+--- linux-2.4.32-rc1/arch/mips/au1000/ficmmp/Makefile  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/ficmmp/Makefile     2005-01-30 09:01:27.000000000 +0100
+@@ -0,0 +1,25 @@
++#
++#  Copyright 2000 MontaVista Software Inc.
++#  Author: MontaVista Software, Inc.
++#             ppopov@mvista.com or source@mvista.com
++#
++# Makefile for the Alchemy Semiconductor FIC board.
++#
++# Note! Dependencies are done automagically by 'make dep', which also
++# removes any old dependencies. DON'T put your own dependencies here
++# unless it's something special (ie not a .c file).
++#
++
++USE_STANDARD_AS_RULE := true
++
++O_TARGET := ficmmp.o
++
++obj-y := init.o board_setup.o irqmap.o au1200_ibutton.o au1xxx_dock.o
 +
 +ifdef CONFIG_MMC
 +obj-y += mmc_support.o
 +export-objs +=mmc_support.o
 +endif
- include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/board_setup.c linux-2.4.30-mips/arch/mips/au1000/hydrogen3/board_setup.c
---- linux-2.4.30/arch/mips/au1000/hydrogen3/board_setup.c      2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/hydrogen3/board_setup.c 2005-03-19 08:17:51.000000000 +0100
++
++
++include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/board_setup.c  2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/board_setup.c     2005-03-19 08:17:51.000000000 +0100
 @@ -51,12 +51,19 @@
  {
  }
@@ -2984,9 +2861,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/board_setup.c linux-2.4.30-mip
  #ifdef CONFIG_AU1X00_USB_DEVICE
        // 2nd USB port is USB device
        pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
-diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/buttons.c linux-2.4.30-mips/arch/mips/au1000/hydrogen3/buttons.c
---- linux-2.4.30/arch/mips/au1000/hydrogen3/buttons.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/hydrogen3/buttons.c     2005-02-11 22:09:55.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/buttons.c linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/buttons.c
+--- linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/buttons.c      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/buttons.c 2005-02-11 22:09:55.000000000 +0100
 @@ -0,0 +1,308 @@
 +/*
 + *  Copyright (C) 2003 Metrowerks, All Rights Reserved.
@@ -3296,9 +3173,25 @@ diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/buttons.c linux-2.4.30-mips/ar
 +
 +module_init(hydrogen3_buttons_init);
 +module_exit(hydrogen3_buttons_exit);
-diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/mmc_support.c linux-2.4.30-mips/arch/mips/au1000/hydrogen3/mmc_support.c
---- linux-2.4.30/arch/mips/au1000/hydrogen3/mmc_support.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/hydrogen3/mmc_support.c 2005-02-02 05:27:06.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/Makefile linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/Makefile
+--- linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/Makefile       2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/Makefile  2005-02-11 22:09:55.000000000 +0100
+@@ -14,6 +14,11 @@
+ O_TARGET := hydrogen3.o
+-obj-y := init.o board_setup.o irqmap.o
++obj-y := init.o board_setup.o irqmap.o buttons.o
++
++ifdef CONFIG_MMC
++obj-y += mmc_support.o
++export-objs +=mmc_support.o
++endif
+ include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/mmc_support.c linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/mmc_support.c
+--- linux-2.4.32-rc1/arch/mips/au1000/hydrogen3/mmc_support.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/hydrogen3/mmc_support.c     2005-02-02 05:27:06.000000000 +0100
 @@ -0,0 +1,89 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -3389,9 +3282,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/hydrogen3/mmc_support.c linux-2.4.30-mip
 +EXPORT_SYMBOL(mmc_power_on);
 +EXPORT_SYMBOL(mmc_power_off);
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/mtx-1/board_setup.c linux-2.4.30-mips/arch/mips/au1000/mtx-1/board_setup.c
---- linux-2.4.30/arch/mips/au1000/mtx-1/board_setup.c  2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/mtx-1/board_setup.c     2004-11-26 09:37:16.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/mtx-1/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/mtx-1/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/mtx-1/board_setup.c      2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/mtx-1/board_setup.c 2004-11-26 09:37:16.000000000 +0100
 @@ -48,6 +48,12 @@
  
  extern struct rtc_ops no_rtc_ops;
@@ -3405,9 +3298,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/mtx-1/board_setup.c linux-2.4.30-mips/ar
  void __init board_setup(void)
  {
        rtc_ops = &no_rtc_ops;
-diff -Nur linux-2.4.30/arch/mips/au1000/mtx-1/irqmap.c linux-2.4.30-mips/arch/mips/au1000/mtx-1/irqmap.c
---- linux-2.4.30/arch/mips/au1000/mtx-1/irqmap.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/mtx-1/irqmap.c  2004-11-26 09:37:16.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/mtx-1/irqmap.c linux-2.4.32-rc1.mips/arch/mips/au1000/mtx-1/irqmap.c
+--- linux-2.4.32-rc1/arch/mips/au1000/mtx-1/irqmap.c   2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/mtx-1/irqmap.c      2004-11-26 09:37:16.000000000 +0100
 @@ -72,10 +72,10 @@
         *      A       B       C       D
         */
@@ -3423,9 +3316,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/mtx-1/irqmap.c linux-2.4.30-mips/arch/mi
        };
        const long min_idsel = 0, max_idsel = 3, irqs_per_slot = 4;
        return PCI_IRQ_TABLE_LOOKUP;
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1000/board_setup.c linux-2.4.30-mips/arch/mips/au1000/pb1000/board_setup.c
---- linux-2.4.30/arch/mips/au1000/pb1000/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1000/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1000/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1000/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1000/board_setup.c     2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1000/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -58,6 +58,10 @@
  {
  }
@@ -3437,23 +3330,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1000/board_setup.c linux-2.4.30-mips/a
  void __init board_setup(void)
  {
        u32 pin_func, static_cfg0;
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1100/Makefile linux-2.4.30-mips/arch/mips/au1000/pb1100/Makefile
---- linux-2.4.30/arch/mips/au1000/pb1100/Makefile      2003-08-25 13:44:39.000000000 +0200
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1100/Makefile 2005-01-30 09:10:29.000000000 +0100
-@@ -16,4 +16,10 @@
- obj-y := init.o board_setup.o irqmap.o
-+
-+ifdef CONFIG_MMC
-+obj-y += mmc_support.o
-+export-objs += mmc_support.o
-+endif
-+
- include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1100/board_setup.c linux-2.4.30-mips/arch/mips/au1000/pb1100/board_setup.c
---- linux-2.4.30/arch/mips/au1000/pb1100/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1100/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1100/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1100/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1100/board_setup.c     2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1100/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -62,6 +62,10 @@
      au_writel(0x00000000, 0xAE00001C);
  }
@@ -3465,9 +3344,23 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1100/board_setup.c linux-2.4.30-mips/a
  void __init board_setup(void)
  {
        u32 pin_func;
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1100/mmc_support.c linux-2.4.30-mips/arch/mips/au1000/pb1100/mmc_support.c
---- linux-2.4.30/arch/mips/au1000/pb1100/mmc_support.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1100/mmc_support.c    2005-01-30 09:10:29.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1100/Makefile linux-2.4.32-rc1.mips/arch/mips/au1000/pb1100/Makefile
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1100/Makefile  2003-08-25 13:44:39.000000000 +0200
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1100/Makefile     2005-01-30 09:10:29.000000000 +0100
+@@ -16,4 +16,10 @@
+ obj-y := init.o board_setup.o irqmap.o
++
++ifdef CONFIG_MMC
++obj-y += mmc_support.o
++export-objs += mmc_support.o
++endif
++
+ include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1100/mmc_support.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1100/mmc_support.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1100/mmc_support.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1100/mmc_support.c        2005-01-30 09:10:29.000000000 +0100
 @@ -0,0 +1,126 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -3595,38 +3488,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1100/mmc_support.c linux-2.4.30-mips/a
 +EXPORT_SYMBOL(mmc_power_on);
 +EXPORT_SYMBOL(mmc_power_off);
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/Makefile linux-2.4.30-mips/arch/mips/au1000/pb1200/Makefile
---- linux-2.4.30/arch/mips/au1000/pb1200/Makefile      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1200/Makefile 2005-01-30 09:01:27.000000000 +0100
-@@ -0,0 +1,25 @@
-+#
-+#  Copyright 2000 MontaVista Software Inc.
-+#  Author: MontaVista Software, Inc.
-+#             ppopov@mvista.com or source@mvista.com
-+#
-+# Makefile for the Alchemy Semiconductor PB1000 board.
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET := pb1200.o
-+
-+obj-y := init.o board_setup.o irqmap.o
-+
-+ifdef CONFIG_MMC
-+obj-y += mmc_support.o
-+export-objs +=mmc_support.o
-+endif
-+
-+
-+include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/board_setup.c linux-2.4.30-mips/arch/mips/au1000/pb1200/board_setup.c
---- linux-2.4.30/arch/mips/au1000/pb1200/board_setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1200/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1200/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1200/board_setup.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -0,0 +1,221 @@
 +/*
 + *
@@ -3849,9 +3713,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/board_setup.c linux-2.4.30-mips/a
 +      return 0;
 +}
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/init.c linux-2.4.30-mips/arch/mips/au1000/pb1200/init.c
---- linux-2.4.30/arch/mips/au1000/pb1200/init.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1200/init.c   2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1200/init.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/init.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1200/init.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/init.c       2005-01-30 09:01:28.000000000 +0100
 @@ -0,0 +1,72 @@
 +/*
 + *
@@ -3925,9 +3789,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/init.c linux-2.4.30-mips/arch/mip
 +      return 0;
 +}
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/irqmap.c linux-2.4.30-mips/arch/mips/au1000/pb1200/irqmap.c
---- linux-2.4.30/arch/mips/au1000/pb1200/irqmap.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1200/irqmap.c 2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1200/irqmap.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/irqmap.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1200/irqmap.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/irqmap.c     2005-01-30 09:01:28.000000000 +0100
 @@ -0,0 +1,180 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -4109,9 +3973,38 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/irqmap.c linux-2.4.30-mips/arch/m
 +      request of any source attached to the cascade */
 +}
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/mmc_support.c linux-2.4.30-mips/arch/mips/au1000/pb1200/mmc_support.c
---- linux-2.4.30/arch/mips/au1000/pb1200/mmc_support.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1200/mmc_support.c    2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1200/Makefile linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/Makefile
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1200/Makefile  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/Makefile     2005-01-30 09:01:27.000000000 +0100
+@@ -0,0 +1,25 @@
++#
++#  Copyright 2000 MontaVista Software Inc.
++#  Author: MontaVista Software, Inc.
++#             ppopov@mvista.com or source@mvista.com
++#
++# Makefile for the Alchemy Semiconductor PB1000 board.
++#
++# Note! Dependencies are done automagically by 'make dep', which also
++# removes any old dependencies. DON'T put your own dependencies here
++# unless it's something special (ie not a .c file).
++#
++
++USE_STANDARD_AS_RULE := true
++
++O_TARGET := pb1200.o
++
++obj-y := init.o board_setup.o irqmap.o
++
++ifdef CONFIG_MMC
++obj-y += mmc_support.o
++export-objs +=mmc_support.o
++endif
++
++
++include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1200/mmc_support.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/mmc_support.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1200/mmc_support.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1200/mmc_support.c        2005-01-30 09:01:28.000000000 +0100
 @@ -0,0 +1,141 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -4254,9 +4147,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1200/mmc_support.c linux-2.4.30-mips/a
 +EXPORT_SYMBOL(mmc_power_on);
 +EXPORT_SYMBOL(mmc_power_off);
 +
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1500/board_setup.c linux-2.4.30-mips/arch/mips/au1000/pb1500/board_setup.c
---- linux-2.4.30/arch/mips/au1000/pb1500/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1500/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1500/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1500/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1500/board_setup.c     2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1500/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -62,6 +62,10 @@
      au_writel(0x00000000, 0xAE00001C);
  }
@@ -4268,9 +4161,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1500/board_setup.c linux-2.4.30-mips/a
  void __init board_setup(void)
  {
        u32 pin_func;
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1550/board_setup.c linux-2.4.30-mips/arch/mips/au1000/pb1550/board_setup.c
---- linux-2.4.30/arch/mips/au1000/pb1550/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1550/board_setup.c    2005-03-19 08:17:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1550/board_setup.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1550/board_setup.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1550/board_setup.c     2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1550/board_setup.c        2005-03-19 08:17:51.000000000 +0100
 @@ -48,12 +48,31 @@
  
  extern struct rtc_ops no_rtc_ops;
@@ -4340,9 +4233,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1550/board_setup.c linux-2.4.30-mips/a
 +#endif
        printk("AMD Alchemy Pb1550 Board\n");
  }
-diff -Nur linux-2.4.30/arch/mips/au1000/pb1550/irqmap.c linux-2.4.30-mips/arch/mips/au1000/pb1550/irqmap.c
---- linux-2.4.30/arch/mips/au1000/pb1550/irqmap.c      2005-01-19 15:09:26.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/au1000/pb1550/irqmap.c 2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/au1000/pb1550/irqmap.c linux-2.4.32-rc1.mips/arch/mips/au1000/pb1550/irqmap.c
+--- linux-2.4.32-rc1/arch/mips/au1000/pb1550/irqmap.c  2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/au1000/pb1550/irqmap.c     2005-01-30 09:01:28.000000000 +0100
 @@ -50,6 +50,9 @@
  au1xxx_irq_map_t au1xxx_irq_map[] = {
        { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 },
@@ -4353,9 +4246,9 @@ diff -Nur linux-2.4.30/arch/mips/au1000/pb1550/irqmap.c linux-2.4.30-mips/arch/m
  };
  
  int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
-diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-mips/arch/mips/config-shared.in
---- linux-2.4.30/arch/mips/config-shared.in    2005-01-19 15:09:27.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/config-shared.in       2005-01-30 09:01:26.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/config-shared.in linux-2.4.32-rc1.mips/arch/mips/config-shared.in
+--- linux-2.4.32-rc1/arch/mips/config-shared.in        2005-01-19 15:09:27.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/config-shared.in   2005-01-30 09:01:26.000000000 +0100
 @@ -21,16 +21,19 @@
  comment 'Machine selection'
  dep_bool 'Support for Acer PICA 1 chipset (EXPERIMENTAL)' CONFIG_ACER_PICA_61 $CONFIG_EXPERIMENTAL
@@ -4476,9 +4369,9 @@ diff -Nur linux-2.4.30/arch/mips/config-shared.in linux-2.4.30-mips/arch/mips/co
       "$CONFIG_NEC_OSPREY" = "y" -o \
       "$CONFIG_NEC_EAGLE" = "y" -o \
       "$CONFIG_NINO" = "y" -o \
-diff -Nur linux-2.4.30/arch/mips/defconfig linux-2.4.30-mips/arch/mips/defconfig
---- linux-2.4.30/arch/mips/defconfig   2005-01-19 15:09:27.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig linux-2.4.32-rc1.mips/arch/mips/defconfig
+--- linux-2.4.32-rc1/arch/mips/defconfig       2005-01-19 15:09:27.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig  2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4521,9 +4414,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig linux-2.4.30-mips/arch/mips/defconfig
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-atlas linux-2.4.30-mips/arch/mips/defconfig-atlas
---- linux-2.4.30/arch/mips/defconfig-atlas     2005-01-19 15:09:27.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-atlas        2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-atlas linux-2.4.32-rc1.mips/arch/mips/defconfig-atlas
+--- linux-2.4.32-rc1/arch/mips/defconfig-atlas 2005-01-19 15:09:27.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-atlas    2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4566,9 +4459,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-atlas linux-2.4.30-mips/arch/mips/def
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-bosporus linux-2.4.30-mips/arch/mips/defconfig-bosporus
---- linux-2.4.30/arch/mips/defconfig-bosporus  2005-01-19 15:09:27.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-bosporus     2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-bosporus linux-2.4.32-rc1.mips/arch/mips/defconfig-bosporus
+--- linux-2.4.32-rc1/arch/mips/defconfig-bosporus      2005-01-19 15:09:27.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-bosporus 2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4629,9 +4522,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-bosporus linux-2.4.30-mips/arch/mips/
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-capcella linux-2.4.30-mips/arch/mips/defconfig-capcella
---- linux-2.4.30/arch/mips/defconfig-capcella  2005-01-19 15:09:27.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-capcella     2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-capcella linux-2.4.32-rc1.mips/arch/mips/defconfig-capcella
+--- linux-2.4.32-rc1/arch/mips/defconfig-capcella      2005-01-19 15:09:27.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-capcella 2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4662,9 +4555,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-capcella linux-2.4.30-mips/arch/mips/
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-cobalt linux-2.4.30-mips/arch/mips/defconfig-cobalt
---- linux-2.4.30/arch/mips/defconfig-cobalt    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-cobalt       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-cobalt linux-2.4.32-rc1.mips/arch/mips/defconfig-cobalt
+--- linux-2.4.32-rc1/arch/mips/defconfig-cobalt        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-cobalt   2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4695,9 +4588,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-cobalt linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=16
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-csb250 linux-2.4.30-mips/arch/mips/defconfig-csb250
---- linux-2.4.30/arch/mips/defconfig-csb250    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-csb250       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-csb250 linux-2.4.32-rc1.mips/arch/mips/defconfig-csb250
+--- linux-2.4.32-rc1/arch/mips/defconfig-csb250        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-csb250   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4728,9 +4621,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-csb250 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-db1000 linux-2.4.30-mips/arch/mips/defconfig-db1000
---- linux-2.4.30/arch/mips/defconfig-db1000    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-db1000       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-db1000 linux-2.4.32-rc1.mips/arch/mips/defconfig-db1000
+--- linux-2.4.32-rc1/arch/mips/defconfig-db1000        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-db1000   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4781,9 +4674,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-db1000 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-db1100 linux-2.4.30-mips/arch/mips/defconfig-db1100
---- linux-2.4.30/arch/mips/defconfig-db1100    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-db1100       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-db1100 linux-2.4.32-rc1.mips/arch/mips/defconfig-db1100
+--- linux-2.4.32-rc1/arch/mips/defconfig-db1100        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-db1100   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -4850,9 +4743,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-db1100 linux-2.4.30-mips/arch/mips/de
  # CONFIG_FB_IT8181 is not set
  # CONFIG_FB_VIRTUAL is not set
  CONFIG_FBCON_ADVANCED=y
-diff -Nur linux-2.4.30/arch/mips/defconfig-db1200 linux-2.4.30-mips/arch/mips/defconfig-db1200
---- linux-2.4.30/arch/mips/defconfig-db1200    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-db1200       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-db1200 linux-2.4.32-rc1.mips/arch/mips/defconfig-db1200
+--- linux-2.4.32-rc1/arch/mips/defconfig-db1200        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-db1200   2005-03-18 13:13:21.000000000 +0100
 @@ -0,0 +1,1032 @@
 +#
 +# Automatically generated make config: don't edit
@@ -5886,9 +5779,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-db1200 linux-2.4.30-mips/arch/mips/de
 +CONFIG_ZLIB_INFLATE=m
 +CONFIG_ZLIB_DEFLATE=m
 +# CONFIG_FW_LOADER is not set
-diff -Nur linux-2.4.30/arch/mips/defconfig-db1500 linux-2.4.30-mips/arch/mips/defconfig-db1500
---- linux-2.4.30/arch/mips/defconfig-db1500    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-db1500       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-db1500 linux-2.4.32-rc1.mips/arch/mips/defconfig-db1500
+--- linux-2.4.32-rc1/arch/mips/defconfig-db1500        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-db1500   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -5919,9 +5812,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-db1500 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-db1550 linux-2.4.30-mips/arch/mips/defconfig-db1550
---- linux-2.4.30/arch/mips/defconfig-db1550    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-db1550       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-db1550 linux-2.4.32-rc1.mips/arch/mips/defconfig-db1550
+--- linux-2.4.32-rc1/arch/mips/defconfig-db1550        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-db1550   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -5972,9 +5865,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-db1550 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-ddb5476 linux-2.4.30-mips/arch/mips/defconfig-ddb5476
---- linux-2.4.30/arch/mips/defconfig-ddb5476   2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ddb5476      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ddb5476 linux-2.4.32-rc1.mips/arch/mips/defconfig-ddb5476
+--- linux-2.4.32-rc1/arch/mips/defconfig-ddb5476       2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ddb5476  2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6005,9 +5898,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ddb5476 linux-2.4.30-mips/arch/mips/d
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-ddb5477 linux-2.4.30-mips/arch/mips/defconfig-ddb5477
---- linux-2.4.30/arch/mips/defconfig-ddb5477   2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ddb5477      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ddb5477 linux-2.4.32-rc1.mips/arch/mips/defconfig-ddb5477
+--- linux-2.4.32-rc1/arch/mips/defconfig-ddb5477       2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ddb5477  2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6038,9 +5931,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ddb5477 linux-2.4.30-mips/arch/mips/d
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-decstation linux-2.4.30-mips/arch/mips/defconfig-decstation
---- linux-2.4.30/arch/mips/defconfig-decstation        2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-decstation   2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-decstation linux-2.4.32-rc1.mips/arch/mips/defconfig-decstation
+--- linux-2.4.32-rc1/arch/mips/defconfig-decstation    2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-decstation       2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6083,9 +5976,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-decstation linux-2.4.30-mips/arch/mip
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-e55 linux-2.4.30-mips/arch/mips/defconfig-e55
---- linux-2.4.30/arch/mips/defconfig-e55       2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-e55  2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-e55 linux-2.4.32-rc1.mips/arch/mips/defconfig-e55
+--- linux-2.4.32-rc1/arch/mips/defconfig-e55   2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-e55      2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6116,9 +6009,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-e55 linux-2.4.30-mips/arch/mips/defco
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-eagle linux-2.4.30-mips/arch/mips/defconfig-eagle
---- linux-2.4.30/arch/mips/defconfig-eagle     2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-eagle        2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-eagle linux-2.4.32-rc1.mips/arch/mips/defconfig-eagle
+--- linux-2.4.32-rc1/arch/mips/defconfig-eagle 2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-eagle    2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6178,9 +6071,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-eagle linux-2.4.30-mips/arch/mips/def
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-ev64120 linux-2.4.30-mips/arch/mips/defconfig-ev64120
---- linux-2.4.30/arch/mips/defconfig-ev64120   2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ev64120      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ev64120 linux-2.4.32-rc1.mips/arch/mips/defconfig-ev64120
+--- linux-2.4.32-rc1/arch/mips/defconfig-ev64120       2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ev64120  2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6211,9 +6104,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ev64120 linux-2.4.30-mips/arch/mips/d
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-ev96100 linux-2.4.30-mips/arch/mips/defconfig-ev96100
---- linux-2.4.30/arch/mips/defconfig-ev96100   2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ev96100      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ev96100 linux-2.4.32-rc1.mips/arch/mips/defconfig-ev96100
+--- linux-2.4.32-rc1/arch/mips/defconfig-ev96100       2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ev96100  2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -6244,9 +6137,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ev96100 linux-2.4.30-mips/arch/mips/d
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-ficmmp linux-2.4.30-mips/arch/mips/defconfig-ficmmp
---- linux-2.4.30/arch/mips/defconfig-ficmmp    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ficmmp       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ficmmp linux-2.4.32-rc1.mips/arch/mips/defconfig-ficmmp
+--- linux-2.4.32-rc1/arch/mips/defconfig-ficmmp        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ficmmp   2005-03-18 13:13:21.000000000 +0100
 @@ -0,0 +1,862 @@
 +#
 +# Automatically generated make config: don't edit
@@ -7110,9 +7003,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ficmmp linux-2.4.30-mips/arch/mips/de
 +# CONFIG_CRC32 is not set
 +CONFIG_ZLIB_INFLATE=m
 +CONFIG_ZLIB_DEFLATE=m
-diff -Nur linux-2.4.30/arch/mips/defconfig-hp-lj linux-2.4.30-mips/arch/mips/defconfig-hp-lj
---- linux-2.4.30/arch/mips/defconfig-hp-lj     2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-hp-lj        2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-hp-lj linux-2.4.32-rc1.mips/arch/mips/defconfig-hp-lj
+--- linux-2.4.32-rc1/arch/mips/defconfig-hp-lj 2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-hp-lj    2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7172,9 +7065,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-hp-lj linux-2.4.30-mips/arch/mips/def
  # CONFIG_UNIX98_PTYS is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips/defconfig-hydrogen3 linux-2.4.30-mips/arch/mips/defconfig-hydrogen3
---- linux-2.4.30/arch/mips/defconfig-hydrogen3 2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-hydrogen3    2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-hydrogen3 linux-2.4.32-rc1.mips/arch/mips/defconfig-hydrogen3
+--- linux-2.4.32-rc1/arch/mips/defconfig-hydrogen3     2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-hydrogen3        2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7239,9 +7132,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-hydrogen3 linux-2.4.30-mips/arch/mips
  # CONFIG_FB_IT8181 is not set
  # CONFIG_FB_VIRTUAL is not set
  CONFIG_FBCON_ADVANCED=y
-diff -Nur linux-2.4.30/arch/mips/defconfig-ip22 linux-2.4.30-mips/arch/mips/defconfig-ip22
---- linux-2.4.30/arch/mips/defconfig-ip22      2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ip22 2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ip22 linux-2.4.32-rc1.mips/arch/mips/defconfig-ip22
+--- linux-2.4.32-rc1/arch/mips/defconfig-ip22  2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ip22     2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7284,9 +7177,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ip22 linux-2.4.30-mips/arch/mips/defc
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-it8172 linux-2.4.30-mips/arch/mips/defconfig-it8172
---- linux-2.4.30/arch/mips/defconfig-it8172    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-it8172       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-it8172 linux-2.4.32-rc1.mips/arch/mips/defconfig-it8172
+--- linux-2.4.32-rc1/arch/mips/defconfig-it8172        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-it8172   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7346,9 +7239,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-it8172 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-ivr linux-2.4.30-mips/arch/mips/defconfig-ivr
---- linux-2.4.30/arch/mips/defconfig-ivr       2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ivr  2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ivr linux-2.4.32-rc1.mips/arch/mips/defconfig-ivr
+--- linux-2.4.32-rc1/arch/mips/defconfig-ivr   2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ivr      2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7379,9 +7272,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ivr linux-2.4.30-mips/arch/mips/defco
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-jmr3927 linux-2.4.30-mips/arch/mips/defconfig-jmr3927
---- linux-2.4.30/arch/mips/defconfig-jmr3927   2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-jmr3927      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-jmr3927 linux-2.4.32-rc1.mips/arch/mips/defconfig-jmr3927
+--- linux-2.4.32-rc1/arch/mips/defconfig-jmr3927       2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-jmr3927  2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7412,9 +7305,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-jmr3927 linux-2.4.30-mips/arch/mips/d
  # CONFIG_UNIX98_PTYS is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips/defconfig-lasat linux-2.4.30-mips/arch/mips/defconfig-lasat
---- linux-2.4.30/arch/mips/defconfig-lasat     2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-lasat        2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-lasat linux-2.4.32-rc1.mips/arch/mips/defconfig-lasat
+--- linux-2.4.32-rc1/arch/mips/defconfig-lasat 2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-lasat    2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7463,20 +7356,31 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-lasat linux-2.4.30-mips/arch/mips/def
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-malta linux-2.4.30-mips/arch/mips/defconfig-malta
---- linux-2.4.30/arch/mips/defconfig-malta     2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-malta        2005-03-18 13:13:21.000000000 +0100
-@@ -30,8 +30,8 @@
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-malta linux-2.4.32-rc1.mips/arch/mips/defconfig-malta
+--- linux-2.4.32-rc1/arch/mips/defconfig-malta 2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-malta    2005-04-19 14:19:34.000000000 +0200
+@@ -22,16 +22,19 @@
+ #
+ # CONFIG_ACER_PICA_61 is not set
+ # CONFIG_MIPS_BOSPORUS is not set
++# CONFIG_MIPS_FICMMP is not set
+ # CONFIG_MIPS_MIRAGE is not set
+ # CONFIG_MIPS_DB1000 is not set
+ # CONFIG_MIPS_DB1100 is not set
+ # CONFIG_MIPS_DB1500 is not set
+ # CONFIG_MIPS_DB1550 is not set
++# CONFIG_MIPS_DB1200 is not set
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
  # CONFIG_MIPS_PB1500 is not set
 -# CONFIG_MIPS_HYDROGEN3 is not set
  # CONFIG_MIPS_PB1550 is not set
++# CONFIG_MIPS_PB1200 is not set
 +# CONFIG_MIPS_HYDROGEN3 is not set
  # CONFIG_MIPS_XXS1500 is not set
  # CONFIG_MIPS_MTX1 is not set
  # CONFIG_COGENT_CSB250 is not set
-@@ -237,11 +237,6 @@
+@@ -237,11 +240,6 @@
  #
  # CONFIG_IPX is not set
  # CONFIG_ATALK is not set
@@ -7488,7 +7392,92 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-malta linux-2.4.30-mips/arch/mips/def
  # CONFIG_DECNET is not set
  # CONFIG_BRIDGE is not set
  # CONFIG_X25 is not set
-@@ -319,9 +314,11 @@
+@@ -273,8 +271,83 @@
+ #
+ # ATA/IDE/MFM/RLL support
+ #
+-# CONFIG_IDE is not set
++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_IDE_SATA 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_DELKIN is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=y
++CONFIG_BLK_DEV_IDEFLOPPY=y
++CONFIG_BLK_DEV_IDESCSI=y
++# 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=y
++CONFIG_IDEPCI_SHARE_IRQ=y
++CONFIG_BLK_DEV_IDEDMA_PCI=y
++# CONFIG_BLK_DEV_OFFBOARD is not set
++CONFIG_BLK_DEV_IDEDMA_FORCED=y
++CONFIG_IDEDMA_PCI_AUTO=y
++# 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_ATIIXP is not set
++# CONFIG_BLK_DEV_CMD64X is not set
++# 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=y
++# 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_IDE_CHIPSETS is not set
++CONFIG_IDEDMA_AUTO=y
++# CONFIG_IDEDMA_IVB is not set
++# CONFIG_DMA_NONPCI is not set
++# 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_MEDLEY is not set
++# CONFIG_BLK_DEV_ATARAID_SII is not set
+ #
+ # SCSI support
+@@ -319,9 +392,11 @@
  # CONFIG_SCSI_MEGARAID is not set
  # CONFIG_SCSI_MEGARAID2 is not set
  # CONFIG_SCSI_SATA is not set
@@ -7500,7 +7489,7 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-malta linux-2.4.30-mips/arch/mips/def
  # CONFIG_SCSI_SATA_PROMISE is not set
  # CONFIG_SCSI_SATA_SX4 is not set
  # CONFIG_SCSI_SATA_SIL is not set
-@@ -524,7 +521,6 @@
+@@ -524,7 +599,6 @@
  CONFIG_SERIAL_CONSOLE=y
  # CONFIG_SERIAL_EXTENDED is not set
  # CONFIG_SERIAL_NONSTANDARD is not set
@@ -7508,9 +7497,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-malta linux-2.4.30-mips/arch/mips/def
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-mirage linux-2.4.30-mips/arch/mips/defconfig-mirage
---- linux-2.4.30/arch/mips/defconfig-mirage    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-mirage       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-mirage linux-2.4.32-rc1.mips/arch/mips/defconfig-mirage
+--- linux-2.4.32-rc1/arch/mips/defconfig-mirage        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-mirage   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7559,9 +7548,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-mirage linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-mpc30x linux-2.4.30-mips/arch/mips/defconfig-mpc30x
---- linux-2.4.30/arch/mips/defconfig-mpc30x    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-mpc30x       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-mpc30x linux-2.4.32-rc1.mips/arch/mips/defconfig-mpc30x
+--- linux-2.4.32-rc1/arch/mips/defconfig-mpc30x        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-mpc30x   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7592,9 +7581,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-mpc30x linux-2.4.30-mips/arch/mips/de
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-mtx-1 linux-2.4.30-mips/arch/mips/defconfig-mtx-1
---- linux-2.4.30/arch/mips/defconfig-mtx-1     2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-mtx-1        2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-mtx-1 linux-2.4.32-rc1.mips/arch/mips/defconfig-mtx-1
+--- linux-2.4.32-rc1/arch/mips/defconfig-mtx-1 2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-mtx-1    2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7655,9 +7644,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-mtx-1 linux-2.4.30-mips/arch/mips/def
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-nino linux-2.4.30-mips/arch/mips/defconfig-nino
---- linux-2.4.30/arch/mips/defconfig-nino      2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-nino 2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-nino linux-2.4.32-rc1.mips/arch/mips/defconfig-nino
+--- linux-2.4.32-rc1/arch/mips/defconfig-nino  2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-nino     2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7688,9 +7677,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-nino linux-2.4.30-mips/arch/mips/defc
  # CONFIG_UNIX98_PTYS is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips/defconfig-ocelot linux-2.4.30-mips/arch/mips/defconfig-ocelot
---- linux-2.4.30/arch/mips/defconfig-ocelot    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ocelot       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ocelot linux-2.4.32-rc1.mips/arch/mips/defconfig-ocelot
+--- linux-2.4.32-rc1/arch/mips/defconfig-ocelot        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ocelot   2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7739,9 +7728,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ocelot linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-osprey linux-2.4.30-mips/arch/mips/defconfig-osprey
---- linux-2.4.30/arch/mips/defconfig-osprey    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-osprey       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-osprey linux-2.4.32-rc1.mips/arch/mips/defconfig-osprey
+--- linux-2.4.32-rc1/arch/mips/defconfig-osprey        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-osprey   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -7772,9 +7761,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-osprey linux-2.4.30-mips/arch/mips/de
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-pb1000 linux-2.4.30-mips/arch/mips/defconfig-pb1000
---- linux-2.4.30/arch/mips/defconfig-pb1000    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-pb1000       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-pb1000 linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1000
+--- linux-2.4.32-rc1/arch/mips/defconfig-pb1000        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1000   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  CONFIG_MIPS_PB1000=y
  # CONFIG_MIPS_PB1100 is not set
@@ -7832,9 +7821,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-pb1000 linux-2.4.30-mips/arch/mips/de
  # CONFIG_TS_AU1X00_ADS7846 is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips/defconfig-pb1100 linux-2.4.30-mips/arch/mips/defconfig-pb1100
---- linux-2.4.30/arch/mips/defconfig-pb1100    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-pb1100       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-pb1100 linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1100
+--- linux-2.4.32-rc1/arch/mips/defconfig-pb1100        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1100   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  CONFIG_MIPS_PB1100=y
@@ -7899,9 +7888,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-pb1100 linux-2.4.30-mips/arch/mips/de
  # CONFIG_FB_IT8181 is not set
  # CONFIG_FB_VIRTUAL is not set
  CONFIG_FBCON_ADVANCED=y
-diff -Nur linux-2.4.30/arch/mips/defconfig-pb1200 linux-2.4.30-mips/arch/mips/defconfig-pb1200
---- linux-2.4.30/arch/mips/defconfig-pb1200    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-pb1200       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-pb1200 linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1200
+--- linux-2.4.32-rc1/arch/mips/defconfig-pb1200        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1200   2005-03-18 13:13:21.000000000 +0100
 @@ -0,0 +1,1060 @@
 +#
 +# Automatically generated make config: don't edit
@@ -8963,9 +8952,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-pb1200 linux-2.4.30-mips/arch/mips/de
 +CONFIG_ZLIB_INFLATE=m
 +CONFIG_ZLIB_DEFLATE=m
 +# CONFIG_FW_LOADER is not set
-diff -Nur linux-2.4.30/arch/mips/defconfig-pb1500 linux-2.4.30-mips/arch/mips/defconfig-pb1500
---- linux-2.4.30/arch/mips/defconfig-pb1500    2005-01-19 15:09:28.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-pb1500       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-pb1500 linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1500
+--- linux-2.4.32-rc1/arch/mips/defconfig-pb1500        2005-01-19 15:09:28.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1500   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9014,9 +9003,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-pb1500 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-pb1550 linux-2.4.30-mips/arch/mips/defconfig-pb1550
---- linux-2.4.30/arch/mips/defconfig-pb1550    2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-pb1550       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-pb1550 linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1550
+--- linux-2.4.32-rc1/arch/mips/defconfig-pb1550        2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-pb1550   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9067,9 +9056,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-pb1550 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-rbtx4927 linux-2.4.30-mips/arch/mips/defconfig-rbtx4927
---- linux-2.4.30/arch/mips/defconfig-rbtx4927  2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-rbtx4927     2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-rbtx4927 linux-2.4.32-rc1.mips/arch/mips/defconfig-rbtx4927
+--- linux-2.4.32-rc1/arch/mips/defconfig-rbtx4927      2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-rbtx4927 2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9100,9 +9089,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-rbtx4927 linux-2.4.30-mips/arch/mips/
  # CONFIG_UNIX98_PTYS is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips/defconfig-rm200 linux-2.4.30-mips/arch/mips/defconfig-rm200
---- linux-2.4.30/arch/mips/defconfig-rm200     2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-rm200        2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-rm200 linux-2.4.32-rc1.mips/arch/mips/defconfig-rm200
+--- linux-2.4.32-rc1/arch/mips/defconfig-rm200 2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-rm200    2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9133,9 +9122,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-rm200 linux-2.4.30-mips/arch/mips/def
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-sb1250-swarm linux-2.4.30-mips/arch/mips/defconfig-sb1250-swarm
---- linux-2.4.30/arch/mips/defconfig-sb1250-swarm      2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-sb1250-swarm 2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-sb1250-swarm linux-2.4.32-rc1.mips/arch/mips/defconfig-sb1250-swarm
+--- linux-2.4.32-rc1/arch/mips/defconfig-sb1250-swarm  2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-sb1250-swarm     2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9174,9 +9163,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-sb1250-swarm linux-2.4.30-mips/arch/m
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-sead linux-2.4.30-mips/arch/mips/defconfig-sead
---- linux-2.4.30/arch/mips/defconfig-sead      2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-sead 2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-sead linux-2.4.32-rc1.mips/arch/mips/defconfig-sead
+--- linux-2.4.32-rc1/arch/mips/defconfig-sead  2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-sead     2005-03-18 13:13:21.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9195,9 +9184,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-sead linux-2.4.30-mips/arch/mips/defc
  # CONFIG_UNIX98_PTYS is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips/defconfig-stretch linux-2.4.30-mips/arch/mips/defconfig-stretch
---- linux-2.4.30/arch/mips/defconfig-stretch   2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-stretch      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-stretch linux-2.4.32-rc1.mips/arch/mips/defconfig-stretch
+--- linux-2.4.32-rc1/arch/mips/defconfig-stretch       2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-stretch  2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9240,9 +9229,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-stretch linux-2.4.30-mips/arch/mips/d
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-tb0226 linux-2.4.30-mips/arch/mips/defconfig-tb0226
---- linux-2.4.30/arch/mips/defconfig-tb0226    2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-tb0226       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-tb0226 linux-2.4.32-rc1.mips/arch/mips/defconfig-tb0226
+--- linux-2.4.32-rc1/arch/mips/defconfig-tb0226        2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-tb0226   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9285,9 +9274,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-tb0226 linux-2.4.30-mips/arch/mips/de
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-tb0229 linux-2.4.30-mips/arch/mips/defconfig-tb0229
---- linux-2.4.30/arch/mips/defconfig-tb0229    2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-tb0229       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-tb0229 linux-2.4.32-rc1.mips/arch/mips/defconfig-tb0229
+--- linux-2.4.32-rc1/arch/mips/defconfig-tb0229        2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-tb0229   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9318,9 +9307,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-tb0229 linux-2.4.30-mips/arch/mips/de
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-ti1500 linux-2.4.30-mips/arch/mips/defconfig-ti1500
---- linux-2.4.30/arch/mips/defconfig-ti1500    2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-ti1500       2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-ti1500 linux-2.4.32-rc1.mips/arch/mips/defconfig-ti1500
+--- linux-2.4.32-rc1/arch/mips/defconfig-ti1500        2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-ti1500   2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9369,9 +9358,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-ti1500 linux-2.4.30-mips/arch/mips/de
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-workpad linux-2.4.30-mips/arch/mips/defconfig-workpad
---- linux-2.4.30/arch/mips/defconfig-workpad   2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-workpad      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-workpad linux-2.4.32-rc1.mips/arch/mips/defconfig-workpad
+--- linux-2.4.32-rc1/arch/mips/defconfig-workpad       2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-workpad  2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9402,9 +9391,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-workpad linux-2.4.30-mips/arch/mips/d
  # CONFIG_VR41XX_KIU is not set
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
-diff -Nur linux-2.4.30/arch/mips/defconfig-xxs1500 linux-2.4.30-mips/arch/mips/defconfig-xxs1500
---- linux-2.4.30/arch/mips/defconfig-xxs1500   2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-xxs1500      2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-xxs1500 linux-2.4.32-rc1.mips/arch/mips/defconfig-xxs1500
+--- linux-2.4.32-rc1/arch/mips/defconfig-xxs1500       2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-xxs1500  2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9453,9 +9442,9 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-xxs1500 linux-2.4.30-mips/arch/mips/d
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/defconfig-yosemite linux-2.4.30-mips/arch/mips/defconfig-yosemite
---- linux-2.4.30/arch/mips/defconfig-yosemite  2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/defconfig-yosemite     2005-03-18 13:13:21.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/defconfig-yosemite linux-2.4.32-rc1.mips/arch/mips/defconfig-yosemite
+--- linux-2.4.32-rc1/arch/mips/defconfig-yosemite      2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/defconfig-yosemite 2005-03-18 13:13:21.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -9498,10 +9487,10 @@ diff -Nur linux-2.4.30/arch/mips/defconfig-yosemite linux-2.4.30-mips/arch/mips/
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-mips/arch/mips/kernel/cpu-probe.c
---- linux-2.4.30/arch/mips/kernel/cpu-probe.c  2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/kernel/cpu-probe.c     2005-04-08 10:33:17.000000000 +0200
-@@ -34,16 +34,12 @@
+diff -Nur linux-2.4.32-rc1/arch/mips/kernel/cpu-probe.c linux-2.4.32-rc1.mips/arch/mips/kernel/cpu-probe.c
+--- linux-2.4.32-rc1/arch/mips/kernel/cpu-probe.c      2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/kernel/cpu-probe.c 2005-05-25 15:33:22.000000000 +0200
+@@ -34,21 +34,16 @@
                ".set\tmips0");
  }
  
@@ -9515,26 +9504,36 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-mips/arch/mips/
 +/* The Au1xxx wait is available only if using 32khz counter or
 + * external timer source, but specifically not CP0 Counter. */
 +int allow_au1k_wait; 
++
 +static void au1k_wait(void)
  {
 -#ifdef CONFIG_PM
 -      unsigned long addr;
-+      unsigned long addr = 0;
        /* using the wait instruction makes CP0 counter unusable */
-       __asm__("la %0,au1k_wait\n\t"
-               ".set mips3\n\t"
-@@ -58,10 +54,6 @@
+-      __asm__("la %0,au1k_wait\n\t"
+-              ".set mips3\n\t"
+-              "cache 0x14,0(%0)\n\t"
+-              "cache 0x14,32(%0)\n\t"
++      __asm__(".set mips3\n\t"
++              "cache 0x14, 0(%0)\n\t"
++              "cache 0x14, 32(%0)\n\t"
+               "sync\n\t"
+               "nop\n\t"
+               "wait\n\t"
+@@ -57,11 +52,7 @@
+               "nop\n\t"
                "nop\n\t"
                ".set mips0\n\t"
-               : : "r" (addr));
+-              : : "r" (addr));
 -#else
 -      __asm__("nop\n\t"
 -              "nop");
 -#endif
++              : : "r" (au1k_wait));
  }
  
  static inline void check_wait(void)
-@@ -100,20 +92,17 @@
+@@ -100,20 +91,17 @@
                cpu_wait = r4k_wait;
                printk(" available.\n");
                break;
@@ -9559,9 +9558,9 @@ diff -Nur linux-2.4.30/arch/mips/kernel/cpu-probe.c linux-2.4.30-mips/arch/mips/
        default:
                printk(" unavailable.\n");
                break;
-diff -Nur linux-2.4.30/arch/mips/kernel/head.S linux-2.4.30-mips/arch/mips/kernel/head.S
---- linux-2.4.30/arch/mips/kernel/head.S       2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/kernel/head.S  2004-11-22 14:38:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/kernel/head.S linux-2.4.32-rc1.mips/arch/mips/kernel/head.S
+--- linux-2.4.32-rc1/arch/mips/kernel/head.S   2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/kernel/head.S      2004-11-22 14:38:23.000000000 +0100
 @@ -43,9 +43,9 @@
  
                /* Cache Error */
@@ -9730,9 +9729,39 @@ diff -Nur linux-2.4.30/arch/mips/kernel/head.S linux-2.4.30-mips/arch/mips/kerne
                END(smp_bootstrap)
  #endif
  
-diff -Nur linux-2.4.30/arch/mips/kernel/scall_o32.S linux-2.4.30-mips/arch/mips/kernel/scall_o32.S
---- linux-2.4.30/arch/mips/kernel/scall_o32.S  2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/kernel/scall_o32.S     2005-02-07 22:21:53.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/kernel/process.c linux-2.4.32-rc1.mips/arch/mips/kernel/process.c
+--- linux-2.4.32-rc1/arch/mips/kernel/process.c        2003-08-25 13:44:40.000000000 +0200
++++ linux-2.4.32-rc1.mips/arch/mips/kernel/process.c   2005-04-14 12:41:44.000000000 +0200
+@@ -128,6 +128,26 @@
+       return 1;
+ }
++void dump_regs(elf_greg_t *gp, struct pt_regs *regs)
++{
++      int i;
++
++      for (i = 0; i < EF_REG0; i++)
++              gp[i] = 0;
++      gp[EF_REG0] = 0;
++      for (i = 1; i <= 31; i++)
++              gp[EF_REG0 + i] = regs->regs[i];
++      gp[EF_REG26] = 0;
++      gp[EF_REG27] = 0;
++      gp[EF_LO] = regs->lo;
++      gp[EF_HI] = regs->hi;
++      gp[EF_CP0_EPC] = regs->cp0_epc;
++      gp[EF_CP0_BADVADDR] = regs->cp0_badvaddr;
++      gp[EF_CP0_STATUS] = regs->cp0_status;
++      gp[EF_CP0_CAUSE] = regs->cp0_cause;
++      gp[EF_UNUSED0] = 0;
++}
++
+ /*
+  * Create a kernel thread
+  */
+diff -Nur linux-2.4.32-rc1/arch/mips/kernel/scall_o32.S linux-2.4.32-rc1.mips/arch/mips/kernel/scall_o32.S
+--- linux-2.4.32-rc1/arch/mips/kernel/scall_o32.S      2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/kernel/scall_o32.S 2005-02-07 22:21:53.000000000 +0100
 @@ -121,15 +121,14 @@
  
  trace_a_syscall:
@@ -9751,9 +9780,9 @@ diff -Nur linux-2.4.30/arch/mips/kernel/scall_o32.S linux-2.4.30-mips/arch/mips/
  
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
-diff -Nur linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30-mips/arch/mips/kernel/setup.c
---- linux-2.4.30/arch/mips/kernel/setup.c      2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/kernel/setup.c 2005-01-13 22:15:57.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/kernel/setup.c linux-2.4.32-rc1.mips/arch/mips/kernel/setup.c
+--- linux-2.4.32-rc1/arch/mips/kernel/setup.c  2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/kernel/setup.c     2005-01-13 22:15:57.000000000 +0100
 @@ -5,7 +5,7 @@
   *
   * Copyright (C) 1995  Linus Torvalds
@@ -9783,9 +9812,9 @@ diff -Nur linux-2.4.30/arch/mips/kernel/setup.c linux-2.4.30-mips/arch/mips/kern
        start_kernel();
  }
  
-diff -Nur linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30-mips/arch/mips/kernel/traps.c
---- linux-2.4.30/arch/mips/kernel/traps.c      2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/kernel/traps.c 2005-04-12 22:25:34.000000000 +0200
+diff -Nur linux-2.4.32-rc1/arch/mips/kernel/traps.c linux-2.4.32-rc1.mips/arch/mips/kernel/traps.c
+--- linux-2.4.32-rc1/arch/mips/kernel/traps.c  2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/kernel/traps.c     2005-04-12 22:25:34.000000000 +0200
 @@ -452,9 +452,10 @@
        }
        ll_task = current;
@@ -9872,9 +9901,9 @@ diff -Nur linux-2.4.30/arch/mips/kernel/traps.c linux-2.4.30-mips/arch/mips/kern
 -      TLBMISS_HANDLER_SETUP();
 +      per_cpu_trap_init();
  }
-diff -Nur linux-2.4.30/arch/mips/lib/rtc-no.c linux-2.4.30-mips/arch/mips/lib/rtc-no.c
---- linux-2.4.30/arch/mips/lib/rtc-no.c        2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/lib/rtc-no.c   2005-01-13 22:15:57.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/lib/rtc-no.c linux-2.4.32-rc1.mips/arch/mips/lib/rtc-no.c
+--- linux-2.4.32-rc1/arch/mips/lib/rtc-no.c    2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/lib/rtc-no.c       2005-01-13 22:15:57.000000000 +0100
 @@ -6,10 +6,9 @@
   * Stub RTC routines to keep Linux from crashing on machine which don't
   * have a RTC chip.
@@ -9893,9 +9922,9 @@ diff -Nur linux-2.4.30/arch/mips/lib/rtc-no.c linux-2.4.30-mips/arch/mips/lib/rt
  };
 -
 -EXPORT_SYMBOL(rtc_ops);
-diff -Nur linux-2.4.30/arch/mips/lib/rtc-std.c linux-2.4.30-mips/arch/mips/lib/rtc-std.c
---- linux-2.4.30/arch/mips/lib/rtc-std.c       2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/lib/rtc-std.c  2005-01-13 22:15:57.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips/lib/rtc-std.c linux-2.4.32-rc1.mips/arch/mips/lib/rtc-std.c
+--- linux-2.4.32-rc1/arch/mips/lib/rtc-std.c   2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/lib/rtc-std.c      2005-01-13 22:15:57.000000000 +0100
 @@ -5,9 +5,8 @@
   *
   * RTC routines for PC style attached Dallas chip.
@@ -9913,42 +9942,79 @@ diff -Nur linux-2.4.30/arch/mips/lib/rtc-std.c linux-2.4.30-mips/arch/mips/lib/r
  };
 -
 -EXPORT_SYMBOL(rtc_ops);
-diff -Nur linux-2.4.30/arch/mips/mm/c-r4k.c linux-2.4.30-mips/arch/mips/mm/c-r4k.c
---- linux-2.4.30/arch/mips/mm/c-r4k.c  2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/mm/c-r4k.c     2005-02-06 22:55:42.000000000 +0100
-@@ -867,9 +867,16 @@
-        * normally they'd suffer from aliases but magic in the hardware deals
-        * with that for us so we don't need to take care ourselves.
-        */
--      if (c->cputype != CPU_R10000 && c->cputype != CPU_R12000)
--              if (c->dcache.waysize > PAGE_SIZE)
--                      c->dcache.flags |= MIPS_CACHE_ALIASES;
-+      switch (c->cputype) {
-+      case CPU_R10000:
-+      case CPU_R12000:
-+              break;
-+      case CPU_24K:
-+              if (!(read_c0_config7() & (1 << 16)))
-+      default:
-+                      if (c->dcache.waysize > PAGE_SIZE)
-+                              c->dcache.flags |= MIPS_CACHE_ALIASES;
-+      }
+diff -Nur linux-2.4.32-rc1/arch/mips/Makefile linux-2.4.32-rc1.mips/arch/mips/Makefile
+--- linux-2.4.32-rc1/arch/mips/Makefile        2005-01-19 15:09:26.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/Makefile   2005-01-30 09:01:26.000000000 +0100
+@@ -211,7 +211,7 @@
+ endif
  
-       switch (c->cputype) {
-       case CPU_20KC:
-@@ -1069,9 +1076,6 @@
-       probe_pcache();
-       setup_scache();
+ #
+-# Au1000 (Alchemy Semi PB1000) eval board
++# Au1x AMD Alchemy eval boards
+ #
+ ifdef CONFIG_MIPS_PB1000
+ LIBS          += arch/mips/au1000/pb1000/pb1000.o \
+@@ -220,9 +220,6 @@
+ LOADADDR      := 0x80100000
+ endif
  
--      if (c->dcache.sets * c->dcache.ways > PAGE_SIZE)
--              c->dcache.flags |= MIPS_CACHE_ALIASES;
--
-       r4k_blast_dcache_page_setup();
-       r4k_blast_dcache_page_indexed_setup();
-       r4k_blast_dcache_setup();
-diff -Nur linux-2.4.30/arch/mips/mm/cerr-sb1.c linux-2.4.30-mips/arch/mips/mm/cerr-sb1.c
---- linux-2.4.30/arch/mips/mm/cerr-sb1.c       2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/mm/cerr-sb1.c  2004-12-13 18:37:23.000000000 +0100
+-#
+-# Au1100 (Alchemy Semi PB1100) eval board
+-#
+ ifdef CONFIG_MIPS_PB1100
+ LIBS          += arch/mips/au1000/pb1100/pb1100.o \
+                  arch/mips/au1000/common/au1000.o
+@@ -230,9 +227,6 @@
+ LOADADDR      += 0x80100000
+ endif
+-#
+-# Au1500 (Alchemy Semi PB1500) eval board
+-#
+ ifdef CONFIG_MIPS_PB1500
+ LIBS          += arch/mips/au1000/pb1500/pb1500.o \
+                  arch/mips/au1000/common/au1000.o
+@@ -240,9 +234,6 @@
+ LOADADDR      := 0x80100000
+ endif
+-#
+-# Au1x00 (AMD/Alchemy) eval boards
+-#
+ ifdef CONFIG_MIPS_DB1000
+ LIBS          += arch/mips/au1000/db1x00/db1x00.o \
+                  arch/mips/au1000/common/au1000.o
+@@ -313,6 +304,27 @@
+ LOADADDR      += 0x80100000
+ endif
++ifdef CONFIG_MIPS_PB1200
++LIBS          += arch/mips/au1000/pb1200/pb1200.o \
++                 arch/mips/au1000/common/au1000.o
++SUBDIRS       += arch/mips/au1000/pb1200 arch/mips/au1000/common
++LOADADDR      += 0x80100000
++endif
++
++ifdef CONFIG_MIPS_DB1200
++LIBS          += arch/mips/au1000/pb1200/pb1200.o \
++                 arch/mips/au1000/common/au1000.o
++SUBDIRS       += arch/mips/au1000/pb1200 arch/mips/au1000/common
++LOADADDR      += 0x80100000
++endif
++
++ifdef CONFIG_MIPS_FICMMP
++LIBS          += arch/mips/au1000/ficmmp/ficmmp.o \
++                 arch/mips/au1000/common/au1000.o
++SUBDIRS       += arch/mips/au1000/ficmmp arch/mips/au1000/common
++LOADADDR      += 0x80100000
++endif
++
+ #
+ # Cogent CSB250
+diff -Nur linux-2.4.32-rc1/arch/mips/mm/cerr-sb1.c linux-2.4.32-rc1.mips/arch/mips/mm/cerr-sb1.c
+--- linux-2.4.32-rc1/arch/mips/mm/cerr-sb1.c   2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/mm/cerr-sb1.c      2004-12-13 18:37:23.000000000 +0100
 @@ -252,14 +252,14 @@
  
  /* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
@@ -9993,67 +10059,183 @@ diff -Nur linux-2.4.30/arch/mips/mm/cerr-sb1.c linux-2.4.30-mips/arch/mips/mm/ce
                if (way == 0) {
                        lru = (taghi >> 14) & 0xff;
                        prom_printf("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
-diff -Nur linux-2.4.30/arch/mips/mm/tlb-r4k.c linux-2.4.30-mips/arch/mips/mm/tlb-r4k.c
---- linux-2.4.30/arch/mips/mm/tlb-r4k.c        2005-01-19 15:09:29.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/mm/tlb-r4k.c   2004-11-25 23:18:38.000000000 +0100
-@@ -3,17 +3,12 @@
-  * License.  See the file "COPYING" in the main directory of this archive
-  * for more details.
-  *
-- * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
-- *
-  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-  * Copyright (C) 1997, 1998, 1999, 2000 Ralf Baechle ralf@gnu.org
-- *
-- * To do:
-- *
-- *  - this code is a overbloated pig
-- *  - many of the bug workarounds are not efficient at all, but at
-- *    least they are functional ...
-+ * Carsten Langgaard, carstenl@mips.com
-+ * Copyright (C) 2002 MIPS Technologies, Inc.  All rights reserved.
-  */
-+#include <linux/config.h>
- #include <linux/init.h>
- #include <linux/sched.h>
- #include <linux/mm.h>
-@@ -25,9 +20,6 @@
- #include <asm/pgtable.h>
- #include <asm/system.h>
--#undef DEBUG_TLB
--#undef DEBUG_TLBUPDATE
--
- extern char except_vec0_nevada, except_vec0_r4000, except_vec0_r4600;
+diff -Nur linux-2.4.32-rc1/arch/mips/mm/c-r4k.c linux-2.4.32-rc1.mips/arch/mips/mm/c-r4k.c
+--- linux-2.4.32-rc1/arch/mips/mm/c-r4k.c      2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/mm/c-r4k.c 2005-02-06 22:55:42.000000000 +0100
+@@ -867,9 +867,16 @@
+        * normally they'd suffer from aliases but magic in the hardware deals
+        * with that for us so we don't need to take care ourselves.
+        */
+-      if (c->cputype != CPU_R10000 && c->cputype != CPU_R12000)
+-              if (c->dcache.waysize > PAGE_SIZE)
+-                      c->dcache.flags |= MIPS_CACHE_ALIASES;
++      switch (c->cputype) {
++      case CPU_R10000:
++      case CPU_R12000:
++              break;
++      case CPU_24K:
++              if (!(read_c0_config7() & (1 << 16)))
++      default:
++                      if (c->dcache.waysize > PAGE_SIZE)
++                              c->dcache.flags |= MIPS_CACHE_ALIASES;
++      }
  
- /* CP0 hazard avoidance. */
-@@ -41,33 +33,23 @@
-       unsigned long old_ctx;
-       int entry;
+       switch (c->cputype) {
+       case CPU_20KC:
+@@ -1069,9 +1076,6 @@
+       probe_pcache();
+       setup_scache();
  
--#ifdef DEBUG_TLB
--      printk("[tlball]");
--#endif
+-      if (c->dcache.sets * c->dcache.ways > PAGE_SIZE)
+-              c->dcache.flags |= MIPS_CACHE_ALIASES;
 -
-       local_irq_save(flags);
-       /* Save old context and create impossible VPN2 value */
-       old_ctx = read_c0_entryhi();
-       write_c0_entrylo0(0);
-       write_c0_entrylo1(0);
--      BARRIER;
-       entry = read_c0_wired();
-       /* Blast 'em all away. */
-       while (entry < current_cpu_data.tlbsize) {
--              /*
--               * Make sure all entries differ.  If they're not different
--               * MIPS32 will take revenge ...
--               */
-               write_c0_entryhi(KSEG0 + entry*0x2000);
-               write_c0_index(entry);
--              BARRIER;
-+              mtc0_tlbw_hazard();
+       r4k_blast_dcache_page_setup();
+       r4k_blast_dcache_page_indexed_setup();
+       r4k_blast_dcache_setup();
+diff -Nur linux-2.4.32-rc1/arch/mips/mm/tlbex-mips32.S linux-2.4.32-rc1.mips/arch/mips/mm/tlbex-mips32.S
+--- linux-2.4.32-rc1/arch/mips/mm/tlbex-mips32.S       2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/mm/tlbex-mips32.S  2004-11-29 00:33:15.000000000 +0100
+@@ -196,7 +196,7 @@
+       .set    noat; \
+       SAVE_ALL; \
+       mfc0    a2, CP0_BADVADDR; \
+-      STI; \
++      KMODE; \
+       .set    at; \
+       move    a0, sp; \
+       jal     do_page_fault; \
+diff -Nur linux-2.4.32-rc1/arch/mips/mm/tlbex-r4k.S linux-2.4.32-rc1.mips/arch/mips/mm/tlbex-r4k.S
+--- linux-2.4.32-rc1/arch/mips/mm/tlbex-r4k.S  2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/mm/tlbex-r4k.S     2005-06-06 16:46:22.000000000 +0200
+@@ -184,13 +184,10 @@
+       P_MTC0  k0, CP0_ENTRYLO0                # load it
+       PTE_SRL k1, k1, 6                       # convert to entrylo1
+       P_MTC0  k1, CP0_ENTRYLO1                # load it
+-      b       1f
+-      rm9000_tlb_hazard
++      mtc0_tlbw_hazard
+       tlbwr                                   # write random tlb entry
+-1:
+-      nop
+-      rm9000_tlb_hazard
+-      eret                                    # return from trap
++      tlbw_eret_hazard
++      eret
+       END(except_vec0_r4000)
+       /* TLB refill, EXL == 0, R4600 version */
+@@ -468,13 +465,9 @@
+       PTE_PRESENT(k0, k1, nopage_tlbl)
+       PTE_MAKEVALID(k0, k1)
+       PTE_RELOAD(k1, k0)
+-      rm9000_tlb_hazard
+-      nop
+-      b       1f
+-       tlbwi
+-1:
+-      nop
+-      rm9000_tlb_hazard
++      mtc0_tlbw_hazard
++      tlbwi
++      tlbw_eret_hazard
+       .set    mips3
+       eret
+       .set    mips0
+@@ -496,13 +489,9 @@
+       PTE_WRITABLE(k0, k1, nopage_tlbs)
+       PTE_MAKEWRITE(k0, k1)
+       PTE_RELOAD(k1, k0)
+-      rm9000_tlb_hazard
+-      nop
+-      b       1f
+-       tlbwi
+-1:
+-      nop
+-      rm9000_tlb_hazard
++      mtc0_tlbw_hazard
++      tlbwi
++      tlbw_eret_hazard
+       .set    mips3
+       eret
+       .set    mips0
+@@ -529,13 +518,9 @@
+       /* Now reload the entry into the tlb. */
+       PTE_RELOAD(k1, k0)
+-      rm9000_tlb_hazard
+-      nop
+-      b       1f
+-       tlbwi
+-1:
+-      rm9000_tlb_hazard
+-      nop
++      mtc0_tlbw_hazard
++      tlbwi
++      tlbw_eret_hazard
+       .set    mips3
+       eret
+       .set    mips0
+diff -Nur linux-2.4.32-rc1/arch/mips/mm/tlb-r4k.c linux-2.4.32-rc1.mips/arch/mips/mm/tlb-r4k.c
+--- linux-2.4.32-rc1/arch/mips/mm/tlb-r4k.c    2005-01-19 15:09:29.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips/mm/tlb-r4k.c       2004-11-25 23:18:38.000000000 +0100
+@@ -3,17 +3,12 @@
+  * License.  See the file "COPYING" in the main directory of this archive
+  * for more details.
+  *
+- * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
+- *
+  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+  * Copyright (C) 1997, 1998, 1999, 2000 Ralf Baechle ralf@gnu.org
+- *
+- * To do:
+- *
+- *  - this code is a overbloated pig
+- *  - many of the bug workarounds are not efficient at all, but at
+- *    least they are functional ...
++ * Carsten Langgaard, carstenl@mips.com
++ * Copyright (C) 2002 MIPS Technologies, Inc.  All rights reserved.
+  */
++#include <linux/config.h>
+ #include <linux/init.h>
+ #include <linux/sched.h>
+ #include <linux/mm.h>
+@@ -25,9 +20,6 @@
+ #include <asm/pgtable.h>
+ #include <asm/system.h>
+-#undef DEBUG_TLB
+-#undef DEBUG_TLBUPDATE
+-
+ extern char except_vec0_nevada, except_vec0_r4000, except_vec0_r4600;
+ /* CP0 hazard avoidance. */
+@@ -41,33 +33,23 @@
+       unsigned long old_ctx;
+       int entry;
+-#ifdef DEBUG_TLB
+-      printk("[tlball]");
+-#endif
+-
+       local_irq_save(flags);
+       /* Save old context and create impossible VPN2 value */
+       old_ctx = read_c0_entryhi();
+       write_c0_entrylo0(0);
+       write_c0_entrylo1(0);
+-      BARRIER;
+       entry = read_c0_wired();
+       /* Blast 'em all away. */
+       while (entry < current_cpu_data.tlbsize) {
+-              /*
+-               * Make sure all entries differ.  If they're not different
+-               * MIPS32 will take revenge ...
+-               */
+               write_c0_entryhi(KSEG0 + entry*0x2000);
+               write_c0_index(entry);
+-              BARRIER;
++              mtc0_tlbw_hazard();
                tlb_write_indexed();
 -              BARRIER;
                entry++;
@@ -10322,92 +10504,9 @@ diff -Nur linux-2.4.30/arch/mips/mm/tlb-r4k.c linux-2.4.30-mips/arch/mips/mm/tlb
  
        /*
         * You should never change this register:
-diff -Nur linux-2.4.30/arch/mips/mm/tlbex-mips32.S linux-2.4.30-mips/arch/mips/mm/tlbex-mips32.S
---- linux-2.4.30/arch/mips/mm/tlbex-mips32.S   2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/mm/tlbex-mips32.S      2004-11-29 00:33:15.000000000 +0100
-@@ -196,7 +196,7 @@
-       .set    noat; \
-       SAVE_ALL; \
-       mfc0    a2, CP0_BADVADDR; \
--      STI; \
-+      KMODE; \
-       .set    at; \
-       move    a0, sp; \
-       jal     do_page_fault; \
-diff -Nur linux-2.4.30/arch/mips/mm/tlbex-r4k.S linux-2.4.30-mips/arch/mips/mm/tlbex-r4k.S
---- linux-2.4.30/arch/mips/mm/tlbex-r4k.S      2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips/mm/tlbex-r4k.S 2004-11-25 23:18:38.000000000 +0100
-@@ -184,13 +184,10 @@
-       P_MTC0  k0, CP0_ENTRYLO0                # load it
-       PTE_SRL k1, k1, 6                       # convert to entrylo1
-       P_MTC0  k1, CP0_ENTRYLO1                # load it
--      b       1f
--      rm9000_tlb_hazard
-+      mtc0_tlbw_hazard
-       tlbwr                                   # write random tlb entry
--1:
--      nop
--      rm9000_tlb_hazard
--      eret                                    # return from trap
-+      tlbw_eret_hazard
-+      eret
-       END(except_vec0_r4000)
-       /* TLB refill, EXL == 0, R4600 version */
-@@ -468,13 +465,10 @@
-       PTE_PRESENT(k0, k1, nopage_tlbl)
-       PTE_MAKEVALID(k0, k1)
-       PTE_RELOAD(k1, k0)
--      rm9000_tlb_hazard
--      nop
--      b       1f
--       tlbwi
--1:
-+      mtc0_tlbw_hazard
-+      tlbwi
-       nop
--      rm9000_tlb_hazard
-+      tlbw_eret_hazard
-       .set    mips3
-       eret
-       .set    mips0
-@@ -496,13 +490,10 @@
-       PTE_WRITABLE(k0, k1, nopage_tlbs)
-       PTE_MAKEWRITE(k0, k1)
-       PTE_RELOAD(k1, k0)
--      rm9000_tlb_hazard
--      nop
--      b       1f
--       tlbwi
--1:
-+      mtc0_tlbw_hazard
-+      tlbwi
-       nop
--      rm9000_tlb_hazard
-+      tlbw_eret_hazard
-       .set    mips3
-       eret
-       .set    mips0
-@@ -529,13 +520,10 @@
-       /* Now reload the entry into the tlb. */
-       PTE_RELOAD(k1, k0)
--      rm9000_tlb_hazard
--      nop
--      b       1f
--       tlbwi
--1:
--      rm9000_tlb_hazard
-+      mtc0_tlbw_hazard
-+      tlbwi
-       nop
-+      tlbw_eret_hazard
-       .set    mips3
-       eret
-       .set    mips0
-diff -Nur linux-2.4.30/arch/mips64/defconfig linux-2.4.30-mips/arch/mips64/defconfig
---- linux-2.4.30/arch/mips64/defconfig 2005-01-19 15:09:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig    2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig linux-2.4.32-rc1.mips/arch/mips64/defconfig
+--- linux-2.4.32-rc1/arch/mips64/defconfig     2005-01-19 15:09:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig        2005-03-18 13:13:23.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10438,9 +10537,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig linux-2.4.30-mips/arch/mips64/defco
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-atlas linux-2.4.30-mips/arch/mips64/defconfig-atlas
---- linux-2.4.30/arch/mips64/defconfig-atlas   2005-01-19 15:09:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-atlas      2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-atlas linux-2.4.32-rc1.mips/arch/mips64/defconfig-atlas
+--- linux-2.4.32-rc1/arch/mips64/defconfig-atlas       2005-01-19 15:09:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-atlas  2005-03-18 13:13:23.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10483,9 +10582,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-atlas linux-2.4.30-mips/arch/mips64
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-decstation linux-2.4.30-mips/arch/mips64/defconfig-decstation
---- linux-2.4.30/arch/mips64/defconfig-decstation      2005-01-19 15:09:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-decstation 2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-decstation linux-2.4.32-rc1.mips/arch/mips64/defconfig-decstation
+--- linux-2.4.32-rc1/arch/mips64/defconfig-decstation  2005-01-19 15:09:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-decstation     2005-03-18 13:13:23.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10528,9 +10627,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-decstation linux-2.4.30-mips/arch/m
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-ip22 linux-2.4.30-mips/arch/mips64/defconfig-ip22
---- linux-2.4.30/arch/mips64/defconfig-ip22    2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-ip22       2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-ip22 linux-2.4.32-rc1.mips/arch/mips64/defconfig-ip22
+--- linux-2.4.32-rc1/arch/mips64/defconfig-ip22        2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-ip22   2005-03-18 13:13:23.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10573,9 +10672,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-ip22 linux-2.4.30-mips/arch/mips64/
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-ip27 linux-2.4.30-mips/arch/mips64/defconfig-ip27
---- linux-2.4.30/arch/mips64/defconfig-ip27    2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-ip27       2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-ip27 linux-2.4.32-rc1.mips/arch/mips64/defconfig-ip27
+--- linux-2.4.32-rc1/arch/mips64/defconfig-ip27        2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-ip27   2005-03-18 13:13:23.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10606,9 +10705,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-ip27 linux-2.4.30-mips/arch/mips64/
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-jaguar linux-2.4.30-mips/arch/mips64/defconfig-jaguar
---- linux-2.4.30/arch/mips64/defconfig-jaguar  2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-jaguar     2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-jaguar linux-2.4.32-rc1.mips/arch/mips64/defconfig-jaguar
+--- linux-2.4.32-rc1/arch/mips64/defconfig-jaguar      2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-jaguar 2005-03-18 13:13:23.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10639,20 +10738,43 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-jaguar linux-2.4.30-mips/arch/mips6
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-malta linux-2.4.30-mips/arch/mips64/defconfig-malta
---- linux-2.4.30/arch/mips64/defconfig-malta   2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-malta      2005-03-18 13:13:23.000000000 +0100
-@@ -30,8 +30,8 @@
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-malta linux-2.4.32-rc1.mips/arch/mips64/defconfig-malta
+--- linux-2.4.32-rc1/arch/mips64/defconfig-malta       2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-malta  2005-04-19 14:19:34.000000000 +0200
+@@ -22,16 +22,19 @@
+ #
+ # CONFIG_ACER_PICA_61 is not set
+ # CONFIG_MIPS_BOSPORUS is not set
++# CONFIG_MIPS_FICMMP is not set
+ # CONFIG_MIPS_MIRAGE is not set
+ # CONFIG_MIPS_DB1000 is not set
+ # CONFIG_MIPS_DB1100 is not set
+ # CONFIG_MIPS_DB1500 is not set
+ # CONFIG_MIPS_DB1550 is not set
++# CONFIG_MIPS_DB1200 is not set
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
  # CONFIG_MIPS_PB1500 is not set
 -# CONFIG_MIPS_HYDROGEN3 is not set
  # CONFIG_MIPS_PB1550 is not set
++# CONFIG_MIPS_PB1200 is not set
 +# CONFIG_MIPS_HYDROGEN3 is not set
  # CONFIG_MIPS_XXS1500 is not set
  # CONFIG_MIPS_MTX1 is not set
  # CONFIG_COGENT_CSB250 is not set
-@@ -235,11 +235,6 @@
+@@ -146,9 +149,9 @@
+ CONFIG_BINFMT_ELF=y
+ CONFIG_MIPS32_COMPAT=y
+ CONFIG_MIPS32_O32=y
+-# CONFIG_MIPS32_N32 is not set
++CONFIG_MIPS32_N32=y
+ CONFIG_BINFMT_ELF32=y
+-# CONFIG_BINFMT_MISC is not set
++CONFIG_BINFMT_MISC=y
+ # CONFIG_OOM_KILLER is not set
+ # CONFIG_CMDLINE_BOOL is not set
+@@ -235,11 +238,6 @@
  #
  # CONFIG_IPX is not set
  # CONFIG_ATALK is not set
@@ -10664,7 +10786,92 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-malta linux-2.4.30-mips/arch/mips64
  # CONFIG_DECNET is not set
  # CONFIG_BRIDGE is not set
  # CONFIG_X25 is not set
-@@ -317,9 +312,11 @@
+@@ -271,8 +269,83 @@
+ #
+ # ATA/IDE/MFM/RLL support
+ #
+-# CONFIG_IDE is not set
++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_IDE_SATA 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_DELKIN is not set
++CONFIG_BLK_DEV_IDECD=y
++CONFIG_BLK_DEV_IDETAPE=y
++CONFIG_BLK_DEV_IDEFLOPPY=y
++# 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=y
++CONFIG_IDEPCI_SHARE_IRQ=y
++CONFIG_BLK_DEV_IDEDMA_PCI=y
++# CONFIG_BLK_DEV_OFFBOARD is not set
++CONFIG_BLK_DEV_IDEDMA_FORCED=y
++CONFIG_IDEDMA_PCI_AUTO=y
++# 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_ATIIXP is not set
++# CONFIG_BLK_DEV_CMD64X is not set
++# 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=y
++# 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_IDE_CHIPSETS is not set
++CONFIG_IDEDMA_AUTO=y
++# CONFIG_IDEDMA_IVB is not set
++# CONFIG_DMA_NONPCI is not set
++# 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_MEDLEY is not set
++# CONFIG_BLK_DEV_ATARAID_SII is not set
+ #
+ # SCSI support
+@@ -317,9 +390,11 @@
  # CONFIG_SCSI_MEGARAID is not set
  # CONFIG_SCSI_MEGARAID2 is not set
  # CONFIG_SCSI_SATA is not set
@@ -10676,7 +10883,7 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-malta linux-2.4.30-mips/arch/mips64
  # CONFIG_SCSI_SATA_PROMISE is not set
  # CONFIG_SCSI_SATA_SX4 is not set
  # CONFIG_SCSI_SATA_SIL is not set
-@@ -477,7 +474,6 @@
+@@ -477,7 +552,6 @@
  CONFIG_SERIAL_CONSOLE=y
  # CONFIG_SERIAL_EXTENDED is not set
  # CONFIG_SERIAL_NONSTANDARD is not set
@@ -10684,9 +10891,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-malta linux-2.4.30-mips/arch/mips64
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-ocelotc linux-2.4.30-mips/arch/mips64/defconfig-ocelotc
---- linux-2.4.30/arch/mips64/defconfig-ocelotc 2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-ocelotc    2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-ocelotc linux-2.4.32-rc1.mips/arch/mips64/defconfig-ocelotc
+--- linux-2.4.32-rc1/arch/mips64/defconfig-ocelotc     2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-ocelotc        2005-03-18 13:13:23.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10717,9 +10924,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-ocelotc linux-2.4.30-mips/arch/mips
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-sb1250-swarm linux-2.4.30-mips/arch/mips64/defconfig-sb1250-swarm
---- linux-2.4.30/arch/mips64/defconfig-sb1250-swarm    2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-sb1250-swarm       2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-sb1250-swarm linux-2.4.32-rc1.mips/arch/mips64/defconfig-sb1250-swarm
+--- linux-2.4.32-rc1/arch/mips64/defconfig-sb1250-swarm        2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-sb1250-swarm   2005-03-18 13:13:23.000000000 +0100
 @@ -30,8 +30,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10758,9 +10965,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-sb1250-swarm linux-2.4.30-mips/arch
  CONFIG_UNIX98_PTYS=y
  CONFIG_UNIX98_PTY_COUNT=256
  
-diff -Nur linux-2.4.30/arch/mips64/defconfig-sead linux-2.4.30-mips/arch/mips64/defconfig-sead
---- linux-2.4.30/arch/mips64/defconfig-sead    2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/defconfig-sead       2005-03-18 13:13:23.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/defconfig-sead linux-2.4.32-rc1.mips/arch/mips64/defconfig-sead
+--- linux-2.4.32-rc1/arch/mips64/defconfig-sead        2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/defconfig-sead   2005-03-18 13:13:23.000000000 +0100
 @@ -28,8 +28,8 @@
  # CONFIG_MIPS_PB1000 is not set
  # CONFIG_MIPS_PB1100 is not set
@@ -10779,9 +10986,9 @@ diff -Nur linux-2.4.30/arch/mips64/defconfig-sead linux-2.4.30-mips/arch/mips64/
  # CONFIG_UNIX98_PTYS is not set
  
  #
-diff -Nur linux-2.4.30/arch/mips64/kernel/binfmt_elfn32.c linux-2.4.30-mips/arch/mips64/kernel/binfmt_elfn32.c
---- linux-2.4.30/arch/mips64/kernel/binfmt_elfn32.c    2003-08-25 13:44:40.000000000 +0200
-+++ linux-2.4.30-mips/arch/mips64/kernel/binfmt_elfn32.c       2005-01-26 03:40:47.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/binfmt_elfn32.c linux-2.4.32-rc1.mips/arch/mips64/kernel/binfmt_elfn32.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/binfmt_elfn32.c        2003-08-25 13:44:40.000000000 +0200
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/binfmt_elfn32.c   2005-01-26 03:40:47.000000000 +0100
 @@ -116,4 +116,7 @@
  #undef MODULE_DESCRIPTION
  #undef MODULE_AUTHOR
@@ -10790,9 +10997,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/binfmt_elfn32.c linux-2.4.30-mips/arch
 +#define TASK_SIZE TASK_SIZE32
 +
  #include "../../../fs/binfmt_elf.c"
-diff -Nur linux-2.4.30/arch/mips64/kernel/binfmt_elfo32.c linux-2.4.30-mips/arch/mips64/kernel/binfmt_elfo32.c
---- linux-2.4.30/arch/mips64/kernel/binfmt_elfo32.c    2003-08-25 13:44:40.000000000 +0200
-+++ linux-2.4.30-mips/arch/mips64/kernel/binfmt_elfo32.c       2005-01-26 03:40:47.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/binfmt_elfo32.c linux-2.4.32-rc1.mips/arch/mips64/kernel/binfmt_elfo32.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/binfmt_elfo32.c        2003-08-25 13:44:40.000000000 +0200
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/binfmt_elfo32.c   2005-01-26 03:40:47.000000000 +0100
 @@ -137,4 +137,7 @@
  #undef MODULE_DESCRIPTION
  #undef MODULE_AUTHOR
@@ -10801,9 +11008,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/binfmt_elfo32.c linux-2.4.30-mips/arch
 +#define TASK_SIZE TASK_SIZE32
 +
  #include "../../../fs/binfmt_elf.c"
-diff -Nur linux-2.4.30/arch/mips64/kernel/head.S linux-2.4.30-mips/arch/mips64/kernel/head.S
---- linux-2.4.30/arch/mips64/kernel/head.S     2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/head.S        2004-11-22 14:38:26.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/head.S linux-2.4.32-rc1.mips/arch/mips64/kernel/head.S
+--- linux-2.4.32-rc1/arch/mips64/kernel/head.S 2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/head.S    2004-11-22 14:38:26.000000000 +0100
 @@ -91,6 +91,21 @@
        __INIT
  
@@ -10888,9 +11095,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/head.S linux-2.4.30-mips/arch/mips64/k
        END(smp_bootstrap)
  #endif /* CONFIG_SMP */
  
-diff -Nur linux-2.4.30/arch/mips64/kernel/ioctl32.c linux-2.4.30-mips/arch/mips64/kernel/ioctl32.c
---- linux-2.4.30/arch/mips64/kernel/ioctl32.c  2005-01-19 15:09:31.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/ioctl32.c     2005-01-26 03:36:17.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/ioctl32.c linux-2.4.32-rc1.mips/arch/mips64/kernel/ioctl32.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/ioctl32.c      2005-01-19 15:09:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/ioctl32.c 2005-01-26 03:36:17.000000000 +0100
 @@ -2352,7 +2352,7 @@
        IOCTL32_HANDLER(AUTOFS_IOC_SETTIMEOUT32, ioc_settimeout),
        IOCTL32_DEFAULT(AUTOFS_IOC_EXPIRE),
@@ -10900,10 +11107,18 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/ioctl32.c linux-2.4.30-mips/arch/mips6
        IOCTL32_DEFAULT(AUTOFS_IOC_ASKREGHOST),
        IOCTL32_DEFAULT(AUTOFS_IOC_TOGGLEREGHOST),
        IOCTL32_DEFAULT(AUTOFS_IOC_ASKUMOUNT),
-diff -Nur linux-2.4.30/arch/mips64/kernel/linux32.c linux-2.4.30-mips/arch/mips64/kernel/linux32.c
---- linux-2.4.30/arch/mips64/kernel/linux32.c  2005-04-04 03:42:19.000000000 +0200
-+++ linux-2.4.30-mips/arch/mips64/kernel/linux32.c     2005-03-18 13:13:23.000000000 +0100
-@@ -1187,72 +1187,19 @@
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/linux32.c linux-2.4.32-rc1.mips/arch/mips64/kernel/linux32.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/linux32.c      2005-04-04 03:42:19.000000000 +0200
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/linux32.c 2005-04-22 15:01:00.000000000 +0200
+@@ -1101,6 +1101,7 @@
+        * specially as they have atomicity guarantees and can handle
+        * iovec's natively
+        */
++      inode = file->f_dentry->d_inode;
+       if (inode->i_sock) {
+               int err;
+               err = sock_readv_writev(type, inode, file, iov, count, tot_len);
+@@ -1187,72 +1188,19 @@
     lseek back to original location.  They fail just like lseek does on
     non-seekable files.  */
  
@@ -10950,7 +11165,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/linux32.c linux-2.4.30-mips/arch/mips6
 -      struct file * file;
 -      ssize_t (*write)(struct file *, const char *, size_t, loff_t *);
 -      loff_t pos;
--
++      return sys_pwrite(fd, buf, count, merge_64(a4, a5));
++}
 -      ret = -EBADF;
 -      file = fget(fd);
 -      if (!file)
@@ -10967,7 +11184,7 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/linux32.c linux-2.4.30-mips/arch/mips6
 -              goto out;
 -      if (pos < 0)
 -              goto out;
--
 -      ret = write(file, buf, count, &pos);
 -      if (ret > 0)
 -              dnotify_parent(file->f_dentry, DN_MODIFY);
@@ -10975,16 +11192,42 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/linux32.c linux-2.4.30-mips/arch/mips6
 -      fput(file);
 -bad_file:
 -      return ret;
-+      return sys_pwrite(fd, buf, count, merge_64(a4, a5));
- }
-+
-+
+-}
  /*
   * Ooo, nasty.  We need here to frob 32-bit unsigned longs to
   * 64-bit unsigned longs.
-diff -Nur linux-2.4.30/arch/mips64/kernel/scall_64.S linux-2.4.30-mips/arch/mips64/kernel/scall_64.S
---- linux-2.4.30/arch/mips64/kernel/scall_64.S 2005-01-19 15:09:32.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/scall_64.S    2005-02-07 22:21:54.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/process.c linux-2.4.32-rc1.mips/arch/mips64/kernel/process.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/process.c      2003-08-25 13:44:40.000000000 +0200
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/process.c 2005-04-14 12:41:44.000000000 +0200
+@@ -125,6 +125,25 @@
+       return 1;
+ }
++void dump_regs(elf_greg_t *gp, struct pt_regs *regs)
++{
++      int i;
++
++      for (i = 0; i < EF_REG0; i++)
++              gp[i] = 0;
++      gp[EF_REG0] = 0;
++      for (i = 1; i <= 31; i++)
++              gp[EF_REG0 + i] = regs->regs[i];
++      gp[EF_REG26] = 0;
++      gp[EF_REG27] = 0;
++      gp[EF_LO] = regs->lo;
++      gp[EF_HI] = regs->hi;
++      gp[EF_CP0_EPC] = regs->cp0_epc;
++      gp[EF_CP0_BADVADDR] = regs->cp0_badvaddr;
++      gp[EF_CP0_STATUS] = regs->cp0_status;
++      gp[EF_CP0_CAUSE] = regs->cp0_cause;
++}
++
+ /*
+  * Create a kernel thread
+  */
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/scall_64.S linux-2.4.32-rc1.mips/arch/mips64/kernel/scall_64.S
+--- linux-2.4.32-rc1/arch/mips64/kernel/scall_64.S     2005-01-19 15:09:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/scall_64.S        2005-02-07 22:21:54.000000000 +0100
 @@ -102,15 +102,14 @@
  
  trace_a_syscall:
@@ -11003,9 +11246,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/scall_64.S linux-2.4.30-mips/arch/mips
  
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
-diff -Nur linux-2.4.30/arch/mips64/kernel/scall_n32.S linux-2.4.30-mips/arch/mips64/kernel/scall_n32.S
---- linux-2.4.30/arch/mips64/kernel/scall_n32.S        2005-01-19 15:09:32.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/scall_n32.S   2005-02-07 22:21:54.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/scall_n32.S linux-2.4.32-rc1.mips/arch/mips64/kernel/scall_n32.S
+--- linux-2.4.32-rc1/arch/mips64/kernel/scall_n32.S    2005-01-19 15:09:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/scall_n32.S       2005-02-07 22:21:54.000000000 +0100
 @@ -106,15 +106,14 @@
  
  trace_a_syscall:
@@ -11024,9 +11267,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/scall_n32.S linux-2.4.30-mips/arch/mip
  
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
-diff -Nur linux-2.4.30/arch/mips64/kernel/scall_o32.S linux-2.4.30-mips/arch/mips64/kernel/scall_o32.S
---- linux-2.4.30/arch/mips64/kernel/scall_o32.S        2005-01-19 15:09:32.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/scall_o32.S   2005-02-14 04:52:57.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/scall_o32.S linux-2.4.32-rc1.mips/arch/mips64/kernel/scall_o32.S
+--- linux-2.4.32-rc1/arch/mips64/kernel/scall_o32.S    2005-01-19 15:09:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/scall_o32.S       2005-02-14 04:52:57.000000000 +0100
 @@ -118,9 +118,8 @@
        sd      a6, PT_R10(sp)
        sd      a7, PT_R11(sp)
@@ -11056,9 +11299,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/scall_o32.S linux-2.4.30-mips/arch/mip
        .macro  sys function, nargs
        .byte   \nargs
        .endm
-diff -Nur linux-2.4.30/arch/mips64/kernel/setup.c linux-2.4.30-mips/arch/mips64/kernel/setup.c
---- linux-2.4.30/arch/mips64/kernel/setup.c    2005-01-19 15:09:32.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/setup.c       2004-11-22 14:38:26.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/setup.c linux-2.4.32-rc1.mips/arch/mips64/kernel/setup.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/setup.c        2005-01-19 15:09:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/setup.c   2004-11-22 14:38:26.000000000 +0100
 @@ -129,14 +129,6 @@
         */
        load_mmu();
@@ -11074,9 +11317,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/setup.c linux-2.4.30-mips/arch/mips64/
        start_kernel();
  }
  
-diff -Nur linux-2.4.30/arch/mips64/kernel/signal_n32.c linux-2.4.30-mips/arch/mips64/kernel/signal_n32.c
---- linux-2.4.30/arch/mips64/kernel/signal_n32.c       2005-01-19 15:09:33.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/signal_n32.c  2005-02-07 22:10:53.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/signal_n32.c linux-2.4.32-rc1.mips/arch/mips64/kernel/signal_n32.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/signal_n32.c   2005-01-19 15:09:33.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/signal_n32.c      2005-02-07 22:10:53.000000000 +0100
 @@ -68,7 +68,7 @@
  };
  
@@ -11086,9 +11329,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/signal_n32.c linux-2.4.30-mips/arch/mi
  
  asmlinkage void sysn32_rt_sigreturn(abi64_no_regargs, struct pt_regs regs)
  {
-diff -Nur linux-2.4.30/arch/mips64/kernel/traps.c linux-2.4.30-mips/arch/mips64/kernel/traps.c
---- linux-2.4.30/arch/mips64/kernel/traps.c    2005-01-19 15:09:33.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/kernel/traps.c       2005-04-12 22:25:34.000000000 +0200
+diff -Nur linux-2.4.32-rc1/arch/mips64/kernel/traps.c linux-2.4.32-rc1.mips/arch/mips64/kernel/traps.c
+--- linux-2.4.32-rc1/arch/mips64/kernel/traps.c        2005-01-19 15:09:33.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/kernel/traps.c   2005-04-12 22:25:34.000000000 +0200
 @@ -462,9 +462,10 @@
        }
        ll_task = current;
@@ -11179,42 +11422,9 @@ diff -Nur linux-2.4.30/arch/mips64/kernel/traps.c linux-2.4.30-mips/arch/mips64/
 -      current->active_mm = &init_mm;
 +      per_cpu_trap_init();
  }
-diff -Nur linux-2.4.30/arch/mips64/mm/c-r4k.c linux-2.4.30-mips/arch/mips64/mm/c-r4k.c
---- linux-2.4.30/arch/mips64/mm/c-r4k.c        2005-01-19 15:09:33.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/mm/c-r4k.c   2005-02-06 22:55:42.000000000 +0100
-@@ -867,9 +867,16 @@
-        * normally they'd suffer from aliases but magic in the hardware deals
-        * with that for us so we don't need to take care ourselves.
-        */
--      if (c->cputype != CPU_R10000 && c->cputype != CPU_R12000)
--              if (c->dcache.waysize > PAGE_SIZE)
--                      c->dcache.flags |= MIPS_CACHE_ALIASES;
-+      switch (c->cputype) {
-+      case CPU_R10000:
-+      case CPU_R12000:
-+              break;
-+      case CPU_24K:
-+              if (!(read_c0_config7() & (1 << 16)))
-+      default:
-+                      if (c->dcache.waysize > PAGE_SIZE)
-+                              c->dcache.flags |= MIPS_CACHE_ALIASES;
-+      }
-       switch (c->cputype) {
-       case CPU_20KC:
-@@ -1070,9 +1077,6 @@
-       setup_scache();
-       coherency_setup();
--      if (c->dcache.sets * c->dcache.ways > PAGE_SIZE)
--              c->dcache.flags |= MIPS_CACHE_ALIASES;
--
-       r4k_blast_dcache_page_setup();
-       r4k_blast_dcache_page_indexed_setup();
-       r4k_blast_dcache_setup();
-diff -Nur linux-2.4.30/arch/mips64/mm/cerr-sb1.c linux-2.4.30-mips/arch/mips64/mm/cerr-sb1.c
---- linux-2.4.30/arch/mips64/mm/cerr-sb1.c     2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/mm/cerr-sb1.c        2004-12-13 18:37:26.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/mm/cerr-sb1.c linux-2.4.32-rc1.mips/arch/mips64/mm/cerr-sb1.c
+--- linux-2.4.32-rc1/arch/mips64/mm/cerr-sb1.c 2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/mm/cerr-sb1.c    2004-12-13 18:37:26.000000000 +0100
 @@ -252,14 +252,14 @@
  
  /* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
@@ -11259,9 +11469,153 @@ diff -Nur linux-2.4.30/arch/mips64/mm/cerr-sb1.c linux-2.4.30-mips/arch/mips64/m
                if (way == 0) {
                        lru = (taghi >> 14) & 0xff;
                        prom_printf("[Bank %d Set 0x%02x]  LRU > %d %d %d %d > MRU\n",
-diff -Nur linux-2.4.30/arch/mips64/mm/tlb-r4k.c linux-2.4.30-mips/arch/mips64/mm/tlb-r4k.c
---- linux-2.4.30/arch/mips64/mm/tlb-r4k.c      2005-01-19 15:09:33.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/mm/tlb-r4k.c 2004-11-25 23:18:38.000000000 +0100
+diff -Nur linux-2.4.32-rc1/arch/mips64/mm/c-r4k.c linux-2.4.32-rc1.mips/arch/mips64/mm/c-r4k.c
+--- linux-2.4.32-rc1/arch/mips64/mm/c-r4k.c    2005-01-19 15:09:33.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/mm/c-r4k.c       2005-02-06 22:55:42.000000000 +0100
+@@ -867,9 +867,16 @@
+        * normally they'd suffer from aliases but magic in the hardware deals
+        * with that for us so we don't need to take care ourselves.
+        */
+-      if (c->cputype != CPU_R10000 && c->cputype != CPU_R12000)
+-              if (c->dcache.waysize > PAGE_SIZE)
+-                      c->dcache.flags |= MIPS_CACHE_ALIASES;
++      switch (c->cputype) {
++      case CPU_R10000:
++      case CPU_R12000:
++              break;
++      case CPU_24K:
++              if (!(read_c0_config7() & (1 << 16)))
++      default:
++                      if (c->dcache.waysize > PAGE_SIZE)
++                              c->dcache.flags |= MIPS_CACHE_ALIASES;
++      }
+       switch (c->cputype) {
+       case CPU_20KC:
+@@ -1070,9 +1077,6 @@
+       setup_scache();
+       coherency_setup();
+-      if (c->dcache.sets * c->dcache.ways > PAGE_SIZE)
+-              c->dcache.flags |= MIPS_CACHE_ALIASES;
+-
+       r4k_blast_dcache_page_setup();
+       r4k_blast_dcache_page_indexed_setup();
+       r4k_blast_dcache_setup();
+diff -Nur linux-2.4.32-rc1/arch/mips64/mm/tlbex-r4k.S linux-2.4.32-rc1.mips/arch/mips64/mm/tlbex-r4k.S
+--- linux-2.4.32-rc1/arch/mips64/mm/tlbex-r4k.S        2004-02-18 14:36:30.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/mm/tlbex-r4k.S   2005-06-06 16:46:22.000000000 +0200
+@@ -125,6 +125,33 @@
+        nop
+ END(except_vec1_r4k)
++      __FINIT
++
++      .align  5
++LEAF(handle_vec1_r4k)
++      .set    noat
++      LOAD_PTE2 k1 k0 9f
++      ld      k0, 0(k1)                       # get even pte
++      ld      k1, 8(k1)                       # get odd pte
++      PTE_RELOAD k0 k1
++      mtc0_tlbw_hazard
++      tlbwr
++      tlbw_eret_hazard
++      eret
++
++9:                                            # handle the vmalloc range
++      LOAD_KPTE2 k1 k0 invalid_vmalloc_address
++      ld      k0, 0(k1)                       # get even pte
++      ld      k1, 8(k1)                       # get odd pte
++      PTE_RELOAD k0 k1
++      mtc0_tlbw_hazard
++      tlbwr
++      tlbw_eret_hazard
++      eret
++END(handle_vec1_r4k)
++
++      __INIT
++
+ LEAF(except_vec1_sb1)
+ #if BCM1250_M3_WAR
+       dmfc0   k0, CP0_BADVADDR
+@@ -134,28 +161,24 @@
+       bnez    k0, 1f
+ #endif
+       .set    noat
+-      dla     k0, handle_vec1_r4k
++      dla     k0, handle_vec1_sb1
+       jr      k0
+        nop
+ 1:    eret
+-      nop
+ END(except_vec1_sb1)
+       __FINIT
+       .align  5
+-LEAF(handle_vec1_r4k)
++LEAF(handle_vec1_sb1)
+       .set    noat
+       LOAD_PTE2 k1 k0 9f
+       ld      k0, 0(k1)                       # get even pte
+       ld      k1, 8(k1)                       # get odd pte
+       PTE_RELOAD k0 k1
+-      rm9000_tlb_hazard
+-      b       1f
+-       tlbwr
+-1:    nop
+-      rm9000_tlb_hazard
++      mtc0_tlbw_hazard
++      tlbwr
+       eret
+ 9:                                            # handle the vmalloc range
+@@ -163,13 +186,10 @@
+       ld      k0, 0(k1)                       # get even pte
+       ld      k1, 8(k1)                       # get odd pte
+       PTE_RELOAD k0 k1
+-      rm9000_tlb_hazard
+-      b       1f
+-       tlbwr
+-1:    nop
+-      rm9000_tlb_hazard
++      mtc0_tlbw_hazard
++      tlbwr
+       eret
+-END(handle_vec1_r4k)
++END(handle_vec1_sb1)
+       __INIT
+@@ -195,10 +215,8 @@
+       ld      k0, 0(k1)                       # get even pte
+       ld      k1, 8(k1)                       # get odd pte
+       PTE_RELOAD k0 k1
+-      rm9000_tlb_hazard
+-      nop
++      mtc0_tlbw_hazard
+       tlbwr
+-      rm9000_tlb_hazard
+       eret
+ 9:                                            # handle the vmalloc range
+@@ -206,10 +224,8 @@
+       ld      k0, 0(k1)                       # get even pte
+       ld      k1, 8(k1)                       # get odd pte
+       PTE_RELOAD k0 k1
+-      rm9000_tlb_hazard
+-      nop
++      mtc0_tlbw_hazard
+       tlbwr
+-      rm9000_tlb_hazard
+       eret
+ END(handle_vec1_r10k)
+diff -Nur linux-2.4.32-rc1/arch/mips64/mm/tlb-r4k.c linux-2.4.32-rc1.mips/arch/mips64/mm/tlb-r4k.c
+--- linux-2.4.32-rc1/arch/mips64/mm/tlb-r4k.c  2005-01-19 15:09:33.000000000 +0100
++++ linux-2.4.32-rc1.mips/arch/mips64/mm/tlb-r4k.c     2004-11-25 23:18:38.000000000 +0100
 @@ -1,24 +1,12 @@
  /*
 - * Carsten Langgaard, carstenl@mips.com
@@ -11550,222 +11904,72 @@ diff -Nur linux-2.4.30/arch/mips64/mm/tlb-r4k.c linux-2.4.30-mips/arch/mips64/mm
 +      write_c0_wired(wired + 1);
 +      write_c0_index(wired);
 +      BARRIER;
-+      write_c0_pagemask(pagemask);
-+      write_c0_entryhi(entryhi);
-+      write_c0_entrylo0(entrylo0);
-+      write_c0_entrylo1(entrylo1);
-+      mtc0_tlbw_hazard();
-+      tlb_write_indexed();
-+      tlbw_use_hazard();
-+
-+      write_c0_entryhi(old_ctx);
-+      BARRIER;
-+      write_c0_pagemask(old_pagemask);
-+      local_flush_tlb_all();
-+      local_irq_restore(flags);
- }
- /*
-@@ -317,17 +273,15 @@
-       }
-       write_c0_index(temp_tlb_entry);
--      BARRIER;
-       write_c0_pagemask(pagemask);
-       write_c0_entryhi(entryhi);
-       write_c0_entrylo0(entrylo0);
-       write_c0_entrylo1(entrylo1);
--      BARRIER;
-+      mtc0_tlbw_hazard();
-       tlb_write_indexed();
--      BARRIER;
-+      tlbw_use_hazard();
-       write_c0_entryhi(old_ctx);
--      BARRIER;
-       write_c0_pagemask(old_pagemask);
- out:
-       local_irq_restore(flags);
-@@ -348,15 +302,23 @@
-               return;
-       config1 = read_c0_config1();
--      if (!((config1 >> 7) & 3))
--              panic("No MMU present");
-+      if (!((config >> 7) & 3))
-+              panic("No TLB present");
-       c->tlbsize = ((config1 >> 25) & 0x3f) + 1;
- }
- void __init r4k_tlb_init(void)
- {
--      unsigned long config = read_c0_config();
-+      unsigned int config = read_c0_config();
-+
-+      /*
-+       * You should never change this register:
-+       *   - On R4600 1.7 the tlbp never hits for pages smaller than
-+       *     the value in the c0_pagemask register.
-+       *   - The entire mm handling assumes the c0_pagemask register to
-+       *     be set for 4kb pages.
-+       */
-       probe_tlb(config);
-       write_c0_pagemask(PM_DEFAULT_MASK);
-       write_c0_wired(0);
-diff -Nur linux-2.4.30/arch/mips64/mm/tlbex-r4k.S linux-2.4.30-mips/arch/mips64/mm/tlbex-r4k.S
---- linux-2.4.30/arch/mips64/mm/tlbex-r4k.S    2004-02-18 14:36:30.000000000 +0100
-+++ linux-2.4.30-mips/arch/mips64/mm/tlbex-r4k.S       2004-11-25 23:18:38.000000000 +0100
-@@ -151,11 +151,9 @@
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
--      rm9000_tlb_hazard
--      b       1f
--       tlbwr
--1:    nop
--      rm9000_tlb_hazard
-+      mtc0_tlbw_hazard
-+      tlbwr
-+1:    tlbw_eret_hazard
-       eret
- 9:                                            # handle the vmalloc range
-@@ -163,11 +161,9 @@
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
--      rm9000_tlb_hazard
--      b       1f
--       tlbwr
--1:    nop
--      rm9000_tlb_hazard
-+      mtc0_tlbw_hazard
-+      tlbwr
-+1:    tlbw_eret_hazard
-       eret
- END(handle_vec1_r4k)
-@@ -195,10 +191,9 @@
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
--      rm9000_tlb_hazard
--      nop
-+      mtc0_tlbw_hazard
-       tlbwr
--      rm9000_tlb_hazard
-+      tlbw_eret_hazard
-       eret
- 9:                                            # handle the vmalloc range
-@@ -206,10 +201,9 @@
-       ld      k0, 0(k1)                       # get even pte
-       ld      k1, 8(k1)                       # get odd pte
-       PTE_RELOAD k0 k1
--      rm9000_tlb_hazard
--      nop
-+      mtc0_tlbw_hazard
-       tlbwr
--      rm9000_tlb_hazard
-+      tlbw_eret_hazard
-       eret
- END(handle_vec1_r10k)
-diff -Nur linux-2.4.30/drivers/char/Config.in linux-2.4.30-mips/drivers/char/Config.in
---- linux-2.4.30/drivers/char/Config.in        2004-08-08 01:26:04.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/Config.in   2005-02-11 22:09:56.000000000 +0100
-@@ -313,14 +313,11 @@
- if [ "$CONFIG_OBSOLETE" = "y" -a "$CONFIG_ALPHA_BOOK1" = "y" ]; then
-    bool 'Tadpole ANA H8 Support (OBSOLETE)'  CONFIG_H8
- fi
--if [ "$CONFIG_MIPS" = "y" -a "$CONFIG_NEW_TIME_C" = "y" ]; then
--   tristate 'Generic MIPS RTC Support' CONFIG_MIPS_RTC
--fi
- if [ "$CONFIG_SGI_IP22" = "y" ]; then
--   bool 'SGI DS1286 RTC support' CONFIG_SGI_DS1286
-+   tristate 'Dallas DS1286 RTC support' CONFIG_DS1286
- fi
- if [ "$CONFIG_SGI_IP27" = "y" ]; then
--   bool 'SGI M48T35 RTC support' CONFIG_SGI_IP27_RTC
-+   tristate 'SGI M48T35 RTC support' CONFIG_SGI_IP27_RTC
- fi
- if [ "$CONFIG_TOSHIBA_RBTX4927" = "y" -o "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
-    tristate 'Dallas DS1742 RTC support' CONFIG_DS1742
-@@ -383,6 +380,11 @@
-       source drivers/char/drm/Config.in
-    fi
- fi
-+
-+if [ "$CONFIG_X86" = "y" ]; then
-+   tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
-+fi
++      write_c0_pagemask(pagemask);
++      write_c0_entryhi(entryhi);
++      write_c0_entrylo0(entrylo0);
++      write_c0_entrylo1(entrylo1);
++      mtc0_tlbw_hazard();
++      tlb_write_indexed();
++      tlbw_use_hazard();
 +
- endmenu
++      write_c0_entryhi(old_ctx);
++      BARRIER;
++      write_c0_pagemask(old_pagemask);
++      local_flush_tlb_all();
++      local_irq_restore(flags);
+ }
  
- if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
-@@ -391,6 +393,7 @@
- if [ "$CONFIG_SOC_AU1X00" = "y" ]; then
-    tristate ' Alchemy Au1x00 GPIO device support' CONFIG_AU1X00_GPIO
-    tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1X00_ADS7846
-+   #tristate ' Alchemy Au1550 PSC SPI support' CONFIG_AU1550_PSC_SPI
- fi
- if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
-   tristate ' ITE GPIO' CONFIG_ITE_GPIO
-diff -Nur linux-2.4.30/drivers/char/Makefile linux-2.4.30-mips/drivers/char/Makefile
---- linux-2.4.30/drivers/char/Makefile 2004-08-08 01:26:04.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/Makefile    2005-02-11 22:09:56.000000000 +0100
-@@ -48,7 +48,12 @@
-     KEYBD    =
-   endif
-   ifeq ($(CONFIG_VR41XX_KIU),y)
--    KEYMAP   =
-+    ifeq ($(CONFIG_IBM_WORKPAD),y)
-+      KEYMAP = ibm_workpad_keymap.o
-+    endif
-+    ifeq ($(CONFIG_VICTOR_MPC30X),y)
-+      KEYMAP = victor_mpc30x_keymap.o
-+    endif
-     KEYBD    = vr41xx_keyb.o
-   endif
- endif
-@@ -251,7 +256,6 @@
- obj-$(CONFIG_RTC) += rtc.o
- obj-$(CONFIG_GEN_RTC) += genrtc.o
- obj-$(CONFIG_EFI_RTC) += efirtc.o
--obj-$(CONFIG_SGI_DS1286) += ds1286.o
- obj-$(CONFIG_MIPS_RTC) += mips_rtc.o
- obj-$(CONFIG_SGI_IP27_RTC) += ip27-rtc.o
- ifeq ($(CONFIG_PPC),)
-@@ -259,6 +263,7 @@
- endif
- obj-$(CONFIG_TOSHIBA) += toshiba.o
- obj-$(CONFIG_I8K) += i8k.o
-+obj-$(CONFIG_DS1286) += ds1286.o
- obj-$(CONFIG_DS1620) += ds1620.o
- obj-$(CONFIG_DS1742) += ds1742.o
- obj-$(CONFIG_INTEL_RNG) += i810_rng.o
-@@ -269,6 +274,7 @@
+ /*
+@@ -317,17 +273,15 @@
+       }
  
- obj-$(CONFIG_ITE_GPIO) += ite_gpio.o
- obj-$(CONFIG_AU1X00_GPIO) += au1000_gpio.o
-+obj-$(CONFIG_AU1550_PSC_SPI) += au1550_psc_spi.o
- obj-$(CONFIG_AU1X00_USB_TTY) += au1000_usbtty.o
- obj-$(CONFIG_AU1X00_USB_RAW) += au1000_usbraw.o
- obj-$(CONFIG_COBALT_LCD) += lcd.o
-@@ -353,3 +359,9 @@
+       write_c0_index(temp_tlb_entry);
+-      BARRIER;
+       write_c0_pagemask(pagemask);
+       write_c0_entryhi(entryhi);
+       write_c0_entrylo0(entrylo0);
+       write_c0_entrylo1(entrylo1);
+-      BARRIER;
++      mtc0_tlbw_hazard();
+       tlb_write_indexed();
+-      BARRIER;
++      tlbw_use_hazard();
  
- qtronixmap.c: qtronixmap.map
-       set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
-+
-+ibm_workpad_keymap.c: ibm_workpad_keymap.map
-+      set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
+       write_c0_entryhi(old_ctx);
+-      BARRIER;
+       write_c0_pagemask(old_pagemask);
+ out:
+       local_irq_restore(flags);
+@@ -348,15 +302,23 @@
+               return;
+       config1 = read_c0_config1();
+-      if (!((config1 >> 7) & 3))
+-              panic("No MMU present");
++      if (!((config >> 7) & 3))
++              panic("No TLB present");
+       c->tlbsize = ((config1 >> 25) & 0x3f) + 1;
+ }
+ void __init r4k_tlb_init(void)
+ {
+-      unsigned long config = read_c0_config();
++      unsigned int config = read_c0_config();
 +
-+victor_mpc30x_keymap.c: victor_mpc30x_keymap.map
-+      set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
-diff -Nur linux-2.4.30/drivers/char/au1000_gpio.c linux-2.4.30-mips/drivers/char/au1000_gpio.c
---- linux-2.4.30/drivers/char/au1000_gpio.c    2003-08-25 13:44:41.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/au1000_gpio.c       2003-12-20 14:18:51.000000000 +0100
++      /*
++       * You should never change this register:
++       *   - On R4600 1.7 the tlbp never hits for pages smaller than
++       *     the value in the c0_pagemask register.
++       *   - The entire mm handling assumes the c0_pagemask register to
++       *     be set for 4kb pages.
++       */
+       probe_tlb(config);
+       write_c0_pagemask(PM_DEFAULT_MASK);
+       write_c0_wired(0);
+diff -Nur linux-2.4.32-rc1/drivers/char/au1000_gpio.c linux-2.4.32-rc1.mips/drivers/char/au1000_gpio.c
+--- linux-2.4.32-rc1/drivers/char/au1000_gpio.c        2003-08-25 13:44:41.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/au1000_gpio.c   2003-12-20 14:18:51.000000000 +0100
 @@ -246,7 +246,7 @@
  
  static struct miscdevice au1000gpio_miscdev =
@@ -11775,9 +11979,9 @@ diff -Nur linux-2.4.30/drivers/char/au1000_gpio.c linux-2.4.30-mips/drivers/char
        "au1000_gpio",
        &au1000gpio_fops
  };
-diff -Nur linux-2.4.30/drivers/char/au1550_psc_spi.c linux-2.4.30-mips/drivers/char/au1550_psc_spi.c
---- linux-2.4.30/drivers/char/au1550_psc_spi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/au1550_psc_spi.c    2005-02-11 21:37:24.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/au1550_psc_spi.c linux-2.4.32-rc1.mips/drivers/char/au1550_psc_spi.c
+--- linux-2.4.32-rc1/drivers/char/au1550_psc_spi.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/au1550_psc_spi.c        2005-02-11 21:37:24.000000000 +0100
 @@ -0,0 +1,466 @@
 +/*
 + *  Driver for Alchemy Au1550 SPI on the PSC.
@@ -12245,9 +12449,49 @@ diff -Nur linux-2.4.30/drivers/char/au1550_psc_spi.c linux-2.4.30-mips/drivers/c
 +
 +module_init(au1550spi_init);
 +module_exit(au1550spi_exit);
-diff -Nur linux-2.4.30/drivers/char/decserial.c linux-2.4.30-mips/drivers/char/decserial.c
---- linux-2.4.30/drivers/char/decserial.c      2003-08-25 13:44:41.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/decserial.c 2004-09-28 02:53:01.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/char/Config.in linux-2.4.32-rc1.mips/drivers/char/Config.in
+--- linux-2.4.32-rc1/drivers/char/Config.in    2004-08-08 01:26:04.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/Config.in       2005-02-11 22:09:56.000000000 +0100
+@@ -313,14 +313,11 @@
+ if [ "$CONFIG_OBSOLETE" = "y" -a "$CONFIG_ALPHA_BOOK1" = "y" ]; then
+    bool 'Tadpole ANA H8 Support (OBSOLETE)'  CONFIG_H8
+ fi
+-if [ "$CONFIG_MIPS" = "y" -a "$CONFIG_NEW_TIME_C" = "y" ]; then
+-   tristate 'Generic MIPS RTC Support' CONFIG_MIPS_RTC
+-fi
+ if [ "$CONFIG_SGI_IP22" = "y" ]; then
+-   bool 'SGI DS1286 RTC support' CONFIG_SGI_DS1286
++   tristate 'Dallas DS1286 RTC support' CONFIG_DS1286
+ fi
+ if [ "$CONFIG_SGI_IP27" = "y" ]; then
+-   bool 'SGI M48T35 RTC support' CONFIG_SGI_IP27_RTC
++   tristate 'SGI M48T35 RTC support' CONFIG_SGI_IP27_RTC
+ fi
+ if [ "$CONFIG_TOSHIBA_RBTX4927" = "y" -o "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
+    tristate 'Dallas DS1742 RTC support' CONFIG_DS1742
+@@ -383,6 +380,11 @@
+       source drivers/char/drm/Config.in
+    fi
+ fi
++
++if [ "$CONFIG_X86" = "y" ]; then
++   tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
++fi
++
+ endmenu
+ if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
+@@ -391,6 +393,7 @@
+ if [ "$CONFIG_SOC_AU1X00" = "y" ]; then
+    tristate ' Alchemy Au1x00 GPIO device support' CONFIG_AU1X00_GPIO
+    tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1X00_ADS7846
++   #tristate ' Alchemy Au1550 PSC SPI support' CONFIG_AU1550_PSC_SPI
+ fi
+ if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
+   tristate ' ITE GPIO' CONFIG_ITE_GPIO
+diff -Nur linux-2.4.32-rc1/drivers/char/decserial.c linux-2.4.32-rc1.mips/drivers/char/decserial.c
+--- linux-2.4.32-rc1/drivers/char/decserial.c  2003-08-25 13:44:41.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/decserial.c     2004-09-28 02:53:01.000000000 +0200
 @@ -3,95 +3,105 @@
   *      choose the right serial device at boot time
   *
@@ -12398,9 +12642,9 @@ diff -Nur linux-2.4.30/drivers/char/decserial.c linux-2.4.30-mips/drivers/char/d
  #endif
  }
  
-diff -Nur linux-2.4.30/drivers/char/ds1286.c linux-2.4.30-mips/drivers/char/ds1286.c
---- linux-2.4.30/drivers/char/ds1286.c 2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/ds1286.c    2004-01-10 06:21:39.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/ds1286.c linux-2.4.32-rc1.mips/drivers/char/ds1286.c
+--- linux-2.4.32-rc1/drivers/char/ds1286.c     2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/ds1286.c        2004-01-10 06:21:39.000000000 +0100
 @@ -1,6 +1,10 @@
  /*
   * DS1286 Real Time Clock interface for Linux
@@ -12536,9 +12780,9 @@ diff -Nur linux-2.4.30/drivers/char/ds1286.c linux-2.4.30-mips/drivers/char/ds12
 +
 +MODULE_AUTHOR("Ralf Baechle");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/char/ds1742.c linux-2.4.30-mips/drivers/char/ds1742.c
---- linux-2.4.30/drivers/char/ds1742.c 2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/ds1742.c    2004-01-09 20:27:16.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/ds1742.c linux-2.4.32-rc1.mips/drivers/char/ds1742.c
+--- linux-2.4.32-rc1/drivers/char/ds1742.c     2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/ds1742.c        2004-01-09 20:27:16.000000000 +0100
 @@ -142,6 +142,7 @@
        CMOS_WRITE(RTC_WRITE, RTC_CONTROL);
  
@@ -12574,9 +12818,9 @@ diff -Nur linux-2.4.30/drivers/char/ds1742.c linux-2.4.30-mips/drivers/char/ds17
                to_tm(curr_time, &rtc_tm);
                rtc_tm.tm_year -= 1900;
                return copy_to_user((void *) arg, &rtc_tm, sizeof(rtc_tm)) ? 
-diff -Nur linux-2.4.30/drivers/char/dummy_keyb.c linux-2.4.30-mips/drivers/char/dummy_keyb.c
---- linux-2.4.30/drivers/char/dummy_keyb.c     2003-08-25 13:44:41.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/dummy_keyb.c        2004-01-09 09:53:08.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/dummy_keyb.c linux-2.4.32-rc1.mips/drivers/char/dummy_keyb.c
+--- linux-2.4.32-rc1/drivers/char/dummy_keyb.c 2003-08-25 13:44:41.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/dummy_keyb.c    2004-01-09 09:53:08.000000000 +0100
 @@ -140,3 +140,7 @@
  {
        printk("Dummy keyboard driver installed.\n");
@@ -12585,9 +12829,9 @@ diff -Nur linux-2.4.30/drivers/char/dummy_keyb.c linux-2.4.30-mips/drivers/char/
 +unsigned char kbd_sysrq_key;
 +unsigned char kbd_sysrq_xlate[128];
 +#endif
-diff -Nur linux-2.4.30/drivers/char/dz.c linux-2.4.30-mips/drivers/char/dz.c
---- linux-2.4.30/drivers/char/dz.c     2005-01-19 15:09:44.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/dz.c        2004-12-27 05:13:42.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/dz.c linux-2.4.32-rc1.mips/drivers/char/dz.c
+--- linux-2.4.32-rc1/drivers/char/dz.c 2005-01-19 15:09:44.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/dz.c    2004-12-27 05:13:42.000000000 +0100
 @@ -1,11 +1,13 @@
  /*
 - * dz.c: Serial port driver for DECStations equiped 
@@ -13457,9 +13701,9 @@ diff -Nur linux-2.4.30/drivers/char/dz.c linux-2.4.30-mips/drivers/char/dz.c
  };
  
  void __init dz_serial_console_init(void)
-diff -Nur linux-2.4.30/drivers/char/dz.h linux-2.4.30-mips/drivers/char/dz.h
---- linux-2.4.30/drivers/char/dz.h     2002-08-03 02:39:43.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/dz.h        2004-09-28 02:53:01.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/char/dz.h linux-2.4.32-rc1.mips/drivers/char/dz.h
+--- linux-2.4.32-rc1/drivers/char/dz.h 2002-08-03 02:39:43.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/dz.h    2004-09-28 02:53:01.000000000 +0200
 @@ -10,6 +10,8 @@
  #ifndef DZ_SERIAL_H
  #define DZ_SERIAL_H
@@ -13608,9 +13852,9 @@ diff -Nur linux-2.4.30/drivers/char/dz.h linux-2.4.30-mips/drivers/char/dz.h
 -#endif
 -
  #endif /* DZ_SERIAL_H */
-diff -Nur linux-2.4.30/drivers/char/ibm_workpad_keymap.map linux-2.4.30-mips/drivers/char/ibm_workpad_keymap.map
---- linux-2.4.30/drivers/char/ibm_workpad_keymap.map   1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/ibm_workpad_keymap.map      2003-12-20 15:20:44.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/ibm_workpad_keymap.map linux-2.4.32-rc1.mips/drivers/char/ibm_workpad_keymap.map
+--- linux-2.4.32-rc1/drivers/char/ibm_workpad_keymap.map       1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/ibm_workpad_keymap.map  2003-12-20 15:20:44.000000000 +0100
 @@ -0,0 +1,343 @@
 +# Keymap for IBM Workpad z50
 +# US Mapping
@@ -13955,9 +14199,9 @@ diff -Nur linux-2.4.30/drivers/char/ibm_workpad_keymap.map linux-2.4.30-mips/dri
 +keycode 93 = AltGr
 +keycode 94 = ShiftR
 +      shift keycode 94 = Caps_Lock
-diff -Nur linux-2.4.30/drivers/char/indydog.c linux-2.4.30-mips/drivers/char/indydog.c
---- linux-2.4.30/drivers/char/indydog.c        2003-08-25 13:44:41.000000000 +0200
-+++ linux-2.4.30-mips/drivers/char/indydog.c   2004-06-22 17:32:07.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/char/indydog.c linux-2.4.32-rc1.mips/drivers/char/indydog.c
+--- linux-2.4.32-rc1/drivers/char/indydog.c    2003-08-25 13:44:41.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/indydog.c       2004-06-22 17:32:07.000000000 +0200
 @@ -1,5 +1,5 @@
  /*
 - *    IndyDog 0.2     A Hardware Watchdog Device for SGI IP22
@@ -14201,9 +14445,9 @@ diff -Nur linux-2.4.30/drivers/char/indydog.c linux-2.4.30-mips/drivers/char/ind
 +MODULE_AUTHOR("Guido Guenther <agx@sigxcpu.org>");
 +MODULE_DESCRIPTION("Hardware Watchdog Device for SGI IP22");
  MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/char/ip27-rtc.c linux-2.4.30-mips/drivers/char/ip27-rtc.c
---- linux-2.4.30/drivers/char/ip27-rtc.c       2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/ip27-rtc.c  2004-04-06 03:35:30.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/char/ip27-rtc.c linux-2.4.32-rc1.mips/drivers/char/ip27-rtc.c
+--- linux-2.4.32-rc1/drivers/char/ip27-rtc.c   2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/ip27-rtc.c      2004-04-06 03:35:30.000000000 +0200
 @@ -44,6 +44,7 @@
  #include <asm/sn/klconfig.h>
  #include <asm/sn/sn0/ip27.h>
@@ -14233,9 +14477,60 @@ diff -Nur linux-2.4.30/drivers/char/ip27-rtc.c linux-2.4.30-mips/drivers/char/ip
 +MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");
 +MODULE_DESCRIPTION("SGI IP27 M48T35 RTC driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/char/mips_rtc.c linux-2.4.30-mips/drivers/char/mips_rtc.c
---- linux-2.4.30/drivers/char/mips_rtc.c       2004-01-05 14:53:56.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/mips_rtc.c  2004-06-28 14:54:53.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/char/Makefile linux-2.4.32-rc1.mips/drivers/char/Makefile
+--- linux-2.4.32-rc1/drivers/char/Makefile     2004-08-08 01:26:04.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/Makefile        2005-02-11 22:09:56.000000000 +0100
+@@ -48,7 +48,12 @@
+     KEYBD    =
+   endif
+   ifeq ($(CONFIG_VR41XX_KIU),y)
+-    KEYMAP   =
++    ifeq ($(CONFIG_IBM_WORKPAD),y)
++      KEYMAP = ibm_workpad_keymap.o
++    endif
++    ifeq ($(CONFIG_VICTOR_MPC30X),y)
++      KEYMAP = victor_mpc30x_keymap.o
++    endif
+     KEYBD    = vr41xx_keyb.o
+   endif
+ endif
+@@ -251,7 +256,6 @@
+ obj-$(CONFIG_RTC) += rtc.o
+ obj-$(CONFIG_GEN_RTC) += genrtc.o
+ obj-$(CONFIG_EFI_RTC) += efirtc.o
+-obj-$(CONFIG_SGI_DS1286) += ds1286.o
+ obj-$(CONFIG_MIPS_RTC) += mips_rtc.o
+ obj-$(CONFIG_SGI_IP27_RTC) += ip27-rtc.o
+ ifeq ($(CONFIG_PPC),)
+@@ -259,6 +263,7 @@
+ endif
+ obj-$(CONFIG_TOSHIBA) += toshiba.o
+ obj-$(CONFIG_I8K) += i8k.o
++obj-$(CONFIG_DS1286) += ds1286.o
+ obj-$(CONFIG_DS1620) += ds1620.o
+ obj-$(CONFIG_DS1742) += ds1742.o
+ obj-$(CONFIG_INTEL_RNG) += i810_rng.o
+@@ -269,6 +274,7 @@
+ obj-$(CONFIG_ITE_GPIO) += ite_gpio.o
+ obj-$(CONFIG_AU1X00_GPIO) += au1000_gpio.o
++obj-$(CONFIG_AU1550_PSC_SPI) += au1550_psc_spi.o
+ obj-$(CONFIG_AU1X00_USB_TTY) += au1000_usbtty.o
+ obj-$(CONFIG_AU1X00_USB_RAW) += au1000_usbraw.o
+ obj-$(CONFIG_COBALT_LCD) += lcd.o
+@@ -353,3 +359,9 @@
+ qtronixmap.c: qtronixmap.map
+       set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
++
++ibm_workpad_keymap.c: ibm_workpad_keymap.map
++      set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
++
++victor_mpc30x_keymap.c: victor_mpc30x_keymap.map
++      set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
+diff -Nur linux-2.4.32-rc1/drivers/char/mips_rtc.c linux-2.4.32-rc1.mips/drivers/char/mips_rtc.c
+--- linux-2.4.32-rc1/drivers/char/mips_rtc.c   2004-01-05 14:53:56.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/mips_rtc.c      2004-06-28 14:54:53.000000000 +0200
 @@ -53,14 +53,6 @@
  #include <asm/io.h>
  #include <asm/uaccess.h>
@@ -14251,9 +14546,9 @@ diff -Nur linux-2.4.30/drivers/char/mips_rtc.c linux-2.4.30-mips/drivers/char/mi
  #include <asm/time.h>
  
  static unsigned long rtc_status = 0;  /* bitmapped status byte.       */
-diff -Nur linux-2.4.30/drivers/char/sb1250_duart.c linux-2.4.30-mips/drivers/char/sb1250_duart.c
---- linux-2.4.30/drivers/char/sb1250_duart.c   2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/sb1250_duart.c      2004-09-17 01:25:44.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/char/sb1250_duart.c linux-2.4.32-rc1.mips/drivers/char/sb1250_duart.c
+--- linux-2.4.32-rc1/drivers/char/sb1250_duart.c       2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/sb1250_duart.c  2004-09-17 01:25:44.000000000 +0200
 @@ -328,10 +328,11 @@
                if (c <= 0) break;
  
@@ -14308,9 +14603,9 @@ diff -Nur linux-2.4.30/drivers/char/sb1250_duart.c linux-2.4.30-mips/drivers/cha
                break;
        case TIOCSSERIAL:
                printk("Ignoring TIOCSSERIAL\n");
-diff -Nur linux-2.4.30/drivers/char/serial.c linux-2.4.30-mips/drivers/char/serial.c
---- linux-2.4.30/drivers/char/serial.c 2005-01-19 15:09:50.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/serial.c    2004-12-27 05:13:43.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/serial.c linux-2.4.32-rc1.mips/drivers/char/serial.c
+--- linux-2.4.32-rc1/drivers/char/serial.c     2005-10-24 11:33:29.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/char/serial.c        2005-09-23 22:41:22.000000000 +0200
 @@ -62,6 +62,12 @@
   *        Robert Schwebel <robert@schwebel.de>,
   *        Juergen Beisert <jbeisert@eurodsn.de>,
@@ -14356,9 +14651,9 @@ diff -Nur linux-2.4.30/drivers/char/serial.c linux-2.4.30-mips/drivers/char/seri
  
  /*
   * We used to support using pause I/O for certain machines.  We
-diff -Nur linux-2.4.30/drivers/char/victor_mpc30x_keymap.map linux-2.4.30-mips/drivers/char/victor_mpc30x_keymap.map
---- linux-2.4.30/drivers/char/victor_mpc30x_keymap.map 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/victor_mpc30x_keymap.map    2004-02-05 18:04:42.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/victor_mpc30x_keymap.map linux-2.4.32-rc1.mips/drivers/char/victor_mpc30x_keymap.map
+--- linux-2.4.32-rc1/drivers/char/victor_mpc30x_keymap.map     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/victor_mpc30x_keymap.map        2004-02-05 18:04:42.000000000 +0100
 @@ -0,0 +1,102 @@
 +# Victor Interlink MP-C303/304 keyboard keymap
 +#
@@ -14462,9 +14757,9 @@ diff -Nur linux-2.4.30/drivers/char/victor_mpc30x_keymap.map linux-2.4.30-mips/d
 +      alt keycode 31 = PageDown
 +keycode 47 = Right
 +      alt keycode 47 = End
-diff -Nur linux-2.4.30/drivers/char/vr41xx_keyb.c linux-2.4.30-mips/drivers/char/vr41xx_keyb.c
---- linux-2.4.30/drivers/char/vr41xx_keyb.c    2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/char/vr41xx_keyb.c       2004-02-17 13:08:55.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/char/vr41xx_keyb.c linux-2.4.32-rc1.mips/drivers/char/vr41xx_keyb.c
+--- linux-2.4.32-rc1/drivers/char/vr41xx_keyb.c        2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/char/vr41xx_keyb.c   2004-02-17 13:08:55.000000000 +0100
 @@ -308,7 +308,7 @@
                        if (found != 0) {
                                kiu_base = VRC4173_KIU_OFFSET;
@@ -14483,9 +14778,9 @@ diff -Nur linux-2.4.30/drivers/char/vr41xx_keyb.c linux-2.4.30-mips/drivers/char
  
        kiu_writew(KIURST_KIURST, KIURST);
  
-diff -Nur linux-2.4.30/drivers/i2c/Config.in linux-2.4.30-mips/drivers/i2c/Config.in
---- linux-2.4.30/drivers/i2c/Config.in 2004-04-14 15:05:29.000000000 +0200
-+++ linux-2.4.30-mips/drivers/i2c/Config.in    2005-02-11 20:49:04.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/i2c/Config.in linux-2.4.32-rc1.mips/drivers/i2c/Config.in
+--- linux-2.4.32-rc1/drivers/i2c/Config.in     2004-04-14 15:05:29.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/i2c/Config.in        2005-02-11 20:49:04.000000000 +0100
 @@ -57,6 +57,10 @@
     if [ "$CONFIG_SGI_IP22" = "y" ]; then
        dep_tristate 'I2C SGI interfaces' CONFIG_I2C_ALGO_SGI $CONFIG_I2C
@@ -14497,29 +14792,9 @@ diff -Nur linux-2.4.30/drivers/i2c/Config.in linux-2.4.30-mips/drivers/i2c/Confi
   
  # This is needed for automatic patch generation: sensors code starts here
  # This is needed for automatic patch generation: sensors code ends here
-diff -Nur linux-2.4.30/drivers/i2c/Makefile linux-2.4.30-mips/drivers/i2c/Makefile
---- linux-2.4.30/drivers/i2c/Makefile  2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/i2c/Makefile     2005-02-11 20:49:04.000000000 +0100
-@@ -6,7 +6,7 @@
- export-objs   := i2c-core.o i2c-algo-bit.o i2c-algo-pcf.o \
-                  i2c-algo-ite.o i2c-algo-sibyte.o i2c-algo-sgi.o \
--                 i2c-proc.o
-+                 i2c-algo-au1550.o i2c-proc.o i2c-au1550.o
- obj-$(CONFIG_I2C)             += i2c-core.o
- obj-$(CONFIG_I2C_CHARDEV)     += i2c-dev.o
-@@ -25,6 +25,7 @@
- obj-$(CONFIG_I2C_ALGO_SIBYTE) += i2c-algo-sibyte.o i2c-sibyte.o
- obj-$(CONFIG_I2C_MAX1617)     += i2c-max1617.o
- obj-$(CONFIG_I2C_ALGO_SGI)    += i2c-algo-sgi.o
-+obj-$(CONFIG_I2C_ALGO_AU1550) += i2c-algo-au1550.o i2c-au1550.o
- # This is needed for automatic patch generation: sensors code starts here
- # This is needed for automatic patch generation: sensors code ends here
-diff -Nur linux-2.4.30/drivers/i2c/i2c-algo-au1550.c linux-2.4.30-mips/drivers/i2c/i2c-algo-au1550.c
---- linux-2.4.30/drivers/i2c/i2c-algo-au1550.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/i2c/i2c-algo-au1550.c    2005-02-11 20:49:04.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/i2c/i2c-algo-au1550.c linux-2.4.32-rc1.mips/drivers/i2c/i2c-algo-au1550.c
+--- linux-2.4.32-rc1/drivers/i2c/i2c-algo-au1550.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/i2c/i2c-algo-au1550.c        2005-02-11 20:49:04.000000000 +0100
 @@ -0,0 +1,340 @@
 +/*
 + * i2c-algo-au1550.c: SMBus (i2c) driver algorithms for Alchemy PSC interface
@@ -14861,9 +15136,9 @@ diff -Nur linux-2.4.30/drivers/i2c/i2c-algo-au1550.c linux-2.4.30-mips/drivers/i
 +MODULE_AUTHOR("Dan Malek <dan@embeddededge.com>");
 +MODULE_DESCRIPTION("SMBus Au1550 algorithm");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/i2c/i2c-au1550.c linux-2.4.30-mips/drivers/i2c/i2c-au1550.c
---- linux-2.4.30/drivers/i2c/i2c-au1550.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/i2c/i2c-au1550.c 2005-02-11 20:49:04.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/i2c/i2c-au1550.c linux-2.4.32-rc1.mips/drivers/i2c/i2c-au1550.c
+--- linux-2.4.32-rc1/drivers/i2c/i2c-au1550.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/i2c/i2c-au1550.c     2005-02-11 20:49:04.000000000 +0100
 @@ -0,0 +1,154 @@
 +/*
 + * i2c-au1550.c: SMBus (i2c) adapter for Alchemy PSC interface
@@ -15019,9 +15294,9 @@ diff -Nur linux-2.4.30/drivers/i2c/i2c-au1550.c linux-2.4.30-mips/drivers/i2c/i2
 +{
 +      i2c_au1550_del_bus(&pb1550_board_adapter);
 +}
-diff -Nur linux-2.4.30/drivers/i2c/i2c-core.c linux-2.4.30-mips/drivers/i2c/i2c-core.c
---- linux-2.4.30/drivers/i2c/i2c-core.c        2005-01-19 15:09:54.000000000 +0100
-+++ linux-2.4.30-mips/drivers/i2c/i2c-core.c   2004-11-29 18:47:16.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/i2c/i2c-core.c linux-2.4.32-rc1.mips/drivers/i2c/i2c-core.c
+--- linux-2.4.32-rc1/drivers/i2c/i2c-core.c    2005-06-01 02:56:56.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/i2c/i2c-core.c       2005-05-23 14:12:30.000000000 +0200
 @@ -1280,6 +1280,9 @@
  #ifdef CONFIG_I2C_MAX1617
        extern int i2c_max1617_init(void);
@@ -15043,9 +15318,29 @@ diff -Nur linux-2.4.30/drivers/i2c/i2c-core.c linux-2.4.30-mips/drivers/i2c/i2c-
        /* -------------- proc interface ---- */
  #ifdef CONFIG_I2C_PROC
        sensors_init();
-diff -Nur linux-2.4.30/drivers/media/video/indycam.c linux-2.4.30-mips/drivers/media/video/indycam.c
---- linux-2.4.30/drivers/media/video/indycam.c 2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/media/video/indycam.c    2004-12-09 21:32:05.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/i2c/Makefile linux-2.4.32-rc1.mips/drivers/i2c/Makefile
+--- linux-2.4.32-rc1/drivers/i2c/Makefile      2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/i2c/Makefile 2005-02-11 20:49:04.000000000 +0100
+@@ -6,7 +6,7 @@
+ export-objs   := i2c-core.o i2c-algo-bit.o i2c-algo-pcf.o \
+                  i2c-algo-ite.o i2c-algo-sibyte.o i2c-algo-sgi.o \
+-                 i2c-proc.o
++                 i2c-algo-au1550.o i2c-proc.o i2c-au1550.o
+ obj-$(CONFIG_I2C)             += i2c-core.o
+ obj-$(CONFIG_I2C_CHARDEV)     += i2c-dev.o
+@@ -25,6 +25,7 @@
+ obj-$(CONFIG_I2C_ALGO_SIBYTE) += i2c-algo-sibyte.o i2c-sibyte.o
+ obj-$(CONFIG_I2C_MAX1617)     += i2c-max1617.o
+ obj-$(CONFIG_I2C_ALGO_SGI)    += i2c-algo-sgi.o
++obj-$(CONFIG_I2C_ALGO_AU1550) += i2c-algo-au1550.o i2c-au1550.o
+ # This is needed for automatic patch generation: sensors code starts here
+ # This is needed for automatic patch generation: sensors code ends here
+diff -Nur linux-2.4.32-rc1/drivers/media/video/indycam.c linux-2.4.32-rc1.mips/drivers/media/video/indycam.c
+--- linux-2.4.32-rc1/drivers/media/video/indycam.c     2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/media/video/indycam.c        2004-12-09 21:32:05.000000000 +0100
 @@ -50,13 +50,14 @@
                0x80,                   /* INDYCAM_GAMMA */
        };
@@ -15095,9 +15390,9 @@ diff -Nur linux-2.4.30/drivers/media/video/indycam.c linux-2.4.30-mips/drivers/m
  
        MOD_INC_USE_COUNT;
        return 0;
-diff -Nur linux-2.4.30/drivers/media/video/vino.c linux-2.4.30-mips/drivers/media/video/vino.c
---- linux-2.4.30/drivers/media/video/vino.c    2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/media/video/vino.c       2004-12-10 05:02:54.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/media/video/vino.c linux-2.4.32-rc1.mips/drivers/media/video/vino.c
+--- linux-2.4.32-rc1/drivers/media/video/vino.c        2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/media/video/vino.c   2004-12-10 05:02:54.000000000 +0100
 @@ -5,6 +5,8 @@
   * License version 2 as published by the Free Software Foundation.
   *
@@ -15218,9 +15513,9 @@ diff -Nur linux-2.4.30/drivers/media/video/vino.c linux-2.4.30-mips/drivers/medi
  }
  
  static int vino_grab(struct vino_device *v, int frame)
-diff -Nur linux-2.4.30/drivers/mtd/devices/docprobe.c linux-2.4.30-mips/drivers/mtd/devices/docprobe.c
---- linux-2.4.30/drivers/mtd/devices/docprobe.c        2003-06-13 16:51:34.000000000 +0200
-+++ linux-2.4.30-mips/drivers/mtd/devices/docprobe.c   2003-06-16 01:42:21.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/devices/docprobe.c linux-2.4.32-rc1.mips/drivers/mtd/devices/docprobe.c
+--- linux-2.4.32-rc1/drivers/mtd/devices/docprobe.c    2003-06-13 16:51:34.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/mtd/devices/docprobe.c       2003-06-16 01:42:21.000000000 +0200
 @@ -89,10 +89,10 @@
        0xe4000000,
  #elif defined(CONFIG_MOMENCO_OCELOT)
@@ -15235,9 +15530,9 @@ diff -Nur linux-2.4.30/drivers/mtd/devices/docprobe.c linux-2.4.30-mips/drivers/
  #warning Unknown architecture for DiskOnChip. No default probe locations defined
  #endif
        0 };
-diff -Nur linux-2.4.30/drivers/mtd/devices/ms02-nv.c linux-2.4.30-mips/drivers/mtd/devices/ms02-nv.c
---- linux-2.4.30/drivers/mtd/devices/ms02-nv.c 2003-06-13 16:51:34.000000000 +0200
-+++ linux-2.4.30-mips/drivers/mtd/devices/ms02-nv.c    2004-07-30 12:22:40.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/devices/ms02-nv.c linux-2.4.32-rc1.mips/drivers/mtd/devices/ms02-nv.c
+--- linux-2.4.32-rc1/drivers/mtd/devices/ms02-nv.c     2003-06-13 16:51:34.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/mtd/devices/ms02-nv.c        2004-07-30 12:22:40.000000000 +0200
 @@ -1,10 +1,10 @@
  /*
 - *      Copyright (c) 2001 Maciej W. Rozycki
@@ -15311,9 +15606,9 @@ diff -Nur linux-2.4.30/drivers/mtd/devices/ms02-nv.c linux-2.4.30-mips/drivers/m
                csr = (volatile u32 *)KN03_MCR_BASE;
                if (*csr & KN03_MCR_BNK32M)
                        stride = 2;
-diff -Nur linux-2.4.30/drivers/mtd/devices/ms02-nv.h linux-2.4.30-mips/drivers/mtd/devices/ms02-nv.h
---- linux-2.4.30/drivers/mtd/devices/ms02-nv.h 2002-11-29 00:53:13.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/devices/ms02-nv.h    2004-07-30 12:22:40.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/devices/ms02-nv.h linux-2.4.32-rc1.mips/drivers/mtd/devices/ms02-nv.h
+--- linux-2.4.32-rc1/drivers/mtd/devices/ms02-nv.h     2002-11-29 00:53:13.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/devices/ms02-nv.h        2004-07-30 12:22:40.000000000 +0200
 @@ -1,32 +1,96 @@
  /*
 - *      Copyright (c) 2001 Maciej W. Rozycki
@@ -15420,9 +15715,9 @@ diff -Nur linux-2.4.30/drivers/mtd/devices/ms02-nv.h linux-2.4.30-mips/drivers/m
  typedef volatile u32 ms02nv_uint;
  
  struct ms02nv_private {
-diff -Nur linux-2.4.30/drivers/mtd/maps/Config.in linux-2.4.30-mips/drivers/mtd/maps/Config.in
---- linux-2.4.30/drivers/mtd/maps/Config.in    2003-06-13 16:51:34.000000000 +0200
-+++ linux-2.4.30-mips/drivers/mtd/maps/Config.in       2004-02-26 01:46:35.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/Config.in linux-2.4.32-rc1.mips/drivers/mtd/maps/Config.in
+--- linux-2.4.32-rc1/drivers/mtd/maps/Config.in        2003-06-13 16:51:34.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/Config.in   2004-02-26 01:46:35.000000000 +0100
 @@ -51,11 +51,26 @@
     dep_tristate '  Pb1000 MTD support' CONFIG_MTD_PB1000 $CONFIG_MIPS_PB1000
     dep_tristate '  Pb1500 MTD support' CONFIG_MTD_PB1500 $CONFIG_MIPS_PB1500
@@ -15447,36 +15742,12 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/Config.in linux-2.4.30-mips/drivers/mtd/
 +   fi
 +   dep_tristate '  Hydrogen 3 MTD support' CONFIG_MTD_HYDROGEN3 $CONFIG_MIPS_HYDROGEN3
 +   dep_tristate '  Mirage MTD support' CONFIG_MTD_MIRAGE $CONFIG_MIPS_MIRAGE
-    dep_tristate '  Flash chip mapping on ITE QED-4N-S01B, Globespan IVR or custom board' CONFIG_MTD_CSTM_MIPS_IXX $CONFIG_MTD_CFI $CONFIG_MTD_JEDEC $CONFIG_MTD_PARTITIONS 
-    if [ "$CONFIG_MTD_CSTM_MIPS_IXX" = "y" -o "$CONFIG_MTD_CSTM_MIPS_IXX" = "m" ]; then
-       hex '    Physical start address of flash mapping' CONFIG_MTD_CSTM_MIPS_IXX_START 0x8000000
-diff -Nur linux-2.4.30/drivers/mtd/maps/Makefile linux-2.4.30-mips/drivers/mtd/maps/Makefile
---- linux-2.4.30/drivers/mtd/maps/Makefile     2003-06-13 16:51:34.000000000 +0200
-+++ linux-2.4.30-mips/drivers/mtd/maps/Makefile        2004-02-26 01:46:35.000000000 +0100
-@@ -52,7 +52,13 @@
- obj-$(CONFIG_MTD_PB1000)      += pb1xxx-flash.o
- obj-$(CONFIG_MTD_PB1100)      += pb1xxx-flash.o
- obj-$(CONFIG_MTD_PB1500)      += pb1xxx-flash.o
-+obj-$(CONFIG_MTD_XXS1500)       += xxs1500.o
-+obj-$(CONFIG_MTD_MTX1)                += mtx-1.o
- obj-$(CONFIG_MTD_LASAT)               += lasat.o
-+obj-$(CONFIG_MTD_DB1X00)        += db1x00-flash.o
-+obj-$(CONFIG_MTD_PB1550)        += pb1550-flash.o
-+obj-$(CONFIG_MTD_HYDROGEN3)     += hydrogen3-flash.o
-+obj-$(CONFIG_MTD_BOSPORUS)    += pb1xxx-flash.o
- obj-$(CONFIG_MTD_AUTCPU12)    += autcpu12-nvram.o
- obj-$(CONFIG_MTD_EDB7312)     += edb7312.o
- obj-$(CONFIG_MTD_IMPA7)               += impa7.o
-@@ -61,5 +67,6 @@
- obj-$(CONFIG_MTD_UCLINUX)     += uclinux.o
- obj-$(CONFIG_MTD_NETtel)      += nettel.o
- obj-$(CONFIG_MTD_SCB2_FLASH)  += scb2_flash.o
-+obj-$(CONFIG_MTD_MIRAGE)        += mirage-flash.o
- include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/drivers/mtd/maps/db1x00-flash.c linux-2.4.30-mips/drivers/mtd/maps/db1x00-flash.c
---- linux-2.4.30/drivers/mtd/maps/db1x00-flash.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/maps/db1x00-flash.c  2005-02-03 07:35:29.000000000 +0100
+    dep_tristate '  Flash chip mapping on ITE QED-4N-S01B, Globespan IVR or custom board' CONFIG_MTD_CSTM_MIPS_IXX $CONFIG_MTD_CFI $CONFIG_MTD_JEDEC $CONFIG_MTD_PARTITIONS 
+    if [ "$CONFIG_MTD_CSTM_MIPS_IXX" = "y" -o "$CONFIG_MTD_CSTM_MIPS_IXX" = "m" ]; then
+       hex '    Physical start address of flash mapping' CONFIG_MTD_CSTM_MIPS_IXX_START 0x8000000
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/db1x00-flash.c linux-2.4.32-rc1.mips/drivers/mtd/maps/db1x00-flash.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/db1x00-flash.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/db1x00-flash.c      2005-02-03 07:35:29.000000000 +0100
 @@ -0,0 +1,283 @@
 +/*
 + * Flash memory access on Alchemy Db1xxx boards
@@ -15761,9 +16032,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/db1x00-flash.c linux-2.4.30-mips/drivers
 +MODULE_AUTHOR("Pete Popov");
 +MODULE_DESCRIPTION("Db1x00 mtd map driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/mtd/maps/hydrogen3-flash.c linux-2.4.30-mips/drivers/mtd/maps/hydrogen3-flash.c
---- linux-2.4.30/drivers/mtd/maps/hydrogen3-flash.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/maps/hydrogen3-flash.c       2004-01-10 23:40:18.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/hydrogen3-flash.c linux-2.4.32-rc1.mips/drivers/mtd/maps/hydrogen3-flash.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/hydrogen3-flash.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/hydrogen3-flash.c   2004-01-10 23:40:18.000000000 +0100
 @@ -0,0 +1,189 @@
 +/*
 + * Flash memory access on Alchemy HydrogenIII boards
@@ -15954,9 +16225,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/hydrogen3-flash.c linux-2.4.30-mips/driv
 +MODULE_AUTHOR("Pete Popov");
 +MODULE_DESCRIPTION("HydrogenIII mtd map driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/mtd/maps/lasat.c linux-2.4.30-mips/drivers/mtd/maps/lasat.c
---- linux-2.4.30/drivers/mtd/maps/lasat.c      2003-06-13 16:51:34.000000000 +0200
-+++ linux-2.4.30-mips/drivers/mtd/maps/lasat.c 2003-08-18 04:59:02.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/lasat.c linux-2.4.32-rc1.mips/drivers/mtd/maps/lasat.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/lasat.c  2003-06-13 16:51:34.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/lasat.c     2003-08-18 04:59:02.000000000 +0200
 @@ -1,15 +1,6 @@
  /*
   * Flash device on lasat 100 and 200 boards
@@ -16062,9 +16333,33 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/lasat.c linux-2.4.30-mips/drivers/mtd/ma
        }
  }
  
-diff -Nur linux-2.4.30/drivers/mtd/maps/mirage-flash.c linux-2.4.30-mips/drivers/mtd/maps/mirage-flash.c
---- linux-2.4.30/drivers/mtd/maps/mirage-flash.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/maps/mirage-flash.c  2003-12-22 04:37:22.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/Makefile linux-2.4.32-rc1.mips/drivers/mtd/maps/Makefile
+--- linux-2.4.32-rc1/drivers/mtd/maps/Makefile 2003-06-13 16:51:34.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/Makefile    2004-02-26 01:46:35.000000000 +0100
+@@ -52,7 +52,13 @@
+ obj-$(CONFIG_MTD_PB1000)      += pb1xxx-flash.o
+ obj-$(CONFIG_MTD_PB1100)      += pb1xxx-flash.o
+ obj-$(CONFIG_MTD_PB1500)      += pb1xxx-flash.o
++obj-$(CONFIG_MTD_XXS1500)       += xxs1500.o
++obj-$(CONFIG_MTD_MTX1)                += mtx-1.o
+ obj-$(CONFIG_MTD_LASAT)               += lasat.o
++obj-$(CONFIG_MTD_DB1X00)        += db1x00-flash.o
++obj-$(CONFIG_MTD_PB1550)        += pb1550-flash.o
++obj-$(CONFIG_MTD_HYDROGEN3)     += hydrogen3-flash.o
++obj-$(CONFIG_MTD_BOSPORUS)    += pb1xxx-flash.o
+ obj-$(CONFIG_MTD_AUTCPU12)    += autcpu12-nvram.o
+ obj-$(CONFIG_MTD_EDB7312)     += edb7312.o
+ obj-$(CONFIG_MTD_IMPA7)               += impa7.o
+@@ -61,5 +67,6 @@
+ obj-$(CONFIG_MTD_UCLINUX)     += uclinux.o
+ obj-$(CONFIG_MTD_NETtel)      += nettel.o
+ obj-$(CONFIG_MTD_SCB2_FLASH)  += scb2_flash.o
++obj-$(CONFIG_MTD_MIRAGE)        += mirage-flash.o
+ include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/mirage-flash.c linux-2.4.32-rc1.mips/drivers/mtd/maps/mirage-flash.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/mirage-flash.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/mirage-flash.c      2003-12-22 04:37:22.000000000 +0100
 @@ -0,0 +1,194 @@
 +/*
 + * Flash memory access on AMD Mirage board.
@@ -16260,9 +16555,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/mirage-flash.c linux-2.4.30-mips/drivers
 +MODULE_AUTHOR("Embedded Edge");
 +MODULE_DESCRIPTION("Mirage mtd map driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/mtd/maps/mtx-1.c linux-2.4.30-mips/drivers/mtd/maps/mtx-1.c
---- linux-2.4.30/drivers/mtd/maps/mtx-1.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/maps/mtx-1.c 2003-06-27 02:04:35.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/mtx-1.c linux-2.4.32-rc1.mips/drivers/mtd/maps/mtx-1.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/mtx-1.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/mtx-1.c     2003-06-27 02:04:35.000000000 +0200
 @@ -0,0 +1,181 @@
 +/*
 + * Flash memory access on 4G Systems MTX-1 board
@@ -16445,9 +16740,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/mtx-1.c linux-2.4.30-mips/drivers/mtd/ma
 +MODULE_AUTHOR("Pete Popov");
 +MODULE_DESCRIPTION("MTX-1 CFI map driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/mtd/maps/pb1550-flash.c linux-2.4.30-mips/drivers/mtd/maps/pb1550-flash.c
---- linux-2.4.30/drivers/mtd/maps/pb1550-flash.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/maps/pb1550-flash.c  2004-02-26 01:48:48.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/pb1550-flash.c linux-2.4.32-rc1.mips/drivers/mtd/maps/pb1550-flash.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/pb1550-flash.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/pb1550-flash.c      2004-02-26 01:48:48.000000000 +0100
 @@ -0,0 +1,270 @@
 +/*
 + * Flash memory access on Alchemy Pb1550 board
@@ -16719,9 +17014,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/pb1550-flash.c linux-2.4.30-mips/drivers
 +MODULE_AUTHOR("Embedded Edge, LLC");
 +MODULE_DESCRIPTION("Pb1550 mtd map driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/mtd/maps/pb1xxx-flash.c linux-2.4.30-mips/drivers/mtd/maps/pb1xxx-flash.c
---- linux-2.4.30/drivers/mtd/maps/pb1xxx-flash.c       2003-06-13 16:51:34.000000000 +0200
-+++ linux-2.4.30-mips/drivers/mtd/maps/pb1xxx-flash.c  2003-05-19 08:27:22.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/pb1xxx-flash.c linux-2.4.32-rc1.mips/drivers/mtd/maps/pb1xxx-flash.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/pb1xxx-flash.c   2003-06-13 16:51:34.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/pb1xxx-flash.c      2003-05-19 08:27:22.000000000 +0200
 @@ -192,6 +192,34 @@
  #else
  #error MTD_PB1500 define combo error /* should never happen */
@@ -16757,16 +17052,16 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/pb1xxx-flash.c linux-2.4.30-mips/drivers
  #else
  #error Unsupported board
  #endif
-diff -Nur linux-2.4.30/drivers/mtd/maps/xxs1500.c linux-2.4.30-mips/drivers/mtd/maps/xxs1500.c
---- linux-2.4.30/drivers/mtd/maps/xxs1500.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/mtd/maps/xxs1500.c       2003-08-02 04:06:01.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/mtd/maps/xxs1500.c linux-2.4.32-rc1.mips/drivers/mtd/maps/xxs1500.c
+--- linux-2.4.32-rc1/drivers/mtd/maps/xxs1500.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/mtd/maps/xxs1500.c   2003-08-02 04:06:01.000000000 +0200
 @@ -0,0 +1,186 @@
 +/*
 + * Flash memory access on MyCable XXS1500 board
 + * 
 + * (C) 2003 Pete Popov <ppopov@mvista.com>
 + * 
-+ * $Id: xxs1500.c,v 1.1.2.2 2003/08/02 02:06:01 ppopov Exp $
++ * $Id: xxs1500.c,v 1.1.2.1 2003/06/13 21:15:46 ppopov Exp $
 + */
 +
 +#include <linux/config.h>
@@ -16947,9 +17242,9 @@ diff -Nur linux-2.4.30/drivers/mtd/maps/xxs1500.c linux-2.4.30-mips/drivers/mtd/
 +MODULE_AUTHOR("Pete Popov");
 +MODULE_DESCRIPTION("XXS1500 CFI map driver");
 +MODULE_LICENSE("GPL");
-diff -Nur linux-2.4.30/drivers/net/defxx.c linux-2.4.30-mips/drivers/net/defxx.c
---- linux-2.4.30/drivers/net/defxx.c   2004-11-17 12:54:21.000000000 +0100
-+++ linux-2.4.30-mips/drivers/net/defxx.c      2004-11-19 01:28:39.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/net/defxx.c linux-2.4.32-rc1.mips/drivers/net/defxx.c
+--- linux-2.4.32-rc1/drivers/net/defxx.c       2004-11-17 12:54:21.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/net/defxx.c  2004-11-19 01:28:39.000000000 +0100
 @@ -10,24 +10,18 @@
   *
   * Abstract:
@@ -17790,9 +18085,9 @@ diff -Nur linux-2.4.30/drivers/net/defxx.c linux-2.4.30-mips/drivers/net/defxx.c
  MODULE_LICENSE("GPL");
  
  \f
-diff -Nur linux-2.4.30/drivers/net/defxx.h linux-2.4.30-mips/drivers/net/defxx.h
---- linux-2.4.30/drivers/net/defxx.h   2001-02-13 22:15:05.000000000 +0100
-+++ linux-2.4.30-mips/drivers/net/defxx.h      2004-10-03 20:06:48.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/net/defxx.h linux-2.4.32-rc1.mips/drivers/net/defxx.h
+--- linux-2.4.32-rc1/drivers/net/defxx.h       2001-02-13 22:15:05.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/net/defxx.h  2004-10-03 20:06:48.000000000 +0200
 @@ -12,17 +12,11 @@
   *   Contains all definitions specified by port specification and required
   *   by the defxx.c driver.
@@ -17881,9 +18176,9 @@ diff -Nur linux-2.4.30/drivers/net/defxx.h linux-2.4.30-mips/drivers/net/defxx.h
        struct pci_dev *                pci_dev;
        u32                             full_duplex_enb;                                /* FDDI Full Duplex enable (1 == on, 2 == off) */
        u32                             req_ttrt;                                       /* requested TTRT value (in 80ns units) */
-diff -Nur linux-2.4.30/drivers/net/hamradio/hdlcdrv.c linux-2.4.30-mips/drivers/net/hamradio/hdlcdrv.c
---- linux-2.4.30/drivers/net/hamradio/hdlcdrv.c        2002-02-25 20:37:59.000000000 +0100
-+++ linux-2.4.30-mips/drivers/net/hamradio/hdlcdrv.c   2004-05-04 14:04:27.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/net/hamradio/hdlcdrv.c linux-2.4.32-rc1.mips/drivers/net/hamradio/hdlcdrv.c
+--- linux-2.4.32-rc1/drivers/net/hamradio/hdlcdrv.c    2002-02-25 20:37:59.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/net/hamradio/hdlcdrv.c       2004-05-04 14:04:27.000000000 +0200
 @@ -587,6 +587,8 @@
                return -EINVAL;
        s = (struct hdlcdrv_state *)dev->priv;
@@ -17893,9 +18188,9 @@ diff -Nur linux-2.4.30/drivers/net/hamradio/hdlcdrv.c linux-2.4.30-mips/drivers/
        if (s->ops && s->ops->close)
                i = s->ops->close(dev);
        if (s->skb)
-diff -Nur linux-2.4.30/drivers/net/irda/au1k_ir.c linux-2.4.30-mips/drivers/net/irda/au1k_ir.c
---- linux-2.4.30/drivers/net/irda/au1k_ir.c    2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/net/irda/au1k_ir.c       2005-02-03 07:35:29.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/net/irda/au1k_ir.c linux-2.4.32-rc1.mips/drivers/net/irda/au1k_ir.c
+--- linux-2.4.32-rc1/drivers/net/irda/au1k_ir.c        2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/net/irda/au1k_ir.c   2005-02-03 07:35:29.000000000 +0100
 @@ -81,10 +81,6 @@
  
  #define RUN_AT(x) (jiffies + (x))
@@ -17907,9 +18202,162 @@ diff -Nur linux-2.4.30/drivers/net/irda/au1k_ir.c linux-2.4.30-mips/drivers/net/
  static spinlock_t ir_lock = SPIN_LOCK_UNLOCKED;
  
  /*
-diff -Nur linux-2.4.30/drivers/pci/pci.c linux-2.4.30-mips/drivers/pci/pci.c
---- linux-2.4.30/drivers/pci/pci.c     2004-11-17 12:54:21.000000000 +0100
-+++ linux-2.4.30-mips/drivers/pci/pci.c        2004-11-19 01:28:41.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/net/sgiseeq.c linux-2.4.32-rc1.mips/drivers/net/sgiseeq.c
+--- linux-2.4.32-rc1/drivers/net/sgiseeq.c     2005-01-19 15:09:56.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/net/sgiseeq.c        2005-09-23 16:35:27.000000000 +0200
+@@ -24,16 +24,16 @@
+ #include <asm/io.h>
+ #include <asm/system.h>
+ #include <asm/bitops.h>
++#include <asm/paccess.h>
+ #include <asm/page.h>
+ #include <asm/pgtable.h>
++#include <asm/sgi/mc.h>
+ #include <asm/sgi/hpc3.h>
+ #include <asm/sgi/ip22.h>
+ #include <asm/sgialib.h>
+ #include "sgiseeq.h"
+-static char *version = "sgiseeq.c: David S. Miller (dm@engr.sgi.com)\n";
+-
+ static char *sgiseeqstr = "SGI Seeq8003";
+ /*
+@@ -113,9 +113,9 @@
+ static inline void hpc3_eth_reset(struct hpc3_ethregs *hregs)
+ {
+-      hregs->rx_reset = HPC3_ERXRST_CRESET | HPC3_ERXRST_CLRIRQ;
++      hregs->reset = HPC3_ERST_CRESET | HPC3_ERST_CLRIRQ;
+       udelay(20);
+-      hregs->rx_reset = 0;
++      hregs->reset = 0;
+ }
+ static inline void reset_hpc3_and_seeq(struct hpc3_ethregs *hregs,
+@@ -238,7 +238,6 @@
+ #define TSTAT_INIT_SEEQ (SEEQ_TCMD_IPT|SEEQ_TCMD_I16|SEEQ_TCMD_IC|SEEQ_TCMD_IUF)
+ #define TSTAT_INIT_EDLC ((TSTAT_INIT_SEEQ) | SEEQ_TCMD_RB2)
+-#define RDMACFG_INIT    (HPC3_ERXDCFG_FRXDC | HPC3_ERXDCFG_FEOP | HPC3_ERXDCFG_FIRQ)
+ static int init_seeq(struct net_device *dev, struct sgiseeq_private *sp,
+                    struct sgiseeq_regs *sregs)
+@@ -260,8 +259,6 @@
+               sregs->tstat = TSTAT_INIT_SEEQ;
+       }
+-      hregs->rx_dconfig |= RDMACFG_INIT;
+-
+       hregs->rx_ndptr = PHYSADDR(&sp->srings.rx_desc[0]);
+       hregs->tx_ndptr = PHYSADDR(&sp->srings.tx_desc[0]);
+@@ -432,7 +429,7 @@
+       spin_lock(&sp->tx_lock);
+       /* Ack the IRQ and set software state. */
+-      hregs->rx_reset = HPC3_ERXRST_CLRIRQ;
++      hregs->reset = HPC3_ERST_CLRIRQ;
+       /* Always check for received packets. */
+       sgiseeq_rx(dev, sp, hregs, sregs);
+@@ -616,7 +613,7 @@
+ #define ALIGNED(x)  ((((unsigned long)(x)) + 0xf) & ~(0xf))
+-int sgiseeq_init(struct hpc3_regs* regs, int irq)
++int sgiseeq_init(struct hpc3_regs* hpcregs, int irq, int has_eeprom)
+ {
+       struct net_device *dev;
+       struct sgiseeq_private *sp;
+@@ -629,7 +626,7 @@
+               goto err_out;
+       }
+       /* Make private data page aligned */
+-      sp = (struct sgiseeq_private *) get_zeroed_page(GFP_KERNEL);     
++      sp = (struct sgiseeq_private *) get_zeroed_page(GFP_KERNEL);
+       if (!sp) {
+               printk(KERN_ERR "Sgiseeq: Page alloc failed, aborting.\n");
+               err = -ENOMEM;
+@@ -644,7 +641,9 @@
+ #define EADDR_NVOFS     250
+       for (i = 0; i < 3; i++) {
+-              unsigned short tmp = ip22_nvram_read(EADDR_NVOFS / 2 + i);
++              unsigned short tmp = has_eeprom ?
++                      ip22_eeprom_read(&hpcregs->eeprom, EADDR_NVOFS / 2+i) :
++                      ip22_nvram_read(EADDR_NVOFS / 2+i);
+               dev->dev_addr[2 * i]     = tmp >> 8;
+               dev->dev_addr[2 * i + 1] = tmp & 0xff;
+@@ -654,8 +653,8 @@
+       gpriv = sp;
+       gdev = dev;
+ #endif
+-      sp->sregs = (struct sgiseeq_regs *) &hpc3c0->eth_ext[0];
+-      sp->hregs = &hpc3c0->ethregs;
++      sp->sregs = (struct sgiseeq_regs *) &hpcregs->eth_ext[0];
++      sp->hregs = &hpcregs->ethregs;
+       sp->name = sgiseeqstr;
+       sp->mode = SEEQ_RCMD_RBCAST;
+@@ -672,6 +671,11 @@
+       setup_rx_ring(sp->srings.rx_desc, SEEQ_RX_BUFFERS);
+       setup_tx_ring(sp->srings.tx_desc, SEEQ_TX_BUFFERS);
++      /* Setup PIO and DMA transfer timing */
++      sp->hregs->pconfig = 0x161;
++      sp->hregs->dconfig = HPC3_EDCFG_FIRQ | HPC3_EDCFG_FEOP |
++                           HPC3_EDCFG_FRXDC | HPC3_EDCFG_PTO | 0x026;
++
+       /* Reset the chip. */
+       hpc3_eth_reset(sp->hregs);
+@@ -699,7 +703,7 @@
+               goto err_out_free_irq;
+       }
+-      printk(KERN_INFO "%s: SGI Seeq8003 ", dev->name);
++      printk(KERN_INFO "%s: %s ", dev->name, sgiseeqstr);
+       for (i = 0; i < 6; i++)
+               printk("%2.2x%c", dev->dev_addr[i], i == 5 ? '\n' : ':');
+@@ -721,10 +725,22 @@
+ static int __init sgiseeq_probe(void)
+ {
+-      printk(version);
++      unsigned int tmp, ret1, ret2 = 0;
+       /* On board adapter on 1st HPC is always present */
+-      return sgiseeq_init(hpc3c0, SGI_ENET_IRQ);
++      ret1 = sgiseeq_init(hpc3c0, SGI_ENET_IRQ, 0);
++      /* Let's see if second HPC is there */
++      if (!(ip22_is_fullhouse()) &&
++          get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1]) == 0) {
++              sgimc->giopar |= SGIMC_GIOPAR_MASTEREXP1 |
++                               SGIMC_GIOPAR_EXP164 |
++                               SGIMC_GIOPAR_HPC264;
++              hpc3c1->pbus_piocfg[0][0] = 0x3ffff;
++              /* interrupt/config register on Challenge S Mezz board */
++              hpc3c1->pbus_extregs[0][0] = 0x30;
++              ret2 = sgiseeq_init(hpc3c1, SGI_GIO_0_IRQ, 1);
++      }
++      return (ret1 & ret2) ? ret1 : 0;
+ }
+ static void __exit sgiseeq_exit(void)
+@@ -747,4 +763,6 @@
+ module_init(sgiseeq_probe);
+ module_exit(sgiseeq_exit);
++MODULE_DESCRIPTION("SGI Seeq 8003 driver");
++MODULE_AUTHOR("David S. Miller");
+ MODULE_LICENSE("GPL");
+diff -Nur linux-2.4.32-rc1/drivers/pci/pci.c linux-2.4.32-rc1.mips/drivers/pci/pci.c
+--- linux-2.4.32-rc1/drivers/pci/pci.c 2004-11-17 12:54:21.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/pci/pci.c    2004-11-19 01:28:41.000000000 +0100
 @@ -1281,11 +1281,17 @@
  {
        unsigned int buses;
@@ -17936,66 +18384,9 @@ diff -Nur linux-2.4.30/drivers/pci/pci.c linux-2.4.30-mips/drivers/pci/pci.c
        sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number);
        return max;
  }
-diff -Nur linux-2.4.30/drivers/pcmcia/Config.in linux-2.4.30-mips/drivers/pcmcia/Config.in
---- linux-2.4.30/drivers/pcmcia/Config.in      2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/pcmcia/Config.in 2004-02-22 06:21:34.000000000 +0100
-@@ -30,16 +30,14 @@
-       dep_tristate '  M8xx support' CONFIG_PCMCIA_M8XX $CONFIG_PCMCIA
-    fi
-    if [ "$CONFIG_SOC_AU1X00" = "y" ]; then
--      dep_tristate '  Au1x00 PCMCIA support' CONFIG_PCMCIA_AU1X00 $CONFIG_PCMCIA 
--      if [ "$CONFIG_PCMCIA_AU1X00" != "n" ]; then
--        bool '  Pb1x00 board support' CONFIG_PCMCIA_PB1X00
--        bool '  Db1x00 board support' CONFIG_PCMCIA_DB1X00
--        bool '  XXS1500 board support' CONFIG_PCMCIA_XXS1500
--      fi
-+      dep_tristate '  Au1x00 PCMCIA support' CONFIG_PCMCIA_AU1X00 $CONFIG_PCMCIA
-    fi
-    if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
-       dep_bool '  SiByte PCMCIA support' CONFIG_PCMCIA_SIBYTE $CONFIG_PCMCIA $CONFIG_BLK_DEV_IDE_SIBYTE
-    fi
-+   if [ "$CONFIG_VRC4171" = "y" -o "$CONFIG_VRC4171" = "m" ]; then
-+      dep_tristate '  NEC VRC4171 Card Controllers support' CONFIG_PCMCIA_VRC4171 $CONFIG_PCMCIA
-+   fi
-    if [ "$CONFIG_VRC4173" = "y" -o "$CONFIG_VRC4173" = "m" ]; then
-       dep_tristate '  NEC VRC4173 CARDU support' CONFIG_PCMCIA_VRC4173 $CONFIG_PCMCIA
-    fi
-diff -Nur linux-2.4.30/drivers/pcmcia/Makefile linux-2.4.30-mips/drivers/pcmcia/Makefile
---- linux-2.4.30/drivers/pcmcia/Makefile       2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/pcmcia/Makefile  2005-02-03 07:35:30.000000000 +0100
-@@ -61,9 +61,18 @@
- obj-$(CONFIG_PCMCIA_AU1X00)                   += au1x00_ss.o
- au1000_ss-objs-y                              := au1000_generic.o
--au1000_ss-objs-$(CONFIG_PCMCIA_PB1X00)                += au1000_pb1x00.o
--au1000_ss-objs-$(CONFIG_PCMCIA_DB1X00)                += au1000_db1x00.o
--au1000_ss-objs-$(CONFIG_PCMCIA_XXS1500)       += au1000_xxs1500.o
-+au1000_ss-objs-$(CONFIG_MIPS_PB1000)          += au1000_pb1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_PB1100)          += au1000_pb1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_PB1500)          += au1000_pb1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_PB1550)          += au1000_pb1550.o
-+au1000_ss-objs-$(CONFIG_MIPS_PB1200)          += au1000_db1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_DB1000)          += au1000_db1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_DB1100)          += au1000_db1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_DB1500)          += au1000_db1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_DB1550)          += au1000_db1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_DB1200)          += au1000_db1x00.o
-+au1000_ss-objs-$(CONFIG_MIPS_HYDROGEN3)               += au1000_hydrogen3.o
-+au1000_ss-objs-$(CONFIG_MIPS_XXS1500)                 += au1000_xxs1500.o
- obj-$(CONFIG_PCMCIA_SA1100)   += sa1100_cs.o
- obj-$(CONFIG_PCMCIA_M8XX)     += m8xx_pcmcia.o
-@@ -89,6 +98,7 @@
- sa1100_cs-objs-$(CONFIG_SA1100_XP860)         += sa1100_xp860.o sa1111_generic.o
- sa1100_cs-objs-$(CONFIG_SA1100_YOPY)          += sa1100_yopy.o
-+obj-$(CONFIG_PCMCIA_VRC4171)  += vrc4171_card.o
- obj-$(CONFIG_PCMCIA_VRC4173)  += vrc4173_cardu.o
- include $(TOPDIR)/Rules.make
-diff -Nur linux-2.4.30/drivers/pcmcia/au1000_db1x00.c linux-2.4.30-mips/drivers/pcmcia/au1000_db1x00.c
---- linux-2.4.30/drivers/pcmcia/au1000_db1x00.c        2005-01-19 15:09:57.000000000 +0100
-+++ linux-2.4.30-mips/drivers/pcmcia/au1000_db1x00.c   2005-02-03 07:35:30.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/pcmcia/au1000_db1x00.c linux-2.4.32-rc1.mips/drivers/pcmcia/au1000_db1x00.c
+--- linux-2.4.32-rc1/drivers/pcmcia/au1000_db1x00.c    2005-01-19 15:09:57.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/pcmcia/au1000_db1x00.c       2005-02-03 07:35:30.000000000 +0100
 @@ -1,6 +1,6 @@
  /*
   *
@@ -18068,9 +18459,66 @@ diff -Nur linux-2.4.30/drivers/pcmcia/au1000_db1x00.c linux-2.4.30-mips/drivers/
        return 0;
  }
  
-diff -Nur linux-2.4.30/drivers/pcmcia/vrc4171_card.c linux-2.4.30-mips/drivers/pcmcia/vrc4171_card.c
---- linux-2.4.30/drivers/pcmcia/vrc4171_card.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/pcmcia/vrc4171_card.c    2004-01-19 16:54:58.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/pcmcia/Config.in linux-2.4.32-rc1.mips/drivers/pcmcia/Config.in
+--- linux-2.4.32-rc1/drivers/pcmcia/Config.in  2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/pcmcia/Config.in     2004-02-22 06:21:34.000000000 +0100
+@@ -30,16 +30,14 @@
+       dep_tristate '  M8xx support' CONFIG_PCMCIA_M8XX $CONFIG_PCMCIA
+    fi
+    if [ "$CONFIG_SOC_AU1X00" = "y" ]; then
+-      dep_tristate '  Au1x00 PCMCIA support' CONFIG_PCMCIA_AU1X00 $CONFIG_PCMCIA 
+-      if [ "$CONFIG_PCMCIA_AU1X00" != "n" ]; then
+-        bool '  Pb1x00 board support' CONFIG_PCMCIA_PB1X00
+-        bool '  Db1x00 board support' CONFIG_PCMCIA_DB1X00
+-        bool '  XXS1500 board support' CONFIG_PCMCIA_XXS1500
+-      fi
++      dep_tristate '  Au1x00 PCMCIA support' CONFIG_PCMCIA_AU1X00 $CONFIG_PCMCIA
+    fi
+    if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
+       dep_bool '  SiByte PCMCIA support' CONFIG_PCMCIA_SIBYTE $CONFIG_PCMCIA $CONFIG_BLK_DEV_IDE_SIBYTE
+    fi
++   if [ "$CONFIG_VRC4171" = "y" -o "$CONFIG_VRC4171" = "m" ]; then
++      dep_tristate '  NEC VRC4171 Card Controllers support' CONFIG_PCMCIA_VRC4171 $CONFIG_PCMCIA
++   fi
+    if [ "$CONFIG_VRC4173" = "y" -o "$CONFIG_VRC4173" = "m" ]; then
+       dep_tristate '  NEC VRC4173 CARDU support' CONFIG_PCMCIA_VRC4173 $CONFIG_PCMCIA
+    fi
+diff -Nur linux-2.4.32-rc1/drivers/pcmcia/Makefile linux-2.4.32-rc1.mips/drivers/pcmcia/Makefile
+--- linux-2.4.32-rc1/drivers/pcmcia/Makefile   2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/pcmcia/Makefile      2005-02-03 07:35:30.000000000 +0100
+@@ -61,9 +61,18 @@
+ obj-$(CONFIG_PCMCIA_AU1X00)                   += au1x00_ss.o
+ au1000_ss-objs-y                              := au1000_generic.o
+-au1000_ss-objs-$(CONFIG_PCMCIA_PB1X00)                += au1000_pb1x00.o
+-au1000_ss-objs-$(CONFIG_PCMCIA_DB1X00)                += au1000_db1x00.o
+-au1000_ss-objs-$(CONFIG_PCMCIA_XXS1500)       += au1000_xxs1500.o
++au1000_ss-objs-$(CONFIG_MIPS_PB1000)          += au1000_pb1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_PB1100)          += au1000_pb1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_PB1500)          += au1000_pb1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_PB1550)          += au1000_pb1550.o
++au1000_ss-objs-$(CONFIG_MIPS_PB1200)          += au1000_db1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_DB1000)          += au1000_db1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_DB1100)          += au1000_db1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_DB1500)          += au1000_db1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_DB1550)          += au1000_db1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_DB1200)          += au1000_db1x00.o
++au1000_ss-objs-$(CONFIG_MIPS_HYDROGEN3)               += au1000_hydrogen3.o
++au1000_ss-objs-$(CONFIG_MIPS_XXS1500)                 += au1000_xxs1500.o
+ obj-$(CONFIG_PCMCIA_SA1100)   += sa1100_cs.o
+ obj-$(CONFIG_PCMCIA_M8XX)     += m8xx_pcmcia.o
+@@ -89,6 +98,7 @@
+ sa1100_cs-objs-$(CONFIG_SA1100_XP860)         += sa1100_xp860.o sa1111_generic.o
+ sa1100_cs-objs-$(CONFIG_SA1100_YOPY)          += sa1100_yopy.o
++obj-$(CONFIG_PCMCIA_VRC4171)  += vrc4171_card.o
+ obj-$(CONFIG_PCMCIA_VRC4173)  += vrc4173_cardu.o
+ include $(TOPDIR)/Rules.make
+diff -Nur linux-2.4.32-rc1/drivers/pcmcia/vrc4171_card.c linux-2.4.32-rc1.mips/drivers/pcmcia/vrc4171_card.c
+--- linux-2.4.32-rc1/drivers/pcmcia/vrc4171_card.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/pcmcia/vrc4171_card.c        2004-01-19 16:54:58.000000000 +0100
 @@ -0,0 +1,886 @@
 +/*
 + * vrc4171_card.c, NEC VRC4171 Card Controller driver for Socket Services.
@@ -18958,9 +19406,9 @@ diff -Nur linux-2.4.30/drivers/pcmcia/vrc4171_card.c linux-2.4.30-mips/drivers/p
 +
 +module_init(vrc4171_card_init);
 +module_exit(vrc4171_card_exit);
-diff -Nur linux-2.4.30/drivers/scsi/NCR53C9x.h linux-2.4.30-mips/drivers/scsi/NCR53C9x.h
---- linux-2.4.30/drivers/scsi/NCR53C9x.h       2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/scsi/NCR53C9x.h  2003-12-15 19:19:51.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/scsi/NCR53C9x.h linux-2.4.32-rc1.mips/drivers/scsi/NCR53C9x.h
+--- linux-2.4.32-rc1/drivers/scsi/NCR53C9x.h   2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/scsi/NCR53C9x.h      2003-12-15 19:19:51.000000000 +0100
 @@ -144,12 +144,7 @@
  
  #ifndef MULTIPLE_PAD_SIZES
@@ -18975,9 +19423,9 @@ diff -Nur linux-2.4.30/drivers/scsi/NCR53C9x.h linux-2.4.30-mips/drivers/scsi/NC
  #define esp_read(__reg) (__reg)
  
  struct ESP_regs {
-diff -Nur linux-2.4.30/drivers/sound/au1550_i2s.c linux-2.4.30-mips/drivers/sound/au1550_i2s.c
---- linux-2.4.30/drivers/sound/au1550_i2s.c    2005-01-19 15:10:04.000000000 +0100
-+++ linux-2.4.30-mips/drivers/sound/au1550_i2s.c       2005-02-08 08:07:50.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/sound/au1550_i2s.c linux-2.4.32-rc1.mips/drivers/sound/au1550_i2s.c
+--- linux-2.4.32-rc1/drivers/sound/au1550_i2s.c        2005-01-19 15:10:04.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/sound/au1550_i2s.c   2005-02-08 08:07:50.000000000 +0100
 @@ -41,6 +41,7 @@
   *  675 Mass Ave, Cambridge, MA 02139, USA.
   *
@@ -19849,9 +20297,9 @@ diff -Nur linux-2.4.30/drivers/sound/au1550_i2s.c linux-2.4.30-mips/drivers/soun
   err_dev1:
        au1xxx_dbdma_chan_free(s->dma_adc.dmanr);
   err_dma2:
-diff -Nur linux-2.4.30/drivers/sound/au1550_psc.c linux-2.4.30-mips/drivers/sound/au1550_psc.c
---- linux-2.4.30/drivers/sound/au1550_psc.c    2005-01-19 15:10:04.000000000 +0100
-+++ linux-2.4.30-mips/drivers/sound/au1550_psc.c       2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/sound/au1550_psc.c linux-2.4.32-rc1.mips/drivers/sound/au1550_psc.c
+--- linux-2.4.32-rc1/drivers/sound/au1550_psc.c        2005-01-19 15:10:04.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/sound/au1550_psc.c   2005-01-30 09:01:28.000000000 +0100
 @@ -30,6 +30,7 @@
   *  675 Mass Ave, Cambridge, MA 02139, USA.
   *
@@ -20010,9 +20458,32 @@ diff -Nur linux-2.4.30/drivers/sound/au1550_psc.c linux-2.4.30-mips/drivers/soun
        return 0;
  
   err_dev3:
-diff -Nur linux-2.4.30/drivers/tc/lk201.c linux-2.4.30-mips/drivers/tc/lk201.c
---- linux-2.4.30/drivers/tc/lk201.c    2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/tc/lk201.c       2004-09-28 02:53:04.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/sound/Config.in linux-2.4.32-rc1.mips/drivers/sound/Config.in
+--- linux-2.4.32-rc1/drivers/sound/Config.in   2005-01-19 15:10:04.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/sound/Config.in      2005-04-21 07:53:07.000000000 +0200
+@@ -72,10 +72,15 @@
+ if [ "$CONFIG_DDB5477" = "y" ]; then
+     dep_tristate '  NEC Vrc5477 AC97 sound' CONFIG_SOUND_VRC5477 $CONFIG_SOUND
+ fi
+-if [ "$CONFIG_SOC_AU1X00" = "y" -o  "$CONFIG_SOC_AU1500" = "y" ]; then
+-    dep_tristate '  Au1x00 Sound' CONFIG_SOUND_AU1X00 $CONFIG_SOUND
+-    dep_tristate '  Au1550 PSC Sound' CONFIG_SOUND_AU1550_PSC $CONFIG_SOUND
+-    dep_tristate '  Au1550 I2S Sound' CONFIG_SOUND_AU1550_I2S $CONFIG_SOUND
++if [ "$CONFIG_SOC_AU1000" = "y" -o \
++     "$CONFIG_SOC_AU1500" = "y" -o \
++     "$CONFIG_SOC_AU1100" = "y" ]; then
++    dep_tristate '  Au1x00 AC97 Sound' CONFIG_SOUND_AU1X00 $CONFIG_SOUND
++fi
++if [ "$CONFIG_SOC_AU1550" = "y" -o \
++     "$CONFIG_SOC_AU1200" = "y" ]; then
++    dep_tristate '  Au1550/Au1200 PSC AC97 Sound' CONFIG_SOUND_AU1550_PSC $CONFIG_SOUND
++    dep_tristate '  Au1550/Au1200 PSC I2S Sound' CONFIG_SOUND_AU1550_I2S $CONFIG_SOUND
+ fi
+ dep_tristate '  Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' CONFIG_SOUND_TRIDENT $CONFIG_SOUND $CONFIG_PCI
+diff -Nur linux-2.4.32-rc1/drivers/tc/lk201.c linux-2.4.32-rc1.mips/drivers/tc/lk201.c
+--- linux-2.4.32-rc1/drivers/tc/lk201.c        2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/tc/lk201.c   2004-09-28 02:53:04.000000000 +0200
 @@ -5,7 +5,7 @@
   * for more details.
   *
@@ -20290,9 +20761,9 @@ diff -Nur linux-2.4.30/drivers/tc/lk201.c linux-2.4.30-mips/drivers/tc/lk201.c
 +      if (!register_dec_serial_hook(keyb_line, &lk201_hook))
 +              unregister_dec_serial_hook(keyb_line);
  }
-diff -Nur linux-2.4.30/drivers/tc/zs.c linux-2.4.30-mips/drivers/tc/zs.c
---- linux-2.4.30/drivers/tc/zs.c       2005-01-19 15:10:05.000000000 +0100
-+++ linux-2.4.30-mips/drivers/tc/zs.c  2004-12-27 05:13:50.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/tc/zs.c linux-2.4.32-rc1.mips/drivers/tc/zs.c
+--- linux-2.4.32-rc1/drivers/tc/zs.c   2005-01-19 15:10:05.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/tc/zs.c      2004-12-27 05:13:50.000000000 +0100
 @@ -68,6 +68,8 @@
  #include <asm/bitops.h>
  #include <asm/uaccess.h>
@@ -20681,9 +21152,9 @@ diff -Nur linux-2.4.30/drivers/tc/zs.c linux-2.4.30-mips/drivers/tc/zs.c
  }
  
  void __init zs_kgdb_hook(int tty_num)
-diff -Nur linux-2.4.30/drivers/tc/zs.h linux-2.4.30-mips/drivers/tc/zs.h
---- linux-2.4.30/drivers/tc/zs.h       2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/tc/zs.h  2004-07-01 15:28:54.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/tc/zs.h linux-2.4.32-rc1.mips/drivers/tc/zs.h
+--- linux-2.4.32-rc1/drivers/tc/zs.h   2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/tc/zs.h      2004-07-01 15:28:54.000000000 +0200
 @@ -1,14 +1,18 @@
  /*
 - * macserial.h: Definitions for the Macintosh Z8530 serial driver.
@@ -20792,62 +21263,9 @@ diff -Nur linux-2.4.30/drivers/tc/zs.h linux-2.4.30-mips/drivers/tc/zs.h
        unsigned char           *xmit_buf;
        int                     xmit_head;
        int                     xmit_tail;
-diff -Nur linux-2.4.30/drivers/video/Config.in linux-2.4.30-mips/drivers/video/Config.in
---- linux-2.4.30/drivers/video/Config.in       2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/Config.in  2005-02-11 22:16:44.000000000 +0100
-@@ -87,8 +87,8 @@
-    if [ "$CONFIG_HP300" = "y" ]; then
-       define_bool CONFIG_FB_HP300 y
-    fi
--   if [ "$ARCH" = "alpha" ]; then
--      tristate '  TGA framebuffer support' CONFIG_FB_TGA
-+   if [ "$ARCH" = "alpha" -o "$CONFIG_TC" = "y" ]; then
-+      tristate '  TGA/SFB+ framebuffer support' CONFIG_FB_TGA
-    fi
-    if [ "$CONFIG_X86" = "y" ]; then
-       bool '  VESA VGA graphics console' CONFIG_FB_VESA
-@@ -121,6 +121,17 @@
-          hex '    Framebuffer Base Address' CONFIG_E1355_FB_BASE a8200000
-       fi
-    fi
-+   if [ "$CONFIG_SOC_AU1100" = "y" ]; then
-+      bool '  Au1100 LCD Driver' CONFIG_FB_AU1100
-+   fi
-+   
-+   if [ "$CONFIG_SOC_AU1200" = "y" ]; then
-+      bool '  Au1200 LCD Driver' CONFIG_FB_AU1200
-+      if [ "$CONFIG_FB_AU1200" = "y" ]; then
-+      int  '    Number of planes (1 to 4)' CONFIG_FB_AU1200_DEVS 1
-+      fi
-+   fi
-+   
-    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-       if [ "$CONFIG_PCI" != "n" ]; then
-        tristate '  Matrox acceleration (EXPERIMENTAL)' CONFIG_FB_MATROX
-@@ -178,9 +189,6 @@
-            bool '    Use CRT on Pb1100 ' CONFIG_PB1500_CRT
-            bool '    Use TFT Panel on Pb1100 ' CONFIG_PB1500_TFT
-            fi
--           if [ "$CONFIG_SOC_AU1100" = "y" ]; then
--           bool '    Au1100 LCD Driver' CONFIG_FB_AU1100
--           fi
-        fi
-       fi
-    fi
-diff -Nur linux-2.4.30/drivers/video/Makefile linux-2.4.30-mips/drivers/video/Makefile
---- linux-2.4.30/drivers/video/Makefile        2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/Makefile   2005-02-11 22:16:44.000000000 +0100
-@@ -87,6 +87,7 @@
- obj-$(CONFIG_FB_MAXINE)           += maxinefb.o
- obj-$(CONFIG_FB_TX3912)           += tx3912fb.o
- obj-$(CONFIG_FB_AU1100)                 += au1100fb.o fbgen.o
-+obj-$(CONFIG_FB_AU1200)                 += au1200fb.o fbgen.o
- obj-$(CONFIG_FB_IT8181)                 += it8181fb.o fbgen.o
- subdir-$(CONFIG_STI_CONSOLE)      += sti
-diff -Nur linux-2.4.30/drivers/video/au1200fb.c linux-2.4.30-mips/drivers/video/au1200fb.c
---- linux-2.4.30/drivers/video/au1200fb.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/au1200fb.c 2005-03-13 09:04:16.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/video/au1200fb.c linux-2.4.32-rc1.mips/drivers/video/au1200fb.c
+--- linux-2.4.32-rc1/drivers/video/au1200fb.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/video/au1200fb.c     2005-03-13 09:04:16.000000000 +0100
 @@ -0,0 +1,1564 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -22413,9 +22831,9 @@ diff -Nur linux-2.4.30/drivers/video/au1200fb.c linux-2.4.30-mips/drivers/video/
 +#endif /* MODULE */
 +
 +
-diff -Nur linux-2.4.30/drivers/video/au1200fb.h linux-2.4.30-mips/drivers/video/au1200fb.h
---- linux-2.4.30/drivers/video/au1200fb.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/au1200fb.h 2005-02-11 22:16:44.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/video/au1200fb.h linux-2.4.32-rc1.mips/drivers/video/au1200fb.h
+--- linux-2.4.32-rc1/drivers/video/au1200fb.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/video/au1200fb.h     2005-02-11 22:16:44.000000000 +0100
 @@ -0,0 +1,288 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
@@ -22705,9 +23123,51 @@ diff -Nur linux-2.4.30/drivers/video/au1200fb.h linux-2.4.30-mips/drivers/video/
 +
 +/********************************************************************/
 +#endif /* _AU1200LCD_H */
-diff -Nur linux-2.4.30/drivers/video/fbmem.c linux-2.4.30-mips/drivers/video/fbmem.c
---- linux-2.4.30/drivers/video/fbmem.c 2005-01-19 15:10:09.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/fbmem.c    2005-02-11 22:16:44.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/video/Config.in linux-2.4.32-rc1.mips/drivers/video/Config.in
+--- linux-2.4.32-rc1/drivers/video/Config.in   2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/video/Config.in      2005-02-11 22:16:44.000000000 +0100
+@@ -87,8 +87,8 @@
+    if [ "$CONFIG_HP300" = "y" ]; then
+       define_bool CONFIG_FB_HP300 y
+    fi
+-   if [ "$ARCH" = "alpha" ]; then
+-      tristate '  TGA framebuffer support' CONFIG_FB_TGA
++   if [ "$ARCH" = "alpha" -o "$CONFIG_TC" = "y" ]; then
++      tristate '  TGA/SFB+ framebuffer support' CONFIG_FB_TGA
+    fi
+    if [ "$CONFIG_X86" = "y" ]; then
+       bool '  VESA VGA graphics console' CONFIG_FB_VESA
+@@ -121,6 +121,17 @@
+          hex '    Framebuffer Base Address' CONFIG_E1355_FB_BASE a8200000
+       fi
+    fi
++   if [ "$CONFIG_SOC_AU1100" = "y" ]; then
++      bool '  Au1100 LCD Driver' CONFIG_FB_AU1100
++   fi
++   
++   if [ "$CONFIG_SOC_AU1200" = "y" ]; then
++      bool '  Au1200 LCD Driver' CONFIG_FB_AU1200
++      if [ "$CONFIG_FB_AU1200" = "y" ]; then
++      int  '    Number of planes (1 to 4)' CONFIG_FB_AU1200_DEVS 1
++      fi
++   fi
++   
+    if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+       if [ "$CONFIG_PCI" != "n" ]; then
+        tristate '  Matrox acceleration (EXPERIMENTAL)' CONFIG_FB_MATROX
+@@ -178,9 +189,6 @@
+            bool '    Use CRT on Pb1100 ' CONFIG_PB1500_CRT
+            bool '    Use TFT Panel on Pb1100 ' CONFIG_PB1500_TFT
+            fi
+-           if [ "$CONFIG_SOC_AU1100" = "y" ]; then
+-           bool '    Au1100 LCD Driver' CONFIG_FB_AU1100
+-           fi
+        fi
+       fi
+    fi
+diff -Nur linux-2.4.32-rc1/drivers/video/fbmem.c linux-2.4.32-rc1.mips/drivers/video/fbmem.c
+--- linux-2.4.32-rc1/drivers/video/fbmem.c     2005-06-01 02:56:56.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/video/fbmem.c        2005-05-25 19:14:24.000000000 +0200
 @@ -139,6 +139,8 @@
  extern int e1356fb_setup(char*);
  extern int au1100fb_init(void);
@@ -22727,9 +23187,9 @@ diff -Nur linux-2.4.30/drivers/video/fbmem.c linux-2.4.30-mips/drivers/video/fbm
  #ifdef CONFIG_FB_IT8181
        { "it8181fb", it8181fb_init, it8181fb_setup },
  #endif
-diff -Nur linux-2.4.30/drivers/video/ims332.h linux-2.4.30-mips/drivers/video/ims332.h
---- linux-2.4.30/drivers/video/ims332.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/ims332.h   2003-12-22 17:02:20.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/video/ims332.h linux-2.4.32-rc1.mips/drivers/video/ims332.h
+--- linux-2.4.32-rc1/drivers/video/ims332.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/video/ims332.h       2003-12-22 17:02:20.000000000 +0100
 @@ -0,0 +1,275 @@
 +/*
 + *    linux/drivers/video/ims332.h
@@ -23006,9 +23466,20 @@ diff -Nur linux-2.4.30/drivers/video/ims332.h linux-2.4.30-mips/drivers/video/im
 +                              IMS332_CTRL_A_BOOT_ENABLE_VTG);
 +      printk("\n");
 +}
-diff -Nur linux-2.4.30/drivers/video/maxinefb.h linux-2.4.30-mips/drivers/video/maxinefb.h
---- linux-2.4.30/drivers/video/maxinefb.h      2003-08-25 13:44:42.000000000 +0200
-+++ linux-2.4.30-mips/drivers/video/maxinefb.h 1970-01-01 01:00:00.000000000 +0100
+diff -Nur linux-2.4.32-rc1/drivers/video/Makefile linux-2.4.32-rc1.mips/drivers/video/Makefile
+--- linux-2.4.32-rc1/drivers/video/Makefile    2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/video/Makefile       2005-02-11 22:16:44.000000000 +0100
+@@ -87,6 +87,7 @@
+ obj-$(CONFIG_FB_MAXINE)           += maxinefb.o
+ obj-$(CONFIG_FB_TX3912)           += tx3912fb.o
+ obj-$(CONFIG_FB_AU1100)                 += au1100fb.o fbgen.o
++obj-$(CONFIG_FB_AU1200)                 += au1200fb.o fbgen.o
+ obj-$(CONFIG_FB_IT8181)                 += it8181fb.o fbgen.o
+ subdir-$(CONFIG_STI_CONSOLE)      += sti
+diff -Nur linux-2.4.32-rc1/drivers/video/maxinefb.h linux-2.4.32-rc1.mips/drivers/video/maxinefb.h
+--- linux-2.4.32-rc1/drivers/video/maxinefb.h  2003-08-25 13:44:42.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/video/maxinefb.h     1970-01-01 01:00:00.000000000 +0100
 @@ -1,38 +0,0 @@
 -/*
 - *      linux/drivers/video/maxinefb.h
@@ -23048,9 +23519,9 @@ diff -Nur linux-2.4.30/drivers/video/maxinefb.h linux-2.4.30-mips/drivers/video/
 -#define IMS332_REG_COLOR_PALETTE        0x100 /* color palette, 256 entries */
 -#define IMS332_REG_CURSOR_COLOR_PALETTE       0x0a1   /* cursor color palette, */
 -                                              /* 3 entries             */
-diff -Nur linux-2.4.30/drivers/video/newport_con.c linux-2.4.30-mips/drivers/video/newport_con.c
---- linux-2.4.30/drivers/video/newport_con.c   2003-08-25 13:44:42.000000000 +0200
-+++ linux-2.4.30-mips/drivers/video/newport_con.c      2004-09-23 15:32:29.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/video/newport_con.c linux-2.4.32-rc1.mips/drivers/video/newport_con.c
+--- linux-2.4.32-rc1/drivers/video/newport_con.c       2003-08-25 13:44:42.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/video/newport_con.c  2004-09-23 15:32:29.000000000 +0200
 @@ -22,6 +22,7 @@
  #include <linux/module.h>
  #include <linux/slab.h>
@@ -23284,9 +23755,9 @@ diff -Nur linux-2.4.30/drivers/video/newport_con.c linux-2.4.30-mips/drivers/vid
  }
  
  module_init(newport_console_init);
-diff -Nur linux-2.4.30/drivers/video/tgafb.c linux-2.4.30-mips/drivers/video/tgafb.c
---- linux-2.4.30/drivers/video/tgafb.c 2001-11-14 23:52:20.000000000 +0100
-+++ linux-2.4.30-mips/drivers/video/tgafb.c    2004-10-30 01:15:02.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/video/tgafb.c linux-2.4.32-rc1.mips/drivers/video/tgafb.c
+--- linux-2.4.32-rc1/drivers/video/tgafb.c     2001-11-14 23:52:20.000000000 +0100
++++ linux-2.4.32-rc1.mips/drivers/video/tgafb.c        2004-10-30 01:15:02.000000000 +0200
 @@ -45,6 +45,15 @@
  #include <linux/console.h>
  #include <asm/io.h>
@@ -23463,9 +23934,9 @@ diff -Nur linux-2.4.30/drivers/video/tgafb.c linux-2.4.30-mips/drivers/video/tga
      return 0;
  }
  
-diff -Nur linux-2.4.30/drivers/video/tgafb.h linux-2.4.30-mips/drivers/video/tgafb.h
---- linux-2.4.30/drivers/video/tgafb.h 2000-04-12 18:47:28.000000000 +0200
-+++ linux-2.4.30-mips/drivers/video/tgafb.h    2004-10-30 01:15:02.000000000 +0200
+diff -Nur linux-2.4.32-rc1/drivers/video/tgafb.h linux-2.4.32-rc1.mips/drivers/video/tgafb.h
+--- linux-2.4.32-rc1/drivers/video/tgafb.h     2000-04-12 18:47:28.000000000 +0200
++++ linux-2.4.32-rc1.mips/drivers/video/tgafb.h        2004-10-30 01:15:02.000000000 +0200
 @@ -36,6 +36,7 @@
  #define       TGA_RASTEROP_REG                0x0034
  #define       TGA_PIXELSHIFT_REG              0x0038
@@ -23474,9 +23945,9 @@ diff -Nur linux-2.4.30/drivers/video/tgafb.h linux-2.4.30-mips/drivers/video/tga
  #define       TGA_PIXELMASK_REG               0x005c
  #define       TGA_CURSOR_BASE_REG             0x0060
  #define       TGA_HORIZ_REG                   0x0064
-diff -Nur linux-2.4.30/fs/binfmt_elf.c linux-2.4.30-mips/fs/binfmt_elf.c
---- linux-2.4.30/fs/binfmt_elf.c       2005-04-04 03:42:20.000000000 +0200
-+++ linux-2.4.30-mips/fs/binfmt_elf.c  2005-04-05 21:09:57.000000000 +0200
+diff -Nur linux-2.4.32-rc1/fs/binfmt_elf.c linux-2.4.32-rc1.mips/fs/binfmt_elf.c
+--- linux-2.4.32-rc1/fs/binfmt_elf.c   2005-06-01 02:56:56.000000000 +0200
++++ linux-2.4.32-rc1.mips/fs/binfmt_elf.c      2005-05-23 14:12:31.000000000 +0200
 @@ -660,6 +660,9 @@
                    bprm->argc++;
                  }
@@ -23499,9 +23970,9 @@ diff -Nur linux-2.4.30/fs/binfmt_elf.c linux-2.4.30-mips/fs/binfmt_elf.c
        elf.e_ehsize = sizeof(elf);
        elf.e_phentsize = sizeof(struct elf_phdr);
        elf.e_phnum = segs+1;           /* Include notes */
-diff -Nur linux-2.4.30/fs/partitions/sgi.c linux-2.4.30-mips/fs/partitions/sgi.c
---- linux-2.4.30/fs/partitions/sgi.c   2001-10-02 05:03:26.000000000 +0200
-+++ linux-2.4.30-mips/fs/partitions/sgi.c      2004-08-11 22:30:07.000000000 +0200
+diff -Nur linux-2.4.32-rc1/fs/partitions/sgi.c linux-2.4.32-rc1.mips/fs/partitions/sgi.c
+--- linux-2.4.32-rc1/fs/partitions/sgi.c       2001-10-02 05:03:26.000000000 +0200
++++ linux-2.4.32-rc1.mips/fs/partitions/sgi.c  2004-08-11 22:30:07.000000000 +0200
 @@ -17,6 +17,11 @@
  #include "check.h"
  #include "sgi.h"
@@ -23525,9 +23996,9 @@ diff -Nur linux-2.4.30/fs/partitions/sgi.c linux-2.4.30-mips/fs/partitions/sgi.c
                current_minor++;
        }
        printk("\n");
-diff -Nur linux-2.4.30/fs/proc/array.c linux-2.4.30-mips/fs/proc/array.c
---- linux-2.4.30/fs/proc/array.c       2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/fs/proc/array.c  2004-11-29 18:47:18.000000000 +0100
+diff -Nur linux-2.4.32-rc1/fs/proc/array.c linux-2.4.32-rc1.mips/fs/proc/array.c
+--- linux-2.4.32-rc1/fs/proc/array.c   2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/fs/proc/array.c      2004-11-29 18:47:18.000000000 +0100
 @@ -368,15 +368,15 @@
                task->cmin_flt,
                task->maj_flt,
@@ -23568,9 +24039,9 @@ diff -Nur linux-2.4.30/fs/proc/array.c linux-2.4.30-mips/fs/proc/array.c
  
        return len;
  }
-diff -Nur linux-2.4.30/fs/proc/proc_misc.c linux-2.4.30-mips/fs/proc/proc_misc.c
---- linux-2.4.30/fs/proc/proc_misc.c   2004-08-08 01:26:06.000000000 +0200
-+++ linux-2.4.30-mips/fs/proc/proc_misc.c      2004-08-14 20:39:01.000000000 +0200
+diff -Nur linux-2.4.32-rc1/fs/proc/proc_misc.c linux-2.4.32-rc1.mips/fs/proc/proc_misc.c
+--- linux-2.4.32-rc1/fs/proc/proc_misc.c       2004-08-08 01:26:06.000000000 +0200
++++ linux-2.4.32-rc1.mips/fs/proc/proc_misc.c  2004-08-14 20:39:01.000000000 +0200
 @@ -308,16 +308,16 @@
  {
        int i, len = 0;
@@ -23607,9 +24078,9 @@ diff -Nur linux-2.4.30/fs/proc/proc_misc.c linux-2.4.30-mips/fs/proc/proc_misc.c
                                   + kstat.per_cpu_nice[cpu_logical_map(i)] \
                                   + kstat.per_cpu_system[cpu_logical_map(i)]));
        proc_sprintf(page, &off, &len,
-diff -Nur linux-2.4.30/include/asm-alpha/param.h linux-2.4.30-mips/include/asm-alpha/param.h
---- linux-2.4.30/include/asm-alpha/param.h     2000-11-08 08:37:31.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-alpha/param.h        2000-11-28 04:59:03.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-alpha/param.h linux-2.4.32-rc1.mips/include/asm-alpha/param.h
+--- linux-2.4.32-rc1/include/asm-alpha/param.h 2000-11-08 08:37:31.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-alpha/param.h    2000-11-28 04:59:03.000000000 +0100
 @@ -13,6 +13,9 @@
  # else
  #  define HZ  1200
@@ -23620,9 +24091,9 @@ diff -Nur linux-2.4.30/include/asm-alpha/param.h linux-2.4.30-mips/include/asm-a
  #endif
  
  #define EXEC_PAGESIZE 8192
-diff -Nur linux-2.4.30/include/asm-i386/param.h linux-2.4.30-mips/include/asm-i386/param.h
---- linux-2.4.30/include/asm-i386/param.h      2000-10-27 20:04:43.000000000 +0200
-+++ linux-2.4.30-mips/include/asm-i386/param.h 2000-11-23 03:00:55.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-i386/param.h linux-2.4.32-rc1.mips/include/asm-i386/param.h
+--- linux-2.4.32-rc1/include/asm-i386/param.h  2000-10-27 20:04:43.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-i386/param.h     2000-11-23 03:00:55.000000000 +0100
 @@ -3,6 +3,9 @@
  
  #ifndef HZ
@@ -23633,9 +24104,9 @@ diff -Nur linux-2.4.30/include/asm-i386/param.h linux-2.4.30-mips/include/asm-i3
  #endif
  
  #define EXEC_PAGESIZE 4096
-diff -Nur linux-2.4.30/include/asm-ia64/param.h linux-2.4.30-mips/include/asm-ia64/param.h
---- linux-2.4.30/include/asm-ia64/param.h      2004-04-14 15:05:40.000000000 +0200
-+++ linux-2.4.30-mips/include/asm-ia64/param.h 2004-04-16 05:14:20.000000000 +0200
+diff -Nur linux-2.4.32-rc1/include/asm-ia64/param.h linux-2.4.32-rc1.mips/include/asm-ia64/param.h
+--- linux-2.4.32-rc1/include/asm-ia64/param.h  2004-04-14 15:05:40.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-ia64/param.h     2004-04-16 05:14:20.000000000 +0200
 @@ -7,9 +7,15 @@
   * Based on <asm-i386/param.h>.
   *
@@ -23653,9 +24124,9 @@ diff -Nur linux-2.4.30/include/asm-ia64/param.h linux-2.4.30-mips/include/asm-ia
  #define EXEC_PAGESIZE 65536
  
  #ifndef NGROUPS
-diff -Nur linux-2.4.30/include/asm-m68k/param.h linux-2.4.30-mips/include/asm-m68k/param.h
---- linux-2.4.30/include/asm-m68k/param.h      2001-01-04 22:00:55.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-m68k/param.h 2001-01-11 05:02:45.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-m68k/param.h linux-2.4.32-rc1.mips/include/asm-m68k/param.h
+--- linux-2.4.32-rc1/include/asm-m68k/param.h  2001-01-04 22:00:55.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-m68k/param.h     2001-01-11 05:02:45.000000000 +0100
 @@ -3,6 +3,9 @@
  
  #ifndef HZ
@@ -23666,9 +24137,127 @@ diff -Nur linux-2.4.30/include/asm-m68k/param.h linux-2.4.30-mips/include/asm-m6
  #endif
  
  #define EXEC_PAGESIZE 8192
-diff -Nur linux-2.4.30/include/asm-mips/au1000.h linux-2.4.30-mips/include/asm-mips/au1000.h
---- linux-2.4.30/include/asm-mips/au1000.h     2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1000.h        2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1000_gpio.h linux-2.4.32-rc1.mips/include/asm-mips/au1000_gpio.h
+--- linux-2.4.32-rc1/include/asm-mips/au1000_gpio.h    2002-11-29 00:53:15.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1000_gpio.h       2005-01-30 09:01:28.000000000 +0100
+@@ -30,6 +30,13 @@
+  *  675 Mass Ave, Cambridge, MA 02139, USA.
+  */
++/*
++ *  Revision history
++ *    01/31/02  0.01   Initial release. Steve Longerbeam, MontaVista
++ *    10/12/03  0.1    Added Au1100/Au1500, GPIO2, and bit operations. K.C. Nishio, AMD
++ *    08/05/04  0.11   Added Au1550 and Au1200. K.C. Nishio
++ */
++
+ #ifndef __AU1000_GPIO_H
+ #define __AU1000_GPIO_H
+@@ -44,13 +51,94 @@
+ #define AU1000GPIO_TRISTATE   _IOW (AU1000GPIO_IOC_MAGIC, 4, int)
+ #define AU1000GPIO_AVAIL_MASK _IOR (AU1000GPIO_IOC_MAGIC, 5, int)
++// bit operations
++#define AU1000GPIO_BIT_READ   _IOW (AU1000GPIO_IOC_MAGIC, 6, int)
++#define AU1000GPIO_BIT_SET    _IOW (AU1000GPIO_IOC_MAGIC, 7, int)
++#define AU1000GPIO_BIT_CLEAR  _IOW (AU1000GPIO_IOC_MAGIC, 8, int)
++#define AU1000GPIO_BIT_TRISTATE       _IOW (AU1000GPIO_IOC_MAGIC, 9, int)
++#define AU1000GPIO_BIT_INIT   _IOW (AU1000GPIO_IOC_MAGIC, 10, int)
++#define AU1000GPIO_BIT_TERM   _IOW (AU1000GPIO_IOC_MAGIC, 11, int)
++
++/* set this major numer same as the CRIS GPIO driver */
++#define AU1X00_GPIO_MAJOR     (120)
++
++#define ENABLED_ZERO          (0)
++#define ENABLED_ONE           (1)
++#define ENABLED_10            (0x2)
++#define ENABLED_11            (0x3)
++#define ENABLED_111           (0x7)
++#define NOT_AVAIL             (-1)
++#define AU1X00_MAX_PRIMARY_GPIO       (32) 
++
++#define AU1000_GPIO_MINOR_MAX AU1X00_MAX_PRIMARY_GPIO
++/* Au1100, 1500, 1550 and 1200 have the secondary GPIO block */
++#define AU1XX0_GPIO_MINOR_MAX (48)
++
++#define AU1X00_GPIO_NAME      "gpio"
++
++/* GPIO pins which are not multiplexed */
++#if defined(CONFIG_SOC_AU1000)
++  #define NATIVE_GPIOPIN      ((1 << 15) | (1 << 8) | (1 << 7) | (1 << 1) | (1 << 0))
++  #define NATIVE_GPIO2PIN     (0)
++#elif defined(CONFIG_SOC_AU1100)
++  #define NATIVE_GPIOPIN      ((1 << 23) | (1 << 22) | (1 << 21) | (1 << 20) | (1 << 19) | (1 << 18) | \
++                               (1 << 17) | (1 << 16) | (1 << 7) | (1 << 1) | (1 << 0))
++  #define NATIVE_GPIO2PIN     (0)
++#elif defined(CONFIG_SOC_AU1500)
++  #define NATIVE_GPIOPIN      ((1 << 15) | (1 << 8) | (1 << 7) | (1 << 1) | (1 << 0))
++  /* exclude the PCI reset output signal: GPIO[200], DMA_REQ2 and DMA_REQ3 */
++  #define NATIVE_GPIO2PIN     (0xfffe & ~((1 << 9) | (1 << 8))) 
++#elif defined(CONFIG_SOC_AU1550)
++  #define NATIVE_GPIOPIN      ((1 << 15) | (1 << 8) | (1 << 7) | (1 << 6) | (1 << 1) | (1 << 0))
++  /* please refere Au1550 Data Book, chapter 15 */
++  #define NATIVE_GPIO2PIN     (1 << 5) 
++#elif defined(CONFIG_SOC_AU1200)
++  #define NATIVE_GPIOPIN      ((1 << 7) | (1 << 5))
++  #define NATIVE_GPIO2PIN     (0) 
++#endif
++
++/* minor as u32 */
++#define MINOR_TO_GPIOPIN(minor)               ((minor < AU1X00_MAX_PRIMARY_GPIO) ? minor : (minor - AU1X00_MAX_PRIMARY_GPIO))
++#define IS_PRIMARY_GPIOPIN(minor)     ((minor < AU1X00_MAX_PRIMARY_GPIO) ? 1 : 0)
++
++/*
++ * pin to minor mapping.
++ * GPIO0-GPIO31, minor=0-31.
++ * GPIO200-GPIO215, minor=32-47.
++ */
++typedef struct _au1x00_gpio_bit_ctl {
++      int direction;  // The direction of this GPIO pin. 0: IN, 1: OUT.
++      int data;       // Pin output when itized (0/1), or at the term. 0/1/-1 (tristate).
++} au1x00_gpio_bit_ctl;
++
++typedef struct _au1x00_gpio_driver {
++      const char      *driver_name;
++      const char      *name;
++      int             name_base;      /* offset of printed name */
++      short           major;          /* major device number */
++      short           minor_start;    /* start of minor device number*/
++      short           num;            /* number of devices */
++} au1x00_gpio_driver;
++
+ #ifdef __KERNEL__
+-extern u32 get_au1000_avail_gpio_mask(void);
+-extern int au1000gpio_tristate(u32 data);
+-extern int au1000gpio_in(u32 *data);
+-extern int au1000gpio_set(u32 data);
+-extern int au1000gpio_clear(u32 data);
+-extern int au1000gpio_out(u32 data);
++extern u32 get_au1000_avail_gpio_mask(u32 *avail_gpio2);
++extern int au1000gpio_tristate(u32 minor, u32 data);
++extern int au1000gpio_in(u32 minor, u32 *data);
++extern int au1000gpio_set(u32 minor, u32 data);
++extern int au1000gpio_clear(u32 minor, u32 data);
++extern int au1000gpio_out(u32 minor, u32 data);
++extern int au1000gpio_bit_read(u32 minor, u32 *read_data);
++extern int au1000gpio_bit_set(u32 minor);
++extern int au1000gpio_bit_clear(u32 minor);
++extern int au1000gpio_bit_tristate(u32 minor);
++extern int check_minor_to_gpio(u32 minor);
++extern int au1000gpio_bit_init(u32 minor, au1x00_gpio_bit_ctl *bit_opt);
++extern int au1000gpio_bit_term(u32 minor, au1x00_gpio_bit_ctl *bit_opt);
++
++extern void gpio_register_devfs (au1x00_gpio_driver *driver, unsigned int flags, unsigned minor);
++extern void gpio_unregister_devfs (au1x00_gpio_driver *driver, unsigned minor);
++extern int gpio_register_driver(au1x00_gpio_driver *driver);
++extern int gpio_unregister_driver(au1x00_gpio_driver *driver);
+ #endif
+ #endif
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1000.h linux-2.4.32-rc1.mips/include/asm-mips/au1000.h
+--- linux-2.4.32-rc1/include/asm-mips/au1000.h 2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1000.h    2005-01-30 09:01:28.000000000 +0100
 @@ -160,28 +160,356 @@
  #define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
  #endif
@@ -24318,145 +24907,27 @@ diff -Nur linux-2.4.30/include/asm-mips/au1000.h linux-2.4.30-mips/include/asm-m
 +#define pininputen pinstaterd
 +
 +} AU1X00_SYS;
-+
-+static AU1X00_SYS* const sys  = (AU1X00_SYS *)SYS_BASE;
-+
-+#endif
- /* Processor information base on prid.
-  * Copied from PowerPC.
-  */
-+#ifndef _LANGUAGE_ASSEMBLY
- struct cpu_spec {
-       /* CPU is matched via (PRID & prid_mask) == prid_value */
-       unsigned int    prid_mask;
-@@ -1404,3 +1849,6 @@
- extern struct cpu_spec                cpu_specs[];
- extern struct cpu_spec                *cur_cpu_spec[];
- #endif
-+
-+#endif
-+
-diff -Nur linux-2.4.30/include/asm-mips/au1000_gpio.h linux-2.4.30-mips/include/asm-mips/au1000_gpio.h
---- linux-2.4.30/include/asm-mips/au1000_gpio.h        2002-11-29 00:53:15.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1000_gpio.h   2005-01-30 09:01:28.000000000 +0100
-@@ -30,6 +30,13 @@
-  *  675 Mass Ave, Cambridge, MA 02139, USA.
-  */
-+/*
-+ *  Revision history
-+ *    01/31/02  0.01   Initial release. Steve Longerbeam, MontaVista
-+ *    10/12/03  0.1    Added Au1100/Au1500, GPIO2, and bit operations. K.C. Nishio, AMD
-+ *    08/05/04  0.11   Added Au1550 and Au1200. K.C. Nishio
-+ */
-+
- #ifndef __AU1000_GPIO_H
- #define __AU1000_GPIO_H
-@@ -44,13 +51,94 @@
- #define AU1000GPIO_TRISTATE   _IOW (AU1000GPIO_IOC_MAGIC, 4, int)
- #define AU1000GPIO_AVAIL_MASK _IOR (AU1000GPIO_IOC_MAGIC, 5, int)
-+// bit operations
-+#define AU1000GPIO_BIT_READ   _IOW (AU1000GPIO_IOC_MAGIC, 6, int)
-+#define AU1000GPIO_BIT_SET    _IOW (AU1000GPIO_IOC_MAGIC, 7, int)
-+#define AU1000GPIO_BIT_CLEAR  _IOW (AU1000GPIO_IOC_MAGIC, 8, int)
-+#define AU1000GPIO_BIT_TRISTATE       _IOW (AU1000GPIO_IOC_MAGIC, 9, int)
-+#define AU1000GPIO_BIT_INIT   _IOW (AU1000GPIO_IOC_MAGIC, 10, int)
-+#define AU1000GPIO_BIT_TERM   _IOW (AU1000GPIO_IOC_MAGIC, 11, int)
-+
-+/* set this major numer same as the CRIS GPIO driver */
-+#define AU1X00_GPIO_MAJOR     (120)
-+
-+#define ENABLED_ZERO          (0)
-+#define ENABLED_ONE           (1)
-+#define ENABLED_10            (0x2)
-+#define ENABLED_11            (0x3)
-+#define ENABLED_111           (0x7)
-+#define NOT_AVAIL             (-1)
-+#define AU1X00_MAX_PRIMARY_GPIO       (32) 
-+
-+#define AU1000_GPIO_MINOR_MAX AU1X00_MAX_PRIMARY_GPIO
-+/* Au1100, 1500, 1550 and 1200 have the secondary GPIO block */
-+#define AU1XX0_GPIO_MINOR_MAX (48)
-+
-+#define AU1X00_GPIO_NAME      "gpio"
-+
-+/* GPIO pins which are not multiplexed */
-+#if defined(CONFIG_SOC_AU1000)
-+  #define NATIVE_GPIOPIN      ((1 << 15) | (1 << 8) | (1 << 7) | (1 << 1) | (1 << 0))
-+  #define NATIVE_GPIO2PIN     (0)
-+#elif defined(CONFIG_SOC_AU1100)
-+  #define NATIVE_GPIOPIN      ((1 << 23) | (1 << 22) | (1 << 21) | (1 << 20) | (1 << 19) | (1 << 18) | \
-+                               (1 << 17) | (1 << 16) | (1 << 7) | (1 << 1) | (1 << 0))
-+  #define NATIVE_GPIO2PIN     (0)
-+#elif defined(CONFIG_SOC_AU1500)
-+  #define NATIVE_GPIOPIN      ((1 << 15) | (1 << 8) | (1 << 7) | (1 << 1) | (1 << 0))
-+  /* exclude the PCI reset output signal: GPIO[200], DMA_REQ2 and DMA_REQ3 */
-+  #define NATIVE_GPIO2PIN     (0xfffe & ~((1 << 9) | (1 << 8))) 
-+#elif defined(CONFIG_SOC_AU1550)
-+  #define NATIVE_GPIOPIN      ((1 << 15) | (1 << 8) | (1 << 7) | (1 << 6) | (1 << 1) | (1 << 0))
-+  /* please refere Au1550 Data Book, chapter 15 */
-+  #define NATIVE_GPIO2PIN     (1 << 5) 
-+#elif defined(CONFIG_SOC_AU1200)
-+  #define NATIVE_GPIOPIN      ((1 << 7) | (1 << 5))
-+  #define NATIVE_GPIO2PIN     (0) 
-+#endif
-+
-+/* minor as u32 */
-+#define MINOR_TO_GPIOPIN(minor)               ((minor < AU1X00_MAX_PRIMARY_GPIO) ? minor : (minor - AU1X00_MAX_PRIMARY_GPIO))
-+#define IS_PRIMARY_GPIOPIN(minor)     ((minor < AU1X00_MAX_PRIMARY_GPIO) ? 1 : 0)
-+
-+/*
-+ * pin to minor mapping.
-+ * GPIO0-GPIO31, minor=0-31.
-+ * GPIO200-GPIO215, minor=32-47.
-+ */
-+typedef struct _au1x00_gpio_bit_ctl {
-+      int direction;  // The direction of this GPIO pin. 0: IN, 1: OUT.
-+      int data;       // Pin output when itized (0/1), or at the term. 0/1/-1 (tristate).
-+} au1x00_gpio_bit_ctl;
-+
-+typedef struct _au1x00_gpio_driver {
-+      const char      *driver_name;
-+      const char      *name;
-+      int             name_base;      /* offset of printed name */
-+      short           major;          /* major device number */
-+      short           minor_start;    /* start of minor device number*/
-+      short           num;            /* number of devices */
-+} au1x00_gpio_driver;
-+
- #ifdef __KERNEL__
--extern u32 get_au1000_avail_gpio_mask(void);
--extern int au1000gpio_tristate(u32 data);
--extern int au1000gpio_in(u32 *data);
--extern int au1000gpio_set(u32 data);
--extern int au1000gpio_clear(u32 data);
--extern int au1000gpio_out(u32 data);
-+extern u32 get_au1000_avail_gpio_mask(u32 *avail_gpio2);
-+extern int au1000gpio_tristate(u32 minor, u32 data);
-+extern int au1000gpio_in(u32 minor, u32 *data);
-+extern int au1000gpio_set(u32 minor, u32 data);
-+extern int au1000gpio_clear(u32 minor, u32 data);
-+extern int au1000gpio_out(u32 minor, u32 data);
-+extern int au1000gpio_bit_read(u32 minor, u32 *read_data);
-+extern int au1000gpio_bit_set(u32 minor);
-+extern int au1000gpio_bit_clear(u32 minor);
-+extern int au1000gpio_bit_tristate(u32 minor);
-+extern int check_minor_to_gpio(u32 minor);
-+extern int au1000gpio_bit_init(u32 minor, au1x00_gpio_bit_ctl *bit_opt);
-+extern int au1000gpio_bit_term(u32 minor, au1x00_gpio_bit_ctl *bit_opt);
-+
-+extern void gpio_register_devfs (au1x00_gpio_driver *driver, unsigned int flags, unsigned minor);
-+extern void gpio_unregister_devfs (au1x00_gpio_driver *driver, unsigned minor);
-+extern int gpio_register_driver(au1x00_gpio_driver *driver);
-+extern int gpio_unregister_driver(au1x00_gpio_driver *driver);
- #endif
++
++static AU1X00_SYS* const sys  = (AU1X00_SYS *)SYS_BASE;
++
++#endif
+ /* Processor information base on prid.
+  * Copied from PowerPC.
+  */
++#ifndef _LANGUAGE_ASSEMBLY
+ struct cpu_spec {
+       /* CPU is matched via (PRID & prid_mask) == prid_value */
+       unsigned int    prid_mask;
+@@ -1404,3 +1849,6 @@
+ extern struct cpu_spec                cpu_specs[];
+ extern struct cpu_spec                *cur_cpu_spec[];
  #endif
-diff -Nur linux-2.4.30/include/asm-mips/au1000_pcmcia.h linux-2.4.30-mips/include/asm-mips/au1000_pcmcia.h
---- linux-2.4.30/include/asm-mips/au1000_pcmcia.h      2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1000_pcmcia.h 2005-01-30 09:01:28.000000000 +0100
++
++#endif
++
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1000_pcmcia.h linux-2.4.32-rc1.mips/include/asm-mips/au1000_pcmcia.h
+--- linux-2.4.32-rc1/include/asm-mips/au1000_pcmcia.h  2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1000_pcmcia.h     2005-01-30 09:01:28.000000000 +0100
 @@ -38,16 +38,41 @@
  #define AU1X_SOCK0_PHYS_MEM  0xF80000000
  
@@ -24508,9 +24979,9 @@ diff -Nur linux-2.4.30/include/asm-mips/au1000_pcmcia.h linux-2.4.30-mips/includ
  #endif
  
  struct pcmcia_state {
-diff -Nur linux-2.4.30/include/asm-mips/au1100_mmc.h linux-2.4.30-mips/include/asm-mips/au1100_mmc.h
---- linux-2.4.30/include/asm-mips/au1100_mmc.h 2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1100_mmc.h    2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1100_mmc.h linux-2.4.32-rc1.mips/include/asm-mips/au1100_mmc.h
+--- linux-2.4.32-rc1/include/asm-mips/au1100_mmc.h     2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1100_mmc.h        2005-01-30 09:01:28.000000000 +0100
 @@ -39,16 +39,22 @@
  #define __ASM_AU1100_MMC_H
  
@@ -24552,9 +25023,9 @@ diff -Nur linux-2.4.30/include/asm-mips/au1100_mmc.h linux-2.4.30-mips/include/a
 +
  #endif /* __ASM_AU1100_MMC_H */
  
-diff -Nur linux-2.4.30/include/asm-mips/au1xxx_dbdma.h linux-2.4.30-mips/include/asm-mips/au1xxx_dbdma.h
---- linux-2.4.30/include/asm-mips/au1xxx_dbdma.h       2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1xxx_dbdma.h  2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1xxx_dbdma.h linux-2.4.32-rc1.mips/include/asm-mips/au1xxx_dbdma.h
+--- linux-2.4.32-rc1/include/asm-mips/au1xxx_dbdma.h   2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1xxx_dbdma.h      2005-01-30 09:01:28.000000000 +0100
 @@ -43,7 +43,7 @@
  #define DDMA_GLOBAL_BASE      0xb4003000
  #define DDMA_CHANNEL_BASE     0xb4002000
@@ -24707,9 +25178,9 @@ diff -Nur linux-2.4.30/include/asm-mips/au1xxx_dbdma.h linux-2.4.30-mips/include
 +
  #endif /* _LANGUAGE_ASSEMBLY */
  #endif /* _AU1000_DBDMA_H_ */
-diff -Nur linux-2.4.30/include/asm-mips/au1xxx_gpio.h linux-2.4.30-mips/include/asm-mips/au1xxx_gpio.h
---- linux-2.4.30/include/asm-mips/au1xxx_gpio.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1xxx_gpio.h   2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1xxx_gpio.h linux-2.4.32-rc1.mips/include/asm-mips/au1xxx_gpio.h
+--- linux-2.4.32-rc1/include/asm-mips/au1xxx_gpio.h    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1xxx_gpio.h       2005-01-30 09:01:28.000000000 +0100
 @@ -0,0 +1,22 @@
 +
 +
@@ -24733,9 +25204,9 @@ diff -Nur linux-2.4.30/include/asm-mips/au1xxx_gpio.h linux-2.4.30-mips/include/
 +} AU1X00_GPIO2;
 +
 +#endif //__AU1XXX_GPIO_H
-diff -Nur linux-2.4.30/include/asm-mips/au1xxx_psc.h linux-2.4.30-mips/include/asm-mips/au1xxx_psc.h
---- linux-2.4.30/include/asm-mips/au1xxx_psc.h 2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/au1xxx_psc.h    2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/au1xxx_psc.h linux-2.4.32-rc1.mips/include/asm-mips/au1xxx_psc.h
+--- linux-2.4.32-rc1/include/asm-mips/au1xxx_psc.h     2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/au1xxx_psc.h        2005-01-30 09:01:28.000000000 +0100
 @@ -41,6 +41,11 @@
  #define PSC3_BASE_ADDR                0xb0d00000
  #endif
@@ -24757,9 +25228,9 @@ diff -Nur linux-2.4.30/include/asm-mips/au1xxx_psc.h linux-2.4.30-mips/include/a
  #define PSC_I2SCFG_WI         (1 << 15)
  
  #define PSC_I2SCFG_DIV_MASK   (3 << 13)
-diff -Nur linux-2.4.30/include/asm-mips/bootinfo.h linux-2.4.30-mips/include/asm-mips/bootinfo.h
---- linux-2.4.30/include/asm-mips/bootinfo.h   2004-02-18 14:36:32.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/bootinfo.h      2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/bootinfo.h linux-2.4.32-rc1.mips/include/asm-mips/bootinfo.h
+--- linux-2.4.32-rc1/include/asm-mips/bootinfo.h       2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/bootinfo.h  2005-01-30 09:01:28.000000000 +0100
 @@ -180,6 +180,9 @@
  #define MACH_MTX1             7       /* 4G MTX-1 Au1500-based board */
  #define MACH_CSB250           8       /* Cogent Au1500 */
@@ -24770,9 +25241,9 @@ diff -Nur linux-2.4.30/include/asm-mips/bootinfo.h linux-2.4.30-mips/include/asm
  
  /*
   * Valid machtype for group NEC_VR41XX
-diff -Nur linux-2.4.30/include/asm-mips/db1200.h linux-2.4.30-mips/include/asm-mips/db1200.h
---- linux-2.4.30/include/asm-mips/db1200.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/db1200.h        2005-01-30 09:02:45.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/db1200.h linux-2.4.32-rc1.mips/include/asm-mips/db1200.h
+--- linux-2.4.32-rc1/include/asm-mips/db1200.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/db1200.h    2005-01-30 09:02:45.000000000 +0100
 @@ -0,0 +1,214 @@
 +/*
 + * AMD Alchemy DB1200 Referrence Board
@@ -24988,9 +25459,9 @@ diff -Nur linux-2.4.30/include/asm-mips/db1200.h linux-2.4.30-mips/include/asm-m
 +
 +#endif /* __ASM_DB1200_H */
 +
-diff -Nur linux-2.4.30/include/asm-mips/db1x00.h linux-2.4.30-mips/include/asm-mips/db1x00.h
---- linux-2.4.30/include/asm-mips/db1x00.h     2005-01-19 15:10:11.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/db1x00.h        2005-01-30 09:06:19.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/db1x00.h linux-2.4.32-rc1.mips/include/asm-mips/db1x00.h
+--- linux-2.4.32-rc1/include/asm-mips/db1x00.h 2005-01-19 15:10:11.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/db1x00.h    2005-01-30 09:06:19.000000000 +0100
 @@ -1,5 +1,5 @@
  /*
 - * AMD Alchemy DB1x00 Reference Boards
@@ -25096,9 +25567,26 @@ diff -Nur linux-2.4.30/include/asm-mips/db1x00.h linux-2.4.30-mips/include/asm-m
  
  #endif /* __ASM_DB1X00_H */
  
-diff -Nur linux-2.4.30/include/asm-mips/ficmmp.h linux-2.4.30-mips/include/asm-mips/ficmmp.h
---- linux-2.4.30/include/asm-mips/ficmmp.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/ficmmp.h        2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/elf.h linux-2.4.32-rc1.mips/include/asm-mips/elf.h
+--- linux-2.4.32-rc1/include/asm-mips/elf.h    2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/elf.h       2005-04-14 12:41:44.000000000 +0200
+@@ -66,9 +66,10 @@
+ #define USE_ELF_CORE_DUMP
+ #define ELF_EXEC_PAGESIZE     PAGE_SIZE
+-#define ELF_CORE_COPY_REGS(_dest,_regs)                               \
+-      memcpy((char *) &_dest, (char *) _regs,                 \
+-             sizeof(struct pt_regs));
++extern void dump_regs(elf_greg_t *, struct pt_regs *regs);
++
++#define ELF_CORE_COPY_REGS(elf_regs, regs)                    \
++      dump_regs((elf_greg_t *)&(elf_regs), regs);
+ /* This yields a mask that user programs can use to figure out what
+    instruction set this cpu supports.  This could be done in userspace,
+diff -Nur linux-2.4.32-rc1/include/asm-mips/ficmmp.h linux-2.4.32-rc1.mips/include/asm-mips/ficmmp.h
+--- linux-2.4.32-rc1/include/asm-mips/ficmmp.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/ficmmp.h    2005-01-30 09:01:28.000000000 +0100
 @@ -0,0 +1,156 @@
 +/*
 + * FIC MMP
@@ -25256,9 +25744,9 @@ diff -Nur linux-2.4.30/include/asm-mips/ficmmp.h linux-2.4.30-mips/include/asm-m
 +
 +#endif /* __ASM_FICMMP_H */
 +
-diff -Nur linux-2.4.30/include/asm-mips/hazards.h linux-2.4.30-mips/include/asm-mips/hazards.h
---- linux-2.4.30/include/asm-mips/hazards.h    2004-02-18 14:36:32.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/hazards.h       2004-11-25 23:18:38.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/hazards.h linux-2.4.32-rc1.mips/include/asm-mips/hazards.h
+--- linux-2.4.32-rc1/include/asm-mips/hazards.h        2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/hazards.h   2005-06-06 16:46:22.000000000 +0200
 @@ -3,7 +3,7 @@
   * License.  See the file "COPYING" in the main directory of this archive
   * for more details.
@@ -25268,7 +25756,7 @@ diff -Nur linux-2.4.30/include/asm-mips/hazards.h linux-2.4.30-mips/include/asm-
   */
  #ifndef _ASM_HAZARDS_H
  #define _ASM_HAZARDS_H
-@@ -12,38 +12,185 @@
+@@ -12,38 +12,200 @@
  
  #ifdef __ASSEMBLY__
  
@@ -25285,17 +25773,17 @@ diff -Nur linux-2.4.30/include/asm-mips/hazards.h linux-2.4.30-mips/include/asm-
 -#define rm9000_tlb_hazard                                             \
 +
 +#define mtc0_tlbw_hazard                                              \
-+      .set    push;                                                   \
-+      .set    mips32;                                                 \
-+      _ssnop; _ssnop; _ssnop; _ssnop;                                 \
-+      .set    pop
-+
-+#define tlbw_eret_hazard                                              \
        .set    push;                                                   \
        .set    mips32;                                                 \
 -      ssnop; ssnop; ssnop; ssnop;                                     \
 +      _ssnop; _ssnop; _ssnop; _ssnop;                                 \
        .set    pop
++
++#define tlbw_eret_hazard                                              \
++      .set    push;                                                   \
++      .set    mips32;                                                 \
++      _ssnop; _ssnop; _ssnop; _ssnop;                                 \
++      .set    pop
 +
  #else
 -#define rm9000_tlb_hazard
@@ -25308,7 +25796,8 @@ diff -Nur linux-2.4.30/include/asm-mips/hazards.h linux-2.4.30-mips/include/asm-
 + */
 +#define mtc0_tlbw_hazard                                              \
 +      b       . + 8
-+#define tlbw_eret_hazard
++#define tlbw_eret_hazard                                              \
++      nop
  #endif
  
 +/*
@@ -25330,17 +25819,31 @@ diff -Nur linux-2.4.30/include/asm-mips/hazards.h linux-2.4.30-mips/include/asm-
 +
 +#define irq_disable_hazard                                            \
 +      ehb             # irq_disable_hazard
++
++#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_RM9000)
++
++/*
++ * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer.
++ */
++
++#define irq_enable_hazard
++
++#define irq_disable_hazard
 +
  #else
  
+ /*
++ * Classic MIPS needs 1 - 3 nops or ssnops
++ */
 +#define irq_enable_hazard
-+#define irq_disable_hazard
++#define irq_disable_hazard                                            \
++      _ssnop; _ssnop; _ssnop
 +
 +#endif
 +
 +#else /* __ASSEMBLY__ */
 +
- /*
++/*
   * RM9000 hazards.  When the JTLB is updated by tlbwi or tlbwr, a subsequent
   * use of the JTLB for instructions should not occur for 4 cpu cycles and use
   * for data translations should not occur for 3 cpu cycles.
@@ -25460,9 +25963,160 @@ diff -Nur linux-2.4.30/include/asm-mips/hazards.h linux-2.4.30-mips/include/asm-
 +#endif /* __ASSEMBLY__ */
 +
  #endif /* _ASM_HAZARDS_H */
-diff -Nur linux-2.4.30/include/asm-mips/mipsregs.h linux-2.4.30-mips/include/asm-mips/mipsregs.h
---- linux-2.4.30/include/asm-mips/mipsregs.h   2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/mipsregs.h      2005-02-06 22:24:22.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/ide.h linux-2.4.32-rc1.mips/include/asm-mips/ide.h
+--- linux-2.4.32-rc1/include/asm-mips/ide.h    2003-08-25 13:44:43.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips/ide.h       2005-04-19 14:26:53.000000000 +0200
+@@ -32,12 +32,12 @@
+ extern struct ide_ops *ide_ops;
+-static __inline__ int ide_default_irq(ide_ioreg_t base)
++static inline int ide_default_irq(ide_ioreg_t base)
+ {
+       return ide_ops->ide_default_irq(base);
+ }
+-static __inline__ ide_ioreg_t ide_default_io_base(int index)
++static inline ide_ioreg_t ide_default_io_base(int index)
+ {
+       return ide_ops->ide_default_io_base(index);
+ }
+@@ -48,7 +48,7 @@
+       ide_ops->ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
+ }
+-static __inline__ void ide_init_default_hwifs(void)
++static inline void ide_init_default_hwifs(void)
+ {
+ #ifndef CONFIG_BLK_DEV_IDEPCI
+       hw_regs_t hw;
+@@ -68,7 +68,89 @@
+ #define ide_ack_intr(hwif)    ((hwif)->hw.ack_intr ? (hwif)->hw.ack_intr(hwif) : 1)
+ #endif
+-#include <asm-generic/ide_iops.h>
++/* MIPS port and memory-mapped I/O string operations.  */
++
++static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size)
++{
++      if (cpu_has_dc_aliases) {
++              unsigned long end = addr + size;
++              for (; addr < end; addr += PAGE_SIZE)
++                      flush_dcache_page(virt_to_page(addr));
++      }
++}
++
++static inline void __ide_insw(unsigned long port, void *addr,
++      unsigned int count)
++{
++      insw(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 2);
++}
++
++static inline void __ide_insl(unsigned long port, void *addr, unsigned int count)
++{
++      insl(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 4);
++}
++
++static inline void __ide_outsw(unsigned long port, const void *addr,
++      unsigned long count)
++{
++      outsw(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 2);
++}
++
++static inline void __ide_outsl(unsigned long port, const void *addr,
++      unsigned long count)
++{
++      outsl(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 4);
++}
++
++static inline void __ide_mm_insw(unsigned long port, void *addr, u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              *(u16 *)addr = readw(port);
++              addr += 2;
++      }
++      __ide_flush_dcache_range(start, count * 2);
++}
++
++static inline void __ide_mm_insl(unsigned long port, void *addr, u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              *(u32 *)addr = readl(port);
++              addr += 4;
++      }
++      __ide_flush_dcache_range(start, count * 4);
++}
++
++static inline void __ide_mm_outsw(unsigned long port, const void *addr,
++      u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              writew(*(u16 *)addr, port);
++              addr += 2;
++      }
++      __ide_flush_dcache_range(start, count * 2);
++}
++
++static inline void __ide_mm_outsl(unsigned long port, const void *addr,
++      u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              writel(*(u32 *)addr, port);
++              addr += 4;
++      }
++      __ide_flush_dcache_range(start, count * 4);
++}
+ #endif /* __KERNEL__ */
+diff -Nur linux-2.4.32-rc1/include/asm-mips/io.h linux-2.4.32-rc1.mips/include/asm-mips/io.h
+--- linux-2.4.32-rc1/include/asm-mips/io.h     2003-08-25 13:44:43.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips/io.h        2005-04-19 14:24:16.000000000 +0200
+@@ -392,7 +392,8 @@
+       return __ioswab32(__val);
+ }
+-static inline void __outsb(unsigned long port, void *addr, unsigned int count)
++static inline void __outsb(unsigned long port, const void *addr,
++      unsigned int count)
+ {
+       while (count--) {
+               outb(*(u8 *)addr, port);
+@@ -408,7 +409,8 @@
+       }
+ }
+-static inline void __outsw(unsigned long port, void *addr, unsigned int count)
++static inline void __outsw(unsigned long port, const void *addr,
++      unsigned int count)
+ {
+       while (count--) {
+               outw(*(u16 *)addr, port);
+@@ -424,7 +426,8 @@
+       }
+ }
+-static inline void __outsl(unsigned long port, void *addr, unsigned int count)
++static inline void __outsl(unsigned long port, const void *addr,
++      unsigned int count)
+ {
+       while (count--) {
+               outl(*(u32 *)addr, port);
+diff -Nur linux-2.4.32-rc1/include/asm-mips/mipsregs.h linux-2.4.32-rc1.mips/include/asm-mips/mipsregs.h
+--- linux-2.4.32-rc1/include/asm-mips/mipsregs.h       2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/mipsregs.h  2005-02-06 22:24:22.000000000 +0100
 @@ -757,10 +757,18 @@
  #define read_c0_config1()     __read_32bit_c0_register($16, 1)
  #define read_c0_config2()     __read_32bit_c0_register($16, 2)
@@ -25525,9 +26179,9 @@ diff -Nur linux-2.4.30/include/asm-mips/mipsregs.h linux-2.4.30-mips/include/asm
  }
  
  /*
-diff -Nur linux-2.4.30/include/asm-mips/mmu_context.h linux-2.4.30-mips/include/asm-mips/mmu_context.h
---- linux-2.4.30/include/asm-mips/mmu_context.h        2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/mmu_context.h   2004-11-22 14:38:29.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/mmu_context.h linux-2.4.32-rc1.mips/include/asm-mips/mmu_context.h
+--- linux-2.4.32-rc1/include/asm-mips/mmu_context.h    2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/mmu_context.h       2004-11-22 14:38:29.000000000 +0100
 @@ -27,7 +27,7 @@
  #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
        pgd_current[smp_processor_id()] = (unsigned long)(pgd)
@@ -25537,9 +26191,9 @@ diff -Nur linux-2.4.30/include/asm-mips/mmu_context.h linux-2.4.30-mips/include/
        TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
  extern unsigned long pgd_current[];
  
-diff -Nur linux-2.4.30/include/asm-mips/pb1100.h linux-2.4.30-mips/include/asm-mips/pb1100.h
---- linux-2.4.30/include/asm-mips/pb1100.h     2003-08-25 13:44:44.000000000 +0200
-+++ linux-2.4.30-mips/include/asm-mips/pb1100.h        2005-01-30 09:10:29.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/pb1100.h linux-2.4.32-rc1.mips/include/asm-mips/pb1100.h
+--- linux-2.4.32-rc1/include/asm-mips/pb1100.h 2003-08-25 13:44:44.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips/pb1100.h    2005-01-30 09:10:29.000000000 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Alchemy Semi PB1100 Referrence Board
@@ -25706,9 +26360,9 @@ diff -Nur linux-2.4.30/include/asm-mips/pb1100.h linux-2.4.30-mips/include/asm-m
  
  #endif /* __ASM_PB1100_H */
 +
-diff -Nur linux-2.4.30/include/asm-mips/pb1200.h linux-2.4.30-mips/include/asm-mips/pb1200.h
---- linux-2.4.30/include/asm-mips/pb1200.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/pb1200.h        2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/pb1200.h linux-2.4.32-rc1.mips/include/asm-mips/pb1200.h
+--- linux-2.4.32-rc1/include/asm-mips/pb1200.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/pb1200.h    2005-01-30 09:01:28.000000000 +0100
 @@ -0,0 +1,244 @@
 +/*
 + * AMD Alchemy PB1200 Referrence Board
@@ -25954,9 +26608,9 @@ diff -Nur linux-2.4.30/include/asm-mips/pb1200.h linux-2.4.30-mips/include/asm-m
 +
 +#endif /* __ASM_PB1200_H */
 +
-diff -Nur linux-2.4.30/include/asm-mips/pb1550.h linux-2.4.30-mips/include/asm-mips/pb1550.h
---- linux-2.4.30/include/asm-mips/pb1550.h     2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/pb1550.h        2005-01-30 09:01:28.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/pb1550.h linux-2.4.32-rc1.mips/include/asm-mips/pb1550.h
+--- linux-2.4.32-rc1/include/asm-mips/pb1550.h 2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/pb1550.h    2005-01-30 09:01:28.000000000 +0100
 @@ -30,13 +30,11 @@
  
  #define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
@@ -26000,9 +26654,98 @@ diff -Nur linux-2.4.30/include/asm-mips/pb1550.h linux-2.4.30-mips/include/asm-m
 +#define AU1XXX_SMC91111_IRQ           AU1000_GPIO_3
  
  #endif /* __ASM_PB1550_H */
-diff -Nur linux-2.4.30/include/asm-mips/tx4927/tx4927.h linux-2.4.30-mips/include/asm-mips/tx4927/tx4927.h
---- linux-2.4.30/include/asm-mips/tx4927/tx4927.h      2003-08-25 13:44:44.000000000 +0200
-+++ linux-2.4.30-mips/include/asm-mips/tx4927/tx4927.h 2004-11-22 19:02:10.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/reg.h linux-2.4.32-rc1.mips/include/asm-mips/reg.h
+--- linux-2.4.32-rc1/include/asm-mips/reg.h    2002-08-03 02:39:45.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips/reg.h       2005-04-14 12:41:44.000000000 +0200
+@@ -45,6 +45,9 @@
+ /*
+  * k0/k1 unsaved
+  */
++#define EF_REG26              32
++#define EF_REG27              33
++
+ #define EF_REG28              34
+ #define EF_REG29              35
+ #define EF_REG30              36
+@@ -60,6 +63,7 @@
+ #define EF_CP0_BADVADDR               41
+ #define EF_CP0_STATUS         42
+ #define EF_CP0_CAUSE          43
++#define EF_UNUSED0            44
+ #define EF_SIZE                       180     /* size in bytes */
+diff -Nur linux-2.4.32-rc1/include/asm-mips/sgi/hpc3.h linux-2.4.32-rc1.mips/include/asm-mips/sgi/hpc3.h
+--- linux-2.4.32-rc1/include/asm-mips/sgi/hpc3.h       2003-08-25 13:44:44.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips/sgi/hpc3.h  2005-09-23 16:35:27.000000000 +0200
+@@ -128,26 +128,26 @@
+       volatile u32 rx_gfptr;  /* current GIO fifo ptr */
+       volatile u32 rx_dfptr;  /* current device fifo ptr */
+       u32 _unused1;           /* padding */
+-      volatile u32 rx_reset;  /* reset register */
+-#define HPC3_ERXRST_CRESET 0x1        /* Reset dma channel and external controller */
+-#define HPC3_ERXRST_CLRIRQ 0x2        /* Clear channel interrupt */
+-#define HPC3_ERXRST_LBACK  0x4        /* Enable diagnostic loopback mode of Seeq8003 */
+-
+-      volatile u32 rx_dconfig;        /* DMA configuration register */
+-#define HPC3_ERXDCFG_D1    0x0000f /* Cycles to spend in D1 state for PIO */
+-#define HPC3_ERXDCFG_D2    0x000f0 /* Cycles to spend in D2 state for PIO */
+-#define HPC3_ERXDCFG_D3    0x00f00 /* Cycles to spend in D3 state for PIO */
+-#define HPC3_ERXDCFG_WCTRL 0x01000 /* Enable writes of desc into ex ctrl port */
+-#define HPC3_ERXDCFG_FRXDC 0x02000 /* Clear eop stat bits upon rxdc, hw seeq fix */
+-#define HPC3_ERXDCFG_FEOP  0x04000 /* Bad packet marker timeout enable */
+-#define HPC3_ERXDCFG_FIRQ  0x08000 /* Another bad packet timeout enable */
+-#define HPC3_ERXDCFG_PTO   0x30000 /* Programmed timeout value for above two */
+-
+-      volatile u32 rx_pconfig;        /* PIO configuration register */
+-#define HPC3_ERXPCFG_P1    0x000f /* Cycles to spend in P1 state for PIO */
+-#define HPC3_ERXPCFG_P2    0x00f0 /* Cycles to spend in P2 state for PIO */
+-#define HPC3_ERXPCFG_P3    0x0f00 /* Cycles to spend in P3 state for PIO */
+-#define HPC3_ERXPCFG_TST   0x1000 /* Diagnistic ram test feature bit */
++      volatile u32 reset;     /* reset register */
++#define HPC3_ERST_CRESET 0x1  /* Reset dma channel and external controller */
++#define HPC3_ERST_CLRIRQ 0x2  /* Clear channel interrupt */
++#define HPC3_ERST_LBACK  0x4  /* Enable diagnostic loopback mode of Seeq8003 */
++
++      volatile u32 dconfig;    /* DMA configuration register */
++#define HPC3_EDCFG_D1    0x0000f /* Cycles to spend in D1 state for PIO */
++#define HPC3_EDCFG_D2    0x000f0 /* Cycles to spend in D2 state for PIO */
++#define HPC3_EDCFG_D3    0x00f00 /* Cycles to spend in D3 state for PIO */
++#define HPC3_EDCFG_WCTRL 0x01000 /* Enable writes of desc into ex ctrl port */
++#define HPC3_EDCFG_FRXDC 0x02000 /* Clear eop stat bits upon rxdc, hw seeq fix */
++#define HPC3_EDCFG_FEOP  0x04000 /* Bad packet marker timeout enable */
++#define HPC3_EDCFG_FIRQ  0x08000 /* Another bad packet timeout enable */
++#define HPC3_EDCFG_PTO   0x30000 /* Programmed timeout value for above two */
++
++      volatile u32 pconfig;   /* PIO configuration register */
++#define HPC3_EPCFG_P1    0x000f /* Cycles to spend in P1 state for PIO */
++#define HPC3_EPCFG_P2    0x00f0 /* Cycles to spend in P2 state for PIO */
++#define HPC3_EPCFG_P3    0x0f00 /* Cycles to spend in P3 state for PIO */
++#define HPC3_EPCFG_TST   0x1000 /* Diagnistic ram test feature bit */
+       u32 _unused2[0x1000/4 - 8];     /* padding */
+@@ -221,7 +221,7 @@
+ #define HPC3_BESTAT_PIDMASK   0x3f700 /* DMA channel parity identifier */
+       u32 _unused1[0x14000/4 - 5];    /* padding */
+-      
++
+       /* Now direct PIO per-HPC3 peripheral access to external regs. */
+       volatile u32 scsi0_ext[256];    /* SCSI channel 0 external regs */
+       u32 _unused2[0x7c00/4];
+@@ -304,7 +304,7 @@
+       volatile u32 bbram[8192-50-14]; /* Battery backed ram */
+ };
+-/* 
++/*
+  * It is possible to have two HPC3's within the address space on
+  * one machine, though only having one is more likely on an Indy.
+  */
+diff -Nur linux-2.4.32-rc1/include/asm-mips/tx4927/tx4927.h linux-2.4.32-rc1.mips/include/asm-mips/tx4927/tx4927.h
+--- linux-2.4.32-rc1/include/asm-mips/tx4927/tx4927.h  2003-08-25 13:44:44.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips/tx4927/tx4927.h     2004-11-22 19:02:10.000000000 +0100
 @@ -88,8 +88,8 @@
  
  
@@ -26071,9 +26814,9 @@ diff -Nur linux-2.4.30/include/asm-mips/tx4927/tx4927.h linux-2.4.30-mips/includ
  #define TX4927_ACLC_ACSEMAPH            0xf720
  #define TX4927_ACLC_ACGPIDAT            0xf740
  #define TX4927_ACLC_ACGPODAT            0xf744
-diff -Nur linux-2.4.30/include/asm-mips/unistd.h linux-2.4.30-mips/include/asm-mips/unistd.h
---- linux-2.4.30/include/asm-mips/unistd.h     2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips/unistd.h        2004-11-24 21:30:06.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips/unistd.h linux-2.4.32-rc1.mips/include/asm-mips/unistd.h
+--- linux-2.4.32-rc1/include/asm-mips/unistd.h 2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips/unistd.h    2004-11-24 21:30:06.000000000 +0100
 @@ -760,7 +760,7 @@
        if (__a3 == 0) \
                return (type) __v0; \
@@ -26155,9 +26898,38 @@ diff -Nur linux-2.4.30/include/asm-mips/unistd.h linux-2.4.30-mips/include/asm-m
  }
  
  #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
-diff -Nur linux-2.4.30/include/asm-mips64/hazards.h linux-2.4.30-mips/include/asm-mips64/hazards.h
---- linux-2.4.30/include/asm-mips64/hazards.h  2004-02-18 14:36:32.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips64/hazards.h     2004-11-25 23:18:38.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/checksum.h linux-2.4.32-rc1.mips/include/asm-mips64/checksum.h
+--- linux-2.4.32-rc1/include/asm-mips64/checksum.h     2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/checksum.h        2005-09-20 12:58:50.000000000 +0200
+@@ -144,7 +144,7 @@
+       "daddu\t%0, %4\n\t"
+       "dsll32\t$1, %0, 0\n\t"
+       "daddu\t%0, $1\n\t"
+-      "dsrl32\t%0, %0, 0\n\t"
++      "dsra32\t%0, %0, 0\n\t"
+       ".set\tat"
+       : "=&r" (sum)
+       : "0" (daddr), "r"(saddr),
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/elf.h linux-2.4.32-rc1.mips/include/asm-mips64/elf.h
+--- linux-2.4.32-rc1/include/asm-mips64/elf.h  2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/elf.h     2005-04-14 12:41:44.000000000 +0200
+@@ -64,9 +64,10 @@
+ #define USE_ELF_CORE_DUMP
+ #define ELF_EXEC_PAGESIZE     PAGE_SIZE
+-#define ELF_CORE_COPY_REGS(_dest,_regs)                               \
+-      memcpy((char *) &_dest, (char *) _regs,                 \
+-             sizeof(struct pt_regs));
++extern void dump_regs(elf_greg_t *, struct pt_regs *regs);
++
++#define ELF_CORE_COPY_REGS(elf_regs, regs)                    \
++      dump_regs((elf_greg_t *)&(elf_regs), regs);
+ /* This yields a mask that user programs can use to figure out what
+    instruction set this cpu supports.  This could be done in userspace,
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/hazards.h linux-2.4.32-rc1.mips/include/asm-mips64/hazards.h
+--- linux-2.4.32-rc1/include/asm-mips64/hazards.h      2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/hazards.h 2005-06-06 16:46:22.000000000 +0200
 @@ -3,7 +3,7 @@
   * License.  See the file "COPYING" in the main directory of this archive
   * for more details.
@@ -26167,7 +26939,7 @@ diff -Nur linux-2.4.30/include/asm-mips64/hazards.h linux-2.4.30-mips/include/as
   */
  #ifndef _ASM_HAZARDS_H
  #define _ASM_HAZARDS_H
-@@ -12,37 +12,185 @@
+@@ -12,37 +12,200 @@
  
  #ifdef __ASSEMBLY__
  
@@ -26185,15 +26957,15 @@ diff -Nur linux-2.4.30/include/asm-mips64/hazards.h linux-2.4.30-mips/include/as
 +
 +#define mtc0_tlbw_hazard                                              \
 +      .set    push;                                                   \
-+      .set    mips32;                                                 \
+       .set    mips32;                                                 \
+-      ssnop; ssnop; ssnop; ssnop;                                     \
+-      .set    mips0
 +      _ssnop; _ssnop; _ssnop; _ssnop;                                 \
 +      .set    pop
 +
 +#define tlbw_eret_hazard                                              \
 +      .set    push;                                                   \
-       .set    mips32;                                                 \
--      ssnop; ssnop; ssnop; ssnop;                                     \
--      .set    mips0
++      .set    mips32;                                                 \
 +      _ssnop; _ssnop; _ssnop; _ssnop;                                 \
 +      .set    pop
 +
@@ -26208,7 +26980,8 @@ diff -Nur linux-2.4.30/include/asm-mips64/hazards.h linux-2.4.30-mips/include/as
 + */
 +#define mtc0_tlbw_hazard                                              \
 +      b       . + 8
-+#define tlbw_eret_hazard
++#define tlbw_eret_hazard                                              \
++      nop
  #endif
  
 +/*
@@ -26230,17 +27003,31 @@ diff -Nur linux-2.4.30/include/asm-mips64/hazards.h linux-2.4.30-mips/include/as
 +
 +#define irq_disable_hazard                                            \
 +      ehb             # irq_disable_hazard
++
++#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_RM9000)
++
++/*
++ * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer.
++ */
++
++#define irq_enable_hazard
++
++#define irq_disable_hazard
 +
  #else
  
+ /*
++ * Classic MIPS needs 1 - 3 nops or ssnops
++ */
 +#define irq_enable_hazard
-+#define irq_disable_hazard
++#define irq_disable_hazard                                            \
++      _ssnop; _ssnop; _ssnop
 +
 +#endif
 +
 +#else /* __ASSEMBLY__ */
 +
- /*
++/*
   * RM9000 hazards.  When the JTLB is updated by tlbwi or tlbwr, a subsequent
   * use of the JTLB for instructions should not occur for 4 cpu cycles and use
   * for data translations should not occur for 3 cpu cycles.
@@ -26360,9 +27147,160 @@ diff -Nur linux-2.4.30/include/asm-mips64/hazards.h linux-2.4.30-mips/include/as
 +#endif /* __ASSEMBLY__ */
 +
  #endif /* _ASM_HAZARDS_H */
-diff -Nur linux-2.4.30/include/asm-mips64/mipsregs.h linux-2.4.30-mips/include/asm-mips64/mipsregs.h
---- linux-2.4.30/include/asm-mips64/mipsregs.h 2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips64/mipsregs.h    2005-02-06 22:24:22.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/ide.h linux-2.4.32-rc1.mips/include/asm-mips64/ide.h
+--- linux-2.4.32-rc1/include/asm-mips64/ide.h  2003-08-25 13:44:44.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips64/ide.h     2005-04-19 14:26:53.000000000 +0200
+@@ -32,12 +32,12 @@
+ extern struct ide_ops *ide_ops;
+-static __inline__ int ide_default_irq(ide_ioreg_t base)
++static inline int ide_default_irq(ide_ioreg_t base)
+ {
+       return ide_ops->ide_default_irq(base);
+ }
+-static __inline__ ide_ioreg_t ide_default_io_base(int index)
++static inline ide_ioreg_t ide_default_io_base(int index)
+ {
+       return ide_ops->ide_default_io_base(index);
+ }
+@@ -48,7 +48,7 @@
+       ide_ops->ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
+ }
+-static __inline__ void ide_init_default_hwifs(void)
++static inline void ide_init_default_hwifs(void)
+ {
+ #ifndef CONFIG_BLK_DEV_IDEPCI
+       hw_regs_t hw;
+@@ -68,7 +68,89 @@
+ #define ide_ack_intr(hwif)    ((hwif)->hw.ack_intr ? (hwif)->hw.ack_intr(hwif) : 1)
+ #endif
+-#include <asm-generic/ide_iops.h>
++/* MIPS port and memory-mapped I/O string operations.  */
++
++static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size)
++{
++      if (cpu_has_dc_aliases) {
++              unsigned long end = addr + size;
++              for (; addr < end; addr += PAGE_SIZE)
++                      flush_dcache_page(virt_to_page(addr));
++      }
++}
++
++static inline void __ide_insw(unsigned long port, void *addr,
++      unsigned int count)
++{
++      insw(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 2);
++}
++
++static inline void __ide_insl(unsigned long port, void *addr, unsigned int count)
++{
++      insl(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 4);
++}
++
++static inline void __ide_outsw(unsigned long port, const void *addr,
++      unsigned long count)
++{
++      outsw(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 2);
++}
++
++static inline void __ide_outsl(unsigned long port, const void *addr,
++      unsigned long count)
++{
++      outsl(port, addr, count);
++      __ide_flush_dcache_range((unsigned long)addr, count * 4);
++}
++
++static inline void __ide_mm_insw(unsigned long port, void *addr, u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              *(u16 *)addr = readw(port);
++              addr += 2;
++      }
++      __ide_flush_dcache_range(start, count * 2);
++}
++
++static inline void __ide_mm_insl(unsigned long port, void *addr, u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              *(u32 *)addr = readl(port);
++              addr += 4;
++      }
++      __ide_flush_dcache_range(start, count * 4);
++}
++
++static inline void __ide_mm_outsw(unsigned long port, const void *addr,
++      u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              writew(*(u16 *)addr, port);
++              addr += 2;
++      }
++      __ide_flush_dcache_range(start, count * 2);
++}
++
++static inline void __ide_mm_outsl(unsigned long port, const void *addr,
++      u32 count)
++{
++      unsigned long start = (unsigned long) addr;
++
++      while (count--) {
++              writel(*(u32 *)addr, port);
++              addr += 4;
++      }
++      __ide_flush_dcache_range(start, count * 4);
++}
+ #endif /* __KERNEL__ */
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/io.h linux-2.4.32-rc1.mips/include/asm-mips64/io.h
+--- linux-2.4.32-rc1/include/asm-mips64/io.h   2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/io.h      2005-04-19 14:24:53.000000000 +0200
+@@ -414,7 +414,8 @@
+       return __ioswab32(__val);
+ }
+-static inline void __outsb(unsigned long port, void *addr, unsigned int count)
++static inline void __outsb(unsigned long port, const void *addr,
++      unsigned int count)
+ {
+       while (count--) {
+               outb(*(u8 *)addr, port);
+@@ -430,7 +431,8 @@
+       }
+ }
+-static inline void __outsw(unsigned long port, void *addr, unsigned int count)
++static inline void __outsw(unsigned long port, const void *addr,
++      unsigned int count)
+ {
+       while (count--) {
+               outw(*(u16 *)addr, port);
+@@ -446,7 +448,8 @@
+       }
+ }
+-static inline void __outsl(unsigned long port, void *addr, unsigned int count)
++static inline void __outsl(unsigned long port, const void *addr,
++      unsigned int count)
+ {
+       while (count--) {
+               outl(*(u32 *)addr, port);
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/mipsregs.h linux-2.4.32-rc1.mips/include/asm-mips64/mipsregs.h
+--- linux-2.4.32-rc1/include/asm-mips64/mipsregs.h     2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/mipsregs.h        2005-02-06 22:24:22.000000000 +0100
 @@ -757,10 +757,18 @@
  #define read_c0_config1()     __read_32bit_c0_register($16, 1)
  #define read_c0_config2()     __read_32bit_c0_register($16, 2)
@@ -26425,9 +27363,102 @@ diff -Nur linux-2.4.30/include/asm-mips64/mipsregs.h linux-2.4.30-mips/include/a
  }
  
  /*
-diff -Nur linux-2.4.30/include/asm-mips64/unistd.h linux-2.4.30-mips/include/asm-mips64/unistd.h
---- linux-2.4.30/include/asm-mips64/unistd.h   2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-mips64/unistd.h      2004-11-24 21:30:06.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/reg.h linux-2.4.32-rc1.mips/include/asm-mips64/reg.h
+--- linux-2.4.32-rc1/include/asm-mips64/reg.h  2003-08-25 13:44:44.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips64/reg.h     2005-04-14 12:41:44.000000000 +0200
+@@ -46,6 +46,9 @@
+ /*
+  * k0/k1 unsaved
+  */
++#define EF_REG26              26
++#define EF_REG27              27
++
+ #define EF_REG28              28
+ #define EF_REG29              29
+ #define EF_REG30              30
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/sgi/hpc3.h linux-2.4.32-rc1.mips/include/asm-mips64/sgi/hpc3.h
+--- linux-2.4.32-rc1/include/asm-mips64/sgi/hpc3.h     2003-08-25 13:44:44.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-mips64/sgi/hpc3.h        2005-09-23 16:35:27.000000000 +0200
+@@ -128,26 +128,26 @@
+       volatile u32 rx_gfptr;  /* current GIO fifo ptr */
+       volatile u32 rx_dfptr;  /* current device fifo ptr */
+       u32 _unused1;           /* padding */
+-      volatile u32 rx_reset;  /* reset register */
+-#define HPC3_ERXRST_CRESET 0x1        /* Reset dma channel and external controller */
+-#define HPC3_ERXRST_CLRIRQ 0x2        /* Clear channel interrupt */
+-#define HPC3_ERXRST_LBACK  0x4        /* Enable diagnostic loopback mode of Seeq8003 */
+-
+-      volatile u32 rx_dconfig;        /* DMA configuration register */
+-#define HPC3_ERXDCFG_D1    0x0000f /* Cycles to spend in D1 state for PIO */
+-#define HPC3_ERXDCFG_D2    0x000f0 /* Cycles to spend in D2 state for PIO */
+-#define HPC3_ERXDCFG_D3    0x00f00 /* Cycles to spend in D3 state for PIO */
+-#define HPC3_ERXDCFG_WCTRL 0x01000 /* Enable writes of desc into ex ctrl port */
+-#define HPC3_ERXDCFG_FRXDC 0x02000 /* Clear eop stat bits upon rxdc, hw seeq fix */
+-#define HPC3_ERXDCFG_FEOP  0x04000 /* Bad packet marker timeout enable */
+-#define HPC3_ERXDCFG_FIRQ  0x08000 /* Another bad packet timeout enable */
+-#define HPC3_ERXDCFG_PTO   0x30000 /* Programmed timeout value for above two */
+-
+-      volatile u32 rx_pconfig;        /* PIO configuration register */
+-#define HPC3_ERXPCFG_P1    0x000f /* Cycles to spend in P1 state for PIO */
+-#define HPC3_ERXPCFG_P2    0x00f0 /* Cycles to spend in P2 state for PIO */
+-#define HPC3_ERXPCFG_P3    0x0f00 /* Cycles to spend in P3 state for PIO */
+-#define HPC3_ERXPCFG_TST   0x1000 /* Diagnistic ram test feature bit */
++      volatile u32 reset;     /* reset register */
++#define HPC3_ERST_CRESET 0x1  /* Reset dma channel and external controller */
++#define HPC3_ERST_CLRIRQ 0x2  /* Clear channel interrupt */
++#define HPC3_ERST_LBACK  0x4  /* Enable diagnostic loopback mode of Seeq8003 */
++
++      volatile u32 dconfig;    /* DMA configuration register */
++#define HPC3_EDCFG_D1    0x0000f /* Cycles to spend in D1 state for PIO */
++#define HPC3_EDCFG_D2    0x000f0 /* Cycles to spend in D2 state for PIO */
++#define HPC3_EDCFG_D3    0x00f00 /* Cycles to spend in D3 state for PIO */
++#define HPC3_EDCFG_WCTRL 0x01000 /* Enable writes of desc into ex ctrl port */
++#define HPC3_EDCFG_FRXDC 0x02000 /* Clear eop stat bits upon rxdc, hw seeq fix */
++#define HPC3_EDCFG_FEOP  0x04000 /* Bad packet marker timeout enable */
++#define HPC3_EDCFG_FIRQ  0x08000 /* Another bad packet timeout enable */
++#define HPC3_EDCFG_PTO   0x30000 /* Programmed timeout value for above two */
++
++      volatile u32 pconfig;   /* PIO configuration register */
++#define HPC3_EPCFG_P1    0x000f /* Cycles to spend in P1 state for PIO */
++#define HPC3_EPCFG_P2    0x00f0 /* Cycles to spend in P2 state for PIO */
++#define HPC3_EPCFG_P3    0x0f00 /* Cycles to spend in P3 state for PIO */
++#define HPC3_EPCFG_TST   0x1000 /* Diagnistic ram test feature bit */
+       u32 _unused2[0x1000/4 - 8];     /* padding */
+@@ -221,7 +221,7 @@
+ #define HPC3_BESTAT_PIDMASK   0x3f700 /* DMA channel parity identifier */
+       u32 _unused1[0x14000/4 - 5];    /* padding */
+-      
++
+       /* Now direct PIO per-HPC3 peripheral access to external regs. */
+       volatile u32 scsi0_ext[256];    /* SCSI channel 0 external regs */
+       u32 _unused2[0x7c00/4];
+@@ -304,7 +304,7 @@
+       volatile u32 bbram[8192-50-14]; /* Battery backed ram */
+ };
+-/* 
++/*
+  * It is possible to have two HPC3's within the address space on
+  * one machine, though only having one is more likely on an Indy.
+  */
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/sn/nmi.h linux-2.4.32-rc1.mips/include/asm-mips64/sn/nmi.h
+--- linux-2.4.32-rc1/include/asm-mips64/sn/nmi.h       2002-11-29 00:53:15.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/sn/nmi.h  2002-08-06 01:53:40.000000000 +0200
+@@ -8,7 +8,7 @@
+ #ifndef __ASM_SN_NMI_H
+ #define __ASM_SN_NMI_H
+-#ident "$Revision: 1.2.4.2 $"
++#ident "$Revision: 1.2.4.1 $"
+ #include <asm/sn/addrs.h>
+diff -Nur linux-2.4.32-rc1/include/asm-mips64/unistd.h linux-2.4.32-rc1.mips/include/asm-mips64/unistd.h
+--- linux-2.4.32-rc1/include/asm-mips64/unistd.h       2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-mips64/unistd.h  2004-11-24 21:30:06.000000000 +0100
 @@ -760,7 +760,7 @@
        if (__a3 == 0) \
                return (type) __v0; \
@@ -26509,9 +27540,9 @@ diff -Nur linux-2.4.30/include/asm-mips64/unistd.h linux-2.4.30-mips/include/asm
  }
  
  #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
-diff -Nur linux-2.4.30/include/asm-ppc/param.h linux-2.4.30-mips/include/asm-ppc/param.h
---- linux-2.4.30/include/asm-ppc/param.h       2003-06-13 16:51:38.000000000 +0200
-+++ linux-2.4.30-mips/include/asm-ppc/param.h  2003-07-05 05:23:46.000000000 +0200
+diff -Nur linux-2.4.32-rc1/include/asm-ppc/param.h linux-2.4.32-rc1.mips/include/asm-ppc/param.h
+--- linux-2.4.32-rc1/include/asm-ppc/param.h   2003-06-13 16:51:38.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/asm-ppc/param.h      2003-07-05 05:23:46.000000000 +0200
 @@ -3,6 +3,9 @@
  
  #ifndef HZ
@@ -26522,9 +27553,9 @@ diff -Nur linux-2.4.30/include/asm-ppc/param.h linux-2.4.30-mips/include/asm-ppc
  #endif
  
  #define EXEC_PAGESIZE 4096
-diff -Nur linux-2.4.30/include/asm-s390/param.h linux-2.4.30-mips/include/asm-s390/param.h
---- linux-2.4.30/include/asm-s390/param.h      2001-02-13 23:13:44.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-s390/param.h 2001-03-09 21:34:48.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-s390/param.h linux-2.4.32-rc1.mips/include/asm-s390/param.h
+--- linux-2.4.32-rc1/include/asm-s390/param.h  2001-02-13 23:13:44.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-s390/param.h     2001-03-09 21:34:48.000000000 +0100
 @@ -11,6 +11,9 @@
  
  #ifndef HZ
@@ -26535,9 +27566,9 @@ diff -Nur linux-2.4.30/include/asm-s390/param.h linux-2.4.30-mips/include/asm-s3
  #endif
  
  #define EXEC_PAGESIZE 4096
-diff -Nur linux-2.4.30/include/asm-sh/param.h linux-2.4.30-mips/include/asm-sh/param.h
---- linux-2.4.30/include/asm-sh/param.h        2001-01-04 22:19:13.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-sh/param.h   2001-01-11 05:02:45.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-sh/param.h linux-2.4.32-rc1.mips/include/asm-sh/param.h
+--- linux-2.4.32-rc1/include/asm-sh/param.h    2001-01-04 22:19:13.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-sh/param.h       2001-01-11 05:02:45.000000000 +0100
 @@ -3,6 +3,9 @@
  
  #ifndef HZ
@@ -26548,9 +27579,9 @@ diff -Nur linux-2.4.30/include/asm-sh/param.h linux-2.4.30-mips/include/asm-sh/p
  #endif
  
  #define EXEC_PAGESIZE 4096
-diff -Nur linux-2.4.30/include/asm-sparc/param.h linux-2.4.30-mips/include/asm-sparc/param.h
---- linux-2.4.30/include/asm-sparc/param.h     2000-10-30 23:34:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-sparc/param.h        2000-11-23 03:00:56.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-sparc/param.h linux-2.4.32-rc1.mips/include/asm-sparc/param.h
+--- linux-2.4.32-rc1/include/asm-sparc/param.h 2000-10-30 23:34:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-sparc/param.h    2000-11-23 03:00:56.000000000 +0100
 @@ -4,6 +4,9 @@
  
  #ifndef HZ
@@ -26561,9 +27592,9 @@ diff -Nur linux-2.4.30/include/asm-sparc/param.h linux-2.4.30-mips/include/asm-s
  #endif
  
  #define EXEC_PAGESIZE 8192    /* Thanks for sun4's we carry baggage... */
-diff -Nur linux-2.4.30/include/asm-sparc64/param.h linux-2.4.30-mips/include/asm-sparc64/param.h
---- linux-2.4.30/include/asm-sparc64/param.h   2000-10-30 23:34:12.000000000 +0100
-+++ linux-2.4.30-mips/include/asm-sparc64/param.h      2000-11-23 03:00:56.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/asm-sparc64/param.h linux-2.4.32-rc1.mips/include/asm-sparc64/param.h
+--- linux-2.4.32-rc1/include/asm-sparc64/param.h       2000-10-30 23:34:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/asm-sparc64/param.h  2000-11-23 03:00:56.000000000 +0100
 @@ -4,6 +4,9 @@
  
  #ifndef HZ
@@ -26574,9 +27605,9 @@ diff -Nur linux-2.4.30/include/asm-sparc64/param.h linux-2.4.30-mips/include/asm
  #endif
  
  #define EXEC_PAGESIZE 8192    /* Thanks for sun4's we carry baggage... */
-diff -Nur linux-2.4.30/include/linux/i2c-algo-au1550.h linux-2.4.30-mips/include/linux/i2c-algo-au1550.h
---- linux-2.4.30/include/linux/i2c-algo-au1550.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.4.30-mips/include/linux/i2c-algo-au1550.h  2004-07-07 02:38:02.000000000 +0200
+diff -Nur linux-2.4.32-rc1/include/linux/i2c-algo-au1550.h linux-2.4.32-rc1.mips/include/linux/i2c-algo-au1550.h
+--- linux-2.4.32-rc1/include/linux/i2c-algo-au1550.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/linux/i2c-algo-au1550.h      2004-07-07 02:38:02.000000000 +0200
 @@ -0,0 +1,31 @@
 +/*
 + * Copyright (C) 2004 Embedded Edge, LLC <dan@embeddededge.com>
@@ -26609,9 +27640,9 @@ diff -Nur linux-2.4.30/include/linux/i2c-algo-au1550.h linux-2.4.30-mips/include
 +int i2c_au1550_del_bus(struct i2c_adapter *);
 +
 +#endif /* I2C_ALGO_AU1550_H */
-diff -Nur linux-2.4.30/include/linux/i2c-id.h linux-2.4.30-mips/include/linux/i2c-id.h
---- linux-2.4.30/include/linux/i2c-id.h        2004-02-18 14:36:32.000000000 +0100
-+++ linux-2.4.30-mips/include/linux/i2c-id.h   2004-07-07 02:38:02.000000000 +0200
+diff -Nur linux-2.4.32-rc1/include/linux/i2c-id.h linux-2.4.32-rc1.mips/include/linux/i2c-id.h
+--- linux-2.4.32-rc1/include/linux/i2c-id.h    2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/linux/i2c-id.h       2004-07-07 02:38:02.000000000 +0200
 @@ -156,6 +156,8 @@
  
  #define I2C_ALGO_SGI  0x130000        /* SGI algorithm                */
@@ -26631,9 +27662,9 @@ diff -Nur linux-2.4.30/include/linux/i2c-id.h linux-2.4.30-mips/include/linux/i2
  /* --- SMBus only adapters                                            */
  #define I2C_HW_SMBUS_PIIX4    0x00
  #define I2C_HW_SMBUS_ALI15X3  0x01
-diff -Nur linux-2.4.30/include/linux/sched.h linux-2.4.30-mips/include/linux/sched.h
---- linux-2.4.30/include/linux/sched.h 2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/linux/sched.h    2004-11-29 18:47:18.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/linux/sched.h linux-2.4.32-rc1.mips/include/linux/sched.h
+--- linux-2.4.32-rc1/include/linux/sched.h     2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/linux/sched.h        2004-11-29 18:47:18.000000000 +0100
 @@ -617,6 +617,10 @@
  extern int in_group_p(gid_t);
  extern int in_egroup_p(gid_t);
@@ -26645,9 +27676,9 @@ diff -Nur linux-2.4.30/include/linux/sched.h linux-2.4.30-mips/include/linux/sch
  extern void proc_caches_init(void);
  extern void flush_signals(struct task_struct *);
  extern void flush_signal_handlers(struct task_struct *);
-diff -Nur linux-2.4.30/include/linux/serial.h linux-2.4.30-mips/include/linux/serial.h
---- linux-2.4.30/include/linux/serial.h        2002-08-03 02:39:45.000000000 +0200
-+++ linux-2.4.30-mips/include/linux/serial.h   2004-07-31 02:17:57.000000000 +0200
+diff -Nur linux-2.4.32-rc1/include/linux/serial.h linux-2.4.32-rc1.mips/include/linux/serial.h
+--- linux-2.4.32-rc1/include/linux/serial.h    2002-08-03 02:39:45.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/linux/serial.h       2004-07-31 02:17:57.000000000 +0200
 @@ -75,7 +75,8 @@
  #define PORT_16654    11
  #define PORT_16850    12
@@ -26658,9 +27689,9 @@ diff -Nur linux-2.4.30/include/linux/serial.h linux-2.4.30-mips/include/linux/se
  
  #define SERIAL_IO_PORT        0
  #define SERIAL_IO_HUB6        1
-diff -Nur linux-2.4.30/include/linux/swap.h linux-2.4.30-mips/include/linux/swap.h
---- linux-2.4.30/include/linux/swap.h  2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30-mips/include/linux/swap.h     2004-11-29 18:47:18.000000000 +0100
+diff -Nur linux-2.4.32-rc1/include/linux/swap.h linux-2.4.32-rc1.mips/include/linux/swap.h
+--- linux-2.4.32-rc1/include/linux/swap.h      2005-01-19 15:10:12.000000000 +0100
++++ linux-2.4.32-rc1.mips/include/linux/swap.h 2004-11-29 18:47:18.000000000 +0100
 @@ -1,6 +1,12 @@
  #ifndef _LINUX_SWAP_H
  #define _LINUX_SWAP_H
@@ -26692,9 +27723,9 @@ diff -Nur linux-2.4.30/include/linux/swap.h linux-2.4.30-mips/include/linux/swap
  /*
   * Max bad pages in the new format..
   */
-diff -Nur linux-2.4.30/include/video/newport.h linux-2.4.30-mips/include/video/newport.h
---- linux-2.4.30/include/video/newport.h       2001-04-12 21:20:31.000000000 +0200
-+++ linux-2.4.30-mips/include/video/newport.h  2004-09-23 15:32:29.000000000 +0200
+diff -Nur linux-2.4.32-rc1/include/video/newport.h linux-2.4.32-rc1.mips/include/video/newport.h
+--- linux-2.4.32-rc1/include/video/newport.h   2001-04-12 21:20:31.000000000 +0200
++++ linux-2.4.32-rc1.mips/include/video/newport.h      2004-09-23 15:32:29.000000000 +0200
 @@ -291,8 +291,6 @@
        unsigned int _unused2[0x1ef];
        struct newport_cregs cgo;
@@ -26762,9 +27793,9 @@ diff -Nur linux-2.4.30/include/video/newport.h linux-2.4.30-mips/include/video/n
        
          while ((rex->set.dcbdata0.bybytes.b3 & 3) != XM9_FIFO_EMPTY)
                ;
-diff -Nur linux-2.4.30/init/main.c linux-2.4.30-mips/init/main.c
---- linux-2.4.30/init/main.c   2004-11-17 12:54:22.000000000 +0100
-+++ linux-2.4.30-mips/init/main.c      2004-11-19 01:28:52.000000000 +0100
+diff -Nur linux-2.4.32-rc1/init/main.c linux-2.4.32-rc1.mips/init/main.c
+--- linux-2.4.32-rc1/init/main.c       2004-11-17 12:54:22.000000000 +0100
++++ linux-2.4.32-rc1.mips/init/main.c  2004-11-19 01:28:52.000000000 +0100
 @@ -296,7 +296,6 @@
  
  
@@ -26773,9 +27804,9 @@ diff -Nur linux-2.4.30/init/main.c linux-2.4.30-mips/init/main.c
  
  unsigned long wait_init_idle;
  
-diff -Nur linux-2.4.30/kernel/exit.c linux-2.4.30-mips/kernel/exit.c
---- linux-2.4.30/kernel/exit.c 2002-11-29 00:53:15.000000000 +0100
-+++ linux-2.4.30-mips/kernel/exit.c    2003-01-11 18:53:18.000000000 +0100
+diff -Nur linux-2.4.32-rc1/kernel/exit.c linux-2.4.32-rc1.mips/kernel/exit.c
+--- linux-2.4.32-rc1/kernel/exit.c     2002-11-29 00:53:15.000000000 +0100
++++ linux-2.4.32-rc1.mips/kernel/exit.c        2003-01-11 18:53:18.000000000 +0100
 @@ -26,7 +26,7 @@
  
  int getrusage(struct task_struct *, int, struct rusage *);
@@ -26785,9 +27816,9 @@ diff -Nur linux-2.4.30/kernel/exit.c linux-2.4.30-mips/kernel/exit.c
  {
        if (p != current) {
  #ifdef CONFIG_SMP
-diff -Nur linux-2.4.30/kernel/signal.c linux-2.4.30-mips/kernel/signal.c
---- linux-2.4.30/kernel/signal.c       2004-02-18 14:36:32.000000000 +0100
-+++ linux-2.4.30-mips/kernel/signal.c  2004-01-20 16:10:34.000000000 +0100
+diff -Nur linux-2.4.32-rc1/kernel/signal.c linux-2.4.32-rc1.mips/kernel/signal.c
+--- linux-2.4.32-rc1/kernel/signal.c   2004-02-18 14:36:32.000000000 +0100
++++ linux-2.4.32-rc1.mips/kernel/signal.c      2004-01-20 16:10:34.000000000 +0100
 @@ -14,6 +14,7 @@
  #include <linux/init.h>
  #include <linux/sched.h>
@@ -26857,9 +27888,9 @@ diff -Nur linux-2.4.30/kernel/signal.c linux-2.4.30-mips/kernel/signal.c
  
        status = tsk->exit_code & 0x7f;
        why = SI_KERNEL;        /* shouldn't happen */
-diff -Nur linux-2.4.30/kernel/sys.c linux-2.4.30-mips/kernel/sys.c
---- linux-2.4.30/kernel/sys.c  2003-11-28 19:26:21.000000000 +0100
-+++ linux-2.4.30-mips/kernel/sys.c     2003-11-17 02:07:47.000000000 +0100
+diff -Nur linux-2.4.32-rc1/kernel/sys.c linux-2.4.32-rc1.mips/kernel/sys.c
+--- linux-2.4.32-rc1/kernel/sys.c      2003-11-28 19:26:21.000000000 +0100
++++ linux-2.4.32-rc1.mips/kernel/sys.c 2003-11-17 02:07:47.000000000 +0100
 @@ -801,16 +801,23 @@
  
  asmlinkage long sys_times(struct tms * tbuf)
@@ -26887,9 +27918,9 @@ diff -Nur linux-2.4.30/kernel/sys.c linux-2.4.30-mips/kernel/sys.c
  }
  
  /*
-diff -Nur linux-2.4.30/lib/Makefile linux-2.4.30-mips/lib/Makefile
---- linux-2.4.30/lib/Makefile  2004-04-14 15:05:40.000000000 +0200
-+++ linux-2.4.30-mips/lib/Makefile     2004-04-16 05:14:21.000000000 +0200
+diff -Nur linux-2.4.32-rc1/lib/Makefile linux-2.4.32-rc1.mips/lib/Makefile
+--- linux-2.4.32-rc1/lib/Makefile      2004-04-14 15:05:40.000000000 +0200
++++ linux-2.4.32-rc1.mips/lib/Makefile 2004-04-16 05:14:21.000000000 +0200
 @@ -27,6 +27,7 @@
  subdir-$(CONFIG_ZLIB_INFLATE) += zlib_inflate
  subdir-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate
@@ -26898,3 +27929,40 @@ diff -Nur linux-2.4.30/lib/Makefile linux-2.4.30-mips/lib/Makefile
  include $(TOPDIR)/drivers/net/Makefile.lib
  include $(TOPDIR)/drivers/usb/Makefile.lib
  include $(TOPDIR)/drivers/bluetooth/Makefile.lib
+diff -Nur linux-2.4.32-rc1/Makefile linux-2.4.32-rc1.mips/Makefile
+--- linux-2.4.32-rc1/Makefile  2005-10-24 11:33:30.000000000 +0200
++++ linux-2.4.32-rc1.mips/Makefile     2005-09-23 22:41:15.000000000 +0200
+@@ -5,7 +5,7 @@
+ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
+-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
++ARCH = mips
+ KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
+ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
+@@ -462,10 +462,11 @@
+       $(MAKE) -C Documentation/DocBook mrproper
+ distclean: mrproper
+-      rm -f core `find . \( -not -type d \) -and \
+-              \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
+-              -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
+-              -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f -print` TAGS tags
++      find . \( -not -type d \) -and \
++              \( -name core -o -name '*.orig' -o -name '*.rej' \
++              -o -name '*~' -o -name '*.bak' -o -name '#*#' \
++              -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \
++              -o -name TAGS -o -name tags \) -print | env -i xargs rm -f
+ backup: mrproper
+       cd .. && tar cf - linux/ | gzip -9 > backup.gz
+@@ -492,7 +493,7 @@
+       $(MAKE) -C Documentation/DocBook man
+ sums:
+-      find . -type f -print | sort | xargs sum > .SUMS
++      find . -type f -print | sort | env -i xargs sum > .SUMS
+ dep-files: scripts/mkdep archdep include/linux/version.h
+       rm -f .depend .hdepend
index 8577499..7a6a3da 100644 (file)
-diff -rNu linux-2.4.29.old/drivers/usb/serial/pl2303.c linux-2.4.29/drivers/usb/serial/pl2303.c
---- linux-2.4.29.old/drivers/usb/serial/pl2303.c       2005-03-22 14:48:04.000000000 +0100
-+++ linux-2.4.29/drivers/usb/serial/pl2303.c   2005-03-22 15:33:05.735943352 +0100
-@@ -1,7 +1,7 @@
- /*
-  * Prolific PL2303 USB to serial adaptor driver
-  *
-- * Copyright (C) 2001-2003 Greg Kroah-Hartman (greg@kroah.com)
-+ * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com)
-  * Copyright (C) 2003 IBM Corp.
-  *
-  * Original driver for 2.2.x by anonymous
-@@ -12,8 +12,16 @@
-  *    (at your option) any later version.
-  *
-  * See Documentation/usb/usb-serial.txt for more information on using this driver
-- * 2003_Apr_24 gkh
-- *    Added line error reporting support.  Hopefully it is correct...
-+ *
-+ *
-+ * 2005_Mar_05 grsch
-+ *      ported 2.6.8 pl2303.c to 2.4.20 format
-+ *      (HX model works fine now, ID table should be brought up to date)
-+ *      Gregor Schaffrath <gschaff@ran-dom.org>
-+ * 
-+ * 2002_Mar_26 gkh
-+ *    allowed driver to work properly if there is no tty assigned to a port
-+ *    (this happens for serial console devices.)
-  *
-  * 2001_Oct_06 gkh
-  *    Added RTS and DTR line control.  Thanks to joe@bndlg.de for parts of it.
-@@ -33,6 +41,9 @@
-  * 
-  */
-+static int debug;
-+
-+
- #include <linux/config.h>
- #include <linux/kernel.h>
- #include <linux/errno.h>
-@@ -46,43 +57,44 @@
- #include <linux/spinlock.h>
- #include <asm/uaccess.h>
- #include <linux/usb.h>
--
--#ifdef CONFIG_USB_SERIAL_DEBUG
--      static int debug = 1;
--#else
--      static int debug;
--#endif
--
- #include "usb-serial.h"
- #include "pl2303.h"
- /*
-  * Version Information
-  */
--#define DRIVER_VERSION "v0.10"
-+#define DRIVER_VERSION "v0.11"
- #define DRIVER_DESC "Prolific PL2303 USB to serial adaptor driver"
--
--
- static struct usb_device_id id_table [] = {
-       { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID) },
-       { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ2) },
-       { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
-       { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
--      { USB_DEVICE(ATEN_VENDOR_ID2, ATEN_PRODUCT_ID) },
-       { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) },
-       { USB_DEVICE(ITEGNO_VENDOR_ID, ITEGNO_PRODUCT_ID) },
-       { USB_DEVICE(MA620_VENDOR_ID, MA620_PRODUCT_ID) },
--      { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID) },
--      { USB_DEVICE(TRIPP_VENDOR_ID, TRIPP_PRODUCT_ID) },
--      { USB_DEVICE(RADIOSHACK_VENDOR_ID, RADIOSHACK_PRODUCT_ID) },
--      { USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) },
--      { USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) },
-+        { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID) },
-+        { USB_DEVICE(TRIPP_VENDOR_ID, TRIPP_PRODUCT_ID) },
-+        { USB_DEVICE(RADIOSHACK_VENDOR_ID, RADIOSHACK_PRODUCT_ID) },
-+        { USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) },
-+        { USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) },
-+        { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) },
-+        { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) },
+diff -ur linux-2.4.32/drivers/usb/serial/pl2303.c linux-2.4.32.openwrt/drivers/usb/serial/pl2303.c
+--- linux-2.4.32/drivers/usb/serial/pl2303.c   2005-06-01 02:56:56.000000000 +0200
++++ linux-2.4.32.openwrt/drivers/usb/serial/pl2303.c   2005-11-18 12:22:23.000000000 +0100
+@@ -78,6 +78,11 @@
+       { USB_DEVICE(RADIOSHACK_VENDOR_ID, RADIOSHACK_PRODUCT_ID) },
+       { USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) },
+       { USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) },
++      { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) },
++      { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) },
++      { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) },
++      { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) },
++      { USB_DEVICE(NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID) },
        { }                                     /* Terminating entry */
  };
  
- MODULE_DEVICE_TABLE (usb, id_table);
-+/*
-+static struct usb_driver pl2303_driver = {
-+      .owner =        THIS_MODULE,
-+      .name =         "pl2303",
-+      .probe =        usb_serial_probe,
-+      .disconnect =   usb_serial_disconnect,
-+      .id_table =     id_table,
-+};
-+*/
- #define SET_LINE_REQUEST_TYPE         0x21
- #define SET_LINE_REQUEST              0x20
-@@ -130,6 +142,9 @@
- static int pl2303_write (struct usb_serial_port *port, int from_user,
-                        const unsigned char *buf, int count);
- static void pl2303_break_ctl(struct usb_serial_port *port,int break_state);
-+static int pl2303_tiocmget (struct usb_serial_port *port, struct file *file);
-+static int pl2303_tiocmset (struct usb_serial_port *port, struct file *file,
-+                          unsigned int set, unsigned int clear);
- static int pl2303_startup (struct usb_serial *serial);
- static void pl2303_shutdown (struct usb_serial *serial);
-@@ -149,27 +164,48 @@
-       .ioctl =                pl2303_ioctl,
-       .break_ctl =            pl2303_break_ctl,
-       .set_termios =          pl2303_set_termios,
-+      //.tiocmget =           pl2303_tiocmget,
-+      //.tiocmset =           pl2303_tiocmset,
-       .read_bulk_callback =   pl2303_read_bulk_callback,
-       .read_int_callback =    pl2303_read_int_callback,
-       .write_bulk_callback =  pl2303_write_bulk_callback,
-+      //.attach =             pl2303_startup,
-       .startup =              pl2303_startup,
-       .shutdown =             pl2303_shutdown,
- };
-+enum pl2303_type {
-+      type_0,         /* don't know the difference between type 0 and */
-+      type_1,         /* type 1, until someone from prolific tells us... */
-+      HX,             /* HX version of the pl2303 chip */
-+};
-+
- struct pl2303_private {
-       spinlock_t lock;
-       wait_queue_head_t delta_msr_wait;
-       u8 line_control;
-       u8 line_status;
-       u8 termios_initialized;
-+      enum pl2303_type type;
- };
- static int pl2303_startup (struct usb_serial *serial)
- {
-       struct pl2303_private *priv;
-+      enum pl2303_type type = type_0;
-       int i;
-+      if (serial->dev->descriptor.bDeviceClass == 0x02)
-+              type = type_0;
-+      else if (serial->dev->descriptor.bMaxPacketSize0 == 0x40)
-+              type = HX;
-+      else if (serial->dev->descriptor.bDeviceClass == 0x00)
-+              type = type_1;
-+      else if (serial->dev->descriptor.bDeviceClass == 0xFF)
-+              type = type_1;
-+      dbg("device type: %d", type);
-+
-       for (i = 0; i < serial->num_ports; ++i) {
-               priv = kmalloc (sizeof (struct pl2303_private), GFP_KERNEL);
-               if (!priv)
-@@ -177,7 +213,8 @@
-               memset (priv, 0x00, sizeof (struct pl2303_private));
-               spin_lock_init(&priv->lock);
-               init_waitqueue_head(&priv->delta_msr_wait);
--              usb_set_serial_port_data(&serial->port[i], priv);
-+              priv->type = type;
-+              serial->port[i].private = priv;
-       }
-       return 0;
- }
-@@ -215,13 +252,13 @@
-               memcpy (port->write_urb->transfer_buffer, buf, count);
-       }
-       
--      usb_serial_debug_data (__FILE__, __FUNCTION__, count, port->write_urb->transfer_buffer);
-+      usb_serial_debug_data(__FILE__, __FUNCTION__, count, port->write_urb->transfer_buffer);
-       port->write_urb->transfer_buffer_length = count;
-       port->write_urb->dev = port->serial->dev;
-       result = usb_submit_urb (port->write_urb);
-       if (result)
--              err("%s - failed submitting write urb, error %d", __FUNCTION__, result);
-+              err("%s - failed submitting write urb, error %d\n", __FUNCTION__, result);
-       else
-               result = count;
-@@ -233,7 +270,7 @@
- static void pl2303_set_termios (struct usb_serial_port *port, struct termios *old_termios)
- {
-       struct usb_serial *serial = port->serial;
--      struct pl2303_private *priv = usb_get_serial_port_data(port);
-+      struct pl2303_private *priv = port->private;
-       unsigned long flags;
-       unsigned int cflag;
-       unsigned char *buf;
-@@ -241,8 +278,7 @@
-       int i;
-       u8 control;
--      dbg("%s -  port %d, initialized = %d", __FUNCTION__, port->number, 
--           priv->termios_initialized);
-+      dbg("%s -  port %d", __FUNCTION__, port->number);
-       if ((!port->tty) || (!port->tty->termios)) {
-               dbg("%s - no tty structures", __FUNCTION__);
-@@ -269,7 +305,7 @@
-       buf = kmalloc (7, GFP_KERNEL);
-       if (!buf) {
--              err("%s - out of memory.", __FUNCTION__);
-+              err("%s - out of memory.\n", __FUNCTION__);
-               return;
-       }
-       memset (buf, 0x00, 0x07);
-@@ -311,7 +347,7 @@
-               case B230400:   baud = 230400;  break;
-               case B460800:   baud = 460800;  break;
-               default:
--                      err ("pl2303 driver does not support the baudrate requested (fix it)");
-+                      err("pl2303 driver does not support the baudrate requested (fix it)\n");
-                       break;
-       }
-       dbg("%s - baud = %d", __FUNCTION__, baud);
-@@ -380,26 +416,30 @@
-            buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]);
-       if (cflag & CRTSCTS) {
--              i = usb_control_msg (serial->dev, usb_sndctrlpipe (serial->dev, 0),
--                                   VENDOR_WRITE_REQUEST, VENDOR_WRITE_REQUEST_TYPE,
--                                   0x0, 0x41, NULL, 0, 100);
--              dbg ("0x40:0x1:0x0:0x41  %d", i);
-+              __u16 index;
-+              if (priv->type == HX)
-+                      index = 0x61;
-+              else
-+                      index = 0x41;
-+              i = usb_control_msg(serial->dev, 
-+                                  usb_sndctrlpipe(serial->dev, 0),
-+                                  VENDOR_WRITE_REQUEST,
-+                                  VENDOR_WRITE_REQUEST_TYPE,
-+                                  0x0, index, NULL, 0, 100);
-+              dbg ("0x40:0x1:0x0:0x%x  %d", index, i);
-       }
-       kfree (buf);
--}       
--
-+} 
- static int pl2303_open (struct usb_serial_port *port, struct file *filp)
- {
-       struct termios tmp_termios;
-       struct usb_serial *serial = port->serial;
-+      struct pl2303_private *priv = port->private;
-       unsigned char *buf;
-       int result;
--      if (port_paranoia_check (port, __FUNCTION__))
--              return -ENODEV;
--              
-       dbg("%s -  port %d", __FUNCTION__, port->number);
-       usb_clear_halt(serial->dev, port->write_urb->pipe);
-@@ -427,6 +467,18 @@
-       SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0x0404, 1);
-       FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8484, 0);
-       FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8383, 0);
-+      SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0, 1);
-+      SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 1, 0);
-+ 
-+      if (priv->type == HX) {
-+              /* HX chip */
-+              SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 2, 0x44);
-+              /* reset upstream data pipes */
-+              SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 8, 0);
-+              SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 9, 0);
-+      } else {
-+              SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 2, 0x24);
-+      }
-       kfree(buf);
-@@ -441,7 +493,7 @@
-       port->read_urb->dev = serial->dev;
-       result = usb_submit_urb (port->read_urb);
-       if (result) {
--              err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
-+              err("%s - failed submitting read urb, error %d\n", __FUNCTION__, result);
-               pl2303_close (port, NULL);
-               return -EPROTO;
-       }
-@@ -450,7 +502,7 @@
-       port->interrupt_in_urb->dev = serial->dev;
-       result = usb_submit_urb (port->interrupt_in_urb);
-       if (result) {
--              err("%s - failed submitting interrupt urb, error %d", __FUNCTION__, result);
-+              err("%s - failed submitting interrupt urb, error %d\n", __FUNCTION__, result);
-               pl2303_close (port, NULL);
-               return -EPROTO;
-       }
-@@ -460,125 +512,103 @@
- static void pl2303_close (struct usb_serial_port *port, struct file *filp)
- {
--      struct usb_serial *serial;
-       struct pl2303_private *priv;
-       unsigned long flags;
-       unsigned int c_cflag;
-       int result;
--      if (port_paranoia_check (port, __FUNCTION__))
--              return;
--      serial = get_usb_serial (port, __FUNCTION__);
--      if (!serial)
--              return;
--      
-       dbg("%s - port %d", __FUNCTION__, port->number);
--      if (serial->dev) {
--              if (port->tty) {
--                      c_cflag = port->tty->termios->c_cflag;
--                      if (c_cflag & HUPCL) {
--                              /* drop DTR and RTS */
--                              priv = usb_get_serial_port_data(port);
--                              spin_lock_irqsave(&priv->lock, flags);
--                              priv->line_control = 0;
--                              spin_unlock_irqrestore (&priv->lock, flags);
--                              set_control_lines (port->serial->dev, 0);
--                      }
--              }
-+      /* shutdown our urbs */
-+      dbg("%s - shutting down urbs", __FUNCTION__);
-+      result = usb_unlink_urb (port->write_urb);
-+      if (result)
-+              dbg("%s - usb_unlink_urb (write_urb)"
-+                  " failed with reason: %d", __FUNCTION__,
-+                   result);
--              /* shutdown our urbs */
--              dbg("%s - shutting down urbs", __FUNCTION__);
--              result = usb_unlink_urb (port->write_urb);
--              if (result)
--                      dbg("%s - usb_unlink_urb (write_urb)"
--                          " failed with reason: %d", __FUNCTION__,
--                           result);
-+      result = usb_unlink_urb (port->read_urb);
-+      if (result)
-+              dbg("%s - usb_unlink_urb (read_urb) "
-+                  "failed with reason: %d", __FUNCTION__,
-+                   result);
--              result = usb_unlink_urb (port->read_urb);
--              if (result)
--                      dbg("%s - usb_unlink_urb (read_urb) "
--                          "failed with reason: %d", __FUNCTION__,
--                           result);
-+      result = usb_unlink_urb (port->interrupt_in_urb);
-+      if (result)
-+              dbg("%s - usb_unlink_urb (interrupt_in_urb)"
-+                  " failed with reason: %d", __FUNCTION__,
-+                   result);
--              result = usb_unlink_urb (port->interrupt_in_urb);
--              if (result)
--                      dbg("%s - usb_unlink_urb (interrupt_in_urb)"
--                          " failed with reason: %d", __FUNCTION__,
--                           result);
-+      if (port->tty) {
-+              c_cflag = port->tty->termios->c_cflag;
-+              if (c_cflag & HUPCL) {
-+                      /* drop DTR and RTS */
-+                      priv = port->private;
-+                      spin_lock_irqsave(&priv->lock, flags);
-+                      priv->line_control = 0;
-+                      spin_unlock_irqrestore (&priv->lock, flags);
-+                      set_control_lines (port->serial->dev, 0);
-+              }
-       }
-+
- }
-+/* taken from 2.4.20 driver */
- static int set_modem_info (struct usb_serial_port *port, unsigned int cmd, unsigned int *value)
- {
--      struct pl2303_private *priv = usb_get_serial_port_data(port);
--      unsigned long flags;
--      unsigned int arg;
--      u8 control;
--
--      if (copy_from_user(&arg, value, sizeof(int)))
--              return -EFAULT;
--
--      spin_lock_irqsave (&priv->lock, flags);
--      switch (cmd) {
--              case TIOCMBIS:
--                      if (arg & TIOCM_RTS)
--                              priv->line_control |= CONTROL_RTS;
--                      if (arg & TIOCM_DTR)
--                              priv->line_control |= CONTROL_DTR;
--                      break;
--
--              case TIOCMBIC:
--                      if (arg & TIOCM_RTS)
--                              priv->line_control &= ~CONTROL_RTS;
--                      if (arg & TIOCM_DTR)
--                              priv->line_control &= ~CONTROL_DTR;
--                      break;
-+  struct pl2303_private *priv = port->private;
-+  unsigned int arg;
--              case TIOCMSET:
--                      /* turn off RTS and DTR and then only turn
--                         on what was asked to */
--                      priv->line_control &= ~(CONTROL_RTS | CONTROL_DTR);
--                      priv->line_control |= ((arg & TIOCM_RTS) ? CONTROL_RTS : 0);
--                      priv->line_control |= ((arg & TIOCM_DTR) ? CONTROL_DTR : 0);
--                      break;
--      }
--      control = priv->line_control;
--      spin_unlock_irqrestore (&priv->lock, flags);
--
--      return set_control_lines (port->serial->dev, control);
-+  if (copy_from_user(&arg, value, sizeof(int)))
-+    return -EFAULT;
-+  
-+  switch (cmd) {
-+  case TIOCMBIS:
-+    if (arg & TIOCM_RTS)
-+      priv->line_control |= CONTROL_RTS;
-+    if (arg & TIOCM_DTR)
-+      priv->line_control |= CONTROL_DTR;
-+    break;
-+    
-+  case TIOCMBIC:
-+    if (arg & TIOCM_RTS)
-+      priv->line_control &= ~CONTROL_RTS;
-+    if (arg & TIOCM_DTR)
-+      priv->line_control &= ~CONTROL_DTR;
-+    break;
-+    
-+  case TIOCMSET:
-+    /* turn off RTS and DTR and then only turn
-+       on what was asked to */
-+    priv->line_control &= ~(CONTROL_RTS | CONTROL_DTR);
-+    priv->line_control |= ((arg & TIOCM_RTS) ? CONTROL_RTS : 0);
-+    priv->line_control |= ((arg & TIOCM_DTR) ? CONTROL_DTR : 0);
-+    break;
-+  }
-+  
-+  return set_control_lines (port->serial->dev, priv->line_control);
- }
- static int get_modem_info (struct usb_serial_port *port, unsigned int *value)
- {
--      struct pl2303_private *priv = usb_get_serial_port_data(port);
--      unsigned long flags;
--      unsigned int mcr;
--      unsigned int status;
--      unsigned int result;
--
--      spin_lock_irqsave (&priv->lock, flags);
--      mcr = priv->line_control;
--      status = priv->line_status;
--      spin_unlock_irqrestore (&priv->lock, flags);
--
--      result = ((mcr & CONTROL_DTR)           ? TIOCM_DTR : 0)
--                | ((mcr & CONTROL_RTS)        ? TIOCM_RTS : 0)
--                | ((status & UART_CTS)        ? TIOCM_CTS : 0)
--                | ((status & UART_DSR)        ? TIOCM_DSR : 0)
--                | ((status & UART_RING)       ? TIOCM_RI  : 0)
--                | ((status & UART_DCD)        ? TIOCM_CD  : 0);
--
--      dbg("%s - result = %x", __FUNCTION__, result);
--
--      if (copy_to_user(value, &result, sizeof(int)))
--              return -EFAULT;
--      return 0;
-+  struct pl2303_private *priv = port->private;
-+  unsigned int mcr = priv->line_control;
-+  unsigned int result;
-+  
-+  result = ((mcr & CONTROL_DTR)           ? TIOCM_DTR : 0)
-+    | ((mcr & CONTROL_RTS)        ? TIOCM_RTS : 0);
-+  
-+  dbg("%s - result = %x", __FUNCTION__, result);
-+  
-+  if (copy_to_user(value, &result, sizeof(int)))
-+    return -EFAULT;
-+  return 0;
- }
-+/* end of 2.4.20 kernel part - grsch */
- static int wait_modem_info(struct usb_serial_port *port, unsigned int arg)
- {
--      struct pl2303_private *priv = usb_get_serial_port_data(port);
-+      struct pl2303_private *priv = port->private;
-       unsigned long flags;
-       unsigned int prevstatus;
-       unsigned int status;
-@@ -617,21 +647,10 @@
-       dbg("%s (%d) cmd = 0x%04x", __FUNCTION__, port->number, cmd);
-       switch (cmd) {
--              
--              case TIOCMGET:
--                      dbg("%s (%d) TIOCMGET", __FUNCTION__, port->number);
--                      return get_modem_info (port, (unsigned int *)arg);
--
--              case TIOCMBIS:
--              case TIOCMBIC:
--              case TIOCMSET:
--                      dbg("%s (%d) TIOCMSET/TIOCMBIC/TIOCMSET", __FUNCTION__,  port->number);
--                      return set_modem_info(port, cmd, (unsigned int *) arg);
--
-               case TIOCMIWAIT:
-                       dbg("%s (%d) TIOCMIWAIT", __FUNCTION__,  port->number);
-                       return wait_modem_info(port, arg);
--              
-+
-               default:
-                       dbg("%s not supported = 0x%04x", __FUNCTION__, cmd);
-                       break;
-@@ -652,7 +671,7 @@
-               state = BREAK_OFF;
-       else
-               state = BREAK_ON;
--      dbg("%s - turning break %s", __FUNCTION__, state==BREAK_OFF ? "off" : "on");
-+      dbg("%s - turning break %s", state==BREAK_OFF ? "off" : "on", __FUNCTION__);
-       result = usb_control_msg (serial->dev, usb_sndctrlpipe (serial->dev, 0),
-                                 BREAK_REQUEST, BREAK_REQUEST_TYPE, state, 
-@@ -669,8 +688,8 @@
-       dbg("%s", __FUNCTION__);
-       for (i = 0; i < serial->num_ports; ++i) {
--              kfree (usb_get_serial_port_data(&serial->port[i]));
--              usb_set_serial_port_data(&serial->port[i], NULL);
-+              kfree (serial->port[i].private);
-+              serial->port[i].private = NULL;
-       }               
- }
-@@ -678,16 +697,14 @@
- static void pl2303_read_int_callback (struct urb *urb)
- {
-       struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
--      struct usb_serial *serial = get_usb_serial (port, __FUNCTION__);
--      struct pl2303_private *priv = usb_get_serial_port_data(port);
-+      struct pl2303_private *priv = port->private;
-       unsigned char *data = urb->transfer_buffer;
-       unsigned long flags;
-+      int status;
-       u8 uart_state;
-       dbg("%s (%d)", __FUNCTION__, port->number);
--      /* ints auto restart... */
--
-       switch (urb->status) {
-       case 0:
-               /* success */
-@@ -700,17 +717,14 @@
-               return;
-       default:
-               dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status);
--              return;
-+              goto exit;
-       }
--      if (!serial) {
--              return;
--      }
--      usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, urb->transfer_buffer);
-+      usb_serial_debug_data(__FILE__, __FUNCTION__, urb->actual_length, urb->transfer_buffer);
-       if (urb->actual_length < UART_STATE)
--              return;
-+              goto exit;
-       /* Save off the uart status for others to look at */
-       uart_state = data[UART_STATE];
-@@ -718,17 +732,19 @@
-       uart_state |= (priv->line_status & UART_STATE_TRANSIENT_MASK);
-       priv->line_status = uart_state;
-       spin_unlock_irqrestore(&priv->lock, flags);
--      wake_up_interruptible (&priv->delta_msr_wait);
--
--      return;
-+              
-+exit:
-+      status = usb_submit_urb (urb);
-+      if (status)
-+              err("%s - usb_submit_urb failed with result %d\n",
-+                      __FUNCTION__, status);
- }
- static void pl2303_read_bulk_callback (struct urb *urb)
- {
-       struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
--      struct usb_serial *serial = get_usb_serial (port, __FUNCTION__);
--      struct pl2303_private *priv = usb_get_serial_port_data(port);
-+      struct pl2303_private *priv = port->private;
-       struct tty_struct *tty;
-       unsigned char *data = urb->transfer_buffer;
-       unsigned long flags;
-@@ -737,16 +753,8 @@
-       u8 status;
-       char tty_flag;
--      if (port_paranoia_check (port, __FUNCTION__))
--              return;
--
-       dbg("%s - port %d", __FUNCTION__, port->number);
--      if (!serial) {
--              dbg("%s - bad serial pointer, exiting", __FUNCTION__);
--              return;
--      }
--
-       if (urb->status) {
-               dbg("%s - urb->status = %d", __FUNCTION__, urb->status);
-               if (!port->open_count) {
-@@ -757,17 +765,17 @@
-                       /* PL2303 mysteriously fails with -EPROTO reschedule the read */
-                       dbg("%s - caught -EPROTO, resubmitting the urb", __FUNCTION__);
-                       urb->status = 0;
--                      urb->dev = serial->dev;
-+                      urb->dev = port->serial->dev;
-                       result = usb_submit_urb(urb);
-                       if (result)
--                              err("%s - failed resubmitting read urb, error %d", __FUNCTION__, result);
-+                              err("%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result);
-                       return;
-               }
-               dbg("%s - unable to handle the error, exiting.", __FUNCTION__);
-               return;
-       }
--      usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, data);
-+      usb_serial_debug_data(__FILE__, __FUNCTION__, urb->actual_length, data);
-       /* get tty_flag from status */
-       tty_flag = TTY_NORMAL;
-@@ -776,7 +784,7 @@
-       status = priv->line_status;
-       priv->line_status &= ~UART_STATE_TRANSIENT_MASK;
-       spin_unlock_irqrestore(&priv->lock, flags);
--      wake_up_interruptible (&priv->delta_msr_wait); //AF from 2.6
-+      wake_up_interruptible (&priv->delta_msr_wait);
-       /* break takes precedence over parity, */
-       /* which takes precedence over framing errors */
-@@ -805,10 +813,10 @@
-       /* Schedule the next read _if_ we are still open */
-       if (port->open_count) {
--              urb->dev = serial->dev;
-+              urb->dev = port->serial->dev;
-               result = usb_submit_urb(urb);
-               if (result)
--                      err("%s - failed resubmitting read urb, error %d", __FUNCTION__, result);
-+                      err("%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result);
-       }
-       return;
-@@ -821,44 +829,32 @@
-       struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
-       int result;
--      if (port_paranoia_check (port, __FUNCTION__))
--              return;
--      
-       dbg("%s - port %d", __FUNCTION__, port->number);
-       
-       if (urb->status) {
-               /* error in the urb, so we have to resubmit it */
--              if (serial_paranoia_check (port->serial, __FUNCTION__)) {
--                      return;
--              }
-               dbg("%s - Overflow in write", __FUNCTION__);
-               dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status);
-               port->write_urb->transfer_buffer_length = 1;
-               port->write_urb->dev = port->serial->dev;
-               result = usb_submit_urb (port->write_urb);
-               if (result)
--                      err("%s - failed resubmitting write urb, error %d", __FUNCTION__, result);
-+                      err("%s - failed resubmitting write urb, error %d\n", __FUNCTION__, result);
-               return;
-       }
--      queue_task(&port->tqueue, &tq_immediate);
--      mark_bh(IMMEDIATE_BH);
--      return;
-+        queue_task(&port->tqueue, &tq_immediate);
-+        mark_bh(IMMEDIATE_BH);
- }
- static int __init pl2303_init (void)
- {
--      int retval;
--      retval = usb_serial_register(&pl2303_device);
--      if (retval)
--              goto failed_usb_serial_register;
-+      usb_serial_register(&pl2303_device);
-       info(DRIVER_DESC " " DRIVER_VERSION);
-       return 0;
--failed_usb_serial_register:
--      return retval;
- }
-@@ -877,3 +873,4 @@
- MODULE_PARM(debug, "i");
- MODULE_PARM_DESC(debug, "Debug enabled or not");
-+//this is an error
-diff -rNu linux-2.4.29.old/drivers/usb/serial/pl2303.h linux-2.4.29/drivers/usb/serial/pl2303.h
---- linux-2.4.29.old/drivers/usb/serial/pl2303.h       2005-03-22 14:48:04.000000000 +0100
-+++ linux-2.4.29/drivers/usb/serial/pl2303.h   2005-03-22 15:33:05.758939856 +0100
-@@ -41,3 +41,12 @@
+diff -ur linux-2.4.32/drivers/usb/serial/pl2303.h linux-2.4.32.openwrt/drivers/usb/serial/pl2303.h
+--- linux-2.4.32/drivers/usb/serial/pl2303.h   2004-02-18 14:36:31.000000000 +0100
++++ linux-2.4.32.openwrt/drivers/usb/serial/pl2303.h   2005-11-18 12:23:38.000000000 +0100
+@@ -41,3 +41,18 @@
  
  #define SITECOM_VENDOR_ID     0x6189
  #define SITECOM_PRODUCT_ID    0x2068
@@ -733,6 +26,12 @@ diff -rNu linux-2.4.29.old/drivers/usb/serial/pl2303.h linux-2.4.29/drivers/usb/
 +#define ALCATEL_PRODUCT_ID    0x02df
 +
 +/* Samsung I330 phone cradle */
-+#define SAMSUNG_VENDOR_ID       0x04e8
-+#define SAMSUNG_PRODUCT_ID      0x8001
++#define SAMSUNG_VENDOR_ID     0x04e8
++#define SAMSUNG_PRODUCT_ID    0x8001
++
++#define SYNTECH_VENDOR_ID     0x0745
++#define SYNTECH_PRODUCT_ID    0x0001
 +
++/* Nokia CA-42 Cable */
++#define NOKIA_CA42_VENDOR_ID  0x078b
++#define NOKIA_CA42_PRODUCT_ID 0x1234
diff --git a/openwrt/target/linux/linux-2.4/patches/generic/207-gcc_4.0_fixes.patch b/openwrt/target/linux/linux-2.4/patches/generic/207-gcc_4.0_fixes.patch
deleted file mode 100644 (file)
index e670368..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-diff -urN linux-2.4.30.old/drivers/i2c/i2c-core.c linux-2.4.30.dev/drivers/i2c/i2c-core.c
---- linux-2.4.30.old/drivers/i2c/i2c-core.c    2005-04-29 17:59:04.000000000 +0200
-+++ linux-2.4.30.dev/drivers/i2c/i2c-core.c    2005-04-29 18:42:37.000000000 +0200
-@@ -750,7 +750,7 @@
-               msg.addr   = client->addr;
-               msg.flags = client->flags & I2C_M_TEN;
-               msg.len = count;
--              (const char *)msg.buf = buf;
-+              msg.buf = (__u8 *)buf;
-       
-               DEB2(printk(KERN_DEBUG "i2c-core.o: master_send: writing %d bytes on %s.\n",
-                       count,client->adapter->name));
-@@ -780,7 +780,7 @@
-               msg.flags = client->flags & I2C_M_TEN;
-               msg.flags |= I2C_M_RD;
-               msg.len = count;
--              msg.buf = buf;
-+              msg.buf = (__u8 *)buf;
-               DEB2(printk(KERN_DEBUG "i2c-core.o: master_recv: reading %d bytes on %s.\n",
-                       count,client->adapter->name));
-diff -urN linux-2.4.30.old/drivers/usb/inode.c linux-2.4.30.dev/drivers/usb/inode.c
---- linux-2.4.30.old/drivers/usb/inode.c       2004-02-18 14:36:31.000000000 +0100
-+++ linux-2.4.30.dev/drivers/usb/inode.c       2005-04-29 18:42:37.000000000 +0200
-@@ -42,6 +42,8 @@
- #include <asm/uaccess.h>
- /* --------------------------------------------------------------------- */
-+static struct file_operations usbdevfs_bus_file_operations;
-+static struct inode_operations usbdevfs_bus_inode_operations;
- /*
-  * This list of superblocks is still used,
-diff -urN linux-2.4.30.old/include/asm-mips/uaccess.h linux-2.4.30.dev/include/asm-mips/uaccess.h
---- linux-2.4.30.old/include/asm-mips/uaccess.h        2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30.dev/include/asm-mips/uaccess.h        2005-04-29 18:42:37.000000000 +0200
-@@ -149,7 +149,7 @@
-  * Returns zero on success, or -EFAULT on error.
-  */
- #define put_user(x,ptr)       \
--      __put_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
-+      __put_user_check((x),(ptr),sizeof(*(ptr)))
- /*
-  * get_user: - Get a simple variable from user space.
-@@ -169,7 +169,7 @@
-  * On error, the variable @x is set to zero.
-  */
- #define get_user(x,ptr) \
--      __get_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
-+      __get_user_check((x),(ptr),sizeof(*(ptr)))
- /*
-  * __put_user: - Write a simple value into user space, with less checking.
-@@ -191,7 +191,7 @@
-  * Returns zero on success, or -EFAULT on error.
-  */
- #define __put_user(x,ptr) \
--      __put_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
-+      __put_user_nocheck((x),(ptr),sizeof(*(ptr)))
- /*
-  * __get_user: - Get a simple variable from user space, with less checking.
-@@ -214,7 +214,7 @@
-  * On error, the variable @x is set to zero.
-  */
- #define __get_user(x,ptr) \
--      __get_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
-+      __get_user_nocheck((x),(ptr),sizeof(*(ptr)))
- struct __large_struct { unsigned long buf[100]; };
- #define __m(x) (*(struct __large_struct *)(x))
-@@ -232,7 +232,7 @@
- #define __get_user_nocheck(x,ptr,size)                                        \
- ({                                                                    \
-       long __gu_err = 0;                                              \
--      __typeof(*(ptr)) __gu_val = 0;                                  \
-+      __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0;                                       \
-       long __gu_addr;                                                 \
-       __gu_addr = (long) (ptr);                                       \
-       switch (size) {                                                 \
-diff -urN linux-2.4.30.old/include/linux/byteorder/swab.h linux-2.4.30.dev/include/linux/byteorder/swab.h
---- linux-2.4.30.old/include/linux/byteorder/swab.h    2002-11-29 00:53:15.000000000 +0100
-+++ linux-2.4.30.dev/include/linux/byteorder/swab.h    2005-04-29 18:42:37.000000000 +0200
-@@ -156,7 +156,7 @@
- #endif /* OPTIMIZE */
--static __inline__ __const__ __u16 __fswab16(__u16 x)
-+static __inline__ __u16 __fswab16(__u16 x)
- {
-       return __arch__swab16(x);
- }
-@@ -169,7 +169,7 @@
-       __arch__swab16s(addr);
- }
--static __inline__ __const__ __u32 __fswab24(__u32 x)
-+static __inline__ __u32 __fswab24(__u32 x)
- {
-       return __arch__swab24(x);
- }
-@@ -182,7 +182,7 @@
-       __arch__swab24s(addr);
- }
--static __inline__ __const__ __u32 __fswab32(__u32 x)
-+static __inline__ __u32 __fswab32(__u32 x)
- {
-       return __arch__swab32(x);
- }
-@@ -196,7 +196,7 @@
- }
- #ifdef __BYTEORDER_HAS_U64__
--static __inline__ __const__ __u64 __fswab64(__u64 x)
-+static __inline__ __u64 __fswab64(__u64 x)
- {
- #  ifdef __SWAB_64_THRU_32__
-       __u32 h = x >> 32;
-diff -urN linux-2.4.30.old/include/linux/fs.h linux-2.4.30.dev/include/linux/fs.h
---- linux-2.4.30.old/include/linux/fs.h        2005-04-29 17:59:08.000000000 +0200
-+++ linux-2.4.30.dev/include/linux/fs.h        2005-04-29 18:42:37.000000000 +0200
-@@ -1563,7 +1563,6 @@
- unsigned long generate_cluster(kdev_t, int b[], int);
- unsigned long generate_cluster_swab32(kdev_t, int b[], int);
- extern kdev_t ROOT_DEV;
--extern char root_device_name[];
- extern void show_buffers(void);
-diff -urN linux-2.4.30.old/include/linux/i2c.h linux-2.4.30.dev/include/linux/i2c.h
---- linux-2.4.30.old/include/linux/i2c.h       2005-01-19 15:10:12.000000000 +0100
-+++ linux-2.4.30.dev/include/linux/i2c.h       2005-04-29 18:42:37.000000000 +0200
-@@ -70,7 +70,7 @@
- /* Transfer num messages.
-  */
--extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],int num);
-+extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msg, int num);
- /*
-  * Some adapter types (i.e. PCF 8584 based ones) may support slave behaviuor. 
-@@ -197,7 +197,7 @@
-          to NULL. If an adapter algorithm can do SMBus access, set 
-          smbus_xfer. If set to NULL, the SMBus protocol is simulated
-          using common I2C messages */
--      int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg msgs[], 
-+      int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg *msgs, 
-                          int num);
-       int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr, 
-                          unsigned short flags, char read_write,
-diff -urN linux-2.4.30.old/include/linux/usbdevice_fs.h linux-2.4.30.dev/include/linux/usbdevice_fs.h
---- linux-2.4.30.old/include/linux/usbdevice_fs.h      2003-11-28 19:26:21.000000000 +0100
-+++ linux-2.4.30.dev/include/linux/usbdevice_fs.h      2005-04-29 18:42:37.000000000 +0200
-@@ -185,8 +185,6 @@
- extern struct file_operations usbdevfs_devices_fops;
- extern struct file_operations usbdevfs_device_file_operations;
- extern struct inode_operations usbdevfs_device_inode_operations;
--extern struct inode_operations usbdevfs_bus_inode_operations;
--extern struct file_operations usbdevfs_bus_file_operations;
- extern void usbdevfs_conn_disc_event(void);
- #endif /* __KERNEL__ */
-diff -urN linux-2.4.30.old/include/net/icmp.h linux-2.4.30.dev/include/net/icmp.h
---- linux-2.4.30.old/include/net/icmp.h        2001-11-22 20:47:15.000000000 +0100
-+++ linux-2.4.30.dev/include/net/icmp.h        2005-04-29 18:42:37.000000000 +0200
-@@ -23,6 +23,7 @@
- #include <net/sock.h>
- #include <net/protocol.h>
-+#include <net/snmp.h>
- struct icmp_err {
-   int         errno;
-diff -urN linux-2.4.30.old/include/net/ipv6.h linux-2.4.30.dev/include/net/ipv6.h
---- linux-2.4.30.old/include/net/ipv6.h        2004-11-17 12:54:22.000000000 +0100
-+++ linux-2.4.30.dev/include/net/ipv6.h        2005-04-29 18:42:37.000000000 +0200
-@@ -19,6 +19,7 @@
- #include <asm/hardirq.h>
- #include <net/ndisc.h>
- #include <net/flow.h>
-+#include <net/snmp.h>
- #define SIN6_LEN_RFC2133      24
-diff -urN linux-2.4.30.old/include/linux/netfilter_ipv4/ip_tables.h linux-2.4.30.dev/include/linux/netfilter_ipv4/ip_tables.h
---- linux-2.4.30.old/include/linux/netfilter_ipv4/ip_tables.h  2005-04-29 17:59:08.000000000 +0200
-+++ linux-2.4.30.dev/include/linux/netfilter_ipv4/ip_tables.h  2005-04-29 19:06:36.000000000 +0200
-@@ -283,7 +283,7 @@
-       struct ipt_entry entrytable[0];
- };
--extern struct semaphore ipt_mutex;
-+// extern struct semaphore ipt_mutex;
- /* Standard return verdict, or do jump. */
- #define IPT_STANDARD_TARGET ""
diff --git a/openwrt/target/linux/linux-2.4/patches/generic/211-pl2303_bugfixes.patch b/openwrt/target/linux/linux-2.4/patches/generic/211-pl2303_bugfixes.patch
deleted file mode 100644 (file)
index bf7c3c3..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
---- linux/drivers/usb/serial/pl2303.c.orig     2005-10-17 12:09:48.000000000 +0200
-+++ linux/drivers/usb/serial/pl2303.c  2005-10-19 04:10:46.000000000 +0200
-@@ -14,6 +14,13 @@
-  * See Documentation/usb/usb-serial.txt for more information on using this driver
-  *
-  *
-+ * 2005_Oct_19 grsch
-+ *            added some missing ioctl commands
-+ *            it seems that there's still an issue with the 2.6.8 version when
-+ *            using the device with echo "whatever" >/dev/usb/tts/0 .
-+ *            Apparently, a timeout is needed upon pl2303_close (implemented in
-+ *            2.6.13.4)
-+ *
-  * 2005_Mar_05 grsch
-  *      ported 2.6.8 pl2303.c to 2.4.20 format
-  *      (HX model works fine now, ID table should be brought up to date)
-@@ -142,9 +149,8 @@
- static int pl2303_write (struct usb_serial_port *port, int from_user,
-                        const unsigned char *buf, int count);
- static void pl2303_break_ctl(struct usb_serial_port *port,int break_state);
--static int pl2303_tiocmget (struct usb_serial_port *port, struct file *file);
--static int pl2303_tiocmset (struct usb_serial_port *port, struct file *file,
--                          unsigned int set, unsigned int clear);
-+static int pl2303_tiocmget (struct usb_serial_port *port, unsigned int* value);
-+static int pl2303_tiocmset (struct usb_serial_port *port, unsigned int cmd, unsigned int *value);
- static int pl2303_startup (struct usb_serial *serial);
- static void pl2303_shutdown (struct usb_serial *serial);
-@@ -642,11 +648,108 @@
-       return 0;
- }
-+
-+
-+static int pl2303_tiocmget (struct usb_serial_port *port, unsigned int *value)
-+{
-+      struct pl2303_private *priv = usb_get_serial_port_data(port);
-+      unsigned long flags;
-+      unsigned int mcr;
-+      unsigned int status;
-+      unsigned int result;
-+
-+      dbg("%s (%d)", __FUNCTION__, port->number);
-+
-+      spin_lock_irqsave (&priv->lock, flags);
-+      mcr = priv->line_control;
-+      status = priv->line_status;
-+      spin_unlock_irqrestore (&priv->lock, flags);
-+
-+      result = ((mcr & CONTROL_DTR)           ? TIOCM_DTR : 0)
-+                | ((mcr & CONTROL_RTS)        ? TIOCM_RTS : 0)
-+                | ((status & UART_CTS)        ? TIOCM_CTS : 0)
-+                | ((status & UART_DSR)        ? TIOCM_DSR : 0)
-+                | ((status & UART_RING)       ? TIOCM_RI  : 0)
-+                | ((status & UART_DCD)        ? TIOCM_CD  : 0);
-+
-+      dbg("%s - result = %x", __FUNCTION__, result);
-+
-+      if (copy_to_user(value, &result, sizeof(int)))
-+              return -EFAULT;
-+      return 0;
-+}
-+
-+
-+
-+static int pl2303_tiocmset (struct usb_serial_port *port, unsigned int cmd, unsigned int *value)
-+{
-+  /*
-+      struct pl2303_private *priv = usb_get_serial_port_data(port);
-+      unsigned long flags;
-+      u8 control;
-+
-+      spin_lock_irqsave (&priv->lock, flags);
-+      if (set & TIOCM_RTS)
-+              priv->line_control |= CONTROL_RTS;
-+      if (set & TIOCM_DTR)
-+              priv->line_control |= CONTROL_DTR;
-+      if (clear & TIOCM_RTS)
-+              priv->line_control &= ~CONTROL_RTS;
-+      if (clear & TIOCM_DTR)
-+              priv->line_control &= ~CONTROL_DTR;
-+      control = priv->line_control;
-+      spin_unlock_irqrestore (&priv->lock, flags);
-+
-+      return set_control_lines (port->serial->dev, control);
-+  */
-+      struct pl2303_private *priv = port->private;
-+      unsigned int arg;
-+
-+      if (copy_from_user(&arg, value, sizeof(int)))
-+              return -EFAULT;
-+
-+      switch (cmd) {
-+              case TIOCMBIS:
-+                      if (arg & TIOCM_RTS)
-+                              priv->line_control |= CONTROL_RTS;
-+                      if (arg & TIOCM_DTR)
-+                              priv->line_control |= CONTROL_DTR;
-+                      break;
-+
-+              case TIOCMBIC:
-+                      if (arg & TIOCM_RTS)
-+                              priv->line_control &= ~CONTROL_RTS;
-+                      if (arg & TIOCM_DTR)
-+                              priv->line_control &= ~CONTROL_DTR;
-+                      break;
-+
-+              case TIOCMSET:
-+                      /* turn off RTS and DTR and then only turn
-+                         on what was asked to */
-+                      priv->line_control &= ~(CONTROL_RTS | CONTROL_DTR);
-+                      priv->line_control |= ((arg & TIOCM_RTS) ? CONTROL_RTS : 0);
-+                      priv->line_control |= ((arg & TIOCM_DTR) ? CONTROL_DTR : 0);
-+                      break;
-+      }
-+
-+      return set_control_lines (port->serial->dev, priv->line_control);
-+}
-+
-+
-+
- static int pl2303_ioctl (struct usb_serial_port *port, struct file *file, unsigned int cmd, unsigned long arg)
- {
-       dbg("%s (%d) cmd = 0x%04x", __FUNCTION__, port->number, cmd);
-       switch (cmd) {
-+              case TIOCMGET:
-+                dbg("%s (%d) TIOCMGET", __FUNCTION__, port->number);
-+                return pl2303_tiocmget(port,(unsigned int *)arg);
-+              case TIOCMBIS:
-+              case TIOCMBIC:
-+              case TIOCMSET:
-+                dbg("%s (%d) TIOCMSET/TIOCMBIC/TIOCMSET", __FUNCTION__,  port->number);
-+                        return pl2303_tiocmset(port,cmd,(unsigned int*)arg);
-               case TIOCMIWAIT:
-                       dbg("%s (%d) TIOCMIWAIT", __FUNCTION__,  port->number);
-                       return wait_modem_info(port, arg);
-@@ -705,6 +808,8 @@
-       dbg("%s (%d)", __FUNCTION__, port->number);
-+      dbg("%s - urb status %d...", __FUNCTION__, urb->status);
-+
-       switch (urb->status) {
-       case 0:
-               /* success */
index c567292..b3a7b1e 100644 (file)
@@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk
 
 # linux kernel headers for toolchain
 
-LINUX_HEADERS_VERSION=2.4.30
-LINUX_KERNEL_MD5SUM:=75d8ce40a3668603017cd186909efe8d
+LINUX_HEADERS_VERSION=2.4.32
+LINUX_KERNEL_MD5SUM:=38f4d0830e95a20f4bfed17622d5557c
 LINUX_HEADERS_SITE= \
                http://www.de.kernel.org/pub/linux/kernel/v2.4 \
                http://www.fi.kernel.org/pub/linux/kernel/v2.4 \
This page took 0.264032 seconds and 4 git commands to generate.