diff between linux-mips, tagged linux_2_4_29
[openwrt.git] / openwrt / package / linux / kernel-patches / 000-linux-mips-cvs
index dbd23de..83bb0e2 100644 (file)
@@ -1,128 +1,6 @@
-diff -Nur linux-2.4.29/Makefile linux-mips/Makefile
---- linux-2.4.29/Makefile      2005-01-19 15:10:14.000000000 +0100
-+++ linux-mips/Makefile        2005-01-20 03:19:21.000000000 +0100
-@@ -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.29/arch/mips/Makefile linux-mips/arch/mips/Makefile
---- linux-2.4.29/arch/mips/Makefile    2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/Makefile      2005-01-31 12:59:28.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.29/arch/mips/au1000/common/Makefile linux-mips/arch/mips/au1000/common/Makefile
---- linux-2.4.29/arch/mips/au1000/common/Makefile      2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/Makefile        2005-01-31 12:59:30.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.29/arch/mips/au1000/common/au1xxx_irqmap.c linux-mips/arch/mips/au1000/common/au1xxx_irqmap.c
 --- linux-2.4.29/arch/mips/au1000/common/au1xxx_irqmap.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/au1xxx_irqmap.c 2005-01-31 12:59:30.000000000 +0100
++++ linux-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},
@@ -171,7 +49,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/au1xxx_irqmap.c linux-mips/arch/m
        { AU1200_LCD_INT, INTC_INT_HIGH_LEVEL, 0},
 diff -Nur linux-2.4.29/arch/mips/au1000/common/cputable.c linux-mips/arch/mips/au1000/common/cputable.c
 --- linux-2.4.29/arch/mips/au1000/common/cputable.c    2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/cputable.c      2005-01-31 12:59:30.000000000 +0100
++++ linux-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 },
@@ -184,7 +62,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/cputable.c linux-mips/arch/mips/a
  
 diff -Nur linux-2.4.29/arch/mips/au1000/common/dbdma.c linux-mips/arch/mips/au1000/common/dbdma.c
 --- linux-2.4.29/arch/mips/au1000/common/dbdma.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/dbdma.c 2005-02-12 04:05:28.000000000 +0100
++++ linux-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>
@@ -887,8 +765,40 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/gpio.c linux-mips/arch/mips/au100
 +EXPORT_SYMBOL(au1xxx_gpio_read);
 diff -Nur linux-2.4.29/arch/mips/au1000/common/irq.c linux-mips/arch/mips/au1000/common/irq.c
 --- linux-2.4.29/arch/mips/au1000/common/irq.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/irq.c   2005-01-31 12:59:30.000000000 +0100
-@@ -508,6 +508,7 @@
++++ linux-mips/arch/mips/au1000/common/irq.c   2005-03-13 08:56:57.000000000 +0100
+@@ -303,8 +303,30 @@
+ };
+ #ifdef CONFIG_PM
+-void startup_match20_interrupt(void)
++void startup_match20_interrupt(void (*handler)(int, void *, struct pt_regs *))
+ {
++      static struct irqaction action;
++      /* This is a big problem.... since we didn't use request_irq
++         when kernel/irq.c calls probe_irq_xxx this interrupt will
++         be probed for usage. This will end up disabling the device :(
++
++       Give it a bogus "action" pointer -- this will keep it from
++         getting auto-probed!
++
++       By setting the status to match that of request_irq() we
++       can avoid it.  --cgray
++      */
++      action.dev_id = handler;
++      action.flags = 0;
++      action.mask = 0;
++      action.name = "Au1xxx TOY";
++      action.handler = handler;
++      action.next = NULL;
++
++      irq_desc[AU1000_TOY_MATCH2_INT].action = &action; 
++      irq_desc[AU1000_TOY_MATCH2_INT].status 
++               &= ~(IRQ_DISABLED | IRQ_AUTODETECT | IRQ_WAITING | IRQ_INPROGRESS);
++
+       local_enable_irq(AU1000_TOY_MATCH2_INT);
+ }
+ #endif
+@@ -508,6 +530,7 @@
  
        if (!intc0_req0) return;
  
@@ -896,7 +806,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/irq.c linux-mips/arch/mips/au1000
        /*
         * Because of the tight timing of SETUP token to reply
         * transactions, the USB devices-side packet complete
-@@ -518,6 +519,7 @@
+@@ -518,6 +541,7 @@
                do_IRQ(AU1000_USB_DEV_REQ_INT, regs);
                return;
        }
@@ -904,6 +814,40 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/irq.c linux-mips/arch/mips/au1000
  
        irq = au_ffs(intc0_req0) - 1;
        intc0_req0 &= ~(1<<irq);
+@@ -536,17 +560,7 @@
+       irq = au_ffs(intc0_req1) - 1;
+       intc0_req1 &= ~(1<<irq);
+-#ifdef CONFIG_PM
+-      if (irq == AU1000_TOY_MATCH2_INT) {
+-              mask_and_ack_rise_edge_irq(irq);
+-              counter0_irq(irq, NULL, regs);
+-              local_enable_irq(irq);
+-      }
+-      else
+-#endif
+-      {
+-              do_IRQ(irq, regs);
+-      }
++      do_IRQ(irq, regs);
+ }
+diff -Nur linux-2.4.29/arch/mips/au1000/common/Makefile linux-mips/arch/mips/au1000/common/Makefile
+--- linux-2.4.29/arch/mips/au1000/common/Makefile      2005-01-19 15:09:26.000000000 +0100
++++ linux-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.29/arch/mips/au1000/common/pci_fixup.c linux-mips/arch/mips/au1000/common/pci_fixup.c
 --- linux-2.4.29/arch/mips/au1000/common/pci_fixup.c   2005-01-19 15:09:26.000000000 +0100
 +++ linux-mips/arch/mips/au1000/common/pci_fixup.c     2004-12-03 09:00:32.000000000 +0100
@@ -925,7 +869,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/pci_fixup.c linux-mips/arch/mips/
  
 diff -Nur linux-2.4.29/arch/mips/au1000/common/pci_ops.c linux-mips/arch/mips/au1000/common/pci_ops.c
 --- linux-2.4.29/arch/mips/au1000/common/pci_ops.c     2004-02-18 14:36:30.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/pci_ops.c       2005-01-31 12:59:30.000000000 +0100
++++ linux-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)
@@ -942,7 +886,19 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/pci_ops.c linux-mips/arch/mips/au
        unsigned long entryLo0, entryLo1;
  
        if (device > 19) {
-@@ -271,8 +271,11 @@
+@@ -205,9 +205,8 @@
+               last_entryLo0  = last_entryLo1 = 0xffffffff;
+       }
+-      /* Since the Au1xxx doesn't do the idsel timing exactly to spec,
+-       * many board vendors implement their own off-chip idsel, so call
+-       * it now.  If it doesn't succeed, may as well bail out at this point.
++      /* Allow board vendors to implement their own off-chip idsel.  
++       * If it doesn't succeed, may as well bail out at this point.
+        */
+       if (board_pci_idsel) {
+               if (board_pci_idsel(device, 1) == 0) {
+@@ -271,8 +270,11 @@
        }
  
        local_irq_restore(flags);
@@ -957,7 +913,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/pci_ops.c linux-mips/arch/mips/au
  
 diff -Nur linux-2.4.29/arch/mips/au1000/common/power.c linux-mips/arch/mips/au1000/common/power.c
 --- linux-2.4.29/arch/mips/au1000/common/power.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/power.c 2005-01-31 12:59:30.000000000 +0100
++++ linux-mips/arch/mips/au1000/common/power.c 2005-01-30 09:01:27.000000000 +0100
 @@ -50,7 +50,6 @@
  
  static void calibrate_delay(void);
@@ -1168,9 +1124,39 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/power.c linux-mips/arch/mips/au10
        {0}
  };
  
+diff -Nur linux-2.4.29/arch/mips/au1000/common/reset.c linux-mips/arch/mips/au1000/common/reset.c
+--- linux-2.4.29/arch/mips/au1000/common/reset.c       2005-01-19 15:09:26.000000000 +0100
++++ linux-mips/arch/mips/au1000/common/reset.c 2005-02-27 23:11:54.000000000 +0100
+@@ -144,6 +144,26 @@
+               au_writel(0x00, 0xb1900064); /* sys_auxpll */
+               au_writel(0x00, 0xb1900100); /* sys_pininputen */
+               break;
++      case 0x04000000: /* Au1200 */
++              au_writel(0x00, 0xb400300c); /* ddma */
++              au_writel(0x00, 0xb1a00004); /* psc 0 */
++              au_writel(0x00, 0xb1b00004); /* psc 1 */
++              au_writel(0x00d02000, 0xb4020004); /* ehci, ohci, udc, otg */
++              au_writel(0x00, 0xb5000004); /* lcd */
++              au_writel(0x00, 0xb060000c); /* sd0 */
++              au_writel(0x00, 0xb068000c); /* sd1 */
++              au_writel(0x00, 0xb1100100); /* swcnt */
++              au_writel(0x00, 0xb0300000); /* aes */
++              au_writel(0x00, 0xb4004000); /* cim */
++              au_writel(0x00, 0xb1100100); /* uart0_enable */
++              au_writel(0x00, 0xb1200100); /* uart1_enable */
++              au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
++              au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
++              au_writel(0x00, 0xb1900028); /* sys_clksrc */
++              au_writel(0x10, 0xb1900060); /* sys_cpupll */
++              au_writel(0x00, 0xb1900064); /* sys_auxpll */
++              au_writel(0x00, 0xb1900100); /* sys_pininputen */
++              break;
+       default:
+               break;
 diff -Nur linux-2.4.29/arch/mips/au1000/common/setup.c linux-mips/arch/mips/au1000/common/setup.c
 --- linux-2.4.29/arch/mips/au1000/common/setup.c       2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/setup.c 2005-01-31 12:59:30.000000000 +0100
++++ linux-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
@@ -1267,7 +1253,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/setup.c linux-mips/arch/mips/au10
  #endif
 diff -Nur linux-2.4.29/arch/mips/au1000/common/sleeper.S linux-mips/arch/mips/au1000/common/sleeper.S
 --- linux-2.4.29/arch/mips/au1000/common/sleeper.S     2004-02-18 14:36:30.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/sleeper.S       2005-01-31 12:59:30.000000000 +0100
++++ linux-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>
@@ -1538,8 +1524,25 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/sleeper.S linux-mips/arch/mips/au
 +
 diff -Nur linux-2.4.29/arch/mips/au1000/common/time.c linux-mips/arch/mips/au1000/common/time.c
 --- linux-2.4.29/arch/mips/au1000/common/time.c        2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/common/time.c  2005-01-31 12:59:30.000000000 +0100
