Changeset 60d7c102


Ignore:
Timestamp:
Oct 22, 2006, 9:10:03 AM (18 years ago)
Author:
Jim Gifford <clfs@…>
Branches:
clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
Children:
7c0b4b3
Parents:
7e619b1
Message:

Updated Patches

Location:
patches
Files:
1 added
1 deleted
3 moved

Legend:

Unmodified
Added
Removed
  • patches/linux-2.6.18.1-mips-1.patch

    r7e619b1 r60d7c102  
    11Submitted By: Jim Gifford (patches at jg555 dot com)
    2 Date: 2006-09-23
    3 Initial Package Version: 2.6.18
     2Date: 2006-10-22
     3Initial Package Version: 2.6.18.1
    44Origin: Linux-MIPS
    55Upstream Status: http://www.linux-mips.org/pub/linux/mips/kernel/v2.6/
    66
    7 diff -Naur linux-2.6.18/arch/mips/au1000/db1x00/Makefile linux-2.6.18.mips/arch/mips/au1000/db1x00/Makefile
    8 --- linux-2.6.18/arch/mips/au1000/db1x00/Makefile       2006-09-19 20:42:06.000000000 -0700
    9 +++ linux-2.6.18.mips/arch/mips/au1000/db1x00/Makefile  2006-09-20 06:55:21.000000000 -0700
     7diff -Naur linux-2.6.18.1/arch/mips/Kconfig linux-mips-2.6.18.1/arch/mips/Kconfig
     8--- linux-2.6.18.1/arch/mips/Kconfig    2006-10-13 20:34:03.000000000 -0700
     9+++ linux-mips-2.6.18.1/arch/mips/Kconfig       2006-10-17 06:23:28.000000000 -0700
     10@@ -126,7 +126,6 @@
     11        select IRQ_CPU
     12        select IRQ_CPU_RM7K
     13        select IRQ_CPU_RM9K
     14-       select SERIAL_RM9000
     15        select SYS_HAS_CPU_RM9000
     16        select SYS_SUPPORTS_32BIT_KERNEL
     17        select SYS_SUPPORTS_64BIT_KERNEL
     18@@ -480,7 +479,6 @@
     19        select SYS_SUPPORTS_32BIT_KERNEL
     20        select SYS_SUPPORTS_64BIT_KERNEL
     21        select SYS_SUPPORTS_BIG_ENDIAN
     22-       select ARCH_SPARSEMEM_ENABLE
     23        help
     24          The Ocelot is a MIPS-based Single Board Computer (SBC) made by
     25          Momentum Computer <http://www.momenco.com/>.
     26@@ -524,8 +522,6 @@
     27 config MACH_VR41XX
     28        bool "NEC VR41XX-based machines"
     29        select SYS_HAS_CPU_VR41XX
     30-       select SYS_SUPPORTS_32BIT_KERNEL
     31-       select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
     32 
     33 config PMC_YOSEMITE
     34        bool "PMC-Sierra Yosemite eval board"
     35@@ -614,6 +610,7 @@
     36        select SYS_SUPPORTS_64BIT_KERNEL
     37        select SYS_SUPPORTS_BIG_ENDIAN
     38        select SYS_SUPPORTS_NUMA
     39+       select SYS_SUPPORTS_SMP
     40        help
     41          This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
     42          workstations.  To compile a Linux kernel that runs on these, say Y
     43@@ -1200,7 +1197,7 @@
     44        select CPU_SUPPORTS_32BIT_KERNEL
     45        select CPU_SUPPORTS_64BIT_KERNEL
     46        help
     47-         The options selects support for the NEC VR4100 series of processors.
     48+         The options selects support for the NEC VR41xx series of processors.
     49          Only choose this option if you have one of these processors as a
     50          kernel built with this option will not run on any other type of
     51          processor or vice versa.
     52@@ -1527,6 +1524,7 @@
     53        select CPU_MIPSR2_SRS
     54        select MIPS_MT
     55        select SMP
     56+       select SYS_SUPPORTS_SMP
     57        help
     58          This is a kernel model which is known a SMTC or lately has been
     59          marketesed into SMVP.
     60@@ -1538,6 +1536,7 @@
     61        select CPU_MIPSR2_SRS
     62        select MIPS_MT
     63        select SMP
     64+       select SYS_SUPPORTS_SMP
     65        help
     66          This is a kernel model which is also known a VSMP or lately
     67          has been marketesed into SMVP.
     68@@ -1649,9 +1648,7 @@
     69        default y
     70 
     71 config IRQ_PER_CPU
     72-       depends on SMP
     73        bool
     74-       default y
     75 
     76 #
     77 # - Highmem only makes sense for the 32-bit kernel.
     78@@ -1691,9 +1688,6 @@
     79 
     80 config ARCH_SPARSEMEM_ENABLE
     81        bool
     82-
     83-config ARCH_SPARSEMEM_ENABLE
     84-       bool
     85        select SPARSEMEM_STATIC
     86 
     87 config NUMA
     88@@ -1719,6 +1713,7 @@
     89 config SMP
     90        bool "Multi-Processing support"
     91        depends on SYS_SUPPORTS_SMP
     92+       select IRQ_PER_CPU
     93        help
     94          This enables support for systems with more than one CPU. If you have
     95          a system with only one CPU, like most personal computers, say N. If
     96diff -Naur linux-2.6.18.1/arch/mips/Makefile linux-mips-2.6.18.1/arch/mips/Makefile
     97--- linux-2.6.18.1/arch/mips/Makefile   2006-10-13 20:34:03.000000000 -0700
     98+++ linux-mips-2.6.18.1/arch/mips/Makefile      2006-10-17 06:23:28.000000000 -0700
     99@@ -63,7 +63,9 @@
     100 ifdef CONFIG_BUILD_ELF64
     101 cflags-y               += $(call cc-option,-mno-explicit-relocs)
     102 else
     103-cflags-y               += $(call cc-option,-msym32)
     104+# -msym32 can not be used for modules since they are loaded into XKSEG
     105+CFLAGS_MODULE          += $(call cc-option,-mno-explicit-relocs)
     106+CFLAGS_KERNEL          += $(call cc-option,-msym32)
     107 endif
     108 endif
     109 
     110@@ -91,8 +93,17 @@
     111 # carefully avoid to add it redundantly because gcc 3.3/3.4 complains
     112 # when fed the toolchain default!
     113 #
     114-cflags-$(CONFIG_CPU_BIG_ENDIAN)                += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB -D__MIPSEB__)
     115-cflags-$(CONFIG_CPU_LITTLE_ENDIAN)     += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL -D__MIPSEL__)
     116+# Certain gcc versions upto gcc 4.1.1 (probably 4.2-subversion as of
     117+# 2006-10-10 don't properly change the the predefined symbols if -EB / -EL
     118+# are used, so we kludge that here.  A bug has been filed at
     119+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29413.
     120+#
     121+undef-all += -UMIPSEB -U_MIPSEB -U__MIPSEB -U__MIPSEB__
     122+undef-all += -UMIPSEL -U_MIPSEL -U__MIPSEL -U__MIPSEL__
     123+predef-be += -DMIPSEB -D_MIPSEB -D__MIPSEB -D__MIPSEB__
     124+predef-le += -DMIPSEL -D_MIPSEL -D__MIPSEL -D__MIPSEL__
     125+cflags-$(CONFIG_CPU_BIG_ENDIAN)                += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB $(undef-all) $(predef-be))
     126+cflags-$(CONFIG_CPU_LITTLE_ENDIAN)     += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL $(undef-all) $(predef-le))
     127 
     128 cflags-$(CONFIG_SB1XXX_CORELIS)        += $(call cc-option,-mno-sched-prolog) \
     129                                   -fno-omit-frame-pointer
     130@@ -330,6 +341,7 @@
     131 # MIPS SEAD board
     132 #
     133 core-$(CONFIG_MIPS_SEAD)       += arch/mips/mips-boards/sead/
     134+cflags-$(CONFIG_MIPS_SEAD)     += -Iinclude/asm-mips/mach-mips
     135 load-$(CONFIG_MIPS_SEAD)       += 0xffffffff80100000
     136 
     137 #
     138diff -Naur linux-2.6.18.1/arch/mips/au1000/db1x00/Makefile linux-mips-2.6.18.1/arch/mips/au1000/db1x00/Makefile
     139--- linux-2.6.18.1/arch/mips/au1000/db1x00/Makefile     2006-10-13 20:34:03.000000000 -0700
     140+++ linux-mips-2.6.18.1/arch/mips/au1000/db1x00/Makefile        2006-10-17 06:23:28.000000000 -0700
    10141@@ -6,4 +6,3 @@
    11142 # Makefile for the Alchemy Semiconductor Db1x00 board.
     
    13144 lib-y := init.o board_setup.o irqmap.o
    14145-obj-$(CONFIG_WM97XX_COMODULE) += mirage_ts.o
    15 diff -Naur linux-2.6.18/arch/mips/au1000/db1x00/mirage_ts.c linux-2.6.18.mips/arch/mips/au1000/db1x00/mirage_ts.c
    16 --- linux-2.6.18/arch/mips/au1000/db1x00/mirage_ts.c    2006-09-19 20:42:06.000000000 -0700
    17 +++ linux-2.6.18.mips/arch/mips/au1000/db1x00/mirage_ts.c       1969-12-31 16:00:00.000000000 -0800
     146diff -Naur linux-2.6.18.1/arch/mips/au1000/db1x00/mirage_ts.c linux-mips-2.6.18.1/arch/mips/au1000/db1x00/mirage_ts.c
     147--- linux-2.6.18.1/arch/mips/au1000/db1x00/mirage_ts.c  2006-10-13 20:34:03.000000000 -0700
     148+++ linux-mips-2.6.18.1/arch/mips/au1000/db1x00/mirage_ts.c     1969-12-31 16:00:00.000000000 -0800
    18149@@ -1,260 +0,0 @@
    19150-/*
     
    277408-module_exit(ts_mirage_exit);
    278409-
    279 diff -Naur linux-2.6.18/arch/mips/configs/e55_defconfig linux-2.6.18.mips/arch/mips/configs/e55_defconfig
    280 --- linux-2.6.18/arch/mips/configs/e55_defconfig        2006-09-19 20:42:06.000000000 -0700
    281 +++ linux-2.6.18.mips/arch/mips/configs/e55_defconfig   2006-09-20 06:55:21.000000000 -0700
     410diff -Naur linux-2.6.18.1/arch/mips/cobalt/setup.c linux-mips-2.6.18.1/arch/mips/cobalt/setup.c
     411--- linux-2.6.18.1/arch/mips/cobalt/setup.c     2006-10-13 20:34:03.000000000 -0700
     412+++ linux-mips-2.6.18.1/arch/mips/cobalt/setup.c        2006-10-17 06:23:28.000000000 -0700
     413@@ -51,8 +51,8 @@
     414 
     415 void __init plat_timer_setup(struct irqaction *irq)
     416 {
     417-       /* Load timer value for 1KHz (TCLK is 50MHz) */
     418-       GALILEO_OUTL(50*1000*1000 / 1000, GT_TC0_OFS);
     419+       /* Load timer value for HZ (TCLK is 50MHz) */
     420+       GALILEO_OUTL(50*1000*1000 / HZ, GT_TC0_OFS);
     421 
     422        /* Enable timer */
     423        GALILEO_OUTL(GALILEO_ENTC0 | GALILEO_SELTC0, GT_TC_CONTROL_OFS);
     424diff -Naur linux-2.6.18.1/arch/mips/configs/e55_defconfig linux-mips-2.6.18.1/arch/mips/configs/e55_defconfig
     425--- linux-2.6.18.1/arch/mips/configs/e55_defconfig      2006-10-13 20:34:03.000000000 -0700
     426+++ linux-mips-2.6.18.1/arch/mips/configs/e55_defconfig 2006-10-17 06:23:28.000000000 -0700
    282427@@ -1,7 +1,7 @@
    283428 #
     
    331476 #
    332477 # Security options
    333 diff -Naur linux-2.6.18/arch/mips/configs/mpc30x_defconfig linux-2.6.18.mips/arch/mips/configs/mpc30x_defconfig
    334 --- linux-2.6.18/arch/mips/configs/mpc30x_defconfig     2006-09-19 20:42:06.000000000 -0700
    335 +++ linux-2.6.18.mips/arch/mips/configs/mpc30x_defconfig        2006-09-20 06:55:21.000000000 -0700
     478diff -Naur linux-2.6.18.1/arch/mips/configs/mpc30x_defconfig linux-mips-2.6.18.1/arch/mips/configs/mpc30x_defconfig
     479--- linux-2.6.18.1/arch/mips/configs/mpc30x_defconfig   2006-10-13 20:34:03.000000000 -0700
     480+++ linux-mips-2.6.18.1/arch/mips/configs/mpc30x_defconfig      2006-10-17 06:23:28.000000000 -0700
    336481@@ -1,7 +1,7 @@
    337482 #
     
    394539 #
    395540 # Security options
    396 diff -Naur linux-2.6.18/arch/mips/configs/workpad_defconfig linux-2.6.18.mips/arch/mips/configs/workpad_defconfig
    397 --- linux-2.6.18/arch/mips/configs/workpad_defconfig    2006-09-19 20:42:06.000000000 -0700
    398 +++ linux-2.6.18.mips/arch/mips/configs/workpad_defconfig       2006-09-20 06:55:21.000000000 -0700
     541diff -Naur linux-2.6.18.1/arch/mips/configs/workpad_defconfig linux-mips-2.6.18.1/arch/mips/configs/workpad_defconfig
     542--- linux-2.6.18.1/arch/mips/configs/workpad_defconfig  2006-10-13 20:34:03.000000000 -0700
     543+++ linux-mips-2.6.18.1/arch/mips/configs/workpad_defconfig     2006-10-17 06:23:28.000000000 -0700
    399544@@ -1,7 +1,7 @@
    400545 #
     
    448593 #
    449594 # Security options
    450 diff -Naur linux-2.6.18/arch/mips/Kconfig linux-2.6.18.mips/arch/mips/Kconfig
    451 --- linux-2.6.18/arch/mips/Kconfig      2006-09-19 20:42:06.000000000 -0700
    452 +++ linux-2.6.18.mips/arch/mips/Kconfig 2006-09-20 06:55:21.000000000 -0700
    453 @@ -126,7 +126,6 @@
    454         select IRQ_CPU
    455         select IRQ_CPU_RM7K
    456         select IRQ_CPU_RM9K
    457 -       select SERIAL_RM9000
    458         select SYS_HAS_CPU_RM9000
    459         select SYS_SUPPORTS_32BIT_KERNEL
    460         select SYS_SUPPORTS_64BIT_KERNEL
    461 @@ -480,7 +479,6 @@
    462         select SYS_SUPPORTS_32BIT_KERNEL
    463         select SYS_SUPPORTS_64BIT_KERNEL
    464         select SYS_SUPPORTS_BIG_ENDIAN
    465 -       select ARCH_SPARSEMEM_ENABLE
    466         help
    467           The Ocelot is a MIPS-based Single Board Computer (SBC) made by
    468           Momentum Computer <http://www.momenco.com/>.
    469 @@ -524,8 +522,6 @@
    470  config MACH_VR41XX
    471         bool "NEC VR41XX-based machines"
    472         select SYS_HAS_CPU_VR41XX
    473 -       select SYS_SUPPORTS_32BIT_KERNEL
    474 -       select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
    475  
    476  config PMC_YOSEMITE
    477         bool "PMC-Sierra Yosemite eval board"
    478 @@ -614,6 +610,7 @@
    479         select SYS_SUPPORTS_64BIT_KERNEL
    480         select SYS_SUPPORTS_BIG_ENDIAN
    481         select SYS_SUPPORTS_NUMA
    482 +       select SYS_SUPPORTS_SMP
    483         help
    484           This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
    485           workstations.  To compile a Linux kernel that runs on these, say Y
    486 @@ -1200,7 +1197,7 @@
    487         select CPU_SUPPORTS_32BIT_KERNEL
    488         select CPU_SUPPORTS_64BIT_KERNEL
    489         help
    490 -         The options selects support for the NEC VR4100 series of processors.
    491 +         The options selects support for the NEC VR41xx series of processors.
    492           Only choose this option if you have one of these processors as a
    493           kernel built with this option will not run on any other type of
    494           processor or vice versa.
    495 @@ -1527,6 +1524,7 @@
    496         select CPU_MIPSR2_SRS
    497         select MIPS_MT
    498         select SMP
    499 +       select SYS_SUPPORTS_SMP
    500         help
    501           This is a kernel model which is known a SMTC or lately has been
    502           marketesed into SMVP.
    503 @@ -1538,6 +1536,7 @@
    504         select CPU_MIPSR2_SRS
    505         select MIPS_MT
    506         select SMP
    507 +       select SYS_SUPPORTS_SMP
    508         help
    509           This is a kernel model which is also known a VSMP or lately
    510           has been marketesed into SMVP.
    511 @@ -1649,9 +1648,7 @@
    512         default y
    513  
    514  config IRQ_PER_CPU
    515 -       depends on SMP
    516         bool
    517 -       default y
    518  
    519  #
    520  # - Highmem only makes sense for the 32-bit kernel.
    521 @@ -1691,9 +1688,6 @@
    522  
    523  config ARCH_SPARSEMEM_ENABLE
    524         bool
    525 -
    526 -config ARCH_SPARSEMEM_ENABLE
    527 -       bool
    528         select SPARSEMEM_STATIC
    529  
    530  config NUMA
    531 @@ -1719,6 +1713,7 @@
    532  config SMP
    533         bool "Multi-Processing support"
    534         depends on SYS_SUPPORTS_SMP
    535 +       select IRQ_PER_CPU
    536         help
    537           This enables support for systems with more than one CPU. If you have
    538           a system with only one CPU, like most personal computers, say N. If
    539 diff -Naur linux-2.6.18/arch/mips/kernel/cpu-probe.c linux-2.6.18.mips/arch/mips/kernel/cpu-probe.c
    540 --- linux-2.6.18/arch/mips/kernel/cpu-probe.c   2006-09-19 20:42:06.000000000 -0700
    541 +++ linux-2.6.18.mips/arch/mips/kernel/cpu-probe.c      2006-09-20 06:55:21.000000000 -0700
     595diff -Naur linux-2.6.18.1/arch/mips/kernel/cpu-probe.c linux-mips-2.6.18.1/arch/mips/kernel/cpu-probe.c
     596--- linux-2.6.18.1/arch/mips/kernel/cpu-probe.c 2006-10-13 20:34:03.000000000 -0700
     597+++ linux-mips-2.6.18.1/arch/mips/kernel/cpu-probe.c    2006-10-17 06:23:28.000000000 -0700
    542598@@ -38,15 +38,40 @@
    543599 
     
    650706                printk(" unavailable.\n");
    651707                break;
    652 diff -Naur linux-2.6.18/arch/mips/kernel/irixsig.c linux-2.6.18.mips/arch/mips/kernel/irixsig.c
    653 --- linux-2.6.18/arch/mips/kernel/irixsig.c     2006-09-19 20:42:06.000000000 -0700
    654 +++ linux-2.6.18.mips/arch/mips/kernel/irixsig.c        2006-09-20 06:55:21.000000000 -0700
     708diff -Naur linux-2.6.18.1/arch/mips/kernel/irixsig.c linux-mips-2.6.18.1/arch/mips/kernel/irixsig.c
     709--- linux-2.6.18.1/arch/mips/kernel/irixsig.c   2006-10-13 20:34:03.000000000 -0700
     710+++ linux-mips-2.6.18.1/arch/mips/kernel/irixsig.c      2006-10-17 06:23:28.000000000 -0700
    655711@@ -17,6 +17,7 @@
    656712 
     
    769825 
    770826 /* hate hate hate... */
    771 diff -Naur linux-2.6.18/arch/mips/kernel/linux32.c linux-2.6.18.mips/arch/mips/kernel/linux32.c
    772 --- linux-2.6.18/arch/mips/kernel/linux32.c     2006-09-19 20:42:06.000000000 -0700
    773 +++ linux-2.6.18.mips/arch/mips/kernel/linux32.c        2006-09-20 06:55:21.000000000 -0700
    774 @@ -1296,9 +1296,3 @@
     827diff -Naur linux-2.6.18.1/arch/mips/kernel/linux32.c linux-mips-2.6.18.1/arch/mips/kernel/linux32.c
     828--- linux-2.6.18.1/arch/mips/kernel/linux32.c   2006-10-13 20:34:03.000000000 -0700
     829+++ linux-mips-2.6.18.1/arch/mips/kernel/linux32.c      2006-10-17 06:23:28.000000000 -0700
     830@@ -1053,7 +1053,9 @@
     831 asmlinkage int sys32_personality(unsigned long personality)
     832 {
     833        int ret;
     834-       if (current->personality == PER_LINUX32 && personality == PER_LINUX)
     835+       personality &= 0xffffffff;
     836+       if (personality(current->personality) == PER_LINUX32 &&
     837+           personality == PER_LINUX)
     838                personality = PER_LINUX32;
     839        ret = sys_personality(personality);
     840        if (ret == PER_LINUX32)
     841@@ -1296,9 +1298,3 @@
    775842        return do_fork(clone_flags, newsp, &regs, 0,
    776843                       parent_tidptr, child_tidptr);
     
    782849-       sys_set_thread_area(AA(addr));
    783850-}
    784 diff -Naur linux-2.6.18/arch/mips/kernel/mips-mt.c linux-2.6.18.mips/arch/mips/kernel/mips-mt.c
    785 --- linux-2.6.18/arch/mips/kernel/mips-mt.c     2006-09-19 20:42:06.000000000 -0700
    786 +++ linux-2.6.18.mips/arch/mips/kernel/mips-mt.c        2006-09-20 06:55:21.000000000 -0700
     851diff -Naur linux-2.6.18.1/arch/mips/kernel/mips-mt.c linux-mips-2.6.18.1/arch/mips/kernel/mips-mt.c
     852--- linux-2.6.18.1/arch/mips/kernel/mips-mt.c   2006-10-13 20:34:03.000000000 -0700
     853+++ linux-mips-2.6.18.1/arch/mips/kernel/mips-mt.c      2006-10-17 06:23:28.000000000 -0700
    787854@@ -96,6 +96,10 @@
    788855                goto out_unlock;
     
    808875        cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map);
    809876 
    810 diff -Naur linux-2.6.18/arch/mips/kernel/process.c linux-2.6.18.mips/arch/mips/kernel/process.c
    811 --- linux-2.6.18/arch/mips/kernel/process.c     2006-09-19 20:42:06.000000000 -0700
    812 +++ linux-2.6.18.mips/arch/mips/kernel/process.c        2006-09-20 06:55:21.000000000 -0700
     877diff -Naur linux-2.6.18.1/arch/mips/kernel/proc.c linux-mips-2.6.18.1/arch/mips/kernel/proc.c
     878--- linux-2.6.18.1/arch/mips/kernel/proc.c      2006-10-13 20:34:03.000000000 -0700
     879+++ linux-mips-2.6.18.1/arch/mips/kernel/proc.c 2006-10-17 06:23:28.000000000 -0700
     880@@ -89,9 +89,9 @@
     881 
     882 static int show_cpuinfo(struct seq_file *m, void *v)
     883 {
     884-       unsigned int version = current_cpu_data.processor_id;
     885-       unsigned int fp_vers = current_cpu_data.fpu_id;
     886        unsigned long n = (unsigned long) v - 1;
     887+       unsigned int version = cpu_data[n].processor_id;
     888+       unsigned int fp_vers = cpu_data[n].fpu_id;
     889        char fmt [64];
     890 
     891 #ifdef CONFIG_SMP
     892@@ -107,9 +107,9 @@
     893 
     894        seq_printf(m, "processor\t\t: %ld\n", n);
     895        sprintf(fmt, "cpu model\t\t: %%s V%%d.%%d%s\n",
     896-               cpu_has_fpu ? "  FPU V%d.%d" : "");
     897-       seq_printf(m, fmt, cpu_name[current_cpu_data.cputype <= CPU_LAST ?
     898-                                   current_cpu_data.cputype : CPU_UNKNOWN],
     899+               cpu_data[n].options & MIPS_CPU_FPU ? "  FPU V%d.%d" : "");
     900+       seq_printf(m, fmt, cpu_name[cpu_data[n].cputype <= CPU_LAST ?
     901+                                   cpu_data[n].cputype : CPU_UNKNOWN],
     902                                   (version >> 4) & 0x0f, version & 0x0f,
     903                                   (fp_vers >> 4) & 0x0f, fp_vers & 0x0f);
     904        seq_printf(m, "BogoMIPS\t\t: %lu.%02lu\n",
     905@@ -118,7 +118,7 @@
     906        seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no");
     907        seq_printf(m, "microsecond timers\t: %s\n",
     908                      cpu_has_counter ? "yes" : "no");
     909-       seq_printf(m, "tlb_entries\t\t: %d\n", current_cpu_data.tlbsize);
     910+       seq_printf(m, "tlb_entries\t\t: %d\n", cpu_data[n].tlbsize);
     911        seq_printf(m, "extra interrupt vector\t: %s\n",
     912                      cpu_has_divec ? "yes" : "no");
     913        seq_printf(m, "hardware watchpoint\t: %s\n",
     914diff -Naur linux-2.6.18.1/arch/mips/kernel/process.c linux-mips-2.6.18.1/arch/mips/kernel/process.c
     915--- linux-2.6.18.1/arch/mips/kernel/process.c   2006-10-13 20:34:03.000000000 -0700
     916+++ linux-mips-2.6.18.1/arch/mips/kernel/process.c      2006-10-17 06:23:28.000000000 -0700
     917@@ -114,7 +114,7 @@
     918        status |= KU_USER;
     919        regs->cp0_status = status;
     920        clear_used_math();
     921-       lose_fpu();
     922+       clear_fpu_owner();
     923        if (cpu_has_dsp)
     924                __init_dsp();
     925        regs->cp0_epc = pc;
    813926@@ -281,62 +281,63 @@
    814927 } *schedule_frame, mfinfo[64];
     
    863976 
    864977-               if (info->func_size && i >= info->func_size / 4)
    865 -                       break;
     978+       for (i = 0; i < max_insns; i++, ip++) {
     979+
     980+               if (is_jal_jalr_jr_ins(ip))
     981                        break;
    866982-               if (
    867983-#ifdef CONFIG_32BIT
     
    877993-                               continue;
    878994-                       info->frame_size = - ip->i_format.simmediate;
    879 -               }
    880 +       for (i = 0; i < max_insns; i++, ip++) {
    881  
     995+               if (!info->frame_size) {
     996+                       if (is_sp_move_ins(ip))
     997+                               info->frame_size = - ip->i_format.simmediate;
     998+                       continue;
     999                }
     1000-
    8821001-               if (
    8831002-#ifdef CONFIG_32BIT
     
    8921011-                       if (info->pc_offset != -1)
    8931012-                               continue;
    894 +               if (is_jal_jalr_jr_ins(ip))
    895 +                       break;
    896 +               if (!info->frame_size) {
    897 +                       if (is_sp_move_ins(ip))
    898 +                               info->frame_size = - ip->i_format.simmediate;
    899 +                       continue;
    900 +               }
    9011013+               if (info->pc_offset == -1 && is_ra_save_ins(ip)) {
    9021014                        info->pc_offset =
     
    9971109+}
    9981110+#endif
    999 diff -Naur linux-2.6.18/arch/mips/kernel/ptrace.c linux-2.6.18.mips/arch/mips/kernel/ptrace.c
    1000 --- linux-2.6.18/arch/mips/kernel/ptrace.c      2006-09-19 20:42:06.000000000 -0700
    1001 +++ linux-2.6.18.mips/arch/mips/kernel/ptrace.c 2006-09-20 06:55:21.000000000 -0700
     1111diff -Naur linux-2.6.18.1/arch/mips/kernel/ptrace.c linux-mips-2.6.18.1/arch/mips/kernel/ptrace.c
     1112--- linux-2.6.18.1/arch/mips/kernel/ptrace.c    2006-10-13 20:34:03.000000000 -0700
     1113+++ linux-mips-2.6.18.1/arch/mips/kernel/ptrace.c       2006-10-17 06:23:28.000000000 -0700
    10021114@@ -20,12 +20,12 @@
    10031115 #include <linux/mm.h>
     
    10151127 #include <asm/byteorder.h>
    10161128 #include <asm/cpu.h>
    1017 @@ -471,12 +471,16 @@
     1129@@ -106,6 +106,7 @@
     1130 int ptrace_getfpregs (struct task_struct *child, __u32 __user *data)
     1131 {
     1132        int i;
     1133+       unsigned int tmp;
     1134 
     1135        if (!access_ok(VERIFY_WRITE, data, 33 * 8))
     1136                return -EIO;
     1137@@ -121,10 +122,10 @@
     1138 
     1139        __put_user (child->thread.fpu.fcr31, data + 64);
     1140 
     1141+       preempt_disable();
     1142        if (cpu_has_fpu) {
     1143-               unsigned int flags, tmp;
     1144+               unsigned int flags;
     1145 
     1146-               preempt_disable();
     1147                if (cpu_has_mipsmt) {
     1148                        unsigned int vpflags = dvpe();
     1149                        flags = read_c0_status();
     1150@@ -138,11 +139,11 @@
     1151                        __asm__ __volatile__("cfc1\t%0,$0" : "=r" (tmp));
     1152                        write_c0_status(flags);
     1153                }
     1154-               preempt_enable();
     1155-               __put_user (tmp, data + 65);
     1156        } else {
     1157-               __put_user ((__u32) 0, data + 65);
     1158+               tmp = 0;
     1159        }
     1160+       preempt_enable();
     1161+       __put_user (tmp, data + 65);
     1162 
     1163        return 0;
     1164 }
     1165@@ -245,16 +246,17 @@
     1166                        unsigned int mtflags;
     1167 #endif /* CONFIG_MIPS_MT_SMTC */
     1168 
     1169-                       if (!cpu_has_fpu)
     1170+                       preempt_disable();
     1171+                       if (!cpu_has_fpu) {
     1172+                               preempt_enable();
     1173                                break;
     1174+                       }
     1175 
     1176 #ifdef CONFIG_MIPS_MT_SMTC
     1177                        /* Read-modify-write of Status must be atomic */
     1178                        local_irq_save(irqflags);
     1179                        mtflags = dmt();
     1180 #endif /* CONFIG_MIPS_MT_SMTC */
     1181-
     1182-                       preempt_disable();
     1183                        if (cpu_has_mipsmt) {
     1184                                unsigned int vpflags = dvpe();
     1185                                flags = read_c0_status();
     1186@@ -471,12 +473,16 @@
    10181187  */
    10191188 asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
     
    10321201                goto out;
    10331202 
    1034 @@ -494,9 +498,14 @@
     1203@@ -494,9 +500,14 @@
    10351204                send_sig(current->exit_code, current, 1);
    10361205                current->exit_code = 0;
     
    10511220+                                   regs->regs[6], regs->regs[7]);
    10521221 }
    1053 diff -Naur linux-2.6.18/arch/mips/kernel/scall32-o32.S linux-2.6.18.mips/arch/mips/kernel/scall32-o32.S
    1054 --- linux-2.6.18/arch/mips/kernel/scall32-o32.S 2006-09-19 20:42:06.000000000 -0700
    1055 +++ linux-2.6.18.mips/arch/mips/kernel/scall32-o32.S    2006-09-20 06:55:21.000000000 -0700
     1222diff -Naur linux-2.6.18.1/arch/mips/kernel/ptrace32.c linux-mips-2.6.18.1/arch/mips/kernel/ptrace32.c
     1223--- linux-2.6.18.1/arch/mips/kernel/ptrace32.c  2006-10-13 20:34:03.000000000 -0700
     1224+++ linux-mips-2.6.18.1/arch/mips/kernel/ptrace32.c     2006-10-17 06:23:28.000000000 -0700
     1225@@ -175,7 +175,9 @@
     1226                        unsigned int mtflags;
     1227 #endif /* CONFIG_MIPS_MT_SMTC */
     1228 
     1229+                       preempt_disable();
     1230                        if (!cpu_has_fpu) {
     1231+                               preempt_enable();
     1232                                tmp = 0;
     1233                                break;
     1234                        }
     1235@@ -186,7 +188,6 @@
     1236                        mtflags = dmt();
     1237 #endif /* CONFIG_MIPS_MT_SMTC */
     1238 
     1239-                       preempt_disable();
     1240                        if (cpu_has_mipsmt) {
     1241                                unsigned int vpflags = dvpe();
     1242                                flags = read_c0_status();
     1243diff -Naur linux-2.6.18.1/arch/mips/kernel/scall32-o32.S linux-mips-2.6.18.1/arch/mips/kernel/scall32-o32.S
     1244--- linux-2.6.18.1/arch/mips/kernel/scall32-o32.S       2006-10-13 20:34:03.000000000 -0700
     1245+++ linux-mips-2.6.18.1/arch/mips/kernel/scall32-o32.S  2006-10-17 06:23:28.000000000 -0700
    10561246@@ -662,6 +662,8 @@
    10571247        sys     sys_tee                 4
     
    10631253 
    10641254        /* We pre-compute the number of _instruction_ bytes needed to
    1065 diff -Naur linux-2.6.18/arch/mips/kernel/scall64-64.S linux-2.6.18.mips/arch/mips/kernel/scall64-64.S
    1066 --- linux-2.6.18/arch/mips/kernel/scall64-64.S  2006-09-19 20:42:06.000000000 -0700
    1067 +++ linux-2.6.18.mips/arch/mips/kernel/scall64-64.S     2006-09-20 06:55:21.000000000 -0700
     1255diff -Naur linux-2.6.18.1/arch/mips/kernel/scall64-64.S linux-mips-2.6.18.1/arch/mips/kernel/scall64-64.S
     1256--- linux-2.6.18.1/arch/mips/kernel/scall64-64.S        2006-10-13 20:34:03.000000000 -0700
     1257+++ linux-mips-2.6.18.1/arch/mips/kernel/scall64-64.S   2006-10-17 06:23:28.000000000 -0700
    10681258@@ -466,3 +466,5 @@
    10691259        PTR     sys_tee                         /* 5265 */
     
    10721262+       PTR     sys_set_robust_list
    10731263+       PTR     sys_get_robust_list
    1074 diff -Naur linux-2.6.18/arch/mips/kernel/scall64-n32.S linux-2.6.18.mips/arch/mips/kernel/scall64-n32.S
    1075 --- linux-2.6.18/arch/mips/kernel/scall64-n32.S 2006-09-19 20:42:06.000000000 -0700
    1076 +++ linux-2.6.18.mips/arch/mips/kernel/scall64-n32.S    2006-09-20 06:55:21.000000000 -0700
     1264diff -Naur linux-2.6.18.1/arch/mips/kernel/scall64-n32.S linux-mips-2.6.18.1/arch/mips/kernel/scall64-n32.S
     1265--- linux-2.6.18.1/arch/mips/kernel/scall64-n32.S       2006-10-13 20:34:03.000000000 -0700
     1266+++ linux-mips-2.6.18.1/arch/mips/kernel/scall64-n32.S  2006-10-17 06:23:28.000000000 -0700
    10771267@@ -247,7 +247,7 @@
    10781268        PTR     sys_capset
     
    10841274        PTR     sys32_sigaltstack
    10851275        PTR     compat_sys_utime                /* 6130 */
     1276@@ -280,7 +280,7 @@
     1277        PTR     sys_sync
     1278        PTR     sys_acct
     1279        PTR     sys32_settimeofday
     1280-       PTR     sys_mount                       /* 6160 */
     1281+       PTR     compat_sys_mount                /* 6160 */
     1282        PTR     sys_umount
     1283        PTR     sys_swapon
     1284        PTR     sys_swapoff
    10861285@@ -390,5 +390,7 @@
    10871286        PTR     sys_splice
     
    10931292+       PTR     compat_sys_set_robust_list
    10941293+       PTR     compat_sys_get_robust_list
    1095 diff -Naur linux-2.6.18/arch/mips/kernel/scall64-o32.S linux-2.6.18.mips/arch/mips/kernel/scall64-o32.S
    1096 --- linux-2.6.18/arch/mips/kernel/scall64-o32.S 2006-09-19 20:42:06.000000000 -0700
    1097 +++ linux-2.6.18.mips/arch/mips/kernel/scall64-o32.S    2006-09-20 06:55:21.000000000 -0700
     1294diff -Naur linux-2.6.18.1/arch/mips/kernel/scall64-o32.S linux-mips-2.6.18.1/arch/mips/kernel/scall64-o32.S
     1295--- linux-2.6.18.1/arch/mips/kernel/scall64-o32.S       2006-10-13 20:34:03.000000000 -0700
     1296+++ linux-mips-2.6.18.1/arch/mips/kernel/scall64-o32.S  2006-10-17 06:23:28.000000000 -0700
     1297@@ -226,7 +226,7 @@
     1298        PTR     sys_ni_syscall                  /* was sys_stat */
     1299        PTR     sys_lseek
     1300        PTR     sys_getpid                      /* 4020 */
     1301-       PTR     sys_mount
     1302+       PTR     compat_sys_mount
     1303        PTR     sys_oldumount
     1304        PTR     sys_setuid
     1305        PTR     sys_getuid
     1306@@ -498,7 +498,7 @@
     1307        PTR     sys_mknodat                     /* 4290 */
     1308        PTR     sys_fchownat
     1309        PTR     compat_sys_futimesat
     1310-       PTR     compat_sys_newfstatat
     1311+       PTR     sys_newfstatat
     1312        PTR     sys_unlinkat
     1313        PTR     sys_renameat                    /* 4295 */
     1314        PTR     sys_linkat
    10981315@@ -514,4 +514,6 @@
    10991316        PTR     sys_tee
     
    11031320+       PTR     compat_sys_get_robust_list      /* 4310 */
    11041321        .size   sys_call_table,.-sys_call_table
    1105 diff -Naur linux-2.6.18/arch/mips/kernel/signal32.c linux-2.6.18.mips/arch/mips/kernel/signal32.c
    1106 --- linux-2.6.18/arch/mips/kernel/signal32.c    2006-09-19 20:42:06.000000000 -0700
    1107 +++ linux-2.6.18.mips/arch/mips/kernel/signal32.c       2006-09-20 06:55:21.000000000 -0700
     1322diff -Naur linux-2.6.18.1/arch/mips/kernel/signal.c linux-mips-2.6.18.1/arch/mips/kernel/signal.c
     1323--- linux-2.6.18.1/arch/mips/kernel/signal.c    2006-10-13 20:34:03.000000000 -0700
     1324+++ linux-mips-2.6.18.1/arch/mips/kernel/signal.c       2006-10-17 06:23:28.000000000 -0700
     1325@@ -424,15 +424,11 @@
     1326        if (!user_mode(regs))
     1327                return;
     1328 
     1329-       if (try_to_freeze())
     1330-               goto no_signal;
     1331-
     1332        if (test_thread_flag(TIF_RESTORE_SIGMASK))
     1333                oldset = &current->saved_sigmask;
     1334        else
     1335                oldset = &current->blocked;
     1336 
     1337-
     1338        signr = get_signal_to_deliver(&info, &ka, regs, NULL);
     1339        if (signr > 0) {
     1340                /* Whee!  Actually deliver the signal.  */
     1341@@ -446,9 +442,10 @@
     1342                        if (test_thread_flag(TIF_RESTORE_SIGMASK))
     1343                                clear_thread_flag(TIF_RESTORE_SIGMASK);
     1344                }
     1345+
     1346+               return;
     1347        }
     1348 
     1349-no_signal:
     1350        /*
     1351         * Who's code doesn't conform to the restartable syscall convention
     1352         * dies here!!!  The li instruction, a single machine instruction,
     1353@@ -466,6 +463,7 @@
     1354                        regs->regs[7] = regs->regs[26];
     1355                        regs->cp0_epc -= 4;
     1356                }
     1357+               regs->regs[0] = 0;      /* Don't deal with this again.  */
     1358        }
     1359 
     1360        /*
     1361diff -Naur linux-2.6.18.1/arch/mips/kernel/signal32.c linux-mips-2.6.18.1/arch/mips/kernel/signal32.c
     1362--- linux-2.6.18.1/arch/mips/kernel/signal32.c  2006-10-13 20:34:03.000000000 -0700
     1363+++ linux-mips-2.6.18.1/arch/mips/kernel/signal32.c     2006-10-17 06:23:28.000000000 -0700
    11081364@@ -815,9 +815,6 @@
    11091365        if (!user_mode(regs))
     
    11361392 
    11371393        /*
    1138 diff -Naur linux-2.6.18/arch/mips/kernel/signal.c linux-2.6.18.mips/arch/mips/kernel/signal.c
    1139 --- linux-2.6.18/arch/mips/kernel/signal.c      2006-09-19 20:42:06.000000000 -0700
    1140 +++ linux-2.6.18.mips/arch/mips/kernel/signal.c 2006-09-20 06:55:21.000000000 -0700
    1141 @@ -424,15 +424,11 @@
    1142         if (!user_mode(regs))
    1143                 return;
    1144  
    1145 -       if (try_to_freeze())
    1146 -               goto no_signal;
    1147 -
    1148         if (test_thread_flag(TIF_RESTORE_SIGMASK))
    1149                 oldset = &current->saved_sigmask;
    1150         else
    1151                 oldset = &current->blocked;
    1152  
    1153 -
    1154         signr = get_signal_to_deliver(&info, &ka, regs, NULL);
    1155         if (signr > 0) {
    1156                 /* Whee!  Actually deliver the signal.  */
    1157 @@ -446,9 +442,10 @@
    1158                         if (test_thread_flag(TIF_RESTORE_SIGMASK))
    1159                                 clear_thread_flag(TIF_RESTORE_SIGMASK);
    1160                 }
    1161 +
    1162 +               return;
    1163         }
    1164  
    1165 -no_signal:
    1166         /*
    1167          * Who's code doesn't conform to the restartable syscall convention
    1168          * dies here!!!  The li instruction, a single machine instruction,
    1169 @@ -466,6 +463,7 @@
    1170                         regs->regs[7] = regs->regs[26];
    1171                         regs->cp0_epc -= 4;
    1172                 }
    1173 +               regs->regs[0] = 0;      /* Don't deal with this again.  */
    1174         }
    1175  
    1176         /*
    1177 diff -Naur linux-2.6.18/arch/mips/kernel/smp.c linux-2.6.18.mips/arch/mips/kernel/smp.c
    1178 --- linux-2.6.18/arch/mips/kernel/smp.c 2006-09-19 20:42:06.000000000 -0700
    1179 +++ linux-2.6.18.mips/arch/mips/kernel/smp.c    2006-09-20 06:55:21.000000000 -0700
     1394diff -Naur linux-2.6.18.1/arch/mips/kernel/smp-mt.c linux-mips-2.6.18.1/arch/mips/kernel/smp-mt.c
     1395--- linux-2.6.18.1/arch/mips/kernel/smp-mt.c    2006-10-13 20:34:03.000000000 -0700
     1396+++ linux-mips-2.6.18.1/arch/mips/kernel/smp-mt.c       2006-10-17 06:23:28.000000000 -0700
     1397@@ -203,7 +203,7 @@
     1398                                write_vpe_c0_config( read_c0_config());
     1399 
     1400                                /* make sure there are no software interrupts pending */
     1401-                               write_vpe_c0_cause(read_vpe_c0_cause() & ~(C_SW1|C_SW0));
     1402+                               write_vpe_c0_cause(0);
     1403 
     1404                                /* Propagate Config7 */
     1405                                write_vpe_c0_config7(read_c0_config7());
     1406diff -Naur linux-2.6.18.1/arch/mips/kernel/smp.c linux-mips-2.6.18.1/arch/mips/kernel/smp.c
     1407--- linux-2.6.18.1/arch/mips/kernel/smp.c       2006-10-13 20:34:03.000000000 -0700
     1408+++ linux-mips-2.6.18.1/arch/mips/kernel/smp.c  2006-10-17 06:23:28.000000000 -0700
    11801409@@ -467,14 +467,18 @@
    11811410 
     
    12021431 
    12031432        return 0;
    1204 diff -Naur linux-2.6.18/arch/mips/kernel/smp-mt.c linux-2.6.18.mips/arch/mips/kernel/smp-mt.c
    1205 --- linux-2.6.18/arch/mips/kernel/smp-mt.c      2006-09-19 20:42:06.000000000 -0700
    1206 +++ linux-2.6.18.mips/arch/mips/kernel/smp-mt.c 2006-09-20 06:55:21.000000000 -0700
    1207 @@ -203,7 +203,7 @@
    1208                                 write_vpe_c0_config( read_c0_config());
    1209  
    1210                                 /* make sure there are no software interrupts pending */
    1211 -                               write_vpe_c0_cause(read_vpe_c0_cause() & ~(C_SW1|C_SW0));
    1212 +                               write_vpe_c0_cause(0);
    1213  
    1214                                 /* Propagate Config7 */
    1215                                 write_vpe_c0_config7(read_c0_config7());
    1216 diff -Naur linux-2.6.18/arch/mips/kernel/smtc-asm.S linux-2.6.18.mips/arch/mips/kernel/smtc-asm.S
    1217 --- linux-2.6.18/arch/mips/kernel/smtc-asm.S    2006-09-19 20:42:06.000000000 -0700
    1218 +++ linux-2.6.18.mips/arch/mips/kernel/smtc-asm.S       2006-09-20 06:55:21.000000000 -0700
     1433diff -Naur linux-2.6.18.1/arch/mips/kernel/smtc-asm.S linux-mips-2.6.18.1/arch/mips/kernel/smtc-asm.S
     1434--- linux-2.6.18.1/arch/mips/kernel/smtc-asm.S  2006-10-13 20:34:03.000000000 -0700
     1435+++ linux-mips-2.6.18.1/arch/mips/kernel/smtc-asm.S     2006-10-17 06:23:28.000000000 -0700
    12191436@@ -8,7 +8,7 @@
    12201437 #include <asm/regdef.h>
     
    12261443 /*
    12271444  * "Software Interrupt" linkage.
    1228 diff -Naur linux-2.6.18/arch/mips/kernel/syscall.c linux-2.6.18.mips/arch/mips/kernel/syscall.c
    1229 --- linux-2.6.18/arch/mips/kernel/syscall.c     2006-09-19 20:42:06.000000000 -0700
    1230 +++ linux-2.6.18.mips/arch/mips/kernel/syscall.c        2006-09-20 06:55:21.000000000 -0700
     1445diff -Naur linux-2.6.18.1/arch/mips/kernel/syscall.c linux-mips-2.6.18.1/arch/mips/kernel/syscall.c
     1446--- linux-2.6.18.1/arch/mips/kernel/syscall.c   2006-10-13 20:34:03.000000000 -0700
     1447+++ linux-mips-2.6.18.1/arch/mips/kernel/syscall.c      2006-10-17 06:23:28.000000000 -0700
    12311448@@ -263,7 +263,7 @@
    12321449        return error;
     
    12471464 
    12481465 asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3)
    1249 diff -Naur linux-2.6.18/arch/mips/kernel/traps.c linux-2.6.18.mips/arch/mips/kernel/traps.c
    1250 --- linux-2.6.18/arch/mips/kernel/traps.c       2006-09-19 20:42:06.000000000 -0700
    1251 +++ linux-2.6.18.mips/arch/mips/kernel/traps.c  2006-09-20 06:55:21.000000000 -0700
     1466diff -Naur linux-2.6.18.1/arch/mips/kernel/traps.c linux-mips-2.6.18.1/arch/mips/kernel/traps.c
     1467--- linux-2.6.18.1/arch/mips/kernel/traps.c     2006-10-13 20:34:03.000000000 -0700
     1468+++ linux-mips-2.6.18.1/arch/mips/kernel/traps.c        2006-10-17 06:23:28.000000000 -0700
    12521469@@ -20,6 +20,7 @@
    12531470 #include <linux/spinlock.h>
     
    12581475 #include <asm/bootinfo.h>
    12591476 #include <asm/branch.h>
     1477@@ -64,7 +65,7 @@
     1478 extern asmlinkage void handle_reserved(void);
     1479 
     1480 extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
     1481-       struct mips_fpu_struct *ctx);
     1482+       struct mips_fpu_struct *ctx, int has_fpu);
     1483 
     1484 void (*board_be_init)(void);
     1485 int (*board_be_handler)(struct pt_regs *regs, int is_fixup);
    12601486@@ -72,28 +73,68 @@
    12611487 void (*board_ejtag_handler_setup)(void);
     
    14541680 }
    14551681 
    1456 diff -Naur linux-2.6.18/arch/mips/kernel/vpe.c linux-2.6.18.mips/arch/mips/kernel/vpe.c
    1457 --- linux-2.6.18/arch/mips/kernel/vpe.c 2006-09-19 20:42:06.000000000 -0700
    1458 +++ linux-2.6.18.mips/arch/mips/kernel/vpe.c    2006-09-20 06:55:21.000000000 -0700
     1682@@ -601,7 +673,7 @@
     1683                preempt_enable();
     1684 
     1685                /* Run the emulator */
     1686-               sig = fpu_emulator_cop1Handler (regs, &current->thread.fpu);
     1687+               sig = fpu_emulator_cop1Handler (regs, &current->thread.fpu, 1);
     1688 
     1689                preempt_disable();
     1690 
     1691@@ -751,11 +823,13 @@
     1692                        set_used_math();
     1693                }
     1694 
     1695-               preempt_enable();
     1696-
     1697-               if (!cpu_has_fpu) {
     1698-                       int sig = fpu_emulator_cop1Handler(regs,
     1699-                                               &current->thread.fpu);
     1700+               if (cpu_has_fpu) {
     1701+                       preempt_enable();
     1702+               } else {
     1703+                       int sig;
     1704+                       preempt_enable();
     1705+                       sig = fpu_emulator_cop1Handler(regs,
     1706+                                               &current->thread.fpu, 0);
     1707                        if (sig)
     1708                                force_sig(sig, current);
     1709 #ifdef CONFIG_MIPS_MT_FPAFF
     1710diff -Naur linux-2.6.18.1/arch/mips/kernel/vpe.c linux-mips-2.6.18.1/arch/mips/kernel/vpe.c
     1711--- linux-2.6.18.1/arch/mips/kernel/vpe.c       2006-10-13 20:34:03.000000000 -0700
     1712+++ linux-mips-2.6.18.1/arch/mips/kernel/vpe.c  2006-10-17 06:23:28.000000000 -0700
    14591713@@ -768,10 +768,16 @@
    14601714         */
     
    14741728         write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_VPA);
    14751729 
    1476 diff -Naur linux-2.6.18/arch/mips/lib/iomap.c linux-2.6.18.mips/arch/mips/lib/iomap.c
    1477 --- linux-2.6.18/arch/mips/lib/iomap.c  2006-09-19 20:42:06.000000000 -0700
    1478 +++ linux-2.6.18.mips/arch/mips/lib/iomap.c     1969-12-31 16:00:00.000000000 -0800
     1730diff -Naur linux-2.6.18.1/arch/mips/lib/Makefile linux-mips-2.6.18.1/arch/mips/lib/Makefile
     1731--- linux-2.6.18.1/arch/mips/lib/Makefile       2006-10-13 20:34:03.000000000 -0700
     1732+++ linux-mips-2.6.18.1/arch/mips/lib/Makefile  2006-10-17 06:23:28.000000000 -0700
     1733@@ -5,8 +5,6 @@
     1734 lib-y  += csum_partial_copy.o memcpy.o promlib.o strlen_user.o strncpy_user.o \
     1735           strnlen_user.o uncached.o
     1736 
     1737-obj-y  += iomap.o
     1738-
     1739 # libgcc-style stuff needed in the kernel
     1740 lib-y += ashldi3.o ashrdi3.o lshrdi3.o
     1741 
     1742diff -Naur linux-2.6.18.1/arch/mips/lib/iomap.c linux-mips-2.6.18.1/arch/mips/lib/iomap.c
     1743--- linux-2.6.18.1/arch/mips/lib/iomap.c        2006-10-13 20:34:03.000000000 -0700
     1744+++ linux-mips-2.6.18.1/arch/mips/lib/iomap.c   1969-12-31 16:00:00.000000000 -0800
    14791745@@ -1,78 +0,0 @@
    14801746-/*
     
    15561822-EXPORT_SYMBOL(pci_iomap);
    15571823-EXPORT_SYMBOL(pci_iounmap);
    1558 diff -Naur linux-2.6.18/arch/mips/lib/Makefile linux-2.6.18.mips/arch/mips/lib/Makefile
    1559 --- linux-2.6.18/arch/mips/lib/Makefile 2006-09-19 20:42:06.000000000 -0700
    1560 +++ linux-2.6.18.mips/arch/mips/lib/Makefile    2006-09-20 06:55:21.000000000 -0700
    1561 @@ -5,8 +5,6 @@
    1562  lib-y  += csum_partial_copy.o memcpy.o promlib.o strlen_user.o strncpy_user.o \
    1563            strnlen_user.o uncached.o
    1564  
    1565 -obj-y  += iomap.o
    1566 -
    1567  # libgcc-style stuff needed in the kernel
    1568  lib-y += ashldi3.o ashrdi3.o lshrdi3.o
    1569  
    1570 diff -Naur linux-2.6.18/arch/mips/lib-32/dump_tlb.c linux-2.6.18.mips/arch/mips/lib-32/dump_tlb.c
    1571 --- linux-2.6.18/arch/mips/lib-32/dump_tlb.c    2006-09-19 20:42:06.000000000 -0700
    1572 +++ linux-2.6.18.mips/arch/mips/lib-32/dump_tlb.c       2006-09-20 06:55:21.000000000 -0700
     1824diff -Naur linux-2.6.18.1/arch/mips/lib-32/dump_tlb.c linux-mips-2.6.18.1/arch/mips/lib-32/dump_tlb.c
     1825--- linux-2.6.18.1/arch/mips/lib-32/dump_tlb.c  2006-10-13 20:34:03.000000000 -0700
     1826+++ linux-mips-2.6.18.1/arch/mips/lib-32/dump_tlb.c     2006-10-17 06:23:28.000000000 -0700
    15731827@@ -40,8 +40,6 @@
    15741828                return "256Mb";
     
    15801834 
    15811835 #define BARRIER()                                      \
    1582 diff -Naur linux-2.6.18/arch/mips/lib-64/dump_tlb.c linux-2.6.18.mips/arch/mips/lib-64/dump_tlb.c
    1583 --- linux-2.6.18/arch/mips/lib-64/dump_tlb.c    2006-09-19 20:42:06.000000000 -0700
    1584 +++ linux-2.6.18.mips/arch/mips/lib-64/dump_tlb.c       2006-09-20 06:55:21.000000000 -0700
     1836diff -Naur linux-2.6.18.1/arch/mips/lib-64/dump_tlb.c linux-mips-2.6.18.1/arch/mips/lib-64/dump_tlb.c
     1837--- linux-2.6.18.1/arch/mips/lib-64/dump_tlb.c  2006-10-13 20:34:03.000000000 -0700
     1838+++ linux-mips-2.6.18.1/arch/mips/lib-64/dump_tlb.c     2006-10-17 06:23:28.000000000 -0700
    15851839@@ -31,8 +31,6 @@
    15861840        case PM_256M:   return "256Mb";
     
    15921846 
    15931847 #define BARRIER()                                      \
    1594 diff -Naur linux-2.6.18/arch/mips/Makefile linux-2.6.18.mips/arch/mips/Makefile
    1595 --- linux-2.6.18/arch/mips/Makefile     2006-09-19 20:42:06.000000000 -0700
    1596 +++ linux-2.6.18.mips/arch/mips/Makefile        2006-09-20 06:55:21.000000000 -0700
    1597 @@ -330,6 +330,7 @@
    1598  # MIPS SEAD board
    1599  #
    1600  core-$(CONFIG_MIPS_SEAD)       += arch/mips/mips-boards/sead/
    1601 +cflags-$(CONFIG_MIPS_SEAD)     += -Iinclude/asm-mips/mach-mips
    1602  load-$(CONFIG_MIPS_SEAD)       += 0xffffffff80100000
    1603  
    1604  #
    1605 diff -Naur linux-2.6.18/arch/mips/mips-boards/atlas/atlas_int.c linux-2.6.18.mips/arch/mips/mips-boards/atlas/atlas_int.c
    1606 --- linux-2.6.18/arch/mips/mips-boards/atlas/atlas_int.c        2006-09-19 20:42:06.000000000 -0700
    1607 +++ linux-2.6.18.mips/arch/mips/mips-boards/atlas/atlas_int.c   2006-09-20 06:55:21.000000000 -0700
     1848diff -Naur linux-2.6.18.1/arch/mips/math-emu/cp1emu.c linux-mips-2.6.18.1/arch/mips/math-emu/cp1emu.c
     1849--- linux-2.6.18.1/arch/mips/math-emu/cp1emu.c  2006-10-13 20:34:03.000000000 -0700
     1850+++ linux-mips-2.6.18.1/arch/mips/math-emu/cp1emu.c     2006-10-17 06:23:28.000000000 -0700
     1851@@ -38,8 +38,6 @@
     1852 
     1853 #include <asm/inst.h>
     1854 #include <asm/bootinfo.h>
     1855-#include <asm/cpu.h>
     1856-#include <asm/cpu-features.h>
     1857 #include <asm/processor.h>
     1858 #include <asm/ptrace.h>
     1859 #include <asm/signal.h>
     1860@@ -1233,7 +1231,8 @@
     1861        return 0;
     1862 }
     1863 
     1864-int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
     1865+int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
     1866+       int has_fpu)
     1867 {
     1868        unsigned long oldepc, prevepc;
     1869        mips_instruction insn;
     1870@@ -1263,7 +1262,7 @@
     1871                        ieee754_csr.rm = mips_rm[ieee754_csr.rm];
     1872                }
     1873 
     1874-               if (cpu_has_fpu)
     1875+               if (has_fpu)
     1876                        break;
     1877                if (sig)
     1878                        break;
     1879diff -Naur linux-2.6.18.1/arch/mips/mips-boards/atlas/atlas_int.c linux-mips-2.6.18.1/arch/mips/mips-boards/atlas/atlas_int.c
     1880--- linux-2.6.18.1/arch/mips/mips-boards/atlas/atlas_int.c      2006-10-13 20:34:03.000000000 -0700
     1881+++ linux-mips-2.6.18.1/arch/mips/mips-boards/atlas/atlas_int.c 2006-10-17 06:23:28.000000000 -0700
    16081882@@ -1,6 +1,8 @@
    16091883 /*
     
    17922066+               setup_irq(MIPSCPU_INT_BASE + MIPSCPU_INT_ATLAS, &atlasirq);
    17932067+}
    1794 diff -Naur linux-2.6.18/arch/mips/mips-boards/atlas/atlas_setup.c linux-2.6.18.mips/arch/mips/mips-boards/atlas/atlas_setup.c
    1795 --- linux-2.6.18/arch/mips/mips-boards/atlas/atlas_setup.c      2006-09-19 20:42:06.000000000 -0700
    1796 +++ linux-2.6.18.mips/arch/mips/mips-boards/atlas/atlas_setup.c 2006-09-20 06:55:21.000000000 -0700
     2068diff -Naur linux-2.6.18.1/arch/mips/mips-boards/atlas/atlas_setup.c linux-mips-2.6.18.1/arch/mips/mips-boards/atlas/atlas_setup.c
     2069--- linux-2.6.18.1/arch/mips/mips-boards/atlas/atlas_setup.c    2006-10-13 20:34:03.000000000 -0700
     2070+++ linux-mips-2.6.18.1/arch/mips/mips-boards/atlas/atlas_setup.c       2006-10-17 06:23:28.000000000 -0700
    17972071@@ -77,7 +77,7 @@
    17982072 #else
     
    18042078        s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ;
    18052079        s.iotype = UPIO_PORT;
    1806 diff -Naur linux-2.6.18/arch/mips/mips-boards/generic/time.c linux-2.6.18.mips/arch/mips/mips-boards/generic/time.c
    1807 --- linux-2.6.18/arch/mips/mips-boards/generic/time.c   2006-09-19 20:42:06.000000000 -0700
    1808 +++ linux-2.6.18.mips/arch/mips/mips-boards/generic/time.c      2006-09-20 06:55:21.000000000 -0700
     2080diff -Naur linux-2.6.18.1/arch/mips/mips-boards/generic/time.c linux-mips-2.6.18.1/arch/mips/mips-boards/generic/time.c
     2081--- linux-2.6.18.1/arch/mips/mips-boards/generic/time.c 2006-10-13 20:34:03.000000000 -0700
     2082+++ linux-mips-2.6.18.1/arch/mips/mips-boards/generic/time.c    2006-10-17 06:23:28.000000000 -0700
    18092083@@ -41,8 +41,13 @@
    18102084 
     
    19092183 }
    19102184 
    1911 diff -Naur linux-2.6.18/arch/mips/mips-boards/malta/malta_int.c linux-2.6.18.mips/arch/mips/mips-boards/malta/malta_int.c
    1912 --- linux-2.6.18/arch/mips/mips-boards/malta/malta_int.c        2006-09-19 20:42:06.000000000 -0700
    1913 +++ linux-2.6.18.mips/arch/mips/mips-boards/malta/malta_int.c   2006-09-20 06:55:21.000000000 -0700
     2185diff -Naur linux-2.6.18.1/arch/mips/mips-boards/malta/malta_int.c linux-mips-2.6.18.1/arch/mips/mips-boards/malta/malta_int.c
     2186--- linux-2.6.18.1/arch/mips/mips-boards/malta/malta_int.c      2006-10-13 20:34:03.000000000 -0700
     2187+++ linux-mips-2.6.18.1/arch/mips/mips-boards/malta/malta_int.c 2006-10-17 06:23:28.000000000 -0700
    19142188@@ -208,23 +208,23 @@
    19152189        unsigned int a0 = 7;
     
    19422216        return a0;
    19432217 #endif
    1944 diff -Naur linux-2.6.18/arch/mips/mm/cache.c linux-2.6.18.mips/arch/mips/mm/cache.c
    1945 --- linux-2.6.18/arch/mips/mm/cache.c   2006-09-19 20:42:06.000000000 -0700
    1946 +++ linux-2.6.18.mips/arch/mips/mm/cache.c      2006-09-20 06:55:21.000000000 -0700
    1947 @@ -25,7 +25,7 @@
    1948  void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
    1949         unsigned long pfn);
    1950  void (*flush_icache_range)(unsigned long start, unsigned long end);
    1951 -void (*flush_icache_page)(struct vm_area_struct *vma, struct page *page);
    1952 +void (*__flush_icache_page)(struct vm_area_struct *vma, struct page *page);
    1953  
    1954  /* MIPS specific cache operations */
    1955  void (*flush_cache_sigtramp)(unsigned long addr);
    1956 @@ -70,6 +70,8 @@
    1957         struct address_space *mapping = page_mapping(page);
    1958         unsigned long addr;
    1959  
    1960 +       if (PageHighMem(page))
    1961 +               return;
    1962         if (mapping && !mapping_mapped(mapping)) {
    1963                 SetPageDcacheDirty(page);
    1964                 return;
    1965 @@ -91,16 +93,16 @@
    1966  {
    1967         struct page *page;
    1968         unsigned long pfn, addr;
    1969 +       int exec = (vma->vm_flags & VM_EXEC) && !cpu_has_ic_fills_f_dc;
    1970  
    1971         pfn = pte_pfn(pte);
    1972 -       if (pfn_valid(pfn) && (page = pfn_to_page(pfn), page_mapping(page)) &&
    1973 -           Page_dcache_dirty(page)) {
    1974 -               if (pages_do_alias((unsigned long)page_address(page),
    1975 -                                  address & PAGE_MASK)) {
    1976 -                       addr = (unsigned long) page_address(page);
    1977 +       if (unlikely(!pfn_valid(pfn)))
    1978 +               return;
    1979 +       page = pfn_to_page(pfn);
    1980 +       if (page_mapping(page) && Page_dcache_dirty(page)) {
    1981 +               addr = (unsigned long) page_address(page);
    1982 +               if (exec || pages_do_alias(addr, address & PAGE_MASK))
    1983                         flush_data_cache_page(addr);
    1984 -               }
    1985 -
    1986                 ClearPageDcacheDirty(page);
    1987         }
    1988  }
    1989 diff -Naur linux-2.6.18/arch/mips/mm/c-r3k.c linux-2.6.18.mips/arch/mips/mm/c-r3k.c
    1990 --- linux-2.6.18/arch/mips/mm/c-r3k.c   2006-09-19 20:42:06.000000000 -0700
    1991 +++ linux-2.6.18.mips/arch/mips/mm/c-r3k.c      2006-09-20 06:55:21.000000000 -0700
     2218diff -Naur linux-2.6.18.1/arch/mips/mm/c-r3k.c linux-mips-2.6.18.1/arch/mips/mm/c-r3k.c
     2219--- linux-2.6.18.1/arch/mips/mm/c-r3k.c 2006-10-13 20:34:03.000000000 -0700
     2220+++ linux-mips-2.6.18.1/arch/mips/mm/c-r3k.c    2006-10-17 06:23:28.000000000 -0700
    19922221@@ -335,7 +335,7 @@
    19932222        flush_cache_mm = r3k_flush_cache_mm;
     
    19992228 
    20002229        flush_cache_sigtramp = r3k_flush_cache_sigtramp;
    2001 diff -Naur linux-2.6.18/arch/mips/mm/c-r4k.c linux-2.6.18.mips/arch/mips/mm/c-r4k.c
    2002 --- linux-2.6.18/arch/mips/mm/c-r4k.c   2006-09-19 20:42:06.000000000 -0700
    2003 +++ linux-2.6.18.mips/arch/mips/mm/c-r4k.c      2006-09-20 06:55:21.000000000 -0700
     2230diff -Naur linux-2.6.18.1/arch/mips/mm/c-r4k.c linux-mips-2.6.18.1/arch/mips/mm/c-r4k.c
     2231--- linux-2.6.18.1/arch/mips/mm/c-r4k.c 2006-10-13 20:34:03.000000000 -0700
     2232+++ linux-mips-2.6.18.1/arch/mips/mm/c-r4k.c    2006-10-17 06:23:28.000000000 -0700
    20042233@@ -475,7 +475,7 @@
    20052234                }
     
    20382267 
    20392268        flush_cache_sigtramp    = r4k_flush_cache_sigtramp;
    2040 diff -Naur linux-2.6.18/arch/mips/mm/c-sb1.c linux-2.6.18.mips/arch/mips/mm/c-sb1.c
    2041 --- linux-2.6.18/arch/mips/mm/c-sb1.c   2006-09-19 20:42:06.000000000 -0700
    2042 +++ linux-2.6.18.mips/arch/mips/mm/c-sb1.c      2006-09-20 06:55:21.000000000 -0700
     2269diff -Naur linux-2.6.18.1/arch/mips/mm/c-sb1.c linux-mips-2.6.18.1/arch/mips/mm/c-sb1.c
     2270--- linux-2.6.18.1/arch/mips/mm/c-sb1.c 2006-10-13 20:34:03.000000000 -0700
     2271+++ linux-mips-2.6.18.1/arch/mips/mm/c-sb1.c    2006-10-17 06:23:28.000000000 -0700
    20432272@@ -155,6 +155,26 @@
    20442273 }
     
    21342363 
    21352364        /* This implies an Icache flush too, so can't be nop'ed */
    2136 diff -Naur linux-2.6.18/arch/mips/mm/c-tx39.c linux-2.6.18.mips/arch/mips/mm/c-tx39.c
    2137 --- linux-2.6.18/arch/mips/mm/c-tx39.c  2006-09-19 20:42:06.000000000 -0700
    2138 +++ linux-2.6.18.mips/arch/mips/mm/c-tx39.c     2006-09-20 06:55:21.000000000 -0700
     2365diff -Naur linux-2.6.18.1/arch/mips/mm/c-tx39.c linux-mips-2.6.18.1/arch/mips/mm/c-tx39.c
     2366--- linux-2.6.18.1/arch/mips/mm/c-tx39.c        2006-10-13 20:34:03.000000000 -0700
     2367+++ linux-mips-2.6.18.1/arch/mips/mm/c-tx39.c   2006-10-17 06:23:28.000000000 -0700
    21392368@@ -382,7 +382,7 @@
    21402369                flush_cache_mm          = (void *) tx39h_flush_icache_all;
     
    21552384 
    21562385                flush_cache_sigtramp = tx39_flush_cache_sigtramp;
    2157 diff -Naur linux-2.6.18/arch/mips/mm/fault.c linux-2.6.18.mips/arch/mips/mm/fault.c
    2158 --- linux-2.6.18/arch/mips/mm/fault.c   2006-09-19 20:42:06.000000000 -0700
    2159 +++ linux-2.6.18.mips/arch/mips/mm/fault.c      2006-09-20 06:55:21.000000000 -0700
     2386diff -Naur linux-2.6.18.1/arch/mips/mm/cache.c linux-mips-2.6.18.1/arch/mips/mm/cache.c
     2387--- linux-2.6.18.1/arch/mips/mm/cache.c 2006-10-13 20:34:03.000000000 -0700
     2388+++ linux-mips-2.6.18.1/arch/mips/mm/cache.c    2006-10-17 06:23:28.000000000 -0700
     2389@@ -25,7 +25,7 @@
     2390 void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
     2391        unsigned long pfn);
     2392 void (*flush_icache_range)(unsigned long start, unsigned long end);
     2393-void (*flush_icache_page)(struct vm_area_struct *vma, struct page *page);
     2394+void (*__flush_icache_page)(struct vm_area_struct *vma, struct page *page);
     2395 
     2396 /* MIPS specific cache operations */
     2397 void (*flush_cache_sigtramp)(unsigned long addr);
     2398@@ -70,6 +70,8 @@
     2399        struct address_space *mapping = page_mapping(page);
     2400        unsigned long addr;
     2401 
     2402+       if (PageHighMem(page))
     2403+               return;
     2404        if (mapping && !mapping_mapped(mapping)) {
     2405                SetPageDcacheDirty(page);
     2406                return;
     2407@@ -91,16 +93,16 @@
     2408 {
     2409        struct page *page;
     2410        unsigned long pfn, addr;
     2411+       int exec = (vma->vm_flags & VM_EXEC) && !cpu_has_ic_fills_f_dc;
     2412 
     2413        pfn = pte_pfn(pte);
     2414-       if (pfn_valid(pfn) && (page = pfn_to_page(pfn), page_mapping(page)) &&
     2415-           Page_dcache_dirty(page)) {
     2416-               if (pages_do_alias((unsigned long)page_address(page),
     2417-                                  address & PAGE_MASK)) {
     2418-                       addr = (unsigned long) page_address(page);
     2419+       if (unlikely(!pfn_valid(pfn)))
     2420+               return;
     2421+       page = pfn_to_page(pfn);
     2422+       if (page_mapping(page) && Page_dcache_dirty(page)) {
     2423+               addr = (unsigned long) page_address(page);
     2424+               if (exec || pages_do_alias(addr, address & PAGE_MASK))
     2425                        flush_data_cache_page(addr);
     2426-               }
     2427-
     2428                ClearPageDcacheDirty(page);
     2429        }
     2430 }
     2431diff -Naur linux-2.6.18.1/arch/mips/mm/fault.c linux-mips-2.6.18.1/arch/mips/mm/fault.c
     2432--- linux-2.6.18.1/arch/mips/mm/fault.c 2006-10-13 20:34:03.000000000 -0700
     2433+++ linux-mips-2.6.18.1/arch/mips/mm/fault.c    2006-10-17 06:23:28.000000000 -0700
    21602434@@ -89,7 +89,7 @@
    21612435                if (!(vma->vm_flags & VM_WRITE))
     
    21672441        }
    21682442 
    2169 diff -Naur linux-2.6.18/arch/mips/mm/init.c linux-2.6.18.mips/arch/mips/mm/init.c
    2170 --- linux-2.6.18/arch/mips/mm/init.c    2006-09-19 20:42:06.000000000 -0700
    2171 +++ linux-2.6.18.mips/arch/mips/mm/init.c       2006-09-20 06:55:21.000000000 -0700
     2443diff -Naur linux-2.6.18.1/arch/mips/mm/init.c linux-mips-2.6.18.1/arch/mips/mm/init.c
     2444--- linux-2.6.18.1/arch/mips/mm/init.c  2006-10-13 20:34:03.000000000 -0700
     2445+++ linux-mips-2.6.18.1/arch/mips/mm/init.c     2006-10-17 06:23:28.000000000 -0700
    21722446@@ -30,11 +30,39 @@
    21732447 #include <asm/cachectl.h>
     
    24402714        max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
    24412715        low = max_low_pfn;
    2442 diff -Naur linux-2.6.18/arch/mips/mm/pgtable-32.c linux-2.6.18.mips/arch/mips/mm/pgtable-32.c
    2443 --- linux-2.6.18/arch/mips/mm/pgtable-32.c      2006-09-19 20:42:06.000000000 -0700
    2444 +++ linux-2.6.18.mips/arch/mips/mm/pgtable-32.c 2006-09-20 06:55:21.000000000 -0700
     2716diff -Naur linux-2.6.18.1/arch/mips/mm/pgtable-32.c linux-mips-2.6.18.1/arch/mips/mm/pgtable-32.c
     2717--- linux-2.6.18.1/arch/mips/mm/pgtable-32.c    2006-10-13 20:34:03.000000000 -0700
     2718+++ linux-mips-2.6.18.1/arch/mips/mm/pgtable-32.c       2006-10-17 06:23:28.000000000 -0700
    24452719@@ -31,9 +31,10 @@
    24462720 
     
    24722746         * Permanent kmaps:
    24732747         */
    2474 diff -Naur linux-2.6.18/arch/mips/mm/pgtable-64.c linux-2.6.18.mips/arch/mips/mm/pgtable-64.c
    2475 --- linux-2.6.18/arch/mips/mm/pgtable-64.c      2006-09-19 20:42:06.000000000 -0700
    2476 +++ linux-2.6.18.mips/arch/mips/mm/pgtable-64.c 2006-09-20 06:55:21.000000000 -0700
     2748diff -Naur linux-2.6.18.1/arch/mips/mm/pgtable-64.c linux-mips-2.6.18.1/arch/mips/mm/pgtable-64.c
     2749--- linux-2.6.18.1/arch/mips/mm/pgtable-64.c    2006-10-13 20:34:03.000000000 -0700
     2750+++ linux-mips-2.6.18.1/arch/mips/mm/pgtable-64.c       2006-10-17 06:23:28.000000000 -0700
    24772751@@ -8,6 +8,7 @@
    24782752  */
     
    25012775+       fixrange_init(vaddr, 0, pgd_base);
    25022776 }
    2503 diff -Naur linux-2.6.18/arch/mips/pci/fixup-atlas.c linux-2.6.18.mips/arch/mips/pci/fixup-atlas.c
    2504 --- linux-2.6.18/arch/mips/pci/fixup-atlas.c    2006-09-19 20:42:06.000000000 -0700
    2505 +++ linux-2.6.18.mips/arch/mips/pci/fixup-atlas.c       2006-09-20 06:55:21.000000000 -0700
     2777diff -Naur linux-2.6.18.1/arch/mips/pci/Makefile linux-mips-2.6.18.1/arch/mips/pci/Makefile
     2778--- linux-2.6.18.1/arch/mips/pci/Makefile       2006-10-13 20:34:03.000000000 -0700
     2779+++ linux-mips-2.6.18.1/arch/mips/pci/Makefile  2006-10-17 06:23:28.000000000 -0700
     2780@@ -28,7 +28,7 @@
     2781 obj-$(CONFIG_LASAT)            += pci-lasat.o
     2782 obj-$(CONFIG_MIPS_ATLAS)       += fixup-atlas.o
     2783 obj-$(CONFIG_MIPS_COBALT)      += fixup-cobalt.o
     2784-obj-$(CONFIG_MIPS_EV96100)     += fixup-ev64120.o
     2785+obj-$(CONFIG_MIPS_EV64120)     += fixup-ev64120.o
     2786 obj-$(CONFIG_MIPS_EV96100)     += fixup-ev96100.o pci-ev96100.o
     2787 obj-$(CONFIG_MIPS_ITE8172)     += fixup-ite8172g.o
     2788 obj-$(CONFIG_MIPS_IVR)         += fixup-ivr.o
     2789diff -Naur linux-2.6.18.1/arch/mips/pci/fixup-atlas.c linux-mips-2.6.18.1/arch/mips/pci/fixup-atlas.c
     2790--- linux-2.6.18.1/arch/mips/pci/fixup-atlas.c  2006-10-13 20:34:03.000000000 -0700
     2791+++ linux-mips-2.6.18.1/arch/mips/pci/fixup-atlas.c     2006-10-17 06:23:28.000000000 -0700
    25062792@@ -21,16 +21,16 @@
    25072793 
     
    25312817 static char irq_tab[][5] __initdata = {
    25322818        /*      INTA    INTB    INTC    INTD */
    2533 diff -Naur linux-2.6.18/arch/mips/pci/fixup-tb0219.c linux-2.6.18.mips/arch/mips/pci/fixup-tb0219.c
    2534 --- linux-2.6.18/arch/mips/pci/fixup-tb0219.c   2006-09-19 20:42:06.000000000 -0700
    2535 +++ linux-2.6.18.mips/arch/mips/pci/fixup-tb0219.c      2006-09-20 06:55:21.000000000 -0700
     2819diff -Naur linux-2.6.18.1/arch/mips/pci/fixup-tb0219.c linux-mips-2.6.18.1/arch/mips/pci/fixup-tb0219.c
     2820--- linux-2.6.18.1/arch/mips/pci/fixup-tb0219.c 2006-10-13 20:34:03.000000000 -0700
     2821+++ linux-mips-2.6.18.1/arch/mips/pci/fixup-tb0219.c    2006-10-17 06:23:28.000000000 -0700
    25362822@@ -2,7 +2,7 @@
    25372823  *  fixup-tb0219.c, The TANBAC TB0219 specific PCI fixups.
     
    25432829  *  This program is free software; you can redistribute it and/or modify
    25442830  *  it under the terms of the GNU General Public License as published by
    2545 diff -Naur linux-2.6.18/arch/mips/pci/Makefile linux-2.6.18.mips/arch/mips/pci/Makefile
    2546 --- linux-2.6.18/arch/mips/pci/Makefile 2006-09-19 20:42:06.000000000 -0700
    2547 +++ linux-2.6.18.mips/arch/mips/pci/Makefile    2006-09-20 06:55:21.000000000 -0700
    2548 @@ -28,7 +28,7 @@
    2549  obj-$(CONFIG_LASAT)            += pci-lasat.o
    2550  obj-$(CONFIG_MIPS_ATLAS)       += fixup-atlas.o
    2551  obj-$(CONFIG_MIPS_COBALT)      += fixup-cobalt.o
    2552 -obj-$(CONFIG_MIPS_EV96100)     += fixup-ev64120.o
    2553 +obj-$(CONFIG_MIPS_EV64120)     += fixup-ev64120.o
    2554  obj-$(CONFIG_MIPS_EV96100)     += fixup-ev96100.o pci-ev96100.o
    2555  obj-$(CONFIG_MIPS_ITE8172)     += fixup-ite8172g.o
    2556  obj-$(CONFIG_MIPS_IVR)         += fixup-ivr.o
    2557 diff -Naur linux-2.6.18/arch/mips/pci/ops-au1000.c linux-2.6.18.mips/arch/mips/pci/ops-au1000.c
    2558 --- linux-2.6.18/arch/mips/pci/ops-au1000.c     2006-09-19 20:42:06.000000000 -0700
    2559 +++ linux-2.6.18.mips/arch/mips/pci/ops-au1000.c        2006-09-20 06:55:21.000000000 -0700
     2831diff -Naur linux-2.6.18.1/arch/mips/pci/ops-au1000.c linux-mips-2.6.18.1/arch/mips/pci/ops-au1000.c
     2832--- linux-2.6.18.1/arch/mips/pci/ops-au1000.c   2006-10-13 20:34:03.000000000 -0700
     2833+++ linux-mips-2.6.18.1/arch/mips/pci/ops-au1000.c      2006-10-17 06:23:28.000000000 -0700
    25602834@@ -110,7 +110,7 @@
    25612835        if (first_cfg) {
     
    25672841                        panic (KERN_ERR "PCI unable to get vm area\n");
    25682842                pci_cfg_wired_entry = read_c0_wired();
    2569 diff -Naur linux-2.6.18/arch/mips/qemu/Makefile linux-2.6.18.mips/arch/mips/qemu/Makefile
    2570 --- linux-2.6.18/arch/mips/qemu/Makefile        2006-09-19 20:42:06.000000000 -0700
    2571 +++ linux-2.6.18.mips/arch/mips/qemu/Makefile   2006-09-20 06:55:21.000000000 -0700
     2843diff -Naur linux-2.6.18.1/arch/mips/qemu/Makefile linux-mips-2.6.18.1/arch/mips/qemu/Makefile
     2844--- linux-2.6.18.1/arch/mips/qemu/Makefile      2006-10-13 20:34:03.000000000 -0700
     2845+++ linux-mips-2.6.18.1/arch/mips/qemu/Makefile 2006-10-17 06:23:28.000000000 -0700
    25722846@@ -4,4 +4,5 @@
    25732847 
     
    25762850+obj-$(CONFIG_VT) += q-vga.o
    25772851 obj-$(CONFIG_SMP) += q-smp.o
    2578 diff -Naur linux-2.6.18/arch/mips/qemu/q-setup.c linux-2.6.18.mips/arch/mips/qemu/q-setup.c
    2579 --- linux-2.6.18/arch/mips/qemu/q-setup.c       2006-09-19 20:42:06.000000000 -0700
    2580 +++ linux-2.6.18.mips/arch/mips/qemu/q-setup.c  2006-09-20 06:55:21.000000000 -0700
     2852diff -Naur linux-2.6.18.1/arch/mips/qemu/q-setup.c linux-mips-2.6.18.1/arch/mips/qemu/q-setup.c
     2853--- linux-2.6.18.1/arch/mips/qemu/q-setup.c     2006-10-13 20:34:03.000000000 -0700
     2854+++ linux-mips-2.6.18.1/arch/mips/qemu/q-setup.c        2006-10-17 06:23:28.000000000 -0700
    25812855@@ -2,6 +2,7 @@
    25822856 #include <asm/io.h>
     
    25972871        qemu_reboot_setup();
    25982872 }
    2599 diff -Naur linux-2.6.18/arch/mips/qemu/q-vga.c linux-2.6.18.mips/arch/mips/qemu/q-vga.c
    2600 --- linux-2.6.18/arch/mips/qemu/q-vga.c 1969-12-31 16:00:00.000000000 -0800
    2601 +++ linux-2.6.18.mips/arch/mips/qemu/q-vga.c    2006-09-20 06:55:21.000000000 -0700
     2873diff -Naur linux-2.6.18.1/arch/mips/qemu/q-vga.c linux-mips-2.6.18.1/arch/mips/qemu/q-vga.c
     2874--- linux-2.6.18.1/arch/mips/qemu/q-vga.c       1969-12-31 16:00:00.000000000 -0800
     2875+++ linux-mips-2.6.18.1/arch/mips/qemu/q-vga.c  2006-10-17 06:23:28.000000000 -0700
    26022876@@ -0,0 +1,189 @@
    26032877+/*
     
    27903064+#endif
    27913065+}
    2792 diff -Naur linux-2.6.18/arch/mips/sibyte/bcm1480/irq.c linux-2.6.18.mips/arch/mips/sibyte/bcm1480/irq.c
    2793 --- linux-2.6.18/arch/mips/sibyte/bcm1480/irq.c 2006-09-19 20:42:06.000000000 -0700
    2794 +++ linux-2.6.18.mips/arch/mips/sibyte/bcm1480/irq.c    2006-09-20 06:55:21.000000000 -0700
     3066diff -Naur linux-2.6.18.1/arch/mips/sibyte/bcm1480/irq.c linux-mips-2.6.18.1/arch/mips/sibyte/bcm1480/irq.c
     3067--- linux-2.6.18.1/arch/mips/sibyte/bcm1480/irq.c       2006-10-13 20:34:03.000000000 -0700
     3068+++ linux-mips-2.6.18.1/arch/mips/sibyte/bcm1480/irq.c  2006-10-17 06:23:28.000000000 -0700
    27953069@@ -469,21 +469,6 @@
    27963070 
     
    28153089 extern void bcm1480_mailbox_interrupt(struct pt_regs *regs);
    28163090 extern void bcm1480_kgdb_interrupt(struct pt_regs *regs);
     3091@@ -497,7 +482,7 @@
     3092        write_c0_compare(read_c0_count());
     3093 #endif
     3094 
     3095-       pending = read_c0_cause();
     3096+       pending = read_c0_cause() & read_c0_status();
     3097 
     3098 #ifdef CONFIG_SIBYTE_BCM1480_PROF
     3099        if (pending & CAUSEF_IP7)       /* Cpu performance counter interrupt */
    28173100@@ -536,9 +521,9 @@
    28183101 
     
    28273110        }
    28283111 }
    2829 diff -Naur linux-2.6.18/arch/mips/sibyte/sb1250/irq.c linux-2.6.18.mips/arch/mips/sibyte/sb1250/irq.c
    2830 --- linux-2.6.18/arch/mips/sibyte/sb1250/irq.c  2006-09-19 20:42:06.000000000 -0700
    2831 +++ linux-2.6.18.mips/arch/mips/sibyte/sb1250/irq.c     2006-09-20 06:55:21.000000000 -0700
     3112diff -Naur linux-2.6.18.1/arch/mips/sibyte/bcm1480/smp.c linux-mips-2.6.18.1/arch/mips/sibyte/bcm1480/smp.c
     3113--- linux-2.6.18.1/arch/mips/sibyte/bcm1480/smp.c       2006-10-13 20:34:03.000000000 -0700
     3114+++ linux-mips-2.6.18.1/arch/mips/sibyte/bcm1480/smp.c  2006-10-17 06:23:28.000000000 -0700
     3115@@ -34,21 +34,21 @@
     3116  * independent of board/firmware
     3117  */
     3118 
     3119-static void *mailbox_0_set_regs[] = {
     3120+static volatile void *mailbox_0_set_regs[] = {
     3121        IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
     3122        IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
     3123        IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
     3124        IOADDR(A_BCM1480_IMR_CPU3_BASE + R_BCM1480_IMR_MAILBOX_0_SET_CPU),
     3125 };
     3126 
     3127-static void *mailbox_0_clear_regs[] = {
     3128+static volatile void *mailbox_0_clear_regs[] = {
     3129        IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
     3130        IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
     3131        IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
     3132        IOADDR(A_BCM1480_IMR_CPU3_BASE + R_BCM1480_IMR_MAILBOX_0_CLR_CPU),
     3133 };
     3134 
     3135-static void *mailbox_0_regs[] = {
     3136+static volatile void *mailbox_0_regs[] = {
     3137        IOADDR(A_BCM1480_IMR_CPU0_BASE + R_BCM1480_IMR_MAILBOX_0_CPU),
     3138        IOADDR(A_BCM1480_IMR_CPU1_BASE + R_BCM1480_IMR_MAILBOX_0_CPU),
     3139        IOADDR(A_BCM1480_IMR_CPU2_BASE + R_BCM1480_IMR_MAILBOX_0_CPU),
     3140diff -Naur linux-2.6.18.1/arch/mips/sibyte/sb1250/irq.c linux-mips-2.6.18.1/arch/mips/sibyte/sb1250/irq.c
     3141--- linux-2.6.18.1/arch/mips/sibyte/sb1250/irq.c        2006-10-13 20:34:03.000000000 -0700
     3142+++ linux-mips-2.6.18.1/arch/mips/sibyte/sb1250/irq.c   2006-10-17 06:23:28.000000000 -0700
    28323143@@ -419,21 +419,6 @@
    28333144 
     
    28523163 extern void sb1250_mailbox_interrupt(struct pt_regs *regs);
    28533164 extern void sb1250_kgdb_interrupt(struct pt_regs *regs);
    2854 @@ -490,6 +475,6 @@
     3165@@ -457,7 +442,7 @@
     3166         * blasting the high 32 bits.
     3167         */
     3168 
     3169-       pending = read_c0_cause();
     3170+       pending = read_c0_cause() & read_c0_status();
     3171 
     3172 #ifdef CONFIG_SIBYTE_SB1250_PROF
     3173        if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
     3174@@ -490,6 +475,9 @@
    28553175                mask = __raw_readq(IOADDR(A_IMR_REGISTER(smp_processor_id(),
    28563176                                              R_IMR_INTERRUPT_STATUS_BASE)));
    28573177                if (mask)
    28583178-                       do_IRQ(63 - dclz(mask), regs);
     3179-       }
    28593180+                       do_IRQ(fls64(mask) - 1, regs);
    2860         }
     3181+               else
     3182+                       spurious_interrupt(regs);
     3183+       } else
     3184+               spurious_interrupt(regs);
    28613185 }
    2862 diff -Naur linux-2.6.18/drivers/char/au1000_gpio.c linux-2.6.18.mips/drivers/char/au1000_gpio.c
    2863 --- linux-2.6.18/drivers/char/au1000_gpio.c     1969-12-31 16:00:00.000000000 -0800
    2864 +++ linux-2.6.18.mips/drivers/char/au1000_gpio.c        2006-09-20 06:55:21.000000000 -0700
     3186diff -Naur linux-2.6.18.1/arch/mips/tx4927/common/tx4927_setup.c linux-mips-2.6.18.1/arch/mips/tx4927/common/tx4927_setup.c
     3187--- linux-2.6.18.1/arch/mips/tx4927/common/tx4927_setup.c       2006-10-13 20:34:03.000000000 -0700
     3188+++ linux-mips-2.6.18.1/arch/mips/tx4927/common/tx4927_setup.c  2006-10-17 06:23:28.000000000 -0700
     3189@@ -53,19 +53,9 @@
     3190 void dump_cp0(char *key);
     3191 
     3192 
     3193-void (*__wbflush) (void);
     3194-
     3195-static void tx4927_write_buffer_flush(void)
     3196-{
     3197-       __asm__ __volatile__
     3198-           ("sync\n\t" "nop\n\t" "loop: bc0f loop\n\t" "nop\n\t");
     3199-}
     3200-
     3201-
     3202 void __init plat_mem_setup(void)
     3203 {
     3204        board_time_init = tx4927_time_init;
     3205-       __wbflush = tx4927_write_buffer_flush;
     3206 
     3207 #ifdef CONFIG_TOSHIBA_RBTX4927
     3208        {
     3209diff -Naur linux-2.6.18.1/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c linux-mips-2.6.18.1/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c
     3210--- linux-2.6.18.1/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c     2006-10-13 20:34:03.000000000 -0700
     3211+++ linux-mips-2.6.18.1/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c        2006-10-17 06:23:28.000000000 -0700
     3212@@ -130,6 +130,7 @@
     3213 #include <asm/ptrace.h>
     3214 #include <asm/reboot.h>
     3215 #include <asm/time.h>
     3216+#include <asm/wbflush.h>
     3217 #include <linux/bootmem.h>
     3218 #include <linux/blkdev.h>
     3219 #ifdef CONFIG_RTC_DS1742
     3220diff -Naur linux-2.6.18.1/arch/mips/tx4938/common/irq.c linux-mips-2.6.18.1/arch/mips/tx4938/common/irq.c
     3221--- linux-2.6.18.1/arch/mips/tx4938/common/irq.c        2006-10-13 20:34:03.000000000 -0700
     3222+++ linux-mips-2.6.18.1/arch/mips/tx4938/common/irq.c   2006-10-17 06:23:28.000000000 -0700
     3223@@ -30,6 +30,7 @@
     3224 #include <asm/irq.h>
     3225 #include <asm/mipsregs.h>
     3226 #include <asm/system.h>
     3227+#include <asm/wbflush.h>
     3228 #include <asm/tx4938/rbtx4938.h>
     3229 
     3230 /**********************************************************************************/
     3231diff -Naur linux-2.6.18.1/arch/mips/tx4938/common/setup.c linux-mips-2.6.18.1/arch/mips/tx4938/common/setup.c
     3232--- linux-2.6.18.1/arch/mips/tx4938/common/setup.c      2006-10-13 20:34:03.000000000 -0700
     3233+++ linux-mips-2.6.18.1/arch/mips/tx4938/common/setup.c 2006-10-17 06:23:28.000000000 -0700
     3234@@ -41,29 +41,10 @@
     3235 void __init tx4938_time_init(void);
     3236 void dump_cp0(char *key);
     3237 
     3238-void (*__wbflush) (void);
     3239-
     3240-static void
     3241-tx4938_write_buffer_flush(void)
     3242-{
     3243-       mmiowb();
     3244-
     3245-       __asm__ __volatile__(
     3246-               ".set   push\n\t"
     3247-               ".set   noreorder\n\t"
     3248-               "lw     $0,%0\n\t"
     3249-               "nop\n\t"
     3250-               ".set   pop"
     3251-               : /* no output */
     3252-               : "m" (*(int *)KSEG1)
     3253-               : "memory");
     3254-}
     3255-
     3256 void __init
     3257 plat_mem_setup(void)
     3258 {
     3259        board_time_init = tx4938_time_init;
     3260-       __wbflush = tx4938_write_buffer_flush;
     3261        toshiba_rbtx4938_setup();
     3262 }
     3263 
     3264diff -Naur linux-2.6.18.1/arch/mips/tx4938/toshiba_rbtx4938/irq.c linux-mips-2.6.18.1/arch/mips/tx4938/toshiba_rbtx4938/irq.c
     3265--- linux-2.6.18.1/arch/mips/tx4938/toshiba_rbtx4938/irq.c      2006-10-13 20:34:03.000000000 -0700
     3266+++ linux-mips-2.6.18.1/arch/mips/tx4938/toshiba_rbtx4938/irq.c 2006-10-17 06:23:28.000000000 -0700
     3267@@ -84,6 +84,7 @@
     3268 #include <asm/ptrace.h>
     3269 #include <asm/reboot.h>
     3270 #include <asm/time.h>
     3271+#include <asm/wbflush.h>
     3272 #include <linux/bootmem.h>
     3273 #include <asm/tx4938/rbtx4938.h>
     3274 
     3275diff -Naur linux-2.6.18.1/drivers/char/Kconfig linux-mips-2.6.18.1/drivers/char/Kconfig
     3276--- linux-2.6.18.1/drivers/char/Kconfig 2006-10-13 20:34:03.000000000 -0700
     3277+++ linux-mips-2.6.18.1/drivers/char/Kconfig    2006-10-17 06:23:28.000000000 -0700
     3278@@ -357,23 +357,68 @@
     3279          To compile this driver as a module, choose M here: the
     3280          module will be called istallion.
     3281 
     3282-config AU1000_UART
     3283-       bool "Enable Au1000 UART Support"
     3284-       depends on SERIAL_NONSTANDARD && MIPS
     3285-       help
     3286-         If you have an Alchemy AU1000 processor (MIPS based) and you want
     3287-         to use serial ports, say Y.  Otherwise, say N.
     3288-
     3289-config AU1000_SERIAL_CONSOLE
     3290-       bool "Enable Au1000 serial console"
     3291-       depends on AU1000_UART
     3292+config AU1X00_GPIO
     3293+       tristate "Alchemy Au1000 GPIO device support"
     3294+       depends on MIPS && SOC_AU1X00
     3295+
     3296+config TS_AU1X00_ADS7846
     3297+       tristate "Au1000/ADS7846 touchscreen support"
     3298+       depends on MIPS && SOC_AU1X00
     3299+
     3300+config AU1X00_USB_TTY
     3301+       tristate "Au1000 USB TTY Device support"
     3302+       depends on MIPS && MIPS_AU1000 && AU1000_USB_DEVICE=y && AU1000_USB_DEVICE
     3303+
     3304+config AU1X00_USB_RAW
     3305+       tristate "Au1000 USB Raw Device support"
     3306+       depends on MIPS && MIPS_AU1000 && AU1000_USB_DEVICE=y && AU1000_USB_TTY!=y && AU1X00_USB_DEVICE
     3307+
     3308+config SIBYTE_SB1250_DUART
     3309+       bool "Support for BCM1xxx onchip DUART"
     3310+       depends on MIPS && SIBYTE_SB1xxx_SOC=y
     3311+
     3312+config SIBYTE_SB1250_DUART_CONSOLE
     3313+       bool "Console on BCM1xxx DUART"
     3314+       depends on SIBYTE_SB1250_DUART
     3315+
     3316+config SERIAL_DEC
     3317+       bool "DECstation serial support"
     3318+       depends on MACH_DECSTATION
     3319+       default y
     3320        help
     3321-         If you have an Alchemy AU1000 processor (MIPS based) and you want
     3322-         to use a console on a serial port, say Y.  Otherwise, say N.
     3323+         This selects whether you want to be asked about drivers for
     3324+         DECstation serial ports.
     3325+
     3326+         Note that the answer to this question won't directly affect the
     3327+         kernel: saying N will just cause the configurator to skip all
     3328+         the questions about DECstation serial ports.
     3329+
     3330+         If unsure, say Y.
     3331+
     3332+config SERIAL_DEC_CONSOLE
     3333+       bool "Support for console on a DECstation serial port"
     3334+       depends on SERIAL_DEC
     3335+       default y
     3336+       help
     3337+         If you say Y here, it will be possible to use a serial port as the
     3338+         system console (the system console is the device which receives all
     3339+         kernel messages and warnings and which allows logins in single user
     3340+         mode).  Note that the firmware uses ttyS0 as the serial console on
     3341+         the Maxine and ttyS2 on the others.
     3342+
     3343+         If unsure, say Y.
     3344+
     3345+config ZS
     3346+       bool "Z85C30 Serial Support"
     3347+       depends on SERIAL_DEC
     3348+       default y
     3349+       help
     3350+         Documentation on the Zilog 85C350 serial communications controller
     3351+         is downloadable at <http://www.zilog.com/pdfs/serial/z85c30.pdf>.
     3352 
     3353 config QTRONIX_KEYBOARD
     3354        bool "Enable Qtronix 990P Keyboard Support"
     3355-       depends on IT8712
     3356+       depends on MIPS && (MIPS_ITE8172 || MIPS_IVR)
     3357        help
     3358          Images of Qtronix keyboards are at
     3359          <http://www.qtronix.com/keyboard.html>.
     3360@@ -385,7 +430,7 @@
     3361 
     3362 config IT8172_SCR0
     3363        bool "Enable Smart Card Reader 0 Support "
     3364-       depends on IT8712
     3365+       depends on MIPS && (MIPS_ITE8172 || MIPS_IVR)
     3366        help
     3367          Say Y here to support smart-card reader 0 (SCR0) on the Integrated
     3368          Technology Express, Inc. ITE8172 SBC.  Vendor page at
     3369@@ -394,13 +439,17 @@
     3370 
     3371 config IT8172_SCR1
     3372        bool "Enable Smart Card Reader 1 Support "
     3373-       depends on IT8712
     3374+       depends on MIPS && (MIPS_ITE8172 || MIPS_IVR)
     3375        help
     3376          Say Y here to support smart-card reader 1 (SCR1) on the Integrated
     3377          Technology Express, Inc. ITE8172 SBC.  Vendor page at
     3378          <http://www.ite.com.tw/ia/brief_it8172bsp.htm>; picture of the
     3379          board at <http://www.mvista.com/partners/semiconductor/ite.html>.
     3380 
     3381+config ITE_GPIO
     3382+       tristate "ITE GPIO"
     3383+       depends on MIPS && MIPS_ITE8172
     3384+
     3385 config A2232
     3386        tristate "Commodore A2232 serial support (EXPERIMENTAL)"
     3387        depends on EXPERIMENTAL && ZORRO && BROKEN_ON_SMP
     3388diff -Naur linux-2.6.18.1/drivers/char/Makefile linux-mips-2.6.18.1/drivers/char/Makefile
     3389--- linux-2.6.18.1/drivers/char/Makefile        2006-10-13 20:34:03.000000000 -0700
     3390+++ linux-mips-2.6.18.1/drivers/char/Makefile   2006-10-17 06:23:28.000000000 -0700
     3391@@ -31,6 +31,7 @@
     3392 obj-$(CONFIG_A2232)            += ser_a2232.o generic_serial.o
     3393 obj-$(CONFIG_ATARI_DSP56K)     += dsp56k.o
     3394 obj-$(CONFIG_MOXA_SMARTIO)     += mxser.o
     3395+obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o
     3396 obj-$(CONFIG_COMPUTONE)                += ip2/
     3397 obj-$(CONFIG_RISCOM8)          += riscom8.o
     3398 obj-$(CONFIG_ISI)              += isicom.o
     3399@@ -51,6 +52,7 @@
     3400 obj-$(CONFIG_VIOTAPE)          += viotape.o
     3401 obj-$(CONFIG_HVCS)             += hvcs.o
     3402 obj-$(CONFIG_SGI_MBCS)         += mbcs.o
     3403+obj-$(CONFIG_SERIAL_DEC)       += decserial.o
     3404 
     3405 obj-$(CONFIG_PRINTER)          += lp.o
     3406 obj-$(CONFIG_TIPAR)            += tipar.o
     3407@@ -78,6 +80,10 @@
     3408 obj-$(CONFIG_HW_RANDOM)                += hw_random/
     3409 obj-$(CONFIG_FTAPE)            += ftape/
     3410 obj-$(CONFIG_COBALT_LCD)       += lcd.o
     3411+obj-$(CONFIG_ITE_GPIO)         += ite_gpio.o
     3412+obj-$(CONFIG_AU1000_GPIO)      += au1000_gpio.o
     3413+obj-$(CONFIG_AU1000_USB_TTY)   += au1000_usbtty.o
     3414+obj-$(CONFIG_AU1000_USB_RAW)   += au1000_usbraw.o
     3415 obj-$(CONFIG_PPDEV)            += ppdev.o
     3416 obj-$(CONFIG_NWBUTTON)         += nwbutton.o
     3417 obj-$(CONFIG_NWFLASH)          += nwflash.o
     3418diff -Naur linux-2.6.18.1/drivers/char/au1000_gpio.c linux-mips-2.6.18.1/drivers/char/au1000_gpio.c
     3419--- linux-2.6.18.1/drivers/char/au1000_gpio.c   1969-12-31 16:00:00.000000000 -0800
     3420+++ linux-mips-2.6.18.1/drivers/char/au1000_gpio.c      2006-10-17 06:23:28.000000000 -0700
    28653421@@ -0,0 +1,266 @@
    28663422+/*
     
    31303686+module_init(au1000gpio_init);
    31313687+module_exit(au1000gpio_exit);
    3132 diff -Naur linux-2.6.18/drivers/char/au1000_ts.c linux-2.6.18.mips/drivers/char/au1000_ts.c
    3133 --- linux-2.6.18/drivers/char/au1000_ts.c       1969-12-31 16:00:00.000000000 -0800
    3134 +++ linux-2.6.18.mips/drivers/char/au1000_ts.c  2006-09-20 06:55:21.000000000 -0700
     3688diff -Naur linux-2.6.18.1/drivers/char/au1000_ts.c linux-mips-2.6.18.1/drivers/char/au1000_ts.c
     3689--- linux-2.6.18.1/drivers/char/au1000_ts.c     1969-12-31 16:00:00.000000000 -0800
     3690+++ linux-mips-2.6.18.1/drivers/char/au1000_ts.c        2006-10-17 06:23:28.000000000 -0700
    31353691@@ -0,0 +1,677 @@
    31363692+/*
     
    38114367+module_init(au1000ts_init_module);
    38124368+module_exit(au1000ts_cleanup_module);
    3813 diff -Naur linux-2.6.18/drivers/char/au1000_usbraw.c linux-2.6.18.mips/drivers/char/au1000_usbraw.c
    3814 --- linux-2.6.18/drivers/char/au1000_usbraw.c   1969-12-31 16:00:00.000000000 -0800
    3815 +++ linux-2.6.18.mips/drivers/char/au1000_usbraw.c      2006-09-20 06:55:21.000000000 -0700
     4369diff -Naur linux-2.6.18.1/drivers/char/au1000_usbraw.c linux-mips-2.6.18.1/drivers/char/au1000_usbraw.c
     4370--- linux-2.6.18.1/drivers/char/au1000_usbraw.c 1969-12-31 16:00:00.000000000 -0800
     4371+++ linux-mips-2.6.18.1/drivers/char/au1000_usbraw.c    2006-10-17 06:23:28.000000000 -0700
    38164372@@ -0,0 +1,573 @@
    38174373+/*
     
    43884944+module_init(usbfn_raw_init);
    43894945+module_exit(usbfn_raw_exit);
    4390 diff -Naur linux-2.6.18/drivers/char/au1000_usbtty.c linux-2.6.18.mips/drivers/char/au1000_usbtty.c
    4391 --- linux-2.6.18/drivers/char/au1000_usbtty.c   1969-12-31 16:00:00.000000000 -0800
    4392 +++ linux-2.6.18.mips/drivers/char/au1000_usbtty.c      2006-09-20 06:55:21.000000000 -0700
     4946diff -Naur linux-2.6.18.1/drivers/char/au1000_usbtty.c linux-mips-2.6.18.1/drivers/char/au1000_usbtty.c
     4947--- linux-2.6.18.1/drivers/char/au1000_usbtty.c 1969-12-31 16:00:00.000000000 -0800
     4948+++ linux-mips-2.6.18.1/drivers/char/au1000_usbtty.c    2006-10-17 06:23:28.000000000 -0700
    43934949@@ -0,0 +1,761 @@
    43944950+/*
     
    51535709+module_init(usbfn_tty_init);
    51545710+module_exit(usbfn_tty_exit);
    5155 diff -Naur linux-2.6.18/drivers/char/decserial.c linux-2.6.18.mips/drivers/char/decserial.c
    5156 --- linux-2.6.18/drivers/char/decserial.c       2006-09-19 20:42:06.000000000 -0700
    5157 +++ linux-2.6.18.mips/drivers/char/decserial.c  2006-09-20 06:55:21.000000000 -0700
     5711diff -Naur linux-2.6.18.1/drivers/char/decserial.c linux-mips-2.6.18.1/drivers/char/decserial.c
     5712--- linux-2.6.18.1/drivers/char/decserial.c     2006-10-13 20:34:03.000000000 -0700
     5713+++ linux-mips-2.6.18.1/drivers/char/decserial.c        2006-10-17 06:23:28.000000000 -0700
    51585714@@ -14,86 +14,84 @@
    51595715  *      device. Added support for PROM console in drivers/char/tty_io.c
     
    52895845 
    52905846 #endif
    5291 diff -Naur linux-2.6.18/drivers/char/Kconfig linux-2.6.18.mips/drivers/char/Kconfig
    5292 --- linux-2.6.18/drivers/char/Kconfig   2006-09-19 20:42:06.000000000 -0700
    5293 +++ linux-2.6.18.mips/drivers/char/Kconfig      2006-09-20 06:55:21.000000000 -0700
    5294 @@ -357,23 +357,68 @@
    5295           To compile this driver as a module, choose M here: the
    5296           module will be called istallion.
    5297  
    5298 -config AU1000_UART
    5299 -       bool "Enable Au1000 UART Support"
    5300 -       depends on SERIAL_NONSTANDARD && MIPS
    5301 -       help
    5302 -         If you have an Alchemy AU1000 processor (MIPS based) and you want
    5303 -         to use serial ports, say Y.  Otherwise, say N.
    5304 -
    5305 -config AU1000_SERIAL_CONSOLE
    5306 -       bool "Enable Au1000 serial console"
    5307 -       depends on AU1000_UART
    5308 +config AU1X00_GPIO
    5309 +       tristate "Alchemy Au1000 GPIO device support"
    5310 +       depends on MIPS && SOC_AU1X00
    5311 +
    5312 +config TS_AU1X00_ADS7846
    5313 +       tristate "Au1000/ADS7846 touchscreen support"
    5314 +       depends on MIPS && SOC_AU1X00
    5315 +
    5316 +config AU1X00_USB_TTY
    5317 +       tristate "Au1000 USB TTY Device support"
    5318 +       depends on MIPS && MIPS_AU1000 && AU1000_USB_DEVICE=y && AU1000_USB_DEVICE
    5319 +
    5320 +config AU1X00_USB_RAW
    5321 +       tristate "Au1000 USB Raw Device support"
    5322 +       depends on MIPS && MIPS_AU1000 && AU1000_USB_DEVICE=y && AU1000_USB_TTY!=y && AU1X00_USB_DEVICE
    5323 +
    5324 +config SIBYTE_SB1250_DUART
    5325 +       bool "Support for BCM1xxx onchip DUART"
    5326 +       depends on MIPS && SIBYTE_SB1xxx_SOC=y
    5327 +
    5328 +config SIBYTE_SB1250_DUART_CONSOLE
    5329 +       bool "Console on BCM1xxx DUART"
    5330 +       depends on SIBYTE_SB1250_DUART
    5331 +
    5332 +config SERIAL_DEC
    5333 +       bool "DECstation serial support"
    5334 +       depends on MACH_DECSTATION
    5335 +       default y
    5336         help
    5337 -         If you have an Alchemy AU1000 processor (MIPS based) and you want
    5338 -         to use a console on a serial port, say Y.  Otherwise, say N.
    5339 +         This selects whether you want to be asked about drivers for
    5340 +         DECstation serial ports.
    5341 +
    5342 +         Note that the answer to this question won't directly affect the
    5343 +         kernel: saying N will just cause the configurator to skip all
    5344 +         the questions about DECstation serial ports.
    5345 +
    5346 +         If unsure, say Y.
    5347 +
    5348 +config SERIAL_DEC_CONSOLE
    5349 +       bool "Support for console on a DECstation serial port"
    5350 +       depends on SERIAL_DEC
    5351 +       default y
    5352 +       help
    5353 +         If you say Y here, it will be possible to use a serial port as the
    5354 +         system console (the system console is the device which receives all
    5355 +         kernel messages and warnings and which allows logins in single user
    5356 +         mode).  Note that the firmware uses ttyS0 as the serial console on
    5357 +         the Maxine and ttyS2 on the others.
    5358 +
    5359 +         If unsure, say Y.
    5360 +
    5361 +config ZS
    5362 +       bool "Z85C30 Serial Support"
    5363 +       depends on SERIAL_DEC
    5364 +       default y
    5365 +       help
    5366 +         Documentation on the Zilog 85C350 serial communications controller
    5367 +         is downloadable at <http://www.zilog.com/pdfs/serial/z85c30.pdf>.
    5368  
    5369  config QTRONIX_KEYBOARD
    5370         bool "Enable Qtronix 990P Keyboard Support"
    5371 -       depends on IT8712
    5372 +       depends on MIPS && (MIPS_ITE8172 || MIPS_IVR)
    5373         help
    5374           Images of Qtronix keyboards are at
    5375           <http://www.qtronix.com/keyboard.html>.
    5376 @@ -385,7 +430,7 @@
    5377  
    5378  config IT8172_SCR0
    5379         bool "Enable Smart Card Reader 0 Support "
    5380 -       depends on IT8712
    5381 +       depends on MIPS && (MIPS_ITE8172 || MIPS_IVR)
    5382         help
    5383           Say Y here to support smart-card reader 0 (SCR0) on the Integrated
    5384           Technology Express, Inc. ITE8172 SBC.  Vendor page at
    5385 @@ -394,13 +439,17 @@
    5386  
    5387  config IT8172_SCR1
    5388         bool "Enable Smart Card Reader 1 Support "
    5389 -       depends on IT8712
    5390 +       depends on MIPS && (MIPS_ITE8172 || MIPS_IVR)
    5391         help
    5392           Say Y here to support smart-card reader 1 (SCR1) on the Integrated
    5393           Technology Express, Inc. ITE8172 SBC.  Vendor page at
    5394           <http://www.ite.com.tw/ia/brief_it8172bsp.htm>; picture of the
    5395           board at <http://www.mvista.com/partners/semiconductor/ite.html>.
    5396  
    5397 +config ITE_GPIO
    5398 +       tristate "ITE GPIO"
    5399 +       depends on MIPS && MIPS_ITE8172
    5400 +
    5401  config A2232
    5402         tristate "Commodore A2232 serial support (EXPERIMENTAL)"
    5403         depends on EXPERIMENTAL && ZORRO && BROKEN_ON_SMP
    5404 diff -Naur linux-2.6.18/drivers/char/Makefile linux-2.6.18.mips/drivers/char/Makefile
    5405 --- linux-2.6.18/drivers/char/Makefile  2006-09-19 20:42:06.000000000 -0700
    5406 +++ linux-2.6.18.mips/drivers/char/Makefile     2006-09-20 06:55:21.000000000 -0700
    5407 @@ -31,6 +31,7 @@
    5408  obj-$(CONFIG_A2232)            += ser_a2232.o generic_serial.o
    5409  obj-$(CONFIG_ATARI_DSP56K)     += dsp56k.o
    5410  obj-$(CONFIG_MOXA_SMARTIO)     += mxser.o
    5411 +obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o
    5412  obj-$(CONFIG_COMPUTONE)                += ip2/
    5413  obj-$(CONFIG_RISCOM8)          += riscom8.o
    5414  obj-$(CONFIG_ISI)              += isicom.o
    5415 @@ -51,6 +52,7 @@
    5416  obj-$(CONFIG_VIOTAPE)          += viotape.o
    5417  obj-$(CONFIG_HVCS)             += hvcs.o
    5418  obj-$(CONFIG_SGI_MBCS)         += mbcs.o
    5419 +obj-$(CONFIG_SERIAL_DEC)       += decserial.o
    5420  
    5421  obj-$(CONFIG_PRINTER)          += lp.o
    5422  obj-$(CONFIG_TIPAR)            += tipar.o
    5423 @@ -78,6 +80,10 @@
    5424  obj-$(CONFIG_HW_RANDOM)                += hw_random/
    5425  obj-$(CONFIG_FTAPE)            += ftape/
    5426  obj-$(CONFIG_COBALT_LCD)       += lcd.o
    5427 +obj-$(CONFIG_ITE_GPIO)         += ite_gpio.o
    5428 +obj-$(CONFIG_AU1000_GPIO)      += au1000_gpio.o
    5429 +obj-$(CONFIG_AU1000_USB_TTY)   += au1000_usbtty.o
    5430 +obj-$(CONFIG_AU1000_USB_RAW)   += au1000_usbraw.o
    5431  obj-$(CONFIG_PPDEV)            += ppdev.o
    5432  obj-$(CONFIG_NWBUTTON)         += nwbutton.o
    5433  obj-$(CONFIG_NWFLASH)          += nwflash.o
    5434 diff -Naur linux-2.6.18/drivers/char/qtronix.c linux-2.6.18.mips/drivers/char/qtronix.c
    5435 --- linux-2.6.18/drivers/char/qtronix.c 2006-09-19 20:42:06.000000000 -0700
    5436 +++ linux-2.6.18.mips/drivers/char/qtronix.c    2006-09-20 06:55:21.000000000 -0700
     5847diff -Naur linux-2.6.18.1/drivers/char/qtronix.c linux-mips-2.6.18.1/drivers/char/qtronix.c
     5848--- linux-2.6.18.1/drivers/char/qtronix.c       2006-10-13 20:34:03.000000000 -0700
     5849+++ linux-mips-2.6.18.1/drivers/char/qtronix.c  2006-10-17 06:23:28.000000000 -0700
    54375850@@ -534,8 +534,7 @@
    54385851                i--;
     
    54455858        }
    54465859        if (signal_pending(current))
    5447 diff -Naur linux-2.6.18/drivers/char/rtc.c linux-2.6.18.mips/drivers/char/rtc.c
    5448 --- linux-2.6.18/drivers/char/rtc.c     2006-09-19 20:42:06.000000000 -0700
    5449 +++ linux-2.6.18.mips/drivers/char/rtc.c        2006-09-20 06:55:21.000000000 -0700
     5860diff -Naur linux-2.6.18.1/drivers/char/rtc.c linux-mips-2.6.18.1/drivers/char/rtc.c
     5861--- linux-2.6.18.1/drivers/char/rtc.c   2006-10-13 20:34:03.000000000 -0700
     5862+++ linux-mips-2.6.18.1/drivers/char/rtc.c      2006-10-17 06:23:28.000000000 -0700
    54505863@@ -35,16 +35,16 @@
    54515864  *     1.09a   Pete Zaitcev: Sun SPARC
     
    54685881  *     1.12a   Maciej W. Rozycki: Handle memory-mapped chips properly.
    54695882  *     1.12ac  Alan Cox: Allow read access to the day of week register
    5470 diff -Naur linux-2.6.18/drivers/char/sb1250_duart.c linux-2.6.18.mips/drivers/char/sb1250_duart.c
    5471 --- linux-2.6.18/drivers/char/sb1250_duart.c    1969-12-31 16:00:00.000000000 -0800
    5472 +++ linux-2.6.18.mips/drivers/char/sb1250_duart.c       2006-09-20 06:55:21.000000000 -0700
     5883diff -Naur linux-2.6.18.1/drivers/char/sb1250_duart.c linux-mips-2.6.18.1/drivers/char/sb1250_duart.c
     5884--- linux-2.6.18.1/drivers/char/sb1250_duart.c  1969-12-31 16:00:00.000000000 -0800
     5885+++ linux-mips-2.6.18.1/drivers/char/sb1250_duart.c     2006-10-17 06:23:28.000000000 -0700
    54735886@@ -0,0 +1,910 @@
    54745887+/*
     
    63826795+
    63836796+#endif /* CONFIG_SIBYTE_SB1250_DUART_CONSOLE */
    6384 diff -Naur linux-2.6.18/drivers/ide/mips/Makefile linux-2.6.18.mips/drivers/ide/mips/Makefile
    6385 --- linux-2.6.18/drivers/ide/mips/Makefile      2006-09-19 20:42:06.000000000 -0700
    6386 +++ linux-2.6.18.mips/drivers/ide/mips/Makefile 2006-09-20 06:55:21.000000000 -0700
     6797diff -Naur linux-2.6.18.1/drivers/ide/mips/Makefile linux-mips-2.6.18.1/drivers/ide/mips/Makefile
     6798--- linux-2.6.18.1/drivers/ide/mips/Makefile    2006-10-13 20:34:03.000000000 -0700
     6799+++ linux-mips-2.6.18.1/drivers/ide/mips/Makefile       2006-10-17 06:23:28.000000000 -0700
    63876800@@ -1,4 +1,4 @@
    63886801 obj-$(CONFIG_BLK_DEV_IDE_SWARM)                += swarm.o
     
    63916804-EXTRA_CFLAGS    := -Idrivers/ide
    63926805+CFLAGS_au1xxx-ide.o := -Idrivers/ide
    6393 diff -Naur linux-2.6.18/drivers/mtd/devices/docprobe.c linux-2.6.18.mips/drivers/mtd/devices/docprobe.c
    6394 --- linux-2.6.18/drivers/mtd/devices/docprobe.c 2006-09-19 20:42:06.000000000 -0700
    6395 +++ linux-2.6.18.mips/drivers/mtd/devices/docprobe.c    2006-09-20 06:55:21.000000000 -0700
     6806diff -Naur linux-2.6.18.1/drivers/mtd/devices/docprobe.c linux-mips-2.6.18.1/drivers/mtd/devices/docprobe.c
     6807--- linux-2.6.18.1/drivers/mtd/devices/docprobe.c       2006-10-13 20:34:03.000000000 -0700
     6808+++ linux-mips-2.6.18.1/drivers/mtd/devices/docprobe.c  2006-10-17 06:23:28.000000000 -0700
    63966809@@ -83,10 +83,10 @@
    63976810        0xe4000000,
     
    64086821 #endif
    64096822        0xffffffff };
    6410 diff -Naur linux-2.6.18/drivers/mtd/maps/Kconfig linux-2.6.18.mips/drivers/mtd/maps/Kconfig
    6411 --- linux-2.6.18/drivers/mtd/maps/Kconfig       2006-09-19 20:42:06.000000000 -0700
    6412 +++ linux-2.6.18.mips/drivers/mtd/maps/Kconfig  2006-09-20 06:55:21.000000000 -0700
     6823diff -Naur linux-2.6.18.1/drivers/mtd/maps/Kconfig linux-mips-2.6.18.1/drivers/mtd/maps/Kconfig
     6824--- linux-2.6.18.1/drivers/mtd/maps/Kconfig     2006-10-13 20:34:03.000000000 -0700
     6825+++ linux-mips-2.6.18.1/drivers/mtd/maps/Kconfig        2006-10-17 06:23:28.000000000 -0700
    64136826@@ -299,6 +299,18 @@
    64146827          Mapping for the Flaga digital module. If you don't have one, ignore
     
    64306843        tristate "CFI Flash device mapped on IBM 405LP Beech"
    64316844        depends on MTD_CFI && BEECH
    6432 diff -Naur linux-2.6.18/drivers/mtd/maps/lasat.c linux-2.6.18.mips/drivers/mtd/maps/lasat.c
    6433 --- linux-2.6.18/drivers/mtd/maps/lasat.c       2006-09-19 20:42:06.000000000 -0700
    6434 +++ linux-2.6.18.mips/drivers/mtd/maps/lasat.c  2006-09-20 06:55:21.000000000 -0700
     6845diff -Naur linux-2.6.18.1/drivers/mtd/maps/lasat.c linux-mips-2.6.18.1/drivers/mtd/maps/lasat.c
     6846--- linux-2.6.18.1/drivers/mtd/maps/lasat.c     2006-10-13 20:34:03.000000000 -0700
     6847+++ linux-mips-2.6.18.1/drivers/mtd/maps/lasat.c        2006-10-17 06:23:28.000000000 -0700
    64356848@@ -7,7 +7,7 @@
    64366849  * modify it under the terms of the GNU General Public License version
     
    64516864        lasat_map.size = lasat_board_info.li_flash_size;
    64526865 
    6453 diff -Naur linux-2.6.18/drivers/net/big_sur_ge.c linux-2.6.18.mips/drivers/net/big_sur_ge.c
    6454 --- linux-2.6.18/drivers/net/big_sur_ge.c       1969-12-31 16:00:00.000000000 -0800
    6455 +++ linux-2.6.18.mips/drivers/net/big_sur_ge.c  2006-09-20 06:55:21.000000000 -0700
     6866diff -Naur linux-2.6.18.1/drivers/net/Kconfig linux-mips-2.6.18.1/drivers/net/Kconfig
     6867--- linux-2.6.18.1/drivers/net/Kconfig  2006-10-13 20:34:03.000000000 -0700
     6868+++ linux-mips-2.6.18.1/drivers/net/Kconfig     2006-10-17 06:23:28.000000000 -0700
     6869@@ -438,6 +438,14 @@
     6870          This is the driver for the onboard card of MIPS Magnum 4000,
     6871          Acer PICA, Olivetti M700-10 and a few other identical OEM systems.
     6872 
     6873+config GALILEO_64240_ETH
     6874+       tristate "Galileo GT64240 Ethernet support"
     6875+       depends on NET_ETHERNET && MOMENCO_OCELOT_G
     6876+       select MII
     6877+       help
     6878+         This is the driver for the ethernet interfaces integrated into
     6879+         the Galileo (now Marvell) GT64240 chipset.
     6880+
     6881 config MIPS_GT96100ETH
     6882        bool "MIPS GT96100 Ethernet support"
     6883        depends on NET_ETHERNET && MIPS_GT96100
     6884@@ -453,10 +461,6 @@
     6885          If you have an Alchemy Semi AU1X00 based system
     6886          say Y.  Otherwise, say N.
     6887 
     6888-config NET_SB1250_MAC
     6889-       tristate "SB1250 Ethernet support"
     6890-       depends on NET_ETHERNET && SIBYTE_SB1xxx_SOC
     6891-
     6892 config SGI_IOC3_ETH
     6893        bool "SGI IOC3 Ethernet"
     6894        depends on NET_ETHERNET && PCI && SGI_IP27
     6895@@ -467,25 +471,13 @@
     6896          the Ethernet-HOWTO, available from
     6897          <http://www.tldp.org/docs.html#howto>.
     6898 
     6899-config SGI_IOC3_ETH_HW_RX_CSUM
     6900-       bool "Receive hardware checksums"
     6901-       depends on SGI_IOC3_ETH && INET
     6902-       default y
     6903-       help
     6904-         The SGI IOC3 network adapter supports TCP and UDP checksums in
     6905-         hardware to offload processing of these checksums from the CPU.  At
     6906-         the moment only acceleration of IPv4 is supported.  This option
     6907-         enables offloading for checksums on receive.  If unsure, say Y.
     6908-
     6909-config SGI_IOC3_ETH_HW_TX_CSUM
     6910-       bool "Transmit hardware checksums"
     6911-       depends on SGI_IOC3_ETH && INET
     6912-       default y
     6913+config MIPS_SIM_NET
     6914+       tristate "MIPS simulator Network device (EXPERIMENTAL)"
     6915+       depends on NETDEVICES && MIPS_SIM && EXPERIMENTAL
     6916        help
     6917-         The SGI IOC3 network adapter supports TCP and UDP checksums in
     6918-         hardware to offload processing of these checksums from the CPU.  At
     6919-         the moment only acceleration of IPv4 is supported.  This option
     6920-         enables offloading for checksums on transmit.  If unsure, say Y.
     6921+         The MIPSNET device is a simple Ethernet network device which is
     6922+         emulated by the MIPS Simulator.
     6923+         If you are not using a MIPSsim or are unsure, say N.
     6924 
     6925 config MIPS_SIM_NET
     6926        tristate "MIPS simulator Network device (EXPERIMENTAL)"
     6927@@ -2035,6 +2027,10 @@
     6928 
     6929          If in doubt, say N.
     6930 
     6931+config NET_SB1250_MAC
     6932+       tristate "SB1250 Ethernet support"
     6933+       depends on SIBYTE_SB1xxx_SOC
     6934+
     6935 config R8169_VLAN
     6936        bool "VLAN support"
     6937        depends on R8169 && VLAN_8021Q
     6938@@ -2266,8 +2262,8 @@
     6939        select MII
     6940        help
     6941          This driver supports the gigabit Ethernet on the Marvell MV643XX
     6942-         chipset which is used in the Momenco Ocelot C and Jaguar ATX and
     6943-         Pegasos II, amongst other PPC and MIPS boards.
     6944+         chipset which is used in the Momenco Ocelot C Ocelot, Jaguar ATX
     6945+         and Pegasos II, amongst other PPC and MIPS boards.
     6946 
     6947 config MV643XX_ETH_0
     6948        bool "MV-643XX Port 0"
     6949@@ -2290,6 +2286,20 @@
     6950          This enables support for Port 2 of the Marvell MV643XX Gigabit
     6951          Ethernet.
     6952 
     6953+config BIG_SUR_FE
     6954+       bool "PMC-Sierra TITAN Fast Ethernet Support"
     6955+       depends on NET_ETHERNET && PMC_BIG_SUR
     6956+       help
     6957+         This enables support for the the integrated ethernet of
     6958+         PMC-Sierra's Big Sur SoC.
     6959+
     6960+config TITAN_GE
     6961+       bool "PMC-Sierra TITAN Gigabit Ethernet Support"
     6962+       depends on PMC_YOSEMITE
     6963+       help
     6964+         This enables support for the the integrated ethernet of
     6965+         PMC-Sierra's Titan SoC.
     6966+
     6967 endmenu
     6968 
     6969 #
     6970diff -Naur linux-2.6.18.1/drivers/net/Makefile linux-mips-2.6.18.1/drivers/net/Makefile
     6971--- linux-2.6.18.1/drivers/net/Makefile 2006-10-13 20:34:03.000000000 -0700
     6972+++ linux-mips-2.6.18.1/drivers/net/Makefile    2006-10-17 06:23:28.000000000 -0700
     6973@@ -114,6 +114,11 @@
     6974 
     6975 obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
     6976 
     6977+obj-$(CONFIG_GALILEO_64240_ETH) += gt64240eth.o
     6978+obj-$(CONFIG_MV64340_ETH) += mv64340_eth.o
     6979+obj-$(CONFIG_BIG_SUR_FE) += big_sur_ge.o
     6980+obj-$(CONFIG_TITAN_GE) += titan_mdio.o titan_ge.o
     6981+
     6982 obj-$(CONFIG_PPP) += ppp_generic.o slhc.o
     6983 obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
     6984 obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
     6985diff -Naur linux-2.6.18.1/drivers/net/big_sur_ge.c linux-mips-2.6.18.1/drivers/net/big_sur_ge.c
     6986--- linux-2.6.18.1/drivers/net/big_sur_ge.c     1969-12-31 16:00:00.000000000 -0800
     6987+++ linux-mips-2.6.18.1/drivers/net/big_sur_ge.c        2006-10-17 06:23:28.000000000 -0700
    64566988@@ -0,0 +1,2005 @@
    64576989+/*
     
    84608992+MODULE_DESCRIPTION("PMC-Sierra Big Sur Ethernet MAC Driver");
    84618993+MODULE_LICENSE("GPL");
    8462 diff -Naur linux-2.6.18/drivers/net/big_sur_ge.h linux-2.6.18.mips/drivers/net/big_sur_ge.h
    8463 --- linux-2.6.18/drivers/net/big_sur_ge.h       1969-12-31 16:00:00.000000000 -0800
    8464 +++ linux-2.6.18.mips/drivers/net/big_sur_ge.h  2006-09-20 06:55:21.000000000 -0700
     8994diff -Naur linux-2.6.18.1/drivers/net/big_sur_ge.h linux-mips-2.6.18.1/drivers/net/big_sur_ge.h
     8995--- linux-2.6.18.1/drivers/net/big_sur_ge.h     1969-12-31 16:00:00.000000000 -0800
     8996+++ linux-mips-2.6.18.1/drivers/net/big_sur_ge.h        2006-10-17 06:23:28.000000000 -0700
    84658997@@ -0,0 +1,713 @@
    84668998+/*
     
    91779709+
    91789710+#endif
    9179 diff -Naur linux-2.6.18/drivers/net/gt64240eth.c linux-2.6.18.mips/drivers/net/gt64240eth.c
    9180 --- linux-2.6.18/drivers/net/gt64240eth.c       1969-12-31 16:00:00.000000000 -0800
    9181 +++ linux-2.6.18.mips/drivers/net/gt64240eth.c  2006-09-20 06:55:21.000000000 -0700
     9711diff -Naur linux-2.6.18.1/drivers/net/gt64240eth.c linux-mips-2.6.18.1/drivers/net/gt64240eth.c
     9712--- linux-2.6.18.1/drivers/net/gt64240eth.c     1969-12-31 16:00:00.000000000 -0800
     9713+++ linux-mips-2.6.18.1/drivers/net/gt64240eth.c        2006-10-17 06:23:28.000000000 -0700
    91829714@@ -0,0 +1,1672 @@
    91839715+/*
     
    1085311385+       return &gp->stats;
    1085411386+}
    10855 diff -Naur linux-2.6.18/drivers/net/gt64240eth.h linux-2.6.18.mips/drivers/net/gt64240eth.h
    10856 --- linux-2.6.18/drivers/net/gt64240eth.h       2006-09-19 20:42:06.000000000 -0700
    10857 +++ linux-2.6.18.mips/drivers/net/gt64240eth.h  2006-09-20 06:55:21.000000000 -0700
     11387diff -Naur linux-2.6.18.1/drivers/net/gt64240eth.h linux-mips-2.6.18.1/drivers/net/gt64240eth.h
     11388--- linux-2.6.18.1/drivers/net/gt64240eth.h     2006-10-13 20:34:03.000000000 -0700
     11389+++ linux-mips-2.6.18.1/drivers/net/gt64240eth.h        2006-10-17 06:23:28.000000000 -0700
    1085811390@@ -9,6 +9,7 @@
    1085911391  * Copyright 2000 MontaVista Software Inc.
     
    1089611428 /* Bit definitions of the SMI Reg */
    1089711429 enum {
    10898 diff -Naur linux-2.6.18/drivers/net/ioc3-eth.c linux-2.6.18.mips/drivers/net/ioc3-eth.c
    10899 --- linux-2.6.18/drivers/net/ioc3-eth.c 2006-09-19 20:42:06.000000000 -0700
    10900 +++ linux-2.6.18.mips/drivers/net/ioc3-eth.c    2006-09-20 06:55:21.000000000 -0700
     11430diff -Naur linux-2.6.18.1/drivers/net/ioc3-eth.c linux-mips-2.6.18.1/drivers/net/ioc3-eth.c
     11431--- linux-2.6.18.1/drivers/net/ioc3-eth.c       2006-10-13 20:34:03.000000000 -0700
     11432+++ linux-mips-2.6.18.1/drivers/net/ioc3-eth.c  2006-10-17 06:23:28.000000000 -0700
    1090111433@@ -5,7 +5,7 @@
    1090211434  *
     
    1102511557 
    1102611558 static int ioc3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
    11027 diff -Naur linux-2.6.18/drivers/net/Kconfig linux-2.6.18.mips/drivers/net/Kconfig
    11028 --- linux-2.6.18/drivers/net/Kconfig    2006-09-19 20:42:06.000000000 -0700
    11029 +++ linux-2.6.18.mips/drivers/net/Kconfig       2006-09-20 06:55:21.000000000 -0700
    11030 @@ -438,6 +438,14 @@
    11031           This is the driver for the onboard card of MIPS Magnum 4000,
    11032           Acer PICA, Olivetti M700-10 and a few other identical OEM systems.
    11033  
    11034 +config GALILEO_64240_ETH
    11035 +       tristate "Galileo GT64240 Ethernet support"
    11036 +       depends on NET_ETHERNET && MOMENCO_OCELOT_G
    11037 +       select MII
    11038 +       help
    11039 +         This is the driver for the ethernet interfaces integrated into
    11040 +         the Galileo (now Marvell) GT64240 chipset.
    11041 +
    11042  config MIPS_GT96100ETH
    11043         bool "MIPS GT96100 Ethernet support"
    11044         depends on NET_ETHERNET && MIPS_GT96100
    11045 @@ -453,10 +461,6 @@
    11046           If you have an Alchemy Semi AU1X00 based system
    11047           say Y.  Otherwise, say N.
    11048  
    11049 -config NET_SB1250_MAC
    11050 -       tristate "SB1250 Ethernet support"
    11051 -       depends on NET_ETHERNET && SIBYTE_SB1xxx_SOC
    11052 -
    11053  config SGI_IOC3_ETH
    11054         bool "SGI IOC3 Ethernet"
    11055         depends on NET_ETHERNET && PCI && SGI_IP27
    11056 @@ -467,25 +471,13 @@
    11057           the Ethernet-HOWTO, available from
    11058           <http://www.tldp.org/docs.html#howto>.
    11059  
    11060 -config SGI_IOC3_ETH_HW_RX_CSUM
    11061 -       bool "Receive hardware checksums"
    11062 -       depends on SGI_IOC3_ETH && INET
    11063 -       default y
    11064 -       help
    11065 -         The SGI IOC3 network adapter supports TCP and UDP checksums in
    11066 -         hardware to offload processing of these checksums from the CPU.  At
    11067 -         the moment only acceleration of IPv4 is supported.  This option
    11068 -         enables offloading for checksums on receive.  If unsure, say Y.
    11069 -
    11070 -config SGI_IOC3_ETH_HW_TX_CSUM
    11071 -       bool "Transmit hardware checksums"
    11072 -       depends on SGI_IOC3_ETH && INET
    11073 -       default y
    11074 +config MIPS_SIM_NET
    11075 +       tristate "MIPS simulator Network device (EXPERIMENTAL)"
    11076 +       depends on NETDEVICES && MIPS_SIM && EXPERIMENTAL
    11077         help
    11078 -         The SGI IOC3 network adapter supports TCP and UDP checksums in
    11079 -         hardware to offload processing of these checksums from the CPU.  At
    11080 -         the moment only acceleration of IPv4 is supported.  This option
    11081 -         enables offloading for checksums on transmit.  If unsure, say Y.
    11082 +         The MIPSNET device is a simple Ethernet network device which is
    11083 +         emulated by the MIPS Simulator.
    11084 +         If you are not using a MIPSsim or are unsure, say N.
    11085  
    11086  config MIPS_SIM_NET
    11087         tristate "MIPS simulator Network device (EXPERIMENTAL)"
    11088 @@ -2035,6 +2027,10 @@
    11089  
    11090           If in doubt, say N.
    11091  
    11092 +config NET_SB1250_MAC
    11093 +       tristate "SB1250 Ethernet support"
    11094 +       depends on SIBYTE_SB1xxx_SOC
    11095 +
    11096  config R8169_VLAN
    11097         bool "VLAN support"
    11098         depends on R8169 && VLAN_8021Q
    11099 @@ -2266,8 +2262,8 @@
    11100         select MII
    11101         help
    11102           This driver supports the gigabit Ethernet on the Marvell MV643XX
    11103 -         chipset which is used in the Momenco Ocelot C and Jaguar ATX and
    11104 -         Pegasos II, amongst other PPC and MIPS boards.
    11105 +         chipset which is used in the Momenco Ocelot C Ocelot, Jaguar ATX
    11106 +         and Pegasos II, amongst other PPC and MIPS boards.
    11107  
    11108  config MV643XX_ETH_0
    11109         bool "MV-643XX Port 0"
    11110 @@ -2290,6 +2286,20 @@
    11111           This enables support for Port 2 of the Marvell MV643XX Gigabit
    11112           Ethernet.
    11113  
    11114 +config BIG_SUR_FE
    11115 +       bool "PMC-Sierra TITAN Fast Ethernet Support"
    11116 +       depends on NET_ETHERNET && PMC_BIG_SUR
    11117 +       help
    11118 +         This enables support for the the integrated ethernet of
    11119 +         PMC-Sierra's Big Sur SoC.
    11120 +
    11121 +config TITAN_GE
    11122 +       bool "PMC-Sierra TITAN Gigabit Ethernet Support"
    11123 +       depends on PMC_YOSEMITE
    11124 +       help
    11125 +         This enables support for the the integrated ethernet of
    11126 +         PMC-Sierra's Titan SoC.
    11127 +
    11128  endmenu
    11129  
    11130  #
    11131 diff -Naur linux-2.6.18/drivers/net/Makefile linux-2.6.18.mips/drivers/net/Makefile
    11132 --- linux-2.6.18/drivers/net/Makefile   2006-09-19 20:42:06.000000000 -0700
    11133 +++ linux-2.6.18.mips/drivers/net/Makefile      2006-09-20 06:55:21.000000000 -0700
    11134 @@ -114,6 +114,11 @@
    11135  
    11136  obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
    11137  
    11138 +obj-$(CONFIG_GALILEO_64240_ETH) += gt64240eth.o
    11139 +obj-$(CONFIG_MV64340_ETH) += mv64340_eth.o
    11140 +obj-$(CONFIG_BIG_SUR_FE) += big_sur_ge.o
    11141 +obj-$(CONFIG_TITAN_GE) += titan_mdio.o titan_ge.o
    11142 +
    11143  obj-$(CONFIG_PPP) += ppp_generic.o slhc.o
    11144  obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
    11145  obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
    11146 diff -Naur linux-2.6.18/drivers/net/titan_ge.c linux-2.6.18.mips/drivers/net/titan_ge.c
    11147 --- linux-2.6.18/drivers/net/titan_ge.c 1969-12-31 16:00:00.000000000 -0800
    11148 +++ linux-2.6.18.mips/drivers/net/titan_ge.c    2006-09-20 06:55:21.000000000 -0700
     11559diff -Naur linux-2.6.18.1/drivers/net/titan_ge.c linux-mips-2.6.18.1/drivers/net/titan_ge.c
     11560--- linux-2.6.18.1/drivers/net/titan_ge.c       1969-12-31 16:00:00.000000000 -0800
     11561+++ linux-mips-2.6.18.1/drivers/net/titan_ge.c  2006-10-17 06:23:28.000000000 -0700
    1114911562@@ -0,0 +1,2071 @@
    1115011563+/*
     
    1321913632+module_init(titan_ge_init_module);
    1322013633+module_exit(titan_ge_cleanup_module);
    13221 diff -Naur linux-2.6.18/drivers/net/titan_ge.h linux-2.6.18.mips/drivers/net/titan_ge.h
    13222 --- linux-2.6.18/drivers/net/titan_ge.h 1969-12-31 16:00:00.000000000 -0800
    13223 +++ linux-2.6.18.mips/drivers/net/titan_ge.h    2006-09-20 06:55:21.000000000 -0700
     13634diff -Naur linux-2.6.18.1/drivers/net/titan_ge.h linux-mips-2.6.18.1/drivers/net/titan_ge.h
     13635--- linux-2.6.18.1/drivers/net/titan_ge.h       1969-12-31 16:00:00.000000000 -0800
     13636+++ linux-mips-2.6.18.1/drivers/net/titan_ge.h  2006-10-17 06:23:28.000000000 -0700
    1322413637@@ -0,0 +1,417 @@
    1322513638+#ifndef _TITAN_GE_H_
     
    1364014053+#endif                                 /* _TITAN_GE_H_ */
    1364114054+
    13642 diff -Naur linux-2.6.18/drivers/net/titan_mdio.c linux-2.6.18.mips/drivers/net/titan_mdio.c
    13643 --- linux-2.6.18/drivers/net/titan_mdio.c       1969-12-31 16:00:00.000000000 -0800
    13644 +++ linux-2.6.18.mips/drivers/net/titan_mdio.c  2006-09-20 06:55:21.000000000 -0700
     14055diff -Naur linux-2.6.18.1/drivers/net/titan_mdio.c linux-mips-2.6.18.1/drivers/net/titan_mdio.c
     14056--- linux-2.6.18.1/drivers/net/titan_mdio.c     1969-12-31 16:00:00.000000000 -0800
     14057+++ linux-mips-2.6.18.1/drivers/net/titan_mdio.c        2006-10-17 06:23:28.000000000 -0700
    1364514058@@ -0,0 +1,217 @@
    1364614059+/*
     
    1386114274+}
    1386214275+
    13863 diff -Naur linux-2.6.18/drivers/net/titan_mdio.h linux-2.6.18.mips/drivers/net/titan_mdio.h
    13864 --- linux-2.6.18/drivers/net/titan_mdio.h       1969-12-31 16:00:00.000000000 -0800
    13865 +++ linux-2.6.18.mips/drivers/net/titan_mdio.h  2006-09-20 06:55:21.000000000 -0700
     14276diff -Naur linux-2.6.18.1/drivers/net/titan_mdio.h linux-mips-2.6.18.1/drivers/net/titan_mdio.h
     14277--- linux-2.6.18.1/drivers/net/titan_mdio.h     1969-12-31 16:00:00.000000000 -0800
     14278+++ linux-mips-2.6.18.1/drivers/net/titan_mdio.h        2006-10-17 06:23:28.000000000 -0700
    1386614279@@ -0,0 +1,56 @@
    1386714280+/*
     
    1392114334+
    1392214335+#endif /* _TITAN_MDIO_H */
    13923 diff -Naur linux-2.6.18/drivers/scsi/dec_esp.c linux-2.6.18.mips/drivers/scsi/dec_esp.c
    13924 --- linux-2.6.18/drivers/scsi/dec_esp.c 2006-09-19 20:42:06.000000000 -0700
    13925 +++ linux-2.6.18.mips/drivers/scsi/dec_esp.c    2006-09-20 06:55:21.000000000 -0700
     14336diff -Naur linux-2.6.18.1/drivers/scsi/NCR53C9x.h linux-mips-2.6.18.1/drivers/scsi/NCR53C9x.h
     14337--- linux-2.6.18.1/drivers/scsi/NCR53C9x.h      2006-10-13 20:34:03.000000000 -0700
     14338+++ linux-mips-2.6.18.1/drivers/scsi/NCR53C9x.h 2006-10-17 06:23:28.000000000 -0700
     14339@@ -144,12 +144,7 @@
     14340 
     14341 #ifndef MULTIPLE_PAD_SIZES
     14342 
     14343-#ifdef CONFIG_CPU_HAS_WB
     14344-#include <asm/wbflush.h>
     14345-#define esp_write(__reg, __val) do{(__reg) = (__val); wbflush();} while(0)
     14346-#else
     14347-#define esp_write(__reg, __val) ((__reg) = (__val))
     14348-#endif
     14349+#define esp_write(__reg, __val) do{(__reg) = (__val); iob();} while(0)
     14350 #define esp_read(__reg) (__reg)
     14351 
     14352 struct ESP_regs {
     14353diff -Naur linux-2.6.18.1/drivers/scsi/dec_esp.c linux-mips-2.6.18.1/drivers/scsi/dec_esp.c
     14354--- linux-2.6.18.1/drivers/scsi/dec_esp.c       2006-10-13 20:34:03.000000000 -0700
     14355+++ linux-mips-2.6.18.1/drivers/scsi/dec_esp.c  2006-10-17 06:23:28.000000000 -0700
    1392614356@@ -55,7 +55,7 @@
    1392714357 
     
    1394214372                        esp->dregs = 0;
    1394314373                        esp->eregs = (void *)CKSEG1ADDR(mem_start +
    13944 diff -Naur linux-2.6.18/drivers/scsi/NCR53C9x.h linux-2.6.18.mips/drivers/scsi/NCR53C9x.h
    13945 --- linux-2.6.18/drivers/scsi/NCR53C9x.h        2006-09-19 20:42:06.000000000 -0700
    13946 +++ linux-2.6.18.mips/drivers/scsi/NCR53C9x.h   2006-09-20 06:55:21.000000000 -0700
    13947 @@ -144,12 +144,7 @@
    13948  
    13949  #ifndef MULTIPLE_PAD_SIZES
    13950  
    13951 -#ifdef CONFIG_CPU_HAS_WB
    13952 -#include <asm/wbflush.h>
    13953 -#define esp_write(__reg, __val) do{(__reg) = (__val); wbflush();} while(0)
    13954 -#else
    13955 -#define esp_write(__reg, __val) ((__reg) = (__val))
    13956 -#endif
    13957 +#define esp_write(__reg, __val) do{(__reg) = (__val); iob();} while(0)
    13958  #define esp_read(__reg) (__reg)
    13959  
    13960  struct ESP_regs {
    13961 diff -Naur linux-2.6.18/drivers/scsi/sgiwd93.c linux-2.6.18.mips/drivers/scsi/sgiwd93.c
    13962 --- linux-2.6.18/drivers/scsi/sgiwd93.c 2006-09-19 20:42:06.000000000 -0700
    13963 +++ linux-2.6.18.mips/drivers/scsi/sgiwd93.c    2006-09-20 06:55:21.000000000 -0700
     14374diff -Naur linux-2.6.18.1/drivers/scsi/sgiwd93.c linux-mips-2.6.18.1/drivers/scsi/sgiwd93.c
     14375--- linux-2.6.18.1/drivers/scsi/sgiwd93.c       2006-10-13 20:34:03.000000000 -0700
     14376+++ linux-mips-2.6.18.1/drivers/scsi/sgiwd93.c  2006-10-17 06:23:28.000000000 -0700
    1396414377@@ -14,6 +14,7 @@
    1396514378 #include <linux/interrupt.h>
     
    1397814391 static inline void init_hpc_chain(struct hpc_data *hd)
    1397914392 {
    13980 diff -Naur linux-2.6.18/drivers/serial/ip22zilog.c linux-2.6.18.mips/drivers/serial/ip22zilog.c
    13981 --- linux-2.6.18/drivers/serial/ip22zilog.c     2006-09-19 20:42:06.000000000 -0700
    13982 +++ linux-2.6.18.mips/drivers/serial/ip22zilog.c        2006-09-20 06:55:21.000000000 -0700
     14393diff -Naur linux-2.6.18.1/drivers/serial/Kconfig linux-mips-2.6.18.1/drivers/serial/Kconfig
     14394--- linux-2.6.18.1/drivers/serial/Kconfig       2006-10-13 20:34:03.000000000 -0700
     14395+++ linux-mips-2.6.18.1/drivers/serial/Kconfig  2006-10-17 06:23:28.000000000 -0700
     14396@@ -651,6 +651,25 @@
     14397        depends on SERIAL_SH_SCI=y
     14398        select SERIAL_CORE_CONSOLE
     14399 
     14400+config SERIAL_IP3106
     14401+       bool "Enable IP3106 UART Support (Philips PNX 8xx0 SoCs)"
     14402+       depends on MIPS && (SOC_PNX8550 || SOC_PNX8330)
     14403+       select SERIAL_CORE
     14404+       help
     14405+         If you have a Philips SoC with an IP 3106 UART in it, such as
     14406+         the PNX8550 or PNX8330 (MIPS based) and you want to use
     14407+         serial ports, say Y.  Otherwise, say N.
     14408+
     14409+config SERIAL_IP3106_CONSOLE
     14410+       bool "Enable PNX8XX0 serial console"
     14411+       depends on SERIAL_IP3106
     14412+       select SERIAL_CORE_CONSOLE
     14413+       help
     14414+         If you have a Philips SoC with an IP 3106 UART in it, such as
     14415+         the PNX8550 or PNX8330 (MIPS based) and you want to use
     14416+         a serial console, say Y.
     14417+         Otherwise, say N.
     14418+
     14419 config SERIAL_CORE
     14420        tristate
     14421 
     14422diff -Naur linux-2.6.18.1/drivers/serial/Makefile linux-mips-2.6.18.1/drivers/serial/Makefile
     14423--- linux-2.6.18.1/drivers/serial/Makefile      2006-10-13 20:34:03.000000000 -0700
     14424+++ linux-mips-2.6.18.1/drivers/serial/Makefile 2006-10-17 06:23:28.000000000 -0700
     14425@@ -39,6 +39,7 @@
     14426 obj-$(CONFIG_V850E_UART) += v850e_uart.o
     14427 obj-$(CONFIG_SERIAL_PMACZILOG) += pmac_zilog.o
     14428 obj-$(CONFIG_SERIAL_LH7A40X) += serial_lh7a40x.o
     14429+obj-$(CONFIG_SERIAL_IP3106) += ip3106_uart.o
     14430 obj-$(CONFIG_SERIAL_DZ) += dz.o
     14431 obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o
     14432 obj-$(CONFIG_SERIAL_SGI_L1_CONSOLE) += sn_console.o
     14433diff -Naur linux-2.6.18.1/drivers/serial/ip22zilog.c linux-mips-2.6.18.1/drivers/serial/ip22zilog.c
     14434--- linux-2.6.18.1/drivers/serial/ip22zilog.c   2006-10-13 20:34:03.000000000 -0700
     14435+++ linux-mips-2.6.18.1/drivers/serial/ip22zilog.c      2006-10-17 06:23:28.000000000 -0700
    1398314436@@ -865,6 +865,7 @@
    1398414437        up->cflag = termios->c_cflag;
     
    1399814451 
    1399914452 static int __init ip22zilog_console_setup(struct console *con, char *options)
    14000 diff -Naur linux-2.6.18/drivers/serial/ip3106_uart.c linux-2.6.18.mips/drivers/serial/ip3106_uart.c
    14001 --- linux-2.6.18/drivers/serial/ip3106_uart.c   1969-12-31 16:00:00.000000000 -0800
    14002 +++ linux-2.6.18.mips/drivers/serial/ip3106_uart.c      2006-09-20 06:55:21.000000000 -0700
     14453diff -Naur linux-2.6.18.1/drivers/serial/ip3106_uart.c linux-mips-2.6.18.1/drivers/serial/ip3106_uart.c
     14454--- linux-2.6.18.1/drivers/serial/ip3106_uart.c 1969-12-31 16:00:00.000000000 -0800
     14455+++ linux-mips-2.6.18.1/drivers/serial/ip3106_uart.c    2006-10-17 06:23:28.000000000 -0700
    1400314456@@ -0,0 +1,912 @@
    1400414457+/*
     
    1491415367+MODULE_LICENSE("GPL");
    1491515368+MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_IP3106_MAJOR);
    14916 diff -Naur linux-2.6.18/drivers/serial/Kconfig linux-2.6.18.mips/drivers/serial/Kconfig
    14917 --- linux-2.6.18/drivers/serial/Kconfig 2006-09-19 20:42:06.000000000 -0700
    14918 +++ linux-2.6.18.mips/drivers/serial/Kconfig    2006-09-20 06:55:21.000000000 -0700
    14919 @@ -651,6 +651,25 @@
    14920         depends on SERIAL_SH_SCI=y
    14921         select SERIAL_CORE_CONSOLE
    14922  
    14923 +config SERIAL_IP3106
    14924 +       bool "Enable IP3106 UART Support (Philips PNX 8xx0 SoCs)"
    14925 +       depends on MIPS && (SOC_PNX8550 || SOC_PNX8330)
    14926 +       select SERIAL_CORE
    14927 +       help
    14928 +         If you have a Philips SoC with an IP 3106 UART in it, such as
    14929 +         the PNX8550 or PNX8330 (MIPS based) and you want to use
    14930 +         serial ports, say Y.  Otherwise, say N.
    14931 +
    14932 +config SERIAL_IP3106_CONSOLE
    14933 +       bool "Enable PNX8XX0 serial console"
    14934 +       depends on SERIAL_IP3106
    14935 +       select SERIAL_CORE_CONSOLE
    14936 +       help
    14937 +         If you have a Philips SoC with an IP 3106 UART in it, such as
    14938 +         the PNX8550 or PNX8330 (MIPS based) and you want to use
    14939 +         a serial console, say Y.
    14940 +         Otherwise, say N.
    14941 +
    14942  config SERIAL_CORE
    14943         tristate
    14944  
    14945 diff -Naur linux-2.6.18/drivers/serial/Makefile linux-2.6.18.mips/drivers/serial/Makefile
    14946 --- linux-2.6.18/drivers/serial/Makefile        2006-09-19 20:42:06.000000000 -0700
    14947 +++ linux-2.6.18.mips/drivers/serial/Makefile   2006-09-20 06:55:21.000000000 -0700
    14948 @@ -39,6 +39,7 @@
    14949  obj-$(CONFIG_V850E_UART) += v850e_uart.o
    14950  obj-$(CONFIG_SERIAL_PMACZILOG) += pmac_zilog.o
    14951  obj-$(CONFIG_SERIAL_LH7A40X) += serial_lh7a40x.o
    14952 +obj-$(CONFIG_SERIAL_IP3106) += ip3106_uart.o
    14953  obj-$(CONFIG_SERIAL_DZ) += dz.o
    14954  obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o
    14955  obj-$(CONFIG_SERIAL_SGI_L1_CONSOLE) += sn_console.o
    14956 diff -Naur linux-2.6.18/drivers/usb/gadget/net2280.c linux-2.6.18.mips/drivers/usb/gadget/net2280.c
    14957 --- linux-2.6.18/drivers/usb/gadget/net2280.c   2006-09-19 20:42:06.000000000 -0700
    14958 +++ linux-2.6.18.mips/drivers/usb/gadget/net2280.c      2006-09-20 06:55:21.000000000 -0700
     15369diff -Naur linux-2.6.18.1/drivers/usb/gadget/net2280.c linux-mips-2.6.18.1/drivers/usb/gadget/net2280.c
     15370--- linux-2.6.18.1/drivers/usb/gadget/net2280.c 2006-10-13 20:34:03.000000000 -0700
     15371+++ linux-mips-2.6.18.1/drivers/usb/gadget/net2280.c    2006-10-17 06:23:28.000000000 -0700
    1495915372@@ -467,7 +467,8 @@
    1496015373 #elif  defined(CONFIG_PPC) && !defined(CONFIG_NOT_COHERENT_CACHE)
     
    1496715380 
    1496815381 /* FIXME there are other cases, including an x86-64 one ...  */
    14969 diff -Naur linux-2.6.18/drivers/usb/host/ohci-hcd.c linux-2.6.18.mips/drivers/usb/host/ohci-hcd.c
    14970 --- linux-2.6.18/drivers/usb/host/ohci-hcd.c    2006-09-19 20:42:06.000000000 -0700
    14971 +++ linux-2.6.18.mips/drivers/usb/host/ohci-hcd.c       2006-09-20 06:55:21.000000000 -0700
     15382diff -Naur linux-2.6.18.1/drivers/usb/host/ohci-hcd.c linux-mips-2.6.18.1/drivers/usb/host/ohci-hcd.c
     15383--- linux-2.6.18.1/drivers/usb/host/ohci-hcd.c  2006-10-13 20:34:03.000000000 -0700
     15384+++ linux-mips-2.6.18.1/drivers/usb/host/ohci-hcd.c     2006-10-17 06:23:28.000000000 -0700
    1497215385@@ -909,6 +909,10 @@
    1497315386 #include "ohci-au1xxx.c"
     
    1498115394 #include "ohci-ppc-soc.c"
    1498215395 #endif
    14983 diff -Naur linux-2.6.18/drivers/usb/host/ohci-pnx8550.c linux-2.6.18.mips/drivers/usb/host/ohci-pnx8550.c
    14984 --- linux-2.6.18/drivers/usb/host/ohci-pnx8550.c        1969-12-31 16:00:00.000000000 -0800
    14985 +++ linux-2.6.18.mips/drivers/usb/host/ohci-pnx8550.c   2006-09-20 06:55:21.000000000 -0700
     15396diff -Naur linux-2.6.18.1/drivers/usb/host/ohci-pnx8550.c linux-mips-2.6.18.1/drivers/usb/host/ohci-pnx8550.c
     15397--- linux-2.6.18.1/drivers/usb/host/ohci-pnx8550.c      1969-12-31 16:00:00.000000000 -0800
     15398+++ linux-mips-2.6.18.1/drivers/usb/host/ohci-pnx8550.c 2006-10-17 06:23:28.000000000 -0700
    1498615399@@ -0,0 +1,277 @@
    1498715400+/*
     
    1526215675+module_init (ohci_hcd_pnx8550_init);
    1526315676+module_exit (ohci_hcd_pnx8550_cleanup);
    15264 diff -Naur linux-2.6.18/drivers/video/au1100fb.c linux-2.6.18.mips/drivers/video/au1100fb.c
    15265 --- linux-2.6.18/drivers/video/au1100fb.c       2006-09-19 20:42:06.000000000 -0700
    15266 +++ linux-2.6.18.mips/drivers/video/au1100fb.c  2006-09-20 06:55:21.000000000 -0700
    15267 @@ -40,6 +40,7 @@
    15268   *  with this program; if not, write  to the Free Software Foundation, Inc.,
    15269   *  675 Mass Ave, Cambridge, MA 02139, USA.
    15270   */
    15271 +
    15272  #include <linux/module.h>
    15273  #include <linux/kernel.h>
    15274  #include <linux/errno.h>
    15275 diff -Naur linux-2.6.18/drivers/video/Kconfig linux-2.6.18.mips/drivers/video/Kconfig
    15276 --- linux-2.6.18/drivers/video/Kconfig  2006-09-19 20:42:06.000000000 -0700
    15277 +++ linux-2.6.18.mips/drivers/video/Kconfig     2006-09-20 06:55:21.000000000 -0700
     15677diff -Naur linux-2.6.18.1/drivers/video/Kconfig linux-mips-2.6.18.1/drivers/video/Kconfig
     15678--- linux-2.6.18.1/drivers/video/Kconfig        2006-10-13 20:34:03.000000000 -0700
     15679+++ linux-mips-2.6.18.1/drivers/video/Kconfig   2006-10-17 06:23:28.000000000 -0700
    1527815680@@ -1250,6 +1250,17 @@
    1527915681          Please read the <file:Documentation/fb/README-sstfb.txt> for supported
     
    1533215734 config FB_MAXINE
    1533315735        bool "Maxine (Personal DECstation) onboard framebuffer support"
    15334 diff -Naur linux-2.6.18/drivers/video/Makefile linux-2.6.18.mips/drivers/video/Makefile
    15335 --- linux-2.6.18/drivers/video/Makefile 2006-09-19 20:42:06.000000000 -0700
    15336 +++ linux-2.6.18.mips/drivers/video/Makefile    2006-09-20 06:55:21.000000000 -0700
     15736diff -Naur linux-2.6.18.1/drivers/video/Makefile linux-mips-2.6.18.1/drivers/video/Makefile
     15737--- linux-2.6.18.1/drivers/video/Makefile       2006-10-13 20:34:03.000000000 -0700
     15738+++ linux-mips-2.6.18.1/drivers/video/Makefile  2006-10-17 06:23:28.000000000 -0700
    1533715739@@ -95,6 +95,7 @@
    1533815740 obj-$(CONFIG_FB_TX3912)                  += tx3912fb.o
     
    1534315745 obj-$(CONFIG_FB_PNX4008_DUM)     += pnx4008/
    1534415746 obj-$(CONFIG_FB_PNX4008_DUM_RGB)  += pnx4008/
    15345 diff -Naur linux-2.6.18/drivers/video/smivgxfb.c linux-2.6.18.mips/drivers/video/smivgxfb.c
    15346 --- linux-2.6.18/drivers/video/smivgxfb.c       1969-12-31 16:00:00.000000000 -0800
    15347 +++ linux-2.6.18.mips/drivers/video/smivgxfb.c  2006-09-20 06:55:21.000000000 -0700
     15747diff -Naur linux-2.6.18.1/drivers/video/au1100fb.c linux-mips-2.6.18.1/drivers/video/au1100fb.c
     15748--- linux-2.6.18.1/drivers/video/au1100fb.c     2006-10-13 20:34:03.000000000 -0700
     15749+++ linux-mips-2.6.18.1/drivers/video/au1100fb.c        2006-10-17 06:23:28.000000000 -0700
     15750@@ -40,6 +40,7 @@
     15751  *  with this program; if not, write  to the Free Software Foundation, Inc.,
     15752  *  675 Mass Ave, Cambridge, MA 02139, USA.
     15753  */
     15754+
     15755 #include <linux/module.h>
     15756 #include <linux/kernel.h>
     15757 #include <linux/errno.h>
     15758diff -Naur linux-2.6.18.1/drivers/video/smivgxfb.c linux-mips-2.6.18.1/drivers/video/smivgxfb.c
     15759--- linux-2.6.18.1/drivers/video/smivgxfb.c     1969-12-31 16:00:00.000000000 -0800
     15760+++ linux-mips-2.6.18.1/drivers/video/smivgxfb.c        2006-10-17 06:23:28.000000000 -0700
    1534815761@@ -0,0 +1,387 @@
    1534915762+/***************************************************************************
     
    1573416147+MODULE_DESCRIPTION("Framebuffer driver for SMI Voyager");
    1573516148+MODULE_LICENSE("GPL");
    15736 diff -Naur linux-2.6.18/include/asm-mips/cacheflush.h linux-2.6.18.mips/include/asm-mips/cacheflush.h
    15737 --- linux-2.6.18/include/asm-mips/cacheflush.h  2006-09-19 20:42:06.000000000 -0700
    15738 +++ linux-2.6.18.mips/include/asm-mips/cacheflush.h     2006-09-20 06:55:21.000000000 -0700
     16149diff -Naur linux-2.6.18.1/include/asm-mips/Kbuild linux-mips-2.6.18.1/include/asm-mips/Kbuild
     16150--- linux-2.6.18.1/include/asm-mips/Kbuild      2006-10-13 20:34:03.000000000 -0700
     16151+++ linux-mips-2.6.18.1/include/asm-mips/Kbuild 2006-10-17 06:23:28.000000000 -0700
     16152@@ -1 +1,3 @@
     16153 include include/asm-generic/Kbuild.asm
     16154+
     16155+header-y += cachectl.h sgidefs.h sysmips.h
     16156diff -Naur linux-2.6.18.1/include/asm-mips/cacheflush.h linux-mips-2.6.18.1/include/asm-mips/cacheflush.h
     16157--- linux-2.6.18.1/include/asm-mips/cacheflush.h        2006-10-13 20:34:03.000000000 -0700
     16158+++ linux-mips-2.6.18.1/include/asm-mips/cacheflush.h   2006-10-17 06:23:28.000000000 -0700
    1573916159@@ -21,7 +21,6 @@
    1574016160  *  - flush_cache_range(vma, start, end) flushes a range of pages
     
    1579516215 extern void (*flush_cache_sigtramp)(unsigned long addr);
    1579616216 extern void (*flush_icache_all)(void);
    15797 diff -Naur linux-2.6.18/include/asm-mips/fixmap.h linux-2.6.18.mips/include/asm-mips/fixmap.h
    15798 --- linux-2.6.18/include/asm-mips/fixmap.h      2006-09-19 20:42:06.000000000 -0700
    15799 +++ linux-2.6.18.mips/include/asm-mips/fixmap.h 2006-09-20 06:55:21.000000000 -0700
     16217diff -Naur linux-2.6.18.1/include/asm-mips/fixmap.h linux-mips-2.6.18.1/include/asm-mips/fixmap.h
     16218--- linux-2.6.18.1/include/asm-mips/fixmap.h    2006-10-13 20:34:03.000000000 -0700
     16219+++ linux-mips-2.6.18.1/include/asm-mips/fixmap.h       2006-10-17 06:23:28.000000000 -0700
    1580016220@@ -45,8 +45,16 @@
    1580116221  * fix-mapped?
     
    1582816248 #define FIXADDR_SIZE   (__end_of_fixed_addresses << PAGE_SHIFT)
    1582916249 #define FIXADDR_START  (FIXADDR_TOP - FIXADDR_SIZE)
    15830 diff -Naur linux-2.6.18/include/asm-mips/io.h linux-2.6.18.mips/include/asm-mips/io.h
    15831 --- linux-2.6.18/include/asm-mips/io.h  2006-09-19 20:42:06.000000000 -0700
    15832 +++ linux-2.6.18.mips/include/asm-mips/io.h     2006-09-20 06:55:21.000000000 -0700
     16250diff -Naur linux-2.6.18.1/include/asm-mips/fpu.h linux-mips-2.6.18.1/include/asm-mips/fpu.h
     16251--- linux-2.6.18.1/include/asm-mips/fpu.h       2006-10-13 20:34:03.000000000 -0700
     16252+++ linux-mips-2.6.18.1/include/asm-mips/fpu.h  2006-10-17 06:23:28.000000000 -0700
     16253@@ -134,9 +134,11 @@
     16254 
     16255 static inline fpureg_t *get_fpu_regs(struct task_struct *tsk)
     16256 {
     16257-       if (cpu_has_fpu) {
     16258-               if ((tsk == current) && __is_fpu_owner())
     16259+       if (tsk == current) {
     16260+               preempt_disable();
     16261+               if (is_fpu_owner())
     16262                        _save_fp(current);
     16263+               preempt_enable();
     16264        }
     16265 
     16266        return tsk->thread.fpu.fpr;
     16267diff -Naur linux-2.6.18.1/include/asm-mips/io.h linux-mips-2.6.18.1/include/asm-mips/io.h
     16268--- linux-2.6.18.1/include/asm-mips/io.h        2006-10-13 20:34:03.000000000 -0700
     16269+++ linux-mips-2.6.18.1/include/asm-mips/io.h   2006-10-17 06:23:28.000000000 -0700
    1583316270@@ -518,34 +518,6 @@
    1583416271 }
     
    1586616303  * to explicitly ioremap() it. The fact that the ISA IO space is mapped
    1586716304  * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
    15868 diff -Naur linux-2.6.18/include/asm-mips/irq.h linux-2.6.18.mips/include/asm-mips/irq.h
    15869 --- linux-2.6.18/include/asm-mips/irq.h 2006-09-19 20:42:06.000000000 -0700
    15870 +++ linux-2.6.18.mips/include/asm-mips/irq.h    2006-09-20 06:55:21.000000000 -0700
     16305diff -Naur linux-2.6.18.1/include/asm-mips/irq.h linux-mips-2.6.18.1/include/asm-mips/irq.h
     16306--- linux-2.6.18.1/include/asm-mips/irq.h       2006-10-13 20:34:03.000000000 -0700
     16307+++ linux-mips-2.6.18.1/include/asm-mips/irq.h  2006-10-17 06:23:28.000000000 -0700
    1587116308@@ -76,8 +76,4 @@
    1587216309                           unsigned long hwmask);
     
    1587816315-
    1587916316 #endif /* _ASM_IRQ_H */
    15880 diff -Naur linux-2.6.18/include/asm-mips/Kbuild linux-2.6.18.mips/include/asm-mips/Kbuild
    15881 --- linux-2.6.18/include/asm-mips/Kbuild        2006-09-19 20:42:06.000000000 -0700
    15882 +++ linux-2.6.18.mips/include/asm-mips/Kbuild   2006-09-20 06:55:21.000000000 -0700
    15883 @@ -1 +1,3 @@
    15884  include include/asm-generic/Kbuild.asm
    15885 +
    15886 +header-y += sgidefs.h
    15887 diff -Naur linux-2.6.18/include/asm-mips/mach-atlas/mc146818rtc.h linux-2.6.18.mips/include/asm-mips/mach-atlas/mc146818rtc.h
    15888 --- linux-2.6.18/include/asm-mips/mach-atlas/mc146818rtc.h      2006-09-19 20:42:06.000000000 -0700
    15889 +++ linux-2.6.18.mips/include/asm-mips/mach-atlas/mc146818rtc.h 2006-09-20 06:55:21.000000000 -0700
     16317diff -Naur linux-2.6.18.1/include/asm-mips/mach-atlas/mc146818rtc.h linux-mips-2.6.18.1/include/asm-mips/mach-atlas/mc146818rtc.h
     16318--- linux-2.6.18.1/include/asm-mips/mach-atlas/mc146818rtc.h    2006-10-13 20:34:03.000000000 -0700
     16319+++ linux-mips-2.6.18.1/include/asm-mips/mach-atlas/mc146818rtc.h       2006-10-17 06:23:28.000000000 -0700
    1589016320@@ -28,10 +28,12 @@
    1589116321 #include <asm/mips-boards/atlas.h>
     
    1590216332 static inline unsigned char CMOS_READ(unsigned long addr)
    1590316333 {
    15904 diff -Naur linux-2.6.18/include/asm-mips/mach-au1x00/au1xxx_ide.h linux-2.6.18.mips/include/asm-mips/mach-au1x00/au1xxx_ide.h
    15905 --- linux-2.6.18/include/asm-mips/mach-au1x00/au1xxx_ide.h      2006-09-19 20:42:06.000000000 -0700
    15906 +++ linux-2.6.18.mips/include/asm-mips/mach-au1x00/au1xxx_ide.h 2006-09-20 06:55:21.000000000 -0700
     16334diff -Naur linux-2.6.18.1/include/asm-mips/mach-au1x00/au1xxx_ide.h linux-mips-2.6.18.1/include/asm-mips/mach-au1x00/au1xxx_ide.h
     16335--- linux-2.6.18.1/include/asm-mips/mach-au1x00/au1xxx_ide.h    2006-10-13 20:34:03.000000000 -0700
     16336+++ linux-mips-2.6.18.1/include/asm-mips/mach-au1x00/au1xxx_ide.h       2006-10-17 06:23:28.000000000 -0700
    1590716337@@ -83,6 +83,7 @@
    1590816338 } _auide_hwif;
     
    1591316343 static const struct drive_list_entry dma_white_list [] = {
    1591416344 /*
    15915 diff -Naur linux-2.6.18/include/asm-mips/mips-boards/atlasint.h linux-2.6.18.mips/include/asm-mips/mips-boards/atlasint.h
    15916 --- linux-2.6.18/include/asm-mips/mips-boards/atlasint.h        2006-09-19 20:42:06.000000000 -0700
    15917 +++ linux-2.6.18.mips/include/asm-mips/mips-boards/atlasint.h   2006-09-20 06:55:21.000000000 -0700
     16345diff -Naur linux-2.6.18.1/include/asm-mips/mips-boards/atlasint.h linux-mips-2.6.18.1/include/asm-mips/mips-boards/atlasint.h
     16346--- linux-2.6.18.1/include/asm-mips/mips-boards/atlasint.h      2006-10-13 20:34:03.000000000 -0700
     16347+++ linux-mips-2.6.18.1/include/asm-mips/mips-boards/atlasint.h 2006-10-17 06:23:28.000000000 -0700
    1591816348@@ -1,6 +1,7 @@
    1591916349 /*
     
    1605116481 
    1605216482 #endif /* !(_MIPS_ATLASINT_H) */
    16053 diff -Naur linux-2.6.18/include/asm-mips/page.h linux-2.6.18.mips/include/asm-mips/page.h
    16054 --- linux-2.6.18/include/asm-mips/page.h        2006-09-19 20:42:06.000000000 -0700
    16055 +++ linux-2.6.18.mips/include/asm-mips/page.h   2006-09-20 06:55:21.000000000 -0700
     16483diff -Naur linux-2.6.18.1/include/asm-mips/page.h linux-mips-2.6.18.1/include/asm-mips/page.h
     16484--- linux-2.6.18.1/include/asm-mips/page.h      2006-10-13 20:34:03.000000000 -0700
     16485+++ linux-mips-2.6.18.1/include/asm-mips/page.h 2006-10-17 06:23:28.000000000 -0700
    1605616486@@ -53,19 +53,17 @@
    1605716487        extern void (*flush_data_cache_page)(unsigned long addr);
     
    1610016530 /*
    1610116531  * For 3-level pagetables we defines these ourselves, for 2-level the
    16102 diff -Naur linux-2.6.18/include/asm-mips/ptrace.h linux-2.6.18.mips/include/asm-mips/ptrace.h
    16103 --- linux-2.6.18/include/asm-mips/ptrace.h      2006-09-19 20:42:06.000000000 -0700
    16104 +++ linux-2.6.18.mips/include/asm-mips/ptrace.h 2006-09-20 06:55:21.000000000 -0700
     16532diff -Naur linux-2.6.18.1/include/asm-mips/ptrace.h linux-mips-2.6.18.1/include/asm-mips/ptrace.h
     16533--- linux-2.6.18.1/include/asm-mips/ptrace.h    2006-10-13 20:34:03.000000000 -0700
     16534+++ linux-mips-2.6.18.1/include/asm-mips/ptrace.h       2006-10-17 06:23:28.000000000 -0700
    1610516535@@ -10,8 +10,6 @@
    1610616536 #define _ASM_PTRACE_H
     
    1612016550 /*
    1612116551  * Does the process account for user or for system time?
    16122 diff -Naur linux-2.6.18/include/asm-mips/spinlock.h linux-2.6.18.mips/include/asm-mips/spinlock.h
    16123 --- linux-2.6.18/include/asm-mips/spinlock.h    2006-09-19 20:42:06.000000000 -0700
    16124 +++ linux-2.6.18.mips/include/asm-mips/spinlock.h       2006-09-20 06:55:21.000000000 -0700
     16552diff -Naur linux-2.6.18.1/include/asm-mips/spinlock.h linux-mips-2.6.18.1/include/asm-mips/spinlock.h
     16553--- linux-2.6.18.1/include/asm-mips/spinlock.h  2006-10-13 20:34:03.000000000 -0700
     16554+++ linux-mips-2.6.18.1/include/asm-mips/spinlock.h     2006-10-17 06:23:28.000000000 -0700
    1612516555@@ -239,7 +239,51 @@
    1612616556        : "memory");
     
    1618216612+
    1618316613 #endif /* _ASM_SPINLOCK_H */
    16184 diff -Naur linux-2.6.18/include/asm-mips/timex.h linux-2.6.18.mips/include/asm-mips/timex.h
    16185 --- linux-2.6.18/include/asm-mips/timex.h       2006-09-19 20:42:06.000000000 -0700
    16186 +++ linux-2.6.18.mips/include/asm-mips/timex.h  2006-09-20 06:55:21.000000000 -0700
     16614diff -Naur linux-2.6.18.1/include/asm-mips/system.h linux-mips-2.6.18.1/include/asm-mips/system.h
     16615--- linux-2.6.18.1/include/asm-mips/system.h    2006-10-13 20:34:03.000000000 -0700
     16616+++ linux-mips-2.6.18.1/include/asm-mips/system.h       2006-10-17 06:23:28.000000000 -0700
     16617@@ -392,7 +392,7 @@
     16618 {
     16619        __u64 retval;
     16620 
     16621-       if (cpu_has_llsc) {
     16622+       if (cpu_has_llsc && R10000_LLSC_WAR) {
     16623                __asm__ __volatile__(
     16624                "       .set    push                                    \n"
     16625                "       .set    noat                                    \n"
     16626diff -Naur linux-2.6.18.1/include/asm-mips/timex.h linux-mips-2.6.18.1/include/asm-mips/timex.h
     16627--- linux-2.6.18.1/include/asm-mips/timex.h     2006-10-13 20:34:03.000000000 -0700
     16628+++ linux-mips-2.6.18.1/include/asm-mips/timex.h        2006-10-17 06:23:28.000000000 -0700
    1618716629@@ -8,6 +8,8 @@
    1618816630 #ifndef _ASM_TIMEX_H
     
    1620116643+
    1620216644 #endif /*  _ASM_TIMEX_H */
    16203 diff -Naur linux-2.6.18/include/asm-mips/unistd.h linux-2.6.18.mips/include/asm-mips/unistd.h
    16204 --- linux-2.6.18/include/asm-mips/unistd.h      2006-09-19 20:42:06.000000000 -0700
    16205 +++ linux-2.6.18.mips/include/asm-mips/unistd.h 2006-09-20 06:55:21.000000000 -0700
     16645diff -Naur linux-2.6.18.1/include/asm-mips/unistd.h linux-mips-2.6.18.1/include/asm-mips/unistd.h
     16646--- linux-2.6.18.1/include/asm-mips/unistd.h    2006-10-13 20:34:03.000000000 -0700
     16647+++ linux-mips-2.6.18.1/include/asm-mips/unistd.h       2006-10-17 06:23:28.000000000 -0700
     16648@@ -313,7 +313,7 @@
     16649 #define __NR_mknodat                   (__NR_Linux + 290)
     16650 #define __NR_fchownat                  (__NR_Linux + 291)
     16651 #define __NR_futimesat                 (__NR_Linux + 292)
     16652-#define __NR_fstatat                   (__NR_Linux + 293)
     16653+#define __NR_fstatat64                 (__NR_Linux + 293)
     16654 #define __NR_unlinkat                  (__NR_Linux + 294)
     16655 #define __NR_renameat                  (__NR_Linux + 295)
     16656 #define __NR_linkat                    (__NR_Linux + 296)
    1620616657@@ -329,16 +329,18 @@
    1620716658 #define __NR_tee                       (__NR_Linux + 306)
     
    1622516676 #if _MIPS_SIM == _MIPS_SIM_ABI64
    1622616677 
     16678@@ -598,7 +600,7 @@
     16679 #define __NR_mknodat                   (__NR_Linux + 249)
     16680 #define __NR_fchownat                  (__NR_Linux + 250)
     16681 #define __NR_futimesat                 (__NR_Linux + 251)
     16682-#define __NR_fstatat                   (__NR_Linux + 252)
     16683+#define __NR_newfstatat                        (__NR_Linux + 252)
     16684 #define __NR_unlinkat                  (__NR_Linux + 253)
     16685 #define __NR_renameat                  (__NR_Linux + 254)
     16686 #define __NR_linkat                    (__NR_Linux + 255)
    1622716687@@ -614,16 +616,18 @@
    1622816688 #define __NR_tee                       (__NR_Linux + 265)
     
    1624616706 #if _MIPS_SIM == _MIPS_SIM_NABI32
    1624716707 
     16708@@ -887,7 +891,7 @@
     16709 #define __NR_mknodat                   (__NR_Linux + 253)
     16710 #define __NR_fchownat                  (__NR_Linux + 254)
     16711 #define __NR_futimesat                 (__NR_Linux + 255)
     16712-#define __NR_fstatat                   (__NR_Linux + 256)
     16713+#define __NR_newfstatat                        (__NR_Linux + 256)
     16714 #define __NR_unlinkat                  (__NR_Linux + 257)
     16715 #define __NR_renameat                  (__NR_Linux + 258)
     16716 #define __NR_linkat                    (__NR_Linux + 259)
    1624816717@@ -903,16 +907,18 @@
    1624916718 #define __NR_tee                       (__NR_Linux + 269)
     
    1626716736 #ifdef __KERNEL__
    1626816737 
    16269 diff -Naur linux-2.6.18/include/asm-mips/user.h linux-2.6.18.mips/include/asm-mips/user.h
    16270 --- linux-2.6.18/include/asm-mips/user.h        2006-09-19 20:42:06.000000000 -0700
    16271 +++ linux-2.6.18.mips/include/asm-mips/user.h   2006-09-20 06:55:21.000000000 -0700
     16738diff -Naur linux-2.6.18.1/include/asm-mips/user.h linux-mips-2.6.18.1/include/asm-mips/user.h
     16739--- linux-2.6.18.1/include/asm-mips/user.h      2006-10-13 20:34:03.000000000 -0700
     16740+++ linux-mips-2.6.18.1/include/asm-mips/user.h 2006-10-17 06:23:28.000000000 -0700
    1627216741@@ -8,6 +8,8 @@
    1627316742 #ifndef _ASM_USER_H
     
    1628616755+
    1628716756 #endif /* _ASM_USER_H */
    16288 diff -Naur linux-2.6.18/include/linux/highmem.h linux-2.6.18.mips/include/linux/highmem.h
    16289 --- linux-2.6.18/include/linux/highmem.h        2006-09-19 20:42:06.000000000 -0700
    16290 +++ linux-2.6.18.mips/include/linux/highmem.h   2006-09-20 06:55:21.000000000 -0700
     16757diff -Naur linux-2.6.18.1/include/linux/highmem.h linux-mips-2.6.18.1/include/linux/highmem.h
     16758--- linux-2.6.18.1/include/linux/highmem.h      2006-10-13 20:34:03.000000000 -0700
     16759+++ linux-mips-2.6.18.1/include/linux/highmem.h 2006-10-17 06:23:28.000000000 -0700
    1629116760@@ -89,7 +89,10 @@
    1629216761        kunmap_atomic(kaddr, KM_USER0);
     
    1631016779 {
    1631116780        char *vfrom, *vto;
    16312 diff -Naur linux-2.6.18/include/linux/pci_ids.h linux-2.6.18.mips/include/linux/pci_ids.h
    16313 --- linux-2.6.18/include/linux/pci_ids.h        2006-09-19 20:42:06.000000000 -0700
    16314 +++ linux-2.6.18.mips/include/linux/pci_ids.h   2006-09-20 06:55:21.000000000 -0700
     16781diff -Naur linux-2.6.18.1/include/linux/pci_ids.h linux-mips-2.6.18.1/include/linux/pci_ids.h
     16782--- linux-2.6.18.1/include/linux/pci_ids.h      2006-10-13 20:34:03.000000000 -0700
     16783+++ linux-mips-2.6.18.1/include/linux/pci_ids.h 2006-10-17 06:23:28.000000000 -0700
    1631516784@@ -1603,6 +1603,9 @@
    1631616785 #define PCI_VENDOR_ID_SATSAGEM         0x1267
     
    1632316792 #define PCI_VENDOR_ID_ENSONIQ          0x1274
    1632416793 #define PCI_DEVICE_ID_ENSONIQ_CT5880   0x5880
    16325 diff -Naur linux-2.6.18/include/linux/serial.h linux-2.6.18.mips/include/linux/serial.h
    16326 --- linux-2.6.18/include/linux/serial.h 2006-09-19 20:42:06.000000000 -0700
    16327 +++ linux-2.6.18.mips/include/linux/serial.h    2006-09-20 06:55:21.000000000 -0700
     16794diff -Naur linux-2.6.18.1/include/linux/serial.h linux-mips-2.6.18.1/include/linux/serial.h
     16795--- linux-2.6.18.1/include/linux/serial.h       2006-10-13 20:34:03.000000000 -0700
     16796+++ linux-mips-2.6.18.1/include/linux/serial.h  2006-10-17 06:23:28.000000000 -0700
    1632816797@@ -76,7 +76,8 @@
    1632916798 #define PORT_16654     11
     
    1633616805 #define SERIAL_IO_PORT 0
    1633716806 #define SERIAL_IO_HUB6 1
    16338 diff -Naur linux-2.6.18/include/linux/serial_ip3106.h linux-2.6.18.mips/include/linux/serial_ip3106.h
    16339 --- linux-2.6.18/include/linux/serial_ip3106.h  2006-09-19 20:42:06.000000000 -0700
    16340 +++ linux-2.6.18.mips/include/linux/serial_ip3106.h     2006-09-20 06:55:21.000000000 -0700
     16807diff -Naur linux-2.6.18.1/include/linux/serial_ip3106.h linux-mips-2.6.18.1/include/linux/serial_ip3106.h
     16808--- linux-2.6.18.1/include/linux/serial_ip3106.h        2006-10-13 20:34:03.000000000 -0700
     16809+++ linux-mips-2.6.18.1/include/linux/serial_ip3106.h   2006-10-17 06:23:28.000000000 -0700
    1634116810@@ -78,4 +78,16 @@
    1634216811 #define IP3106_UART_FIFO_RXFIFO                0x00001F00
     
    1635616825+
    1635716826 #endif
    16358 diff -Naur linux-2.6.18/mm/memory.c linux-2.6.18.mips/mm/memory.c
    16359 --- linux-2.6.18/mm/memory.c    2006-09-19 20:42:06.000000000 -0700
    16360 +++ linux-2.6.18.mips/mm/memory.c       2006-09-20 06:55:21.000000000 -0700
     16827diff -Naur linux-2.6.18.1/mm/memory.c linux-mips-2.6.18.1/mm/memory.c
     16828--- linux-2.6.18.1/mm/memory.c  2006-10-13 20:34:03.000000000 -0700
     16829+++ linux-mips-2.6.18.1/mm/memory.c     2006-10-17 06:23:28.000000000 -0700
    1636116830@@ -1407,7 +1407,7 @@
    1636216831        return pte;
     
    1639816867                        new_page = page;
    1639916868                        anon = 1;
    16400 diff -Naur linux-2.6.18/sound/oss/au1550_i2s.c linux-2.6.18.mips/sound/oss/au1550_i2s.c
    16401 --- linux-2.6.18/sound/oss/au1550_i2s.c 1969-12-31 16:00:00.000000000 -0800
    16402 +++ linux-2.6.18.mips/sound/oss/au1550_i2s.c    2006-09-20 06:55:21.000000000 -0700
     16869diff -Naur linux-2.6.18.1/sound/oss/Kconfig linux-mips-2.6.18.1/sound/oss/Kconfig
     16870--- linux-2.6.18.1/sound/oss/Kconfig    2006-10-13 20:34:03.000000000 -0700
     16871+++ linux-mips-2.6.18.1/sound/oss/Kconfig       2006-10-17 06:23:28.000000000 -0700
     16872@@ -132,6 +132,13 @@
     16873        select SND_AC97_CODEC
     16874        depends on SOUND_PRIME && (SOC_AU1550 || SOC_AU1200)
     16875 
     16876+config SOUND_AU1550_I2S
     16877+       tristate "Au1550 I2S Sound"
     16878+       depends on SOUND_PRIME && SOC_AU1550
     16879+       # Weird I2S driver needs I2C driver to talk to the codec...
     16880+       select I2C
     16881+       select I2C_AU1550
     16882+
     16883 config SOUND_TRIDENT
     16884        tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
     16885        depends on SOUND_PRIME && PCI
     16886diff -Naur linux-2.6.18.1/sound/oss/Makefile linux-mips-2.6.18.1/sound/oss/Makefile
     16887--- linux-2.6.18.1/sound/oss/Makefile   2006-10-13 20:34:03.000000000 -0700
     16888+++ linux-mips-2.6.18.1/sound/oss/Makefile      2006-10-17 06:23:28.000000000 -0700
     16889@@ -66,6 +66,7 @@
     16890 obj-$(CONFIG_SOUND_VRC5477)    += nec_vrc5477.o ac97_codec.o
     16891 obj-$(CONFIG_SOUND_AU1000)     += au1000.o ac97_codec.o
     16892 obj-$(CONFIG_SOUND_AU1550_AC97)        += au1550_ac97.o ac97_codec.o
     16893+obj-$(CONFIG_SOUND_AU1550_I2S) += au1550_i2s.o
     16894 obj-$(CONFIG_SOUND_ESSSOLO1)   += esssolo1.o
     16895 obj-$(CONFIG_SOUND_FUSION)     += cs46xx.o ac97_codec.o
     16896 obj-$(CONFIG_SOUND_MAESTRO)    += maestro.o
     16897diff -Naur linux-2.6.18.1/sound/oss/au1550_i2s.c linux-mips-2.6.18.1/sound/oss/au1550_i2s.c
     16898--- linux-2.6.18.1/sound/oss/au1550_i2s.c       1969-12-31 16:00:00.000000000 -0800
     16899+++ linux-mips-2.6.18.1/sound/oss/au1550_i2s.c  2006-10-17 06:23:28.000000000 -0700
    1640316900@@ -0,0 +1,2029 @@
    1640416901+/*
     
    1843118928+MODULE_AUTHOR("Advanced Micro Devices (AMD), dan@embeddededge.com");
    1843218929+MODULE_DESCRIPTION("Au1550 I2S Audio Driver");
    18433 diff -Naur linux-2.6.18/sound/oss/Kconfig linux-2.6.18.mips/sound/oss/Kconfig
    18434 --- linux-2.6.18/sound/oss/Kconfig      2006-09-19 20:42:06.000000000 -0700
    18435 +++ linux-2.6.18.mips/sound/oss/Kconfig 2006-09-20 06:55:21.000000000 -0700
    18436 @@ -132,6 +132,10 @@
    18437         select SND_AC97_CODEC
    18438         depends on SOUND_PRIME && (SOC_AU1550 || SOC_AU1200)
    18439  
    18440 +config SOUND_AU1550_I2S
    18441 +       tristate "Au1550 I2S Sound"
    18442 +       depends on SOUND_PRIME && SOC_AU1550
    18443 +
    18444  config SOUND_TRIDENT
    18445         tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
    18446         depends on SOUND_PRIME && PCI
    18447 diff -Naur linux-2.6.18/sound/oss/Makefile linux-2.6.18.mips/sound/oss/Makefile
    18448 --- linux-2.6.18/sound/oss/Makefile     2006-09-19 20:42:06.000000000 -0700
    18449 +++ linux-2.6.18.mips/sound/oss/Makefile        2006-09-20 06:55:21.000000000 -0700
    18450 @@ -66,6 +66,7 @@
    18451  obj-$(CONFIG_SOUND_VRC5477)    += nec_vrc5477.o ac97_codec.o
    18452  obj-$(CONFIG_SOUND_AU1000)     += au1000.o ac97_codec.o
    18453  obj-$(CONFIG_SOUND_AU1550_AC97)        += au1550_ac97.o ac97_codec.o
    18454 +obj-$(CONFIG_SOUND_AU1550_I2S) += au1550_i2s.o
    18455  obj-$(CONFIG_SOUND_ESSSOLO1)   += esssolo1.o
    18456  obj-$(CONFIG_SOUND_FUSION)     += cs46xx.o ac97_codec.o
    18457  obj-$(CONFIG_SOUND_MAESTRO)    += maestro.o
Note: See TracChangeset for help on using the changeset viewer.