-@@ -437,9 +437,6 @@
++++ linux-mips/arch/mips/au1000/common/time.c  2005-03-13 08:56:57.000000000 +0100
+@@ -50,7 +50,6 @@
+ #include <linux/mc146818rtc.h>
+ #include <linux/timex.h>
+-extern void startup_match20_interrupt(void);
+ extern void do_softirq(void);
+ extern volatile unsigned long wall_jiffies;
+ unsigned long missed_heart_beats = 0;
+@@ -66,7 +65,7 @@
+ #ifdef CONFIG_PM
+ #define MATCH20_INC 328
+-extern void startup_match20_interrupt(void);
++extern void startup_match20_interrupt(void (*handler)(int, void *, struct pt_regs *));
+ static unsigned long last_pc0, last_match20;
+ #endif
+@@ -437,9 +436,6 @@
                au_writel(0, SYS_TOYWRITE);
                while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C0S);
  
@@ -1549,24 +1552,18 @@ diff -Nur linux-2.4.29/arch/mips/au1000/common/time.c linux-mips/arch/mips/au100
                while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20);
  
                /* setup match20 to interrupt once every 10ms */
-diff -Nur linux-2.4.29/arch/mips/au1000/db1x00/Makefile linux-mips/arch/mips/au1000/db1x00/Makefile
---- linux-2.4.29/arch/mips/au1000/db1x00/Makefile      2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/db1x00/Makefile        2005-01-31 12:59:30.000000000 +0100
-@@ -17,4 +17,11 @@
- obj-y := init.o board_setup.o irqmap.o
- obj-$(CONFIG_WM97XX_COMODULE) += mirage_ts.o
+@@ -447,7 +443,7 @@
+               au_writel(last_match20 + MATCH20_INC, SYS_TOYMATCH2);
+               au_sync();
+               while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_M20);
+-              startup_match20_interrupt();
++              startup_match20_interrupt(counter0_irq);
+               do_gettimeoffset = do_fast_pm_gettimeoffset;
  
-+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.29/arch/mips/au1000/db1x00/board_setup.c linux-mips/arch/mips/au1000/db1x00/board_setup.c
 --- linux-2.4.29/arch/mips/au1000/db1x00/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/db1x00/board_setup.c   2005-01-31 12:59:30.000000000 +0100
++++ linux-mips/arch/mips/au1000/db1x00/board_setup.c   2005-01-30 09:06:19.000000000 +0100
 @@ -46,10 +46,22 @@
  #include <asm/au1000.h>
  #include <asm/db1x00.h>
@@ -1638,7 +1635,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/db1x00/board_setup.c linux-mips/arch/mip
  #endif
 diff -Nur linux-2.4.29/arch/mips/au1000/db1x00/irqmap.c linux-mips/arch/mips/au1000/db1x00/irqmap.c
 --- linux-2.4.29/arch/mips/au1000/db1x00/irqmap.c      2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/db1x00/irqmap.c        2005-01-31 12:59:30.000000000 +0100
++++ linux-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#
@@ -1647,6 +1644,21 @@ diff -Nur linux-2.4.29/arch/mips/au1000/db1x00/irqmap.c linux-mips/arch/mips/au1
  #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.29/arch/mips/au1000/db1x00/Makefile linux-mips/arch/mips/au1000/db1x00/Makefile
+--- linux-2.4.29/arch/mips/au1000/db1x00/Makefile      2005-01-19 15:09:26.000000000 +0100
++++ linux-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.29/arch/mips/au1000/db1x00/mmc_support.c linux-mips/arch/mips/au1000/db1x00/mmc_support.c
 --- linux-2.4.29/arch/mips/au1000/db1x00/mmc_support.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/arch/mips/au1000/db1x00/mmc_support.c   2005-01-30 09:07:01.000000000 +0100
@@ -1777,35 +1789,6 @@ diff -Nur linux-2.4.29/arch/mips/au1000/db1x00/mmc_support.c linux-mips/arch/mip
 +EXPORT_SYMBOL(mmc_power_on);
 +EXPORT_SYMBOL(mmc_power_off);
 +
-diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/Makefile linux-mips/arch/mips/au1000/ficmmp/Makefile
---- linux-2.4.29/arch/mips/au1000/ficmmp/Makefile      1970-01-01 01:00:00.000000000 +0100
-+++ linux-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.29/arch/mips/au1000/ficmmp/au1200_ibutton.c linux-mips/arch/mips/au1000/ficmmp/au1200_ibutton.c
 --- linux-2.4.29/arch/mips/au1000/ficmmp/au1200_ibutton.c      1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/arch/mips/au1000/ficmmp/au1200_ibutton.c        2005-02-03 07:35:29.000000000 +0100
@@ -2347,8 +2330,8 @@ diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/au1xxx_dock.c linux-mips/arch/mip
 +module_exit(au1xxx_dock_exit);
 diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/board_setup.c linux-mips/arch/mips/au1000/ficmmp/board_setup.c
 --- linux-2.4.29/arch/mips/au1000/ficmmp/board_setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/arch/mips/au1000/ficmmp/board_setup.c   2005-01-30 09:01:27.000000000 +0100
-@@ -0,0 +1,191 @@
++++ linux-mips/arch/mips/au1000/ficmmp/board_setup.c   2005-03-13 09:04:16.000000000 +0100
+@@ -0,0 +1,222 @@
 +/*
 + *
 + * BRIEF MODULE DESCRIPTION
@@ -2485,7 +2468,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/board_setup.c linux-mips/arch/mip
 +
 +#ifdef CONFIG_FB_AU1200
 +      argptr = prom_getcmdline();
-+      strcat(argptr, " video=au1200fb:panel:s11");
++      strcat(argptr, " video=au1200fb:");
 +#endif
 +
 +#if defined(CONFIG_BLK_DEV_IDE_AU1XXX)
@@ -2540,6 +2523,37 @@ diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/board_setup.c linux-mips/arch/mip
 +      printk("B190002C: %X\n", *((volatile u32*)0xB190002C));
 +}
 +
++int
++board_au1200fb_panel (void)
++{
++      au1xxx_gpio_tristate(6);
++
++      if (au1xxx_gpio_read(12) == 0)
++              return 9; /* FS453_640x480 (Composite/S-Video) */
++      else
++              return 7; /* Sharp 320x240 TFT */
++}
++
++int
++board_au1200fb_panel_init (void)
++{
++      /*Enable data buffers*/
++      ficmmp_config_clear(FICMMP_CONFIG_LCMDATAOUT);
++      /*Take LCD out of reset*/
++      ficmmp_config_set(FICMMP_CONFIG_LCMPWREN | FICMMP_CONFIG_LCMEN);
++      return 0;
++}
++
++int 
++board_au1200fb_panel_shutdown (void)
++{
++      /*Disable data buffers*/
++      ficmmp_config_set(FICMMP_CONFIG_LCMDATAOUT);
++      /*Put LCD in reset, remove power*/
++      ficmmp_config_clear(FICMMP_CONFIG_LCMEN | FICMMP_CONFIG_LCMPWREN);
++      return 0;
++}
++
 diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/init.c linux-mips/arch/mips/au1000/ficmmp/init.c
 --- linux-2.4.29/arch/mips/au1000/ficmmp/init.c        1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/arch/mips/au1000/ficmmp/init.c  2005-01-30 09:01:27.000000000 +0100
@@ -2685,25 +2699,38 @@ diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/irqmap.c linux-mips/arch/mips/au1
 +
 +int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
 +
-diff -Nur linux-2.4.29/arch/mips/au1000/hydrogen3/Makefile linux-mips/arch/mips/au1000/hydrogen3/Makefile
---- linux-2.4.29/arch/mips/au1000/hydrogen3/Makefile   2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/hydrogen3/Makefile     2005-02-12 04:05:28.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
+diff -Nur linux-2.4.29/arch/mips/au1000/ficmmp/Makefile linux-mips/arch/mips/au1000/ficmmp/Makefile
+--- linux-2.4.29/arch/mips/au1000/ficmmp/Makefile      1970-01-01 01:00:00.000000000 +0100
++++ linux-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
++
++
++include $(TOPDIR)/Rules.make
 diff -Nur linux-2.4.29/arch/mips/au1000/hydrogen3/board_setup.c linux-mips/arch/mips/au1000/hydrogen3/board_setup.c
 --- linux-2.4.29/arch/mips/au1000/hydrogen3/board_setup.c      2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/hydrogen3/board_setup.c        2005-01-31 12:59:30.000000000 +0100
++++ linux-mips/arch/mips/au1000/hydrogen3/board_setup.c        2005-01-30 09:07:57.000000000 +0100
 @@ -57,6 +57,9 @@
  
        rtc_ops = &no_rtc_ops;
@@ -3026,6 +3053,22 @@ diff -Nur linux-2.4.29/arch/mips/au1000/hydrogen3/buttons.c linux-mips/arch/mips
 +
 +module_init(hydrogen3_buttons_init);
 +module_exit(hydrogen3_buttons_exit);
+diff -Nur linux-2.4.29/arch/mips/au1000/hydrogen3/Makefile linux-mips/arch/mips/au1000/hydrogen3/Makefile
+--- linux-2.4.29/arch/mips/au1000/hydrogen3/Makefile   2005-01-19 15:09:26.000000000 +0100
++++ linux-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.29/arch/mips/au1000/hydrogen3/mmc_support.c linux-mips/arch/mips/au1000/hydrogen3/mmc_support.c
 --- linux-2.4.29/arch/mips/au1000/hydrogen3/mmc_support.c      1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/arch/mips/au1000/hydrogen3/mmc_support.c        2005-02-02 05:27:06.000000000 +0100
@@ -3155,7 +3198,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/mtx-1/irqmap.c linux-mips/arch/mips/au10
        return PCI_IRQ_TABLE_LOOKUP;
 diff -Nur linux-2.4.29/arch/mips/au1000/pb1100/Makefile linux-mips/arch/mips/au1000/pb1100/Makefile
 --- linux-2.4.29/arch/mips/au1000/pb1100/Makefile      2003-08-25 13:44:39.000000000 +0200
-+++ linux-mips/arch/mips/au1000/pb1100/Makefile        2005-01-31 12:59:30.000000000 +0100
++++ linux-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
@@ -3297,39 +3340,10 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1100/mmc_support.c linux-mips/arch/mip
 +EXPORT_SYMBOL(mmc_power_on);
 +EXPORT_SYMBOL(mmc_power_off);
 +
-diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/Makefile linux-mips/arch/mips/au1000/pb1200/Makefile
---- linux-2.4.29/arch/mips/au1000/pb1200/Makefile      1970-01-01 01:00:00.000000000 +0100
-+++ linux-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.29/arch/mips/au1000/pb1200/board_setup.c linux-mips/arch/mips/au1000/pb1200/board_setup.c
 --- linux-2.4.29/arch/mips/au1000/pb1200/board_setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/arch/mips/au1000/pb1200/board_setup.c   2005-01-30 09:01:28.000000000 +0100
-@@ -0,0 +1,190 @@
++++ linux-mips/arch/mips/au1000/pb1200/board_setup.c   2005-03-13 09:04:16.000000000 +0100
+@@ -0,0 +1,216 @@
 +/*
 + *
 + * BRIEF MODULE DESCRIPTION
@@ -3471,12 +3485,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/board_setup.c linux-mips/arch/mip
 +
 +#ifdef CONFIG_FB_AU1200
 +      argptr = prom_getcmdline();
-+#ifdef CONFIG_MIPS_PB1200
-+      strcat(argptr, " video=au1200fb:panel:s11");
-+#endif
-+#ifdef CONFIG_MIPS_DB1200
-+      strcat(argptr, " video=au1200fb:panel:s7");
-+#endif
++      strcat(argptr, " video=au1200fb:");
 +#endif
 +
 +#if defined(CONFIG_BLK_DEV_IDE_AU1XXX)
@@ -3520,6 +3529,37 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/board_setup.c linux-mips/arch/mip
 +              board_init_irq = _board_init_irq;
 +      }
 +}
++
++int
++board_au1200fb_panel (void)
++{
++      BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR;
++      int p;
++
++      p = bcsr->switches;
++      p >>= 8;
++      p &= 0x0F;
++      return p;
++}
++
++int
++board_au1200fb_panel_init (void)
++{
++      /* Apply power */
++    BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR;
++      bcsr->board |= (BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD | BCSR_BOARD_LCDBL);
++      return 0;
++}
++
++int
++board_au1200fb_panel_shutdown (void)
++{
++      /* Remove power */
++    BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR;
++      bcsr->board &= ~(BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD | BCSR_BOARD_LCDBL);
++      return 0;
++}
++
 diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/init.c linux-mips/arch/mips/au1000/pb1200/init.c
 --- linux-2.4.29/arch/mips/au1000/pb1200/init.c        1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/arch/mips/au1000/pb1200/init.c  2005-01-30 09:01:28.000000000 +0100
@@ -3780,6 +3820,35 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/irqmap.c linux-mips/arch/mips/au1
 +      request of any source attached to the cascade */
 +}
 +
+diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/Makefile linux-mips/arch/mips/au1000/pb1200/Makefile
+--- linux-2.4.29/arch/mips/au1000/pb1200/Makefile      1970-01-01 01:00:00.000000000 +0100
++++ linux-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.29/arch/mips/au1000/pb1200/mmc_support.c linux-mips/arch/mips/au1000/pb1200/mmc_support.c
 --- linux-2.4.29/arch/mips/au1000/pb1200/mmc_support.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/arch/mips/au1000/pb1200/mmc_support.c   2005-01-30 09:01:28.000000000 +0100
@@ -3927,7 +3996,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1200/mmc_support.c linux-mips/arch/mip
 +
 diff -Nur linux-2.4.29/arch/mips/au1000/pb1550/board_setup.c linux-mips/arch/mips/au1000/pb1550/board_setup.c
 --- linux-2.4.29/arch/mips/au1000/pb1550/board_setup.c 2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/pb1550/board_setup.c   2005-01-31 12:59:30.000000000 +0100
++++ linux-mips/arch/mips/au1000/pb1550/board_setup.c   2005-01-30 09:01:28.000000000 +0100
 @@ -48,6 +48,16 @@
  
  extern struct rtc_ops no_rtc_ops;
@@ -3984,7 +4053,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1550/board_setup.c linux-mips/arch/mip
  }
 diff -Nur linux-2.4.29/arch/mips/au1000/pb1550/irqmap.c linux-mips/arch/mips/au1000/pb1550/irqmap.c
 --- linux-2.4.29/arch/mips/au1000/pb1550/irqmap.c      2005-01-19 15:09:26.000000000 +0100
-+++ linux-mips/arch/mips/au1000/pb1550/irqmap.c        2005-01-31 12:59:30.000000000 +0100
++++ linux-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 },
@@ -3997,7 +4066,7 @@ diff -Nur linux-2.4.29/arch/mips/au1000/pb1550/irqmap.c linux-mips/arch/mips/au1
  int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
 diff -Nur linux-2.4.29/arch/mips/config-shared.in linux-mips/arch/mips/config-shared.in
 --- linux-2.4.29/arch/mips/config-shared.in    2005-01-19 15:09:27.000000000 +0100
-+++ linux-mips/arch/mips/config-shared.in      2005-01-31 12:59:28.000000000 +0100
++++ linux-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
@@ -4166,7 +4235,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-atlas linux-mips/arch/mips/defconfig-
  # CONFIG_SCSI_SATA_NV is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-bosporus linux-mips/arch/mips/defconfig-bosporus
 --- linux-2.4.29/arch/mips/defconfig-bosporus  2005-01-19 15:09:27.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-bosporus    2005-01-31 12:59:28.000000000 +0100
++++ linux-mips/arch/mips/defconfig-bosporus    2005-01-30 09:01:26.000000000 +0100
 @@ -373,11 +373,6 @@
  #
  # CONFIG_IPX is not set
@@ -4243,7 +4312,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-csb250 linux-mips/arch/mips/defconfig
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-db1000 linux-mips/arch/mips/defconfig-db1000
 --- linux-2.4.29/arch/mips/defconfig-db1000    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-db1000      2005-02-12 04:05:27.000000000 +0100
++++ linux-mips/arch/mips/defconfig-db1000      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -4279,7 +4348,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-db1000 linux-mips/arch/mips/defconfig
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-db1100 linux-mips/arch/mips/defconfig-db1100
 --- linux-2.4.29/arch/mips/defconfig-db1100    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-db1100      2005-02-12 04:05:27.000000000 +0100
++++ linux-mips/arch/mips/defconfig-db1100      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -5370,7 +5439,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-db1200 linux-mips/arch/mips/defconfig
 +# CONFIG_FW_LOADER is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-db1500 linux-mips/arch/mips/defconfig-db1500
 --- linux-2.4.29/arch/mips/defconfig-db1500    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-db1500      2005-02-12 04:05:27.000000000 +0100
++++ linux-mips/arch/mips/defconfig-db1500      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -5406,7 +5475,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-db1500 linux-mips/arch/mips/defconfig
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-db1550 linux-mips/arch/mips/defconfig-db1550
 --- linux-2.4.29/arch/mips/defconfig-db1550    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-db1550      2005-02-12 04:05:27.000000000 +0100
++++ linux-mips/arch/mips/defconfig-db1550      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -5555,7 +5624,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-ev96100 linux-mips/arch/mips/defconfi
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-ficmmp linux-mips/arch/mips/defconfig-ficmmp
 --- linux-2.4.29/arch/mips/defconfig-ficmmp    1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-ficmmp      2005-02-12 04:05:27.000000000 +0100
++++ linux-mips/arch/mips/defconfig-ficmmp      2005-02-03 07:35:29.000000000 +0100
 @@ -0,0 +1,880 @@
 +#
 +# Automatically generated make config: don't edit
@@ -6454,7 +6523,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-hp-lj linux-mips/arch/mips/defconfig-
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-hydrogen3 linux-mips/arch/mips/defconfig-hydrogen3
 --- linux-2.4.29/arch/mips/defconfig-hydrogen3 2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-hydrogen3   2005-01-31 12:59:29.000000000 +0100
++++ linux-mips/arch/mips/defconfig-hydrogen3   2005-01-30 09:01:26.000000000 +0100
 @@ -22,6 +22,7 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -6716,7 +6785,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-malta linux-mips/arch/mips/defconfig-
  # CONFIG_SCSI_SATA_NV is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-mirage linux-mips/arch/mips/defconfig-mirage
 --- linux-2.4.29/arch/mips/defconfig-mirage    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-mirage      2005-01-31 12:59:29.000000000 +0100
++++ linux-mips/arch/mips/defconfig-mirage      2005-01-30 09:01:26.000000000 +0100
 @@ -335,11 +335,6 @@
  #
  # CONFIG_IPX is not set
@@ -6823,7 +6892,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-osprey linux-mips/arch/mips/defconfig
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-pb1000 linux-mips/arch/mips/defconfig-pb1000
 --- linux-2.4.29/arch/mips/defconfig-pb1000    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-pb1000      2005-02-12 04:05:27.000000000 +0100
++++ linux-mips/arch/mips/defconfig-pb1000      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -6868,7 +6937,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-pb1000 linux-mips/arch/mips/defconfig
  #
 diff -Nur linux-2.4.29/arch/mips/defconfig-pb1100 linux-mips/arch/mips/defconfig-pb1100
 --- linux-2.4.29/arch/mips/defconfig-pb1100    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-pb1100      2005-02-12 04:05:28.000000000 +0100
++++ linux-mips/arch/mips/defconfig-pb1100      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -7971,7 +8040,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-pb1200 linux-mips/arch/mips/defconfig
 +# CONFIG_FW_LOADER is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-pb1500 linux-mips/arch/mips/defconfig-pb1500
 --- linux-2.4.29/arch/mips/defconfig-pb1500    2005-01-19 15:09:28.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-pb1500      2005-02-12 04:05:28.000000000 +0100
++++ linux-mips/arch/mips/defconfig-pb1500      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -8007,7 +8076,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-pb1500 linux-mips/arch/mips/defconfig
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips/defconfig-pb1550 linux-mips/arch/mips/defconfig-pb1550
 --- linux-2.4.29/arch/mips/defconfig-pb1550    2005-01-19 15:09:29.000000000 +0100
-+++ linux-mips/arch/mips/defconfig-pb1550      2005-02-12 04:05:28.000000000 +0100
++++ linux-mips/arch/mips/defconfig-pb1550      2005-02-03 07:35:29.000000000 +0100
 @@ -22,16 +22,19 @@
  #
  # CONFIG_ACER_PICA_61 is not set
@@ -8225,7 +8294,7 @@ diff -Nur linux-2.4.29/arch/mips/defconfig-yosemite linux-mips/arch/mips/defconf
  # CONFIG_SCSI_SATA_NV is not set
 diff -Nur linux-2.4.29/arch/mips/kernel/cpu-probe.c linux-mips/arch/mips/kernel/cpu-probe.c
 --- linux-2.4.29/arch/mips/kernel/cpu-probe.c  2005-01-19 15:09:29.000000000 +0100
-+++ linux-mips/arch/mips/kernel/cpu-probe.c    2005-01-31 12:59:30.000000000 +0100
++++ linux-mips/arch/mips/kernel/cpu-probe.c    2005-01-30 09:01:28.000000000 +0100
 @@ -105,6 +105,7 @@
        case CPU_AU1100:
        case CPU_AU1500:
@@ -8407,7 +8476,7 @@ diff -Nur linux-2.4.29/arch/mips/kernel/head.S linux-mips/arch/mips/kernel/head.
  
 diff -Nur linux-2.4.29/arch/mips/kernel/scall_o32.S linux-mips/arch/mips/kernel/scall_o32.S
 --- linux-2.4.29/arch/mips/kernel/scall_o32.S  2005-01-19 15:09:29.000000000 +0100
-+++ linux-mips/arch/mips/kernel/scall_o32.S    2005-02-12 04:05:33.000000000 +0100
++++ linux-mips/arch/mips/kernel/scall_o32.S    2005-02-07 22:21:53.000000000 +0100
 @@ -121,15 +121,14 @@
  
  trace_a_syscall:
@@ -8555,39 +8624,76 @@ diff -Nur linux-2.4.29/arch/mips/lib/rtc-std.c linux-mips/arch/mips/lib/rtc-std.
  };
 -
 -EXPORT_SYMBOL(rtc_ops);
-diff -Nur linux-2.4.29/arch/mips/mm/c-r4k.c linux-mips/arch/mips/mm/c-r4k.c
---- linux-2.4.29/arch/mips/mm/c-r4k.c  2005-01-19 15:09:29.000000000 +0100
-+++ linux-mips/arch/mips/mm/c-r4k.c    2005-02-12 04:05:35.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.29/arch/mips/Makefile linux-mips/arch/mips/Makefile
+--- linux-2.4.29/arch/mips/Makefile    2005-01-19 15:09:26.000000000 +0100
++++ linux-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();
+-#
+-# 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.29/arch/mips/mm/cerr-sb1.c linux-mips/arch/mips/mm/cerr-sb1.c
 --- linux-2.4.29/arch/mips/mm/cerr-sb1.c       2004-02-18 14:36:30.000000000 +0100
 +++ linux-mips/arch/mips/mm/cerr-sb1.c 2004-12-13 18:37:23.000000000 +0100
@@ -8635,36 +8741,152 @@ diff -Nur linux-2.4.29/arch/mips/mm/cerr-sb1.c linux-mips/arch/mips/mm/cerr-sb1.
                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.29/arch/mips/mm/tlb-r4k.c linux-mips/arch/mips/mm/tlb-r4k.c
---- linux-2.4.29/arch/mips/mm/tlb-r4k.c        2005-01-19 15:09:29.000000000 +0100
-+++ linux-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
+diff -Nur linux-2.4.29/arch/mips/mm/c-r4k.c linux-mips/arch/mips/mm/c-r4k.c
+--- linux-2.4.29/arch/mips/mm/c-r4k.c  2005-01-19 15:09:29.000000000 +0100
++++ linux-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;
++      }
+       switch (c->cputype) {
+       case CPU_20KC:
+@@ -1069,9 +1076,6 @@
+       probe_pcache();
+       setup_scache();
+-      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.29/arch/mips/mm/tlbex-mips32.S linux-mips/arch/mips/mm/tlbex-mips32.S
+--- linux-2.4.29/arch/mips/mm/tlbex-mips32.S   2004-02-18 14:36:30.000000000 +0100
++++ linux-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.29/arch/mips/mm/tlbex-r4k.S linux-mips/arch/mips/mm/tlbex-r4k.S
+--- linux-2.4.29/arch/mips/mm/tlbex-r4k.S      2004-02-18 14:36:30.000000000 +0100
++++ linux-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.29/arch/mips/mm/tlb-r4k.c linux-mips/arch/mips/mm/tlb-r4k.c
+--- linux-2.4.29/arch/mips/mm/tlb-r4k.c        2005-01-19 15:09:29.000000000 +0100
++++ linux-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;
  
@@ -8964,89 +9186,6 @@ diff -Nur linux-2.4.29/arch/mips/mm/tlb-r4k.c linux-mips/arch/mips/mm/tlb-r4k.c
  
        /*
         * You should never change this register:
-diff -Nur linux-2.4.29/arch/mips/mm/tlbex-mips32.S linux-mips/arch/mips/mm/tlbex-mips32.S
---- linux-2.4.29/arch/mips/mm/tlbex-mips32.S   2004-02-18 14:36:30.000000000 +0100
-+++ linux-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.29/arch/mips/mm/tlbex-r4k.S linux-mips/arch/mips/mm/tlbex-r4k.S
---- linux-2.4.29/arch/mips/mm/tlbex-r4k.S      2004-02-18 14:36:30.000000000 +0100
-+++ linux-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.29/arch/mips64/defconfig linux-mips/arch/mips64/defconfig
 --- linux-2.4.29/arch/mips64/defconfig 2005-01-19 15:09:30.000000000 +0100
 +++ linux-mips/arch/mips64/defconfig   2005-01-20 03:19:22.000000000 +0100
@@ -9216,7 +9355,7 @@ diff -Nur linux-2.4.29/arch/mips64/defconfig-sb1250-swarm linux-mips/arch/mips64
  # CONFIG_X25 is not set
 diff -Nur linux-2.4.29/arch/mips64/kernel/binfmt_elfn32.c linux-mips/arch/mips64/kernel/binfmt_elfn32.c
 --- linux-2.4.29/arch/mips64/kernel/binfmt_elfn32.c    2003-08-25 13:44:40.000000000 +0200
-+++ linux-mips/arch/mips64/kernel/binfmt_elfn32.c      2005-01-31 12:59:30.000000000 +0100
++++ linux-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
@@ -9227,7 +9366,7 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/binfmt_elfn32.c linux-mips/arch/mips64
  #include "../../../fs/binfmt_elf.c"
 diff -Nur linux-2.4.29/arch/mips64/kernel/binfmt_elfo32.c linux-mips/arch/mips64/kernel/binfmt_elfo32.c
 --- linux-2.4.29/arch/mips64/kernel/binfmt_elfo32.c    2003-08-25 13:44:40.000000000 +0200
-+++ linux-mips/arch/mips64/kernel/binfmt_elfo32.c      2005-01-31 12:59:30.000000000 +0100
++++ linux-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
@@ -9325,7 +9464,7 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/head.S linux-mips/arch/mips64/kernel/h
  
 diff -Nur linux-2.4.29/arch/mips64/kernel/ioctl32.c linux-mips/arch/mips64/kernel/ioctl32.c
 --- linux-2.4.29/arch/mips64/kernel/ioctl32.c  2005-01-19 15:09:31.000000000 +0100
-+++ linux-mips/arch/mips64/kernel/ioctl32.c    2005-01-31 12:59:30.000000000 +0100
++++ linux-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),
@@ -9337,7 +9476,7 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/ioctl32.c linux-mips/arch/mips64/kerne
        IOCTL32_DEFAULT(AUTOFS_IOC_ASKUMOUNT),
 diff -Nur linux-2.4.29/arch/mips64/kernel/scall_64.S linux-mips/arch/mips64/kernel/scall_64.S
 --- linux-2.4.29/arch/mips64/kernel/scall_64.S 2005-01-19 15:09:32.000000000 +0100
-+++ linux-mips/arch/mips64/kernel/scall_64.S   2005-02-12 04:05:40.000000000 +0100
++++ linux-mips/arch/mips64/kernel/scall_64.S   2005-02-07 22:21:54.000000000 +0100
 @@ -102,15 +102,14 @@
  
  trace_a_syscall:
@@ -9358,7 +9497,7 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/scall_64.S linux-mips/arch/mips64/kern
        sltu    t0, t0, v0
 diff -Nur linux-2.4.29/arch/mips64/kernel/scall_n32.S linux-mips/arch/mips64/kernel/scall_n32.S
 --- linux-2.4.29/arch/mips64/kernel/scall_n32.S        2005-01-19 15:09:32.000000000 +0100
-+++ linux-mips/arch/mips64/kernel/scall_n32.S  2005-02-12 04:05:40.000000000 +0100
++++ linux-mips/arch/mips64/kernel/scall_n32.S  2005-02-07 22:21:54.000000000 +0100
 @@ -106,15 +106,14 @@
  
  trace_a_syscall:
@@ -9379,7 +9518,7 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/scall_n32.S linux-mips/arch/mips64/ker
        sltu    t0, t0, v0
 diff -Nur linux-2.4.29/arch/mips64/kernel/scall_o32.S linux-mips/arch/mips64/kernel/scall_o32.S
 --- linux-2.4.29/arch/mips64/kernel/scall_o32.S        2005-01-19 15:09:32.000000000 +0100
-+++ linux-mips/arch/mips64/kernel/scall_o32.S  2005-02-12 04:05:41.000000000 +0100
++++ linux-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)
@@ -9400,6 +9539,15 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/scall_o32.S linux-mips/arch/mips64/ker
  
        li      t0, -EMAXERRNO - 1      # error?
        sltu    t0, t0, v0
+@@ -576,6 +575,8 @@
+ sys_call_table:
+       syscalltable
++      .purgem sys
++
+       .macro  sys function, nargs
+       .byte   \nargs
+       .endm
 diff -Nur linux-2.4.29/arch/mips64/kernel/setup.c linux-mips/arch/mips64/kernel/setup.c
 --- linux-2.4.29/arch/mips64/kernel/setup.c    2005-01-19 15:09:32.000000000 +0100
 +++ linux-mips/arch/mips64/kernel/setup.c      2004-11-22 14:38:26.000000000 +0100
@@ -9420,7 +9568,7 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/setup.c linux-mips/arch/mips64/kernel/
  
 diff -Nur linux-2.4.29/arch/mips64/kernel/signal_n32.c linux-mips/arch/mips64/kernel/signal_n32.c
 --- linux-2.4.29/arch/mips64/kernel/signal_n32.c       2005-01-19 15:09:33.000000000 +0100
-+++ linux-mips/arch/mips64/kernel/signal_n32.c 2005-02-12 04:05:41.000000000 +0100
++++ linux-mips/arch/mips64/kernel/signal_n32.c 2005-02-07 22:10:53.000000000 +0100
 @@ -68,7 +68,7 @@
  };
  
@@ -9490,9 +9638,56 @@ diff -Nur linux-2.4.29/arch/mips64/kernel/traps.c linux-mips/arch/mips64/kernel/
 -      current->active_mm = &init_mm;
 +      per_cpu_trap_init();
  }
+diff -Nur linux-2.4.29/arch/mips64/mm/cerr-sb1.c linux-mips/arch/mips64/mm/cerr-sb1.c
+--- linux-2.4.29/arch/mips64/mm/cerr-sb1.c     2004-02-18 14:36:30.000000000 +0100
++++ linux-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] */
+ static const uint64_t mask_72_64[8] = {
+-      0x0738C808099264FFL,
+-      0x38C808099264FF07L,
+-      0xC808099264FF0738L,
+-      0x08099264FF0738C8L,
+-      0x099264FF0738C808L,
+-      0x9264FF0738C80809L,
+-      0x64FF0738C8080992L,
+-      0xFF0738C808099264L
++      0x0738C808099264FFULL,
++      0x38C808099264FF07ULL,
++      0xC808099264FF0738ULL,
++      0x08099264FF0738C8ULL,
++      0x099264FF0738C808ULL,
++      0x9264FF0738C80809ULL,
++      0x64FF0738C8080992ULL,
++      0xFF0738C808099264ULL
+ };
+ /* Calculate the parity on a range of bits */
+@@ -331,9 +331,9 @@
+                                   ((lru >> 4) & 0x3),
+                                   ((lru >> 6) & 0x3));
+               }
+-              va = (taglo & 0xC0000FFFFFFFE000) | addr;
++              va = (taglo & 0xC0000FFFFFFFE000ULL) | addr;
+               if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
+-                      va |= 0x3FFFF00000000000;
++                      va |= 0x3FFFF00000000000ULL;
+               valid = ((taghi >> 29) & 1);
+               if (valid) {
+                       tlo_tmp = taglo & 0xfff3ff;
+@@ -474,7 +474,7 @@
+               : "r" ((way << 13) | addr));
+               taglo = ((unsigned long long)taglohi << 32) | taglolo;
+-              pa = (taglo & 0xFFFFFFE000) | addr;
++              pa = (taglo & 0xFFFFFFE000ULL) | addr;
+               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.29/arch/mips64/mm/c-r4k.c linux-mips/arch/mips64/mm/c-r4k.c
 --- linux-2.4.29/arch/mips64/mm/c-r4k.c        2005-01-19 15:09:33.000000000 +0100
-+++ linux-mips/arch/mips64/mm/c-r4k.c  2005-02-12 04:05:41.000000000 +0100
++++ linux-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.
@@ -9523,53 +9718,65 @@ diff -Nur linux-2.4.29/arch/mips64/mm/c-r4k.c linux-mips/arch/mips64/mm/c-r4k.c
        r4k_blast_dcache_page_setup();
        r4k_blast_dcache_page_indexed_setup();
        r4k_blast_dcache_setup();
-diff -Nur linux-2.4.29/arch/mips64/mm/cerr-sb1.c linux-mips/arch/mips64/mm/cerr-sb1.c
---- linux-2.4.29/arch/mips64/mm/cerr-sb1.c     2004-02-18 14:36:30.000000000 +0100
-+++ linux-mips/arch/mips64/mm/cerr-sb1.c       2004-12-13 18:37:26.000000000 +0100
-@@ -252,14 +252,14 @@
+diff -Nur linux-2.4.29/arch/mips64/mm/tlbex-r4k.S linux-mips/arch/mips64/mm/tlbex-r4k.S
+--- linux-2.4.29/arch/mips64/mm/tlbex-r4k.S    2004-02-18 14:36:30.000000000 +0100
++++ linux-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
  
- /* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
- static const uint64_t mask_72_64[8] = {
--      0x0738C808099264FFL,
--      0x38C808099264FF07L,
--      0xC808099264FF0738L,
--      0x08099264FF0738C8L,
--      0x099264FF0738C808L,
--      0x9264FF0738C80809L,
--      0x64FF0738C8080992L,
--      0xFF0738C808099264L
-+      0x0738C808099264FFULL,
-+      0x38C808099264FF07ULL,
-+      0xC808099264FF0738ULL,
-+      0x08099264FF0738C8ULL,
-+      0x099264FF0738C808ULL,
-+      0x9264FF0738C80809ULL,
-+      0x64FF0738C8080992ULL,
-+      0xFF0738C808099264ULL
- };
+ 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)
  
- /* Calculate the parity on a range of bits */
-@@ -331,9 +331,9 @@
-                                   ((lru >> 4) & 0x3),
-                                   ((lru >> 6) & 0x3));
-               }
--              va = (taglo & 0xC0000FFFFFFFE000) | addr;
-+              va = (taglo & 0xC0000FFFFFFFE000ULL) | addr;
-               if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
--                      va |= 0x3FFFF00000000000;
-+                      va |= 0x3FFFF00000000000ULL;
-               valid = ((taghi >> 29) & 1);
-               if (valid) {
-                       tlo_tmp = taglo & 0xfff3ff;
-@@ -474,7 +474,7 @@
-               : "r" ((way << 13) | addr));
+@@ -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)
  
-               taglo = ((unsigned long long)taglohi << 32) | taglolo;
--              pa = (taglo & 0xFFFFFFE000) | addr;
-+              pa = (taglo & 0xFFFFFFE000ULL) | addr;
-               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.29/arch/mips64/mm/tlb-r4k.c linux-mips/arch/mips64/mm/tlb-r4k.c
 --- linux-2.4.29/arch/mips64/mm/tlb-r4k.c      2005-01-19 15:09:33.000000000 +0100
 +++ linux-mips/arch/mips64/mm/tlb-r4k.c        2004-11-25 23:18:38.000000000 +0100
@@ -9924,156 +10131,6 @@ diff -Nur linux-2.4.29/arch/mips64/mm/tlb-r4k.c linux-mips/arch/mips64/mm/tlb-r4
        probe_tlb(config);
        write_c0_pagemask(PM_DEFAULT_MASK);
        write_c0_wired(0);
-diff -Nur linux-2.4.29/arch/mips64/mm/tlbex-r4k.S linux-mips/arch/mips64/mm/tlbex-r4k.S
---- linux-2.4.29/arch/mips64/mm/tlbex-r4k.S    2004-02-18 14:36:30.000000000 +0100
-+++ linux-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.29/drivers/char/Config.in linux-mips/drivers/char/Config.in
---- linux-2.4.29/drivers/char/Config.in        2004-08-08 01:26:04.000000000 +0200
-+++ linux-mips/drivers/char/Config.in  2005-02-12 04:06:18.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.29/drivers/char/Makefile linux-mips/drivers/char/Makefile
---- linux-2.4.29/drivers/char/Makefile 2004-08-08 01:26:04.000000000 +0200
-+++ linux-mips/drivers/char/Makefile   2005-02-12 04:06:18.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.29/drivers/char/au1000_gpio.c linux-mips/drivers/char/au1000_gpio.c
 --- linux-2.4.29/drivers/char/au1000_gpio.c    2003-08-25 13:44:41.000000000 +0200
 +++ linux-mips/drivers/char/au1000_gpio.c      2003-12-20 14:18:51.000000000 +0100
@@ -10088,7 +10145,7 @@ diff -Nur linux-2.4.29/drivers/char/au1000_gpio.c linux-mips/drivers/char/au1000
  };
 diff -Nur linux-2.4.29/drivers/char/au1550_psc_spi.c linux-mips/drivers/char/au1550_psc_spi.c
 --- linux-2.4.29/drivers/char/au1550_psc_spi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/drivers/char/au1550_psc_spi.c   2005-02-12 04:06:18.000000000 +0100
++++ linux-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.
@@ -10554,8 +10611,48 @@ diff -Nur linux-2.4.29/drivers/char/au1550_psc_spi.c linux-mips/drivers/char/au1
 +}
 +
 +
-+module_init(au1550spi_init);
-+module_exit(au1550spi_exit);
++module_init(au1550spi_init);
++module_exit(au1550spi_exit);
+diff -Nur linux-2.4.29/drivers/char/Config.in linux-mips/drivers/char/Config.in
+--- linux-2.4.29/drivers/char/Config.in        2004-08-08 01:26:04.000000000 +0200
++++ linux-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.29/drivers/char/decserial.c linux-mips/drivers/char/decserial.c
 --- linux-2.4.29/drivers/char/decserial.c      2003-08-25 13:44:41.000000000 +0200
 +++ linux-mips/drivers/char/decserial.c        2004-09-28 02:53:01.000000000 +0200
@@ -12544,6 +12641,57 @@ diff -Nur linux-2.4.29/drivers/char/ip27-rtc.c linux-mips/drivers/char/ip27-rtc.
 +MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");
 +MODULE_DESCRIPTION("SGI IP27 M48T35 RTC driver");
 +MODULE_LICENSE("GPL");
+diff -Nur linux-2.4.29/drivers/char/Makefile linux-mips/drivers/char/Makefile
+--- linux-2.4.29/drivers/char/Makefile 2004-08-08 01:26:04.000000000 +0200
++++ linux-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.29/drivers/char/mips_rtc.c linux-mips/drivers/char/mips_rtc.c
 --- linux-2.4.29/drivers/char/mips_rtc.c       2004-01-05 14:53:56.000000000 +0100
 +++ linux-mips/drivers/char/mips_rtc.c 2004-06-28 14:54:53.000000000 +0200
@@ -12796,7 +12944,7 @@ diff -Nur linux-2.4.29/drivers/char/vr41xx_keyb.c linux-mips/drivers/char/vr41xx
  
 diff -Nur linux-2.4.29/drivers/i2c/Config.in linux-mips/drivers/i2c/Config.in
 --- linux-2.4.29/drivers/i2c/Config.in 2004-04-14 15:05:29.000000000 +0200
-+++ linux-mips/drivers/i2c/Config.in   2005-02-12 04:06:32.000000000 +0100
++++ linux-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
@@ -12806,31 +12954,11 @@ diff -Nur linux-2.4.29/drivers/i2c/Config.in linux-mips/drivers/i2c/Config.in
 +      dep_tristate 'Au1550/Au1200 SMBus interface' CONFIG_I2C_ALGO_AU1550 $CONFIG_I2C
 +   fi
   
- # 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.29/drivers/i2c/Makefile linux-mips/drivers/i2c/Makefile
---- linux-2.4.29/drivers/i2c/Makefile  2004-02-18 14:36:31.000000000 +0100
-+++ linux-mips/drivers/i2c/Makefile    2005-02-12 04:06:32.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.29/drivers/i2c/i2c-algo-au1550.c linux-mips/drivers/i2c/i2c-algo-au1550.c
 --- linux-2.4.29/drivers/i2c/i2c-algo-au1550.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/drivers/i2c/i2c-algo-au1550.c   2005-02-12 04:06:32.000000000 +0100
++++ linux-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
@@ -13174,7 +13302,7 @@ diff -Nur linux-2.4.29/drivers/i2c/i2c-algo-au1550.c linux-mips/drivers/i2c/i2c-
 +MODULE_LICENSE("GPL");
 diff -Nur linux-2.4.29/drivers/i2c/i2c-au1550.c linux-mips/drivers/i2c/i2c-au1550.c
 --- linux-2.4.29/drivers/i2c/i2c-au1550.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/drivers/i2c/i2c-au1550.c        2005-02-12 04:06:32.000000000 +0100
++++ linux-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
@@ -13354,6 +13482,26 @@ diff -Nur linux-2.4.29/drivers/i2c/i2c-core.c linux-mips/drivers/i2c/i2c-core.c
        /* -------------- proc interface ---- */
  #ifdef CONFIG_I2C_PROC
        sensors_init();
+diff -Nur linux-2.4.29/drivers/i2c/Makefile linux-mips/drivers/i2c/Makefile
+--- linux-2.4.29/drivers/i2c/Makefile  2004-02-18 14:36:31.000000000 +0100
++++ linux-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.29/drivers/media/video/indycam.c linux-mips/drivers/media/video/indycam.c
 --- linux-2.4.29/drivers/media/video/indycam.c 2004-02-18 14:36:31.000000000 +0100
 +++ linux-mips/drivers/media/video/indycam.c   2004-12-09 21:32:05.000000000 +0100
@@ -13761,33 +13909,9 @@ diff -Nur linux-2.4.29/drivers/mtd/maps/Config.in linux-mips/drivers/mtd/maps/Co
     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.29/drivers/mtd/maps/Makefile linux-mips/drivers/mtd/maps/Makefile
---- linux-2.4.29/drivers/mtd/maps/Makefile     2003-06-13 16:51:34.000000000 +0200
-+++ linux-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.29/drivers/mtd/maps/db1x00-flash.c linux-mips/drivers/mtd/maps/db1x00-flash.c
 --- linux-2.4.29/drivers/mtd/maps/db1x00-flash.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/drivers/mtd/maps/db1x00-flash.c 2005-02-12 04:06:46.000000000 +0100
++++ linux-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
@@ -14373,6 +14497,30 @@ diff -Nur linux-2.4.29/drivers/mtd/maps/lasat.c linux-mips/drivers/mtd/maps/lasa
        }
  }
  
+diff -Nur linux-2.4.29/drivers/mtd/maps/Makefile linux-mips/drivers/mtd/maps/Makefile
+--- linux-2.4.29/drivers/mtd/maps/Makefile     2003-06-13 16:51:34.000000000 +0200
++++ linux-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.29/drivers/mtd/maps/mirage-flash.c linux-mips/drivers/mtd/maps/mirage-flash.c
 --- linux-2.4.29/drivers/mtd/maps/mirage-flash.c       1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/drivers/mtd/maps/mirage-flash.c 2003-12-22 04:37:22.000000000 +0100
@@ -16206,7 +16354,7 @@ diff -Nur linux-2.4.29/drivers/net/hamradio/hdlcdrv.c linux-mips/drivers/net/ham
        if (s->skb)
 diff -Nur linux-2.4.29/drivers/net/irda/au1k_ir.c linux-mips/drivers/net/irda/au1k_ir.c
 --- linux-2.4.29/drivers/net/irda/au1k_ir.c    2004-02-18 14:36:31.000000000 +0100
-+++ linux-mips/drivers/net/irda/au1k_ir.c      2005-02-12 04:06:52.000000000 +0100
++++ linux-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))
@@ -16247,66 +16395,9 @@ diff -Nur linux-2.4.29/drivers/pci/pci.c linux-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.29/drivers/pcmcia/Config.in linux-mips/drivers/pcmcia/Config.in
---- linux-2.4.29/drivers/pcmcia/Config.in      2004-02-18 14:36:31.000000000 +0100
-+++ linux-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.29/drivers/pcmcia/Makefile linux-mips/drivers/pcmcia/Makefile
---- linux-2.4.29/drivers/pcmcia/Makefile       2004-02-18 14:36:31.000000000 +0100
-+++ linux-mips/drivers/pcmcia/Makefile 2005-02-12 04:06:57.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.29/drivers/pcmcia/au1000_db1x00.c linux-mips/drivers/pcmcia/au1000_db1x00.c
 --- linux-2.4.29/drivers/pcmcia/au1000_db1x00.c        2005-01-19 15:09:57.000000000 +0100
-+++ linux-mips/drivers/pcmcia/au1000_db1x00.c  2005-02-12 04:06:57.000000000 +0100
++++ linux-mips/drivers/pcmcia/au1000_db1x00.c  2005-02-03 07:35:30.000000000 +0100
 @@ -1,6 +1,6 @@
  /*
   *
@@ -16359,26 +16450,83 @@ diff -Nur linux-2.4.29/drivers/pcmcia/au1000_db1x00.c linux-mips/drivers/pcmcia/
 +              inserted = BOARD_CARD_INSERTED(1);
        }
  
-       DEBUG(KERN_DEBUG "db1x00 socket %d: inserted %d, vs %d\n", 
-@@ -144,16 +155,9 @@
-       if(info->sock > PCMCIA_MAX_SOCK) return -1;
+       DEBUG(KERN_DEBUG "db1x00 socket %d: inserted %d, vs %d\n", 
+@@ -144,16 +155,9 @@
+       if(info->sock > PCMCIA_MAX_SOCK) return -1;
+       if(info->sock == 0)
+-#ifdef CONFIG_MIPS_DB1550
+-              info->irq = AU1000_GPIO_3;
++              info->irq = BOARD_PC0_INT;
+       else 
+-              info->irq = AU1000_GPIO_5;
+-#else
+-              info->irq = AU1000_GPIO_2;
+-      else 
+-              info->irq = AU1000_GPIO_5;
+-#endif
+-
++              info->irq = BOARD_PC1_INT;
+       return 0;
+ }
+diff -Nur linux-2.4.29/drivers/pcmcia/Config.in linux-mips/drivers/pcmcia/Config.in
+--- linux-2.4.29/drivers/pcmcia/Config.in      2004-02-18 14:36:31.000000000 +0100
++++ linux-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.29/drivers/pcmcia/Makefile linux-mips/drivers/pcmcia/Makefile
+--- linux-2.4.29/drivers/pcmcia/Makefile       2004-02-18 14:36:31.000000000 +0100
++++ linux-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
  
-       if(info->sock == 0)
--#ifdef CONFIG_MIPS_DB1550
--              info->irq = AU1000_GPIO_3;
-+              info->irq = BOARD_PC0_INT;
-       else 
--              info->irq = AU1000_GPIO_5;
--#else
--              info->irq = AU1000_GPIO_2;
--      else 
--              info->irq = AU1000_GPIO_5;
--#endif
--
-+              info->irq = BOARD_PC1_INT;
-       return 0;
- }
+ 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.29/drivers/pcmcia/vrc4171_card.c linux-mips/drivers/pcmcia/vrc4171_card.c
 --- linux-2.4.29/drivers/pcmcia/vrc4171_card.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-mips/drivers/pcmcia/vrc4171_card.c   2004-01-19 16:54:58.000000000 +0100
@@ -17288,7 +17436,7 @@ diff -Nur linux-2.4.29/drivers/scsi/NCR53C9x.h linux-mips/drivers/scsi/NCR53C9x.
  struct ESP_regs {
 diff -Nur linux-2.4.29/drivers/sound/au1550_i2s.c linux-mips/drivers/sound/au1550_i2s.c
 --- linux-2.4.29/drivers/sound/au1550_i2s.c    2005-01-19 15:10:04.000000000 +0100
-+++ linux-mips/drivers/sound/au1550_i2s.c      2005-02-12 04:07:11.000000000 +0100
++++ linux-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.
   *
@@ -18162,7 +18310,7 @@ diff -Nur linux-2.4.29/drivers/sound/au1550_i2s.c linux-mips/drivers/sound/au155
   err_dma2:
 diff -Nur linux-2.4.29/drivers/sound/au1550_psc.c linux-mips/drivers/sound/au1550_psc.c
 --- linux-2.4.29/drivers/sound/au1550_psc.c    2005-01-19 15:10:04.000000000 +0100
-+++ linux-mips/drivers/sound/au1550_psc.c      2005-01-31 12:59:41.000000000 +0100
++++ linux-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.
   *
@@ -19103,63 +19251,10 @@ diff -Nur linux-2.4.29/drivers/tc/zs.h linux-mips/drivers/tc/zs.h
        unsigned char           *xmit_buf;
        int                     xmit_head;
        int                     xmit_tail;
-diff -Nur linux-2.4.29/drivers/video/Config.in linux-mips/drivers/video/Config.in
---- linux-2.4.29/drivers/video/Config.in       2004-02-18 14:36:31.000000000 +0100
-+++ linux-mips/drivers/video/Config.in 2005-02-12 04:07:18.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.29/drivers/video/Makefile linux-mips/drivers/video/Makefile
---- linux-2.4.29/drivers/video/Makefile        2004-02-18 14:36:31.000000000 +0100
-+++ linux-mips/drivers/video/Makefile  2005-02-12 04:07:18.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.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200fb.c
 --- linux-2.4.29/drivers/video/au1200fb.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-mips/drivers/video/au1200fb.c        2005-02-11 22:16:44.000000000 +0100
-@@ -0,0 +1,1599 @@
++++ linux-mips/drivers/video/au1200fb.c        2005-03-13 09:04:16.000000000 +0100
+@@ -0,0 +1,1564 @@
 +/*
 + * BRIEF MODULE DESCRIPTION
 + *    Au1200 LCD Driver.
@@ -19213,18 +19308,6 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +#include <video/fbcon-cfb32.h>
 +#define CMAPSIZE 16
 +
-+#ifdef CONFIG_MIPS_PB1200
-+#include <asm/pb1200.h>
-+#endif
-+
-+#ifdef CONFIG_MIPS_DB1200
-+#include <asm/db1200.h>
-+#endif
-+
-+#ifdef CONFIG_MIPS_FICMMP
-+#include <asm/ficmmp.h>
-+#endif
-+
 +#define AU1200_LCD_GET_WINENABLE      1
 +#define AU1200_LCD_SET_WINENABLE      2
 +#define AU1200_LCD_GET_WINLOCATION    3
@@ -19267,7 +19350,7 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +
 +AU1200_LCD *lcd = (AU1200_LCD *)AU1200_LCD_ADDR;
 +static int window_index = 0; /* default is zero */
-+static int panel_index = 0; /* default is zero */
++static int panel_index = -1; /* default is call board_au1200fb_panel */
 +
 +struct window_settings
 +{
@@ -19314,15 +19397,15 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +#define LCD_WINCTRL1_PO_16BPP LCD_WINCTRL1_PO_01
 +#endif
 +
-+static int panel_init (void);
-+static int panel_shutdown (void);
-+
++extern int board_au1200fb_panel (void);
++extern int board_au1200fb_panel_init (void);
++extern int board_au1200fb_panel_shutdown (void);
 +
 +#if defined(CONFIG_FOCUS_ENHANCEMENTS)
-+extern int focus_init_hdtv(void);
-+extern int focus_init_component(void);
-+extern int focus_init_cvsv(void);
-+extern int focus_shutdown(void);
++extern int board_au1200fb_focus_init_hdtv(void);
++extern int board_au1200fb_focus_init_component(void);
++extern int board_au1200fb_focus_init_cvsv(void);
++extern int board_au1200fb_focus_shutdown(void);
 +#endif
 +
 +/*
@@ -19502,8 +19585,8 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              /* mode_toyclksrc   */ 0x00000004, /* 96MHz AUXPLL directly */
 +              /* mode_backlight   */ 0x00000000,
 +              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
-+              /* device_init          */ panel_init,
-+              /* device_shutdown      */ panel_shutdown,
++              /* device_init          */ board_au1200fb_panel_init,
++              /* device_shutdown      */ board_au1200fb_panel_shutdown,
 +      },
 +
 +      { /* Index 6: Toshiba 640x480 TFT */
@@ -19520,8 +19603,8 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              /* mode_toyclksrc   */ 0x00000004, /* 96MHz AUXPLL directly */
 +              /* mode_backlight   */ 0x00000000,
 +              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
-+              /* device_init          */ panel_init,
-+              /* device_shutdown      */ panel_shutdown,
++              /* device_init          */ board_au1200fb_panel_init,
++              /* device_shutdown      */ board_au1200fb_panel_shutdown,
 +      },
 +
 +      { /* Index 7: Sharp 320x240 TFT */
@@ -19538,11 +19621,28 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              /* mode_toyclksrc   */ 0x00000004, /* 96MHz AUXPLL directly */
 +              /* mode_backlight   */ 0x00000000,
 +              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
-+              /* device_init          */ panel_init,
-+              /* device_shutdown      */ panel_shutdown,
++              /* device_init          */ board_au1200fb_panel_init,
++              /* device_shutdown      */ board_au1200fb_panel_shutdown,
++      },
++      { /* Index 8: Toppoly TD070WGCB2 7" 854x480 TFT */
++              "Toppoly_TD070WGCB2",
++              854, 480,
++              /* mode_screen          */ LCD_SCREEN_SX_N(854) | LCD_SCREEN_SY_N(480),
++              /* mode_horztiming      */ LCD_HORZTIMING_HND2_N(44) | LCD_HORZTIMING_HND1_N(44) | LCD_HORZTIMING_HPW_N(114),
++              /* mode_verttiming      */ LCD_VERTTIMING_VND2_N(20) | LCD_VERTTIMING_VND1_N(21) | LCD_VERTTIMING_VPW_N(4),
++              /* mode_clkcontrol      */ 0x00020001, /* /4=24Mhz */
++              /* mode_pwmdiv          */ 0x8000063f,
++              /* mode_pwmhi           */ 0x03400000,
++              /* mode_outmask         */ 0x00FCFCFC,
++              /* mode_fifoctrl        */ 0x2f2f2f2f,
++              /* mode_toyclksrc   */ 0x00000004, /* AUXPLL directly */
++              /* mode_backlight   */ 0x00000000,
++              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
++              /* device_init          */ board_au1200fb_panel_init,
++              /* device_shutdown      */ board_au1200fb_panel_shutdown,
 +      },
 +#if defined(CONFIG_FOCUS_ENHANCEMENTS)
-+      { /* Index 8: Focus FS453 TV-Out 640x480 */
++      { /* Index 9: Focus FS453 TV-Out 640x480 */
 +              "FS453_640x480 (Composite/S-Video)",
 +              640, 480,
 +              /* mode_screen          */ LCD_SCREEN_SX_N(640) | LCD_SCREEN_SY_N(480),
@@ -19556,11 +19656,11 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              /* mode_toyclksrc   */ 0x00000000,
 +              /* mode_backlight   */ 0x00000000,
 +              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
-+              /* device_init          */ focus_init_cvsv,
-+              /* device_shutdown      */ focus_shutdown,
++              /* device_init          */ board_au1200fb_focus_init_cvsv,
++              /* device_shutdown      */ board_au1200fb_focus_shutdown,
 +      },
 +      
-+      { /* Index 9: Focus FS453 TV-Out 640x480 */
++      { /* Index 10: Focus FS453 TV-Out 640x480 */
 +              "FS453_640x480 (Component Video)",
 +              640, 480,
 +              /* mode_screen          */ LCD_SCREEN_SX_N(640) | LCD_SCREEN_SY_N(480),
@@ -19574,11 +19674,11 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              /* mode_toyclksrc   */ 0x00000000,
 +              /* mode_backlight   */ 0x00000000,
 +              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
-+              /* device_init          */ focus_init_component,
-+              /* device_shutdown      */ focus_shutdown,
++              /* device_init          */ board_au1200fb_focus_init_component,
++              /* device_shutdown      */ board_au1200fb_focus_shutdown,
 +      },
 +      
-+      { /* Index 10: Focus FS453 TV-Out 640x480 */
++      { /* Index 11: Focus FS453 TV-Out 640x480 */
 +              "FS453_640x480 (HDTV)",
 +              720, 480,
 +              /* mode_screen          */ LCD_SCREEN_SX_N(720) | LCD_SCREEN_SY_N(480),
@@ -19592,8 +19692,8 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              /* mode_toyclksrc   */ 0x00000000,
 +              /* mode_backlight   */ 0x00000000,
 +              /* mode_auxpll          */ 8, /* 96MHz AUXPLL */
-+              /* device_init          */ focus_init_hdtv,
-+              /* device_shutdown      */ focus_shutdown,
++              /* device_init          */ board_au1200fb_focus_init_hdtv,
++              /* device_shutdown      */ board_au1200fb_focus_shutdown,
 +      },
 +#endif
 +};
@@ -19666,36 +19766,6 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +};
 +
 +
-+static int panel_init (void)
-+{
-+#if defined(CONFIG_MIPS_PB1200) || defined(CONFIG_MIPS_DB1200)
-+      /* Apply power */
-+    BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR;
-+      bcsr->board |= (BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD | BCSR_BOARD_LCDBL);
-+      /*printk("panel_init(%s)\n", panel->name); */
-+#elif defined(CONFIG_MIPS_FICMMP)
-+      /*Enable data buffers*/
-+      ficmmp_config_clear(FICMMP_CONFIG_LCMDATAOUT);
-+      /*Take LCD out of reset*/
-+      ficmmp_config_set(FICMMP_CONFIG_LCMPWREN | FICMMP_CONFIG_LCMEN);
-+#endif
-+}
-+
-+static int panel_shutdown (void)
-+{
-+#if defined(CONFIG_MIPS_PB1200) || defined(CONFIG_MIPS_DB1200)
-+      /* Remove power */
-+    BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR;
-+      bcsr->board &= ~(BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD | BCSR_BOARD_LCDBL);
-+      /*printk("panel_shutdown(%s)\n", panel->name);*/
-+#elif defined(CONFIG_MIPS_FICMMP)
-+      /*Disable data buffers*/
-+      ficmmp_config_set(FICMMP_CONFIG_LCMDATAOUT);
-+      /*Put LCD in reset, remove power*/
-+      ficmmp_config_clear(FICMMP_CONFIG_LCMEN | FICMMP_CONFIG_LCMPWREN);
-+#endif
-+}
-+
 +static int
 +winbpp (unsigned int winctrl1)
 +{
@@ -20071,21 +20141,14 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +      switch (blank_mode) {
 +      case VESA_NO_BLANKING:
 +              /* printk("turn on panel\n"); */
-+              if (panel->device_init) panel->device_init();
-+        lcd->screen |= LCD_SCREEN_SEN;
-+              /* FIX!!! Need panel poweron callback */
++              au1200_setpanel(panel);
 +              break;
 +
 +      case VESA_VSYNC_SUSPEND:
 +      case VESA_HSYNC_SUSPEND:
 +      case VESA_POWERDOWN:
 +              /* printk("turn off panel\n"); */
-+              /* FIX!!! Need panel poweroff callback */
-+              if (panel->device_shutdown) panel->device_shutdown();
-+        lcd->screen &= ~LCD_SCREEN_SEN;
-+              while ((lcd->intstatus & LCD_INT_SD) == 0)
-+                      ;
-+              lcd->intstatus = LCD_INT_SD;
++              au1200_setpanel(NULL);
 +        break;
 +      default: 
 +              break;
@@ -20318,6 +20381,9 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +              if (panel->device_shutdown != NULL) panel->device_shutdown();
 +      }
 +
++      /* Check if only needing to turn off panel */
++      if (panel == NULL) return;
++
 +      panel = newpanel;
 +      
 +      printk("Panel(%s), %dx%d\n", panel->name, panel->Xres, panel->Yres);
@@ -20325,9 +20391,11 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +      /*
 +       * Setup clocking if internal LCD clock source (assumes sys_auxpll valid)
 +       */
-+      /* FIX!!! if (!(panel->mode_clkcontrol & LCD_CLKCONTROL_EXT)) */
++      if (!(panel->mode_clkcontrol & LCD_CLKCONTROL_EXT))
 +      {
 +              uint32 sys_clksrc;
++              /* WARNING! This should really be a check since other peripherals can 
++                 be affected by changins sys_auxpll  */
 +              au_writel(panel->mode_auxpll, SYS_AUXPLL);
 +              sys_clksrc = au_readl(SYS_CLKSRC) & ~0x0000001f; 
 +              sys_clksrc |= panel->mode_toyclksrc;
@@ -20571,6 +20639,7 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +
 +int __init au1200fb_init(void)
 +{
++      int num_panels = sizeof(panels)/sizeof(struct panel_settings);
 +      struct au1200fb_info *fb_info;
 +      struct display *disp;
 +      struct au1200fb_par *par;
@@ -20580,6 +20649,12 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +    /*
 +      * Get the panel information/display mode
 +      */
++      if (panel_index < 0)
++              panel_index = board_au1200fb_panel();
++      if ((panel_index < 0) || (panel_index >= num_panels)) {
++              printk("ERROR: INVALID PANEL %d\n", panel_index);
++              return -EINVAL;
++      }
 +      panel = &panels[panel_index];
 +      win = &windows[window_index];
 +
@@ -20697,37 +20772,22 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.c linux-mips/drivers/video/au1200f
 +      for(this_opt=strtok(options, ","); this_opt;
 +          this_opt=strtok(NULL, ",")) {
 +              if (!strncmp(this_opt, "panel:", 6)) {
-+#if defined(CONFIG_MIPS_PB1200) || defined(CONFIG_MIPS_DB1200)
-+                      /* Read Pb1200 Rotary Switch S11 to obtain default panel */
-+#ifdef CONFIG_MIPS_PB1200
-+                      if (!strncmp(this_opt+6, "s11", 3))
-+#endif
-+#ifdef CONFIG_MIPS_DB1200
-+                      if (!strncmp(this_opt+6, "s7", 3))
-+#endif
-+                      {
-+                              BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR;
-+                              int p;
-+
-+                              p = bcsr->switches;
-+                              p >>= 8;
-+                              p &= 0x0F;
-+                              if (p >= num_panels) p = 0;
-+                              panel_index = p;
++                      int i;
++                      long int li;
++                      char *endptr;
++                      this_opt += 6;
++
++                      /* Panel name can be name, "bs" for board-switch, or number/index */
++                      li = simple_strtol(this_opt, &endptr, 0);
++                      if (*endptr == '\0') {
++                              panel_index = (int)li;
++                      }
++                      else if (strcmp(this_opt, "bs") == 0) {
++                              panel_index = board_au1200fb_panel();
 +                      }
 +                      else
-+#elif defined(CONFIG_MIPS_FICMMP)
-+      au1xxx_gpio_tristate(6);
-+      
-+      if(au1xxx_gpio_read(12) == 0)
-+              panel_index = 8;
-+      else
-+              panel_index = 7;
-+#endif
-+                      /* Get the panel name, everything else if fixed */
 +                      for (i=0; i<num_panels; i++) {
-+                              if (!strncmp(this_opt+6, panels[i].name, 
-+                                                      strlen(this_opt))) {
++                              if (!strcmp(this_opt, panels[i].name)) {
 +                                      panel_index = i;
 +                                      break;
 +                              }
@@ -21051,9 +21111,51 @@ diff -Nur linux-2.4.29/drivers/video/au1200fb.h linux-mips/drivers/video/au1200f
 +
 +/********************************************************************/
 +#endif /* _AU1200LCD_H */
+diff -Nur linux-2.4.29/drivers/video/Config.in linux-mips/drivers/video/Config.in
+--- linux-2.4.29/drivers/video/Config.in       2004-02-18 14:36:31.000000000 +0100
++++ linux-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.29/drivers/video/fbmem.c linux-mips/drivers/video/fbmem.c
 --- linux-2.4.29/drivers/video/fbmem.c 2005-01-19 15:10:09.000000000 +0100
-+++ linux-mips/drivers/video/fbmem.c   2005-02-12 04:07:19.000000000 +0100
++++ linux-mips/drivers/video/fbmem.c   2005-02-11 22:16:44.000000000 +0100
 @@ -139,6 +139,8 @@
  extern int e1356fb_setup(char*);
  extern int au1100fb_init(void);
@@ -21352,6 +21454,17 @@ diff -Nur linux-2.4.29/drivers/video/ims332.h linux-mips/drivers/video/ims332.h
 +                              IMS332_CTRL_A_BOOT_ENABLE_VTG);
 +      printk("\n");
 +}
+diff -Nur linux-2.4.29/drivers/video/Makefile linux-mips/drivers/video/Makefile
+--- linux-2.4.29/drivers/video/Makefile        2004-02-18 14:36:31.000000000 +0100
++++ linux-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.29/drivers/video/maxinefb.h linux-mips/drivers/video/maxinefb.h
 --- linux-2.4.29/drivers/video/maxinefb.h      2003-08-25 13:44:42.000000000 +0200
 +++ linux-mips/drivers/video/maxinefb.h        1970-01-01 01:00:00.000000000 +0100
@@ -21992,29 +22105,147 @@ diff -Nur linux-2.4.29/include/asm-ia64/param.h linux-mips/include/asm-ia64/para
  
 +#include <linux/config.h>
 +
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
++#ifdef __KERNEL__
++#define hz_to_std(a) (a)
++#endif
++
+ #define EXEC_PAGESIZE 65536
+ #ifndef NGROUPS
+diff -Nur linux-2.4.29/include/asm-m68k/param.h linux-mips/include/asm-m68k/param.h
+--- linux-2.4.29/include/asm-m68k/param.h      2001-01-04 22:00:55.000000000 +0100
++++ linux-mips/include/asm-m68k/param.h        2001-01-11 05:02:45.000000000 +0100
+@@ -3,6 +3,9 @@
+ #ifndef HZ
+ #define HZ 100
++#ifdef __KERNEL__
++#define hz_to_std(a) (a)
++#endif
+ #endif
+ #define EXEC_PAGESIZE 8192
+diff -Nur linux-2.4.29/include/asm-mips/au1000_gpio.h linux-mips/include/asm-mips/au1000_gpio.h
+--- linux-2.4.29/include/asm-mips/au1000_gpio.h        2002-11-29 00:53:15.000000000 +0100
++++ linux-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 EXEC_PAGESIZE 65536
- #ifndef NGROUPS
-diff -Nur linux-2.4.29/include/asm-m68k/param.h linux-mips/include/asm-m68k/param.h
---- linux-2.4.29/include/asm-m68k/param.h      2001-01-04 22:00:55.000000000 +0100
-+++ linux-mips/include/asm-m68k/param.h        2001-01-11 05:02:45.000000000 +0100
-@@ -3,6 +3,9 @@
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
++#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
  
- #define EXEC_PAGESIZE 8192
+ #endif
 diff -Nur linux-2.4.29/include/asm-mips/au1000.h linux-mips/include/asm-mips/au1000.h
 --- linux-2.4.29/include/asm-mips/au1000.h     2005-01-19 15:10:11.000000000 +0100
-+++ linux-mips/include/asm-mips/au1000.h       2005-01-31 12:59:48.000000000 +0100
++++ linux-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
@@ -22682,127 +22913,9 @@ diff -Nur linux-2.4.29/include/asm-mips/au1000.h linux-mips/include/asm-mips/au1
 +
 +#endif
 +
-diff -Nur linux-2.4.29/include/asm-mips/au1000_gpio.h linux-mips/include/asm-mips/au1000_gpio.h
---- linux-2.4.29/include/asm-mips/au1000_gpio.h        2002-11-29 00:53:15.000000000 +0100
-+++ linux-mips/include/asm-mips/au1000_gpio.h  2005-01-31 12:59:48.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.29/include/asm-mips/au1000_pcmcia.h linux-mips/include/asm-mips/au1000_pcmcia.h
 --- linux-2.4.29/include/asm-mips/au1000_pcmcia.h      2005-01-19 15:10:11.000000000 +0100
-+++ linux-mips/include/asm-mips/au1000_pcmcia.h        2005-01-31 12:59:48.000000000 +0100
++++ linux-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
  
@@ -22856,7 +22969,7 @@ diff -Nur linux-2.4.29/include/asm-mips/au1000_pcmcia.h linux-mips/include/asm-m
  struct pcmcia_state {
 diff -Nur linux-2.4.29/include/asm-mips/au1100_mmc.h linux-mips/include/asm-mips/au1100_mmc.h
 --- linux-2.4.29/include/asm-mips/au1100_mmc.h 2005-01-19 15:10:11.000000000 +0100
-+++ linux-mips/include/asm-mips/au1100_mmc.h   2005-01-31 12:59:48.000000000 +0100
++++ linux-mips/include/asm-mips/au1100_mmc.h   2005-01-30 09:01:28.000000000 +0100
 @@ -39,16 +39,22 @@
  #define __ASM_AU1100_MMC_H
  
@@ -22900,7 +23013,7 @@ diff -Nur linux-2.4.29/include/asm-mips/au1100_mmc.h linux-mips/include/asm-mips
  
 diff -Nur linux-2.4.29/include/asm-mips/au1xxx_dbdma.h linux-mips/include/asm-mips/au1xxx_dbdma.h
 --- linux-2.4.29/include/asm-mips/au1xxx_dbdma.h       2005-01-19 15:10:11.000000000 +0100
-+++ linux-mips/include/asm-mips/au1xxx_dbdma.h 2005-01-31 12:59:48.000000000 +0100
++++ linux-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
@@ -23081,7 +23194,7 @@ diff -Nur linux-2.4.29/include/asm-mips/au1xxx_gpio.h linux-mips/include/asm-mip
 +#endif //__AU1XXX_GPIO_H
 diff -Nur linux-2.4.29/include/asm-mips/au1xxx_psc.h linux-mips/include/asm-mips/au1xxx_psc.h
 --- linux-2.4.29/include/asm-mips/au1xxx_psc.h 2005-01-19 15:10:11.000000000 +0100
-+++ linux-mips/include/asm-mips/au1xxx_psc.h   2005-01-31 12:59:49.000000000 +0100
++++ linux-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
@@ -23105,7 +23218,7 @@ diff -Nur linux-2.4.29/include/asm-mips/au1xxx_psc.h linux-mips/include/asm-mips
  #define PSC_I2SCFG_DIV_MASK   (3 << 13)
 diff -Nur linux-2.4.29/include/asm-mips/bootinfo.h linux-mips/include/asm-mips/bootinfo.h
 --- linux-2.4.29/include/asm-mips/bootinfo.h   2004-02-18 14:36:32.000000000 +0100
-+++ linux-mips/include/asm-mips/bootinfo.h     2005-01-31 12:59:49.000000000 +0100
++++ linux-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 */
@@ -23336,7 +23449,7 @@ diff -Nur linux-2.4.29/include/asm-mips/db1200.h linux-mips/include/asm-mips/db1
 +
 diff -Nur linux-2.4.29/include/asm-mips/db1x00.h linux-mips/include/asm-mips/db1x00.h
 --- linux-2.4.29/include/asm-mips/db1x00.h     2005-01-19 15:10:11.000000000 +0100
-+++ linux-mips/include/asm-mips/db1x00.h       2005-01-31 12:59:49.000000000 +0100
++++ linux-mips/include/asm-mips/db1x00.h       2005-01-30 09:06:19.000000000 +0100
 @@ -1,5 +1,5 @@
  /*
 - * AMD Alchemy DB1x00 Reference Boards
@@ -23808,7 +23921,7 @@ diff -Nur linux-2.4.29/include/asm-mips/hazards.h linux-mips/include/asm-mips/ha
  #endif /* _ASM_HAZARDS_H */
 diff -Nur linux-2.4.29/include/asm-mips/mipsregs.h linux-mips/include/asm-mips/mipsregs.h
 --- linux-2.4.29/include/asm-mips/mipsregs.h   2005-01-19 15:10:12.000000000 +0100
-+++ linux-mips/include/asm-mips/mipsregs.h     2005-02-12 04:07:58.000000000 +0100
++++ linux-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)
@@ -23885,7 +23998,7 @@ diff -Nur linux-2.4.29/include/asm-mips/mmu_context.h linux-mips/include/asm-mip
  
 diff -Nur linux-2.4.29/include/asm-mips/pb1100.h linux-mips/include/asm-mips/pb1100.h
 --- linux-2.4.29/include/asm-mips/pb1100.h     2003-08-25 13:44:44.000000000 +0200
-+++ linux-mips/include/asm-mips/pb1100.h       2005-01-31 12:59:49.000000000 +0100
++++ linux-mips/include/asm-mips/pb1100.h       2005-01-30 09:10:29.000000000 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Alchemy Semi PB1100 Referrence Board
@@ -24302,7 +24415,7 @@ diff -Nur linux-2.4.29/include/asm-mips/pb1200.h linux-mips/include/asm-mips/pb1
 +
 diff -Nur linux-2.4.29/include/asm-mips/pb1550.h linux-mips/include/asm-mips/pb1550.h
 --- linux-2.4.29/include/asm-mips/pb1550.h     2005-01-19 15:10:12.000000000 +0100
-+++ linux-mips/include/asm-mips/pb1550.h       2005-01-31 12:59:49.000000000 +0100
++++ linux-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
@@ -24708,7 +24821,7 @@ diff -Nur linux-2.4.29/include/asm-mips64/hazards.h linux-mips/include/asm-mips6
  #endif /* _ASM_HAZARDS_H */
 diff -Nur linux-2.4.29/include/asm-mips64/mipsregs.h linux-mips/include/asm-mips64/mipsregs.h
 --- linux-2.4.29/include/asm-mips64/mipsregs.h 2005-01-19 15:10:12.000000000 +0100
-+++ linux-mips/include/asm-mips64/mipsregs.h   2005-02-12 04:08:02.000000000 +0100
++++ linux-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)
@@ -25244,3 +25357,40 @@ diff -Nur linux-2.4.29/lib/Makefile linux-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.29/Makefile linux-mips/Makefile
+--- linux-2.4.29/Makefile      2005-01-19 15:10:14.000000000 +0100
++++ linux-mips/Makefile        2005-01-20 03:19:21.000000000 +0100
+@@ -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
This page took 0.097237 seconds and 4 git commands to generate.