Changeset 18bf2a3


Ignore:
Timestamp:
Feb 4, 2007, 8:50:38 PM (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:
9d5e756
Parents:
762f470
Message:

Update to Linux 2.6.20

Files:
1 added
1 deleted
4 edited
3 moved

Legend:

Unmodified
Added
Removed
  • BOOK/general.ent

    r762f470 r18bf2a3  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    22
    3 <!ENTITY month "01"> <!-- Use two digits -->
     3<!ENTITY month "02"> <!-- Use two digits -->
    44<!ENTITY month_name "January">
    5 <!ENTITY day "23"> <!-- Use two digits -->
     5<!ENTITY day "04"> <!-- Use two digits -->
    66<!ENTITY year "2007"> <!-- Use four digits -->
    77
  • BOOK/introduction/common/changelog.xml

    r762f470 r18bf2a3  
    3838
    3939    <listitem>
     40      <para>February 5, 2007</para>
     41      <itemizedlist>
     42        <listitem>
     43          <para>[jim] - Updated to Linux 2.6.20.</para>
     44        </listitem>
     45        <listitem>
     46          <para>[jim] - Updated to Linux Headers 2.6.20-02042007.</para>
     47        </listitem>
     48      </itemizedlist>
     49    </listitem>
     50
     51    <listitem>
    4052      <para>January 23, 2007</para>
    4153      <itemizedlist>
  • BOOK/packages.ent

    r762f470 r18bf2a3  
    245245<!ENTITY linux-dl-version "2.6">
    246246
    247 <!ENTITY linux-version "2.6.19.2">
    248 <!ENTITY linux-size "41,892 KB">
     247<!ENTITY linux-version "2.6.20">
     248<!ENTITY linux-size "42,527 KB">
    249249<!ENTITY linux-url "&kernel;linux/kernel/v&linux-dl-version;/linux-&linux-version;.tar.bz2">
    250 <!ENTITY linux-md5 "ca0ce8f288e8ae93ac243b568f906bf8">
     250<!ENTITY linux-md5 "34b0f354819217e6a345f48ebbd8f13e">
    251251<!ENTITY linux-home "http://www.kernel.org">
    252252
    253 <!ENTITY linux-headers-version "&linux-version;-01232007">
    254 <!ENTITY linux-headers-size "1,636 KB">
     253<!ENTITY linux-headers-version "&linux-version;-02042007">
     254<!ENTITY linux-headers-size "1,620 KB">
    255255<!ENTITY linux-headers-url "&packages-root;linux-headers-&linux-headers-version;.tar.bz2">
    256 <!ENTITY linux-headers-md5 "acb30395626a7be00da8056421f7f72f">
     256<!ENTITY linux-headers-md5 "76a2e844baea535f279d77f939d027e1">
    257257<!ENTITY linux-headers-home "http://headers.cross-lfs.org">
    258258
  • BOOK/patches.ent

    r762f470 r18bf2a3  
    6666
    6767<!ENTITY linux-tulip-patch "linux-&linux-version;-tulip-1.patch">
    68 <!ENTITY linux-tulip-patch-md5 "a5b2576d50c8b9b4121265deec5d6ef6">
     68<!ENTITY linux-tulip-patch-md5 "fd662a78667aafad3def5eff98287fbf">
    6969<!ENTITY linux-tulip-patch-size "8 KB">
    7070
     
    202202
    203203<!ENTITY linux-mips-patch "linux-&linux-version;-mips-1.patch">
    204 <!ENTITY linux-mips-patch-md5 "165e1a3619ebf5ac0a2858b61e860c1d">
    205 <!ENTITY linux-mips-patch-size "480 KB">
     204<!ENTITY linux-mips-patch-md5 "2f92e222ac17f371911f5ac0d2dde1b4">
     205<!ENTITY linux-mips-patch-size "432 KB">
    206206
    207207<!ENTITY linux-mips_fixes-patch "linux-&linux-version;-mips_fixes-1.patch">
    208 <!ENTITY linux-mips_fixes-patch-md5 "447226a5e1585de8c57ab4f64a348d21">
     208<!ENTITY linux-mips_fixes-patch-md5 "59098ea3fa261ca8839ef7634bc126c5">
    209209<!ENTITY linux-mips_fixes-patch-size "12 KB">
    210210
  • patches/linux-2.6.20-mips-1.patch

    r762f470 r18bf2a3  
    11Submitted By: Jim Gifford (patches at jg555 dot com)
    2 Date: 2006-12-12
    3 Initial Package Version: 2.6.19.1
     2Date: 2007-02-04
     3Initial Package Version: 2.6.20
    44Origin: Linux-MIPS
    55Upstream Status: http://www.linux-mips.org/pub/linux/mips/kernel/v2.6/
    66
    7 diff -Naur linux-2.6.19.1/arch/mips/Kconfig linux-mips-2.6.19.1/arch/mips/Kconfig
    8 --- linux-2.6.19.1/arch/mips/Kconfig    2006-12-11 11:32:53.000000000 -0800
    9 +++ linux-mips-2.6.19.1/arch/mips/Kconfig       2006-12-11 15:38:26.000000000 -0800
    10 @@ -468,8 +468,6 @@
    11  config MACH_VR41XX
    12         bool "NEC VR41XX-based machines"
    13         select SYS_HAS_CPU_VR41XX
    14 -       select SYS_SUPPORTS_32BIT_KERNEL
    15 -       select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
    16  
    17  config PMC_YOSEMITE
    18         bool "PMC-Sierra Yosemite eval board"
    19 @@ -1142,7 +1140,7 @@
     7diff -Naur linux-2.6.20/arch/mips/Kconfig linux-mips-2.6.20/arch/mips/Kconfig
     8--- linux-2.6.20/arch/mips/Kconfig      2007-02-04 10:44:54.000000000 -0800
     9+++ linux-mips-2.6.20/arch/mips/Kconfig 2007-02-04 12:22:45.000000000 -0800
     10@@ -1199,7 +1199,7 @@
    2011        select CPU_SUPPORTS_32BIT_KERNEL
    2112        select CPU_SUPPORTS_64BIT_KERNEL
     
    2617          kernel built with this option will not run on any other type of
    2718          processor or vice versa.
    28 @@ -1922,6 +1920,11 @@
    29         depends on MIPS32_COMPAT
    30         default y
     19diff -Naur linux-2.6.20/arch/mips/Kconfig.debug linux-mips-2.6.20/arch/mips/Kconfig.debug
     20--- linux-2.6.20/arch/mips/Kconfig.debug        2007-02-04 10:44:54.000000000 -0800
     21+++ linux-mips-2.6.20/arch/mips/Kconfig.debug   2007-02-04 12:22:45.000000000 -0800
     22@@ -22,10 +22,10 @@
     23        string "Default kernel command string"
     24        default ""
     25        help
     26-          On some platforms, there is currently no way for the boot loader to
     27-          pass arguments to the kernel. For these platforms, you can supply
     28-          some command-line options at build time by entering them here.  In
     29-          other cases you can specify kernel args so that you don't have
     30+         On some platforms, there is currently no way for the boot loader to
     31+         pass arguments to the kernel. For these platforms, you can supply
     32+         some command-line options at build time by entering them here.  In
     33+         other cases you can specify kernel args so that you don't have
     34          to set them up in board prom initialization routines.
    3135 
    32 +config SYSVIPC_COMPAT
    33 +       bool
    34 +       depends on COMPAT && SYSVIPC
    35 +       default y
    36 +
    37  config MIPS32_O32
    38         bool "Kernel support for o32 binaries"
    39         depends on MIPS32_COMPAT
    40 diff -Naur linux-2.6.19.1/arch/mips/au1000/common/pci.c linux-mips-2.6.19.1/arch/mips/au1000/common/pci.c
    41 --- linux-2.6.19.1/arch/mips/au1000/common/pci.c        2006-12-11 11:32:53.000000000 -0800
    42 +++ linux-mips-2.6.19.1/arch/mips/au1000/common/pci.c   2006-12-11 15:38:26.000000000 -0800
     36 config DEBUG_STACK_USAGE
     37diff -Naur linux-2.6.20/arch/mips/au1000/common/pci.c linux-mips-2.6.20/arch/mips/au1000/common/pci.c
     38--- linux-2.6.20/arch/mips/au1000/common/pci.c  2007-02-04 10:44:54.000000000 -0800
     39+++ linux-mips-2.6.20/arch/mips/au1000/common/pci.c     2007-02-04 12:22:45.000000000 -0800
    4340@@ -76,13 +76,17 @@
    4441        }
     
    6663 #endif
    6764 
    68 diff -Naur linux-2.6.19.1/arch/mips/au1000/common/setup.c linux-mips-2.6.19.1/arch/mips/au1000/common/setup.c
    69 --- linux-2.6.19.1/arch/mips/au1000/common/setup.c      2006-12-11 11:32:53.000000000 -0800
    70 +++ linux-mips-2.6.19.1/arch/mips/au1000/common/setup.c 2006-12-11 15:38:26.000000000 -0800
     65diff -Naur linux-2.6.20/arch/mips/au1000/common/setup.c linux-mips-2.6.20/arch/mips/au1000/common/setup.c
     66--- linux-2.6.20/arch/mips/au1000/common/setup.c        2007-02-04 10:44:54.000000000 -0800
     67+++ linux-mips-2.6.20/arch/mips/au1000/common/setup.c   2007-02-04 12:22:45.000000000 -0800
    7168@@ -141,17 +141,20 @@
    7269 /* This routine should be valid for all Au1x based boards */
     
    9895 #endif
    9996 
    100 diff -Naur linux-2.6.19.1/arch/mips/au1000/pb1100/board_setup.c linux-mips-2.6.19.1/arch/mips/au1000/pb1100/board_setup.c
    101 --- linux-2.6.19.1/arch/mips/au1000/pb1100/board_setup.c        2006-12-11 11:32:53.000000000 -0800
    102 +++ linux-mips-2.6.19.1/arch/mips/au1000/pb1100/board_setup.c   2006-12-11 15:38:26.000000000 -0800
     97diff -Naur linux-2.6.20/arch/mips/au1000/pb1100/board_setup.c linux-mips-2.6.20/arch/mips/au1000/pb1100/board_setup.c
     98--- linux-2.6.20/arch/mips/au1000/pb1100/board_setup.c  2007-02-04 10:44:54.000000000 -0800
     99+++ linux-mips-2.6.20/arch/mips/au1000/pb1100/board_setup.c     2007-02-04 12:22:45.000000000 -0800
    103100@@ -47,8 +47,7 @@
    104101 
     
    216213        }
    217214 }
    218 diff -Naur linux-2.6.19.1/arch/mips/configs/malta_defconfig linux-mips-2.6.19.1/arch/mips/configs/malta_defconfig
    219 --- linux-2.6.19.1/arch/mips/configs/malta_defconfig    2006-12-11 11:32:53.000000000 -0800
    220 +++ linux-mips-2.6.19.1/arch/mips/configs/malta_defconfig       2006-12-11 15:38:26.000000000 -0800
    221 @@ -644,7 +644,85 @@
    222  #
    223  # Memory Technology Devices (MTD)
    224  #
    225 -# CONFIG_MTD is not set
    226 +CONFIG_MTD=y
    227 +# CONFIG_MTD_DEBUG is not set
    228 +# CONFIG_MTD_CONCAT is not set
    229 +CONFIG_MTD_PARTITIONS=y
    230 +# CONFIG_MTD_REDBOOT_PARTS is not set
    231 +# CONFIG_MTD_CMDLINE_PARTS is not set
    232 +
    233 +#
    234 +# User Modules And Translation Layers
    235 +#
    236 +CONFIG_MTD_CHAR=y
    237 +CONFIG_MTD_BLOCK=y
    238 +# CONFIG_FTL is not set
    239 +# CONFIG_NFTL is not set
    240 +# CONFIG_INFTL is not set
    241 +# CONFIG_RFD_FTL is not set
    242 +# CONFIG_SSFDC is not set
    243 +
    244 +#
    245 +# RAM/ROM/Flash chip drivers
    246 +#
    247 +CONFIG_MTD_CFI=y
    248 +# CONFIG_MTD_JEDECPROBE is not set
    249 +CONFIG_MTD_GEN_PROBE=y
    250 +# CONFIG_MTD_CFI_ADV_OPTIONS is not set
    251 +CONFIG_MTD_MAP_BANK_WIDTH_1=y
    252 +CONFIG_MTD_MAP_BANK_WIDTH_2=y
    253 +CONFIG_MTD_MAP_BANK_WIDTH_4=y
    254 +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
    255 +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
    256 +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
    257 +CONFIG_MTD_CFI_I1=y
    258 +CONFIG_MTD_CFI_I2=y
    259 +# CONFIG_MTD_CFI_I4 is not set
    260 +# CONFIG_MTD_CFI_I8 is not set
    261 +CONFIG_MTD_CFI_INTELEXT=y
    262 +CONFIG_MTD_CFI_AMDSTD=y
    263 +CONFIG_MTD_CFI_STAA=y
    264 +CONFIG_MTD_CFI_UTIL=y
    265 +# CONFIG_MTD_RAM is not set
    266 +# CONFIG_MTD_ROM is not set
    267 +# CONFIG_MTD_ABSENT is not set
    268 +# CONFIG_MTD_OBSOLETE_CHIPS is not set
    269 +
    270 +#
    271 +# Mapping drivers for chip access
    272 +#
    273 +# CONFIG_MTD_COMPLEX_MAPPINGS is not set
    274 +CONFIG_MTD_PHYSMAP=y
    275 +CONFIG_MTD_PHYSMAP_START=0x0
    276 +CONFIG_MTD_PHYSMAP_LEN=0x0
    277 +CONFIG_MTD_PHYSMAP_BANKWIDTH=0
    278 +# CONFIG_MTD_PLATRAM is not set
    279 +
    280 +#
    281 +# Self-contained MTD device drivers
    282 +#
    283 +# CONFIG_MTD_PMC551 is not set
    284 +# CONFIG_MTD_SLRAM is not set
    285 +# CONFIG_MTD_PHRAM is not set
    286 +# CONFIG_MTD_MTDRAM is not set
    287 +# CONFIG_MTD_BLOCK2MTD is not set
    288 +
    289 +#
    290 +# Disk-On-Chip Device Drivers
    291 +#
    292 +# CONFIG_MTD_DOC2000 is not set
    293 +# CONFIG_MTD_DOC2001 is not set
    294 +# CONFIG_MTD_DOC2001PLUS is not set
    295 +
    296 +#
    297 +# NAND Flash Device Drivers
    298 +#
    299 +# CONFIG_MTD_NAND is not set
    300 +
    301 +#
    302 +# OneNAND Flash Device Drivers
    303 +#
    304 +# CONFIG_MTD_ONENAND is not set
    305  
    306  #
    307  # Parallel port support
    308 diff -Naur linux-2.6.19.1/arch/mips/kernel/linux32.c linux-mips-2.6.19.1/arch/mips/kernel/linux32.c
    309 --- linux-2.6.19.1/arch/mips/kernel/linux32.c   2006-12-11 11:32:53.000000000 -0800
    310 +++ linux-mips-2.6.19.1/arch/mips/kernel/linux32.c      2006-12-11 15:38:26.000000000 -0800
    311 @@ -382,531 +382,6 @@
    312         return ret;
     215diff -Naur linux-2.6.20/arch/mips/au1000/pb1200/irqmap.c linux-mips-2.6.20/arch/mips/au1000/pb1200/irqmap.c
     216--- linux-2.6.20/arch/mips/au1000/pb1200/irqmap.c       2007-02-04 10:44:54.000000000 -0800
     217+++ linux-mips-2.6.20/arch/mips/au1000/pb1200/irqmap.c  2007-02-04 12:22:45.000000000 -0800
     218@@ -137,33 +137,20 @@
     219        return;
    313220 }
    314221 
    315 -struct msgbuf32 { s32 mtype; char mtext[1]; };
    316 -
    317 -struct ipc_perm32
     222-static inline void pb1200_mask_and_ack_irq(unsigned int irq_nr)
    318223-{
    319 -       key_t             key;
    320 -        __compat_uid_t  uid;
    321 -        __compat_gid_t  gid;
    322 -        __compat_uid_t  cuid;
    323 -        __compat_gid_t  cgid;
    324 -        compat_mode_t  mode;
    325 -        unsigned short  seq;
    326 -};
    327 -
    328 -struct ipc64_perm32 {
    329 -       key_t key;
    330 -       __compat_uid_t uid;
    331 -       __compat_gid_t gid;
    332 -       __compat_uid_t cuid;
    333 -       __compat_gid_t cgid;
    334 -       compat_mode_t   mode;
    335 -       unsigned short  seq;
    336 -       unsigned short __pad1;
    337 -       unsigned int __unused1;
    338 -       unsigned int __unused2;
    339 -};
    340 -
    341 -struct semid_ds32 {
    342 -        struct ipc_perm32 sem_perm;               /* permissions .. see ipc.h */
    343 -        compat_time_t   sem_otime;              /* last semop time */
    344 -        compat_time_t   sem_ctime;              /* last change time */
    345 -        u32 sem_base;              /* ptr to first semaphore in array */
    346 -        u32 sem_pending;          /* pending operations to be processed */
    347 -        u32 sem_pending_last;    /* last pending operation */
    348 -        u32 undo;                  /* undo requests on this array */
    349 -        unsigned short  sem_nsems;              /* no. of semaphores in array */
    350 -};
    351 -
    352 -struct semid64_ds32 {
    353 -       struct ipc64_perm32     sem_perm;
    354 -       compat_time_t   sem_otime;
    355 -       compat_time_t   sem_ctime;
    356 -       unsigned int            sem_nsems;
    357 -       unsigned int            __unused1;
    358 -       unsigned int            __unused2;
    359 -};
    360 -
    361 -struct msqid_ds32
    362 -{
    363 -        struct ipc_perm32 msg_perm;
    364 -        u32 msg_first;
    365 -        u32 msg_last;
    366 -        compat_time_t   msg_stime;
    367 -        compat_time_t   msg_rtime;
    368 -        compat_time_t   msg_ctime;
    369 -        u32 wwait;
    370 -        u32 rwait;
    371 -        unsigned short msg_cbytes;
    372 -        unsigned short msg_qnum;
    373 -        unsigned short msg_qbytes;
    374 -        compat_ipc_pid_t msg_lspid;
    375 -        compat_ipc_pid_t msg_lrpid;
    376 -};
    377 -
    378 -struct msqid64_ds32 {
    379 -       struct ipc64_perm32 msg_perm;
    380 -       compat_time_t msg_stime;
    381 -       unsigned int __unused1;
    382 -       compat_time_t msg_rtime;
    383 -       unsigned int __unused2;
    384 -       compat_time_t msg_ctime;
    385 -       unsigned int __unused3;
    386 -       unsigned int msg_cbytes;
    387 -       unsigned int msg_qnum;
    388 -       unsigned int msg_qbytes;
    389 -       compat_pid_t msg_lspid;
    390 -       compat_pid_t msg_lrpid;
    391 -       unsigned int __unused4;
    392 -       unsigned int __unused5;
    393 -};
    394 -
    395 -struct shmid_ds32 {
    396 -        struct ipc_perm32       shm_perm;
    397 -        int                     shm_segsz;
    398 -        compat_time_t          shm_atime;
    399 -        compat_time_t          shm_dtime;
    400 -        compat_time_t          shm_ctime;
    401 -        compat_ipc_pid_t    shm_cpid;
    402 -        compat_ipc_pid_t    shm_lpid;
    403 -        unsigned short          shm_nattch;
    404 -};
    405 -
    406 -struct shmid64_ds32 {
    407 -       struct ipc64_perm32     shm_perm;
    408 -       compat_size_t           shm_segsz;
    409 -       compat_time_t           shm_atime;
    410 -       compat_time_t           shm_dtime;
    411 -       compat_time_t shm_ctime;
    412 -       compat_pid_t shm_cpid;
    413 -       compat_pid_t shm_lpid;
    414 -       unsigned int shm_nattch;
    415 -       unsigned int __unused1;
    416 -       unsigned int __unused2;
    417 -};
    418 -
    419 -struct ipc_kludge32 {
    420 -       u32 msgp;
    421 -       s32 msgtyp;
    422 -};
    423 -
    424 -static int
    425 -do_sys32_semctl(int first, int second, int third, void __user *uptr)
    426 -{
    427 -       union semun fourth;
    428 -       u32 pad;
    429 -       int err, err2;
    430 -       struct semid64_ds s;
    431 -       mm_segment_t old_fs;
    432 -
    433 -       if (!uptr)
    434 -               return -EINVAL;
    435 -       err = -EFAULT;
    436 -       if (get_user (pad, (u32 __user *)uptr))
    437 -               return err;
    438 -       if ((third & ~IPC_64) == SETVAL)
    439 -               fourth.val = (int)pad;
    440 -       else
    441 -               fourth.__pad = (void __user *)A(pad);
    442 -       switch (third & ~IPC_64) {
    443 -       case IPC_INFO:
    444 -       case IPC_RMID:
    445 -       case IPC_SET:
    446 -       case SEM_INFO:
    447 -       case GETVAL:
    448 -       case GETPID:
    449 -       case GETNCNT:
    450 -       case GETZCNT:
    451 -       case GETALL:
    452 -       case SETVAL:
    453 -       case SETALL:
    454 -               err = sys_semctl (first, second, third, fourth);
    455 -               break;
    456 -
    457 -       case IPC_STAT:
    458 -       case SEM_STAT:
    459 -               fourth.__pad = (struct semid64_ds __user *)&s;
    460 -               old_fs = get_fs();
    461 -               set_fs(KERNEL_DS);
    462 -               err = sys_semctl(first, second, third | IPC_64, fourth);
    463 -               set_fs(old_fs);
    464 -
    465 -               if (third & IPC_64) {
    466 -                       struct semid64_ds32 __user *usp64 = (struct semid64_ds32 __user *) A(pad);
    467 -
    468 -                       if (!access_ok(VERIFY_WRITE, usp64, sizeof(*usp64))) {
    469 -                               err = -EFAULT;
    470 -                               break;
    471 -                       }
    472 -                       err2 = __put_user(s.sem_perm.key, &usp64->sem_perm.key);
    473 -                       err2 |= __put_user(s.sem_perm.uid, &usp64->sem_perm.uid);
    474 -                       err2 |= __put_user(s.sem_perm.gid, &usp64->sem_perm.gid);
    475 -                       err2 |= __put_user(s.sem_perm.cuid, &usp64->sem_perm.cuid);
    476 -                       err2 |= __put_user(s.sem_perm.cgid, &usp64->sem_perm.cgid);
    477 -                       err2 |= __put_user(s.sem_perm.mode, &usp64->sem_perm.mode);
    478 -                       err2 |= __put_user(s.sem_perm.seq, &usp64->sem_perm.seq);
    479 -                       err2 |= __put_user(s.sem_otime, &usp64->sem_otime);
    480 -                       err2 |= __put_user(s.sem_ctime, &usp64->sem_ctime);
    481 -                       err2 |= __put_user(s.sem_nsems, &usp64->sem_nsems);
    482 -               } else {
    483 -                       struct semid_ds32 __user *usp32 = (struct semid_ds32 __user *) A(pad);
    484 -
    485 -                       if (!access_ok(VERIFY_WRITE, usp32, sizeof(*usp32))) {
    486 -                               err = -EFAULT;
    487 -                               break;
    488 -                       }
    489 -                       err2 = __put_user(s.sem_perm.key, &usp32->sem_perm.key);
    490 -                       err2 |= __put_user(s.sem_perm.uid, &usp32->sem_perm.uid);
    491 -                       err2 |= __put_user(s.sem_perm.gid, &usp32->sem_perm.gid);
    492 -                       err2 |= __put_user(s.sem_perm.cuid, &usp32->sem_perm.cuid);
    493 -                       err2 |= __put_user(s.sem_perm.cgid, &usp32->sem_perm.cgid);
    494 -                       err2 |= __put_user(s.sem_perm.mode, &usp32->sem_perm.mode);
    495 -                       err2 |= __put_user(s.sem_perm.seq, &usp32->sem_perm.seq);
    496 -                       err2 |= __put_user(s.sem_otime, &usp32->sem_otime);
    497 -                       err2 |= __put_user(s.sem_ctime, &usp32->sem_ctime);
    498 -                       err2 |= __put_user(s.sem_nsems, &usp32->sem_nsems);
    499 -               }
    500 -               if (err2)
    501 -                       err = -EFAULT;
    502 -               break;
    503 -
    504 -       default:
    505 -               err = - EINVAL;
    506 -               break;
    507 -       }
    508 -
    509 -       return err;
     224-       pb1200_disable_irq( irq_nr );
    510225-}
    511226-
    512 -static int
    513 -do_sys32_msgsnd (int first, int second, int third, void __user *uptr)
     227-static void pb1200_end_irq(unsigned int irq_nr)
    514228-{
    515 -       struct msgbuf32 __user *up = (struct msgbuf32 __user *)uptr;
    516 -       struct msgbuf *p;
    517 -       mm_segment_t old_fs;
    518 -       int err;
    519 -
    520 -       if (second < 0)
    521 -               return -EINVAL;
    522 -       p = kmalloc (second + sizeof (struct msgbuf)
    523 -                                   + 4, GFP_USER);
    524 -       if (!p)
    525 -               return -ENOMEM;
    526 -       err = get_user (p->mtype, &up->mtype);
    527 -       if (err)
    528 -               goto out;
    529 -       err |= __copy_from_user (p->mtext, &up->mtext, second);
    530 -       if (err)
    531 -               goto out;
    532 -       old_fs = get_fs ();
    533 -       set_fs (KERNEL_DS);
    534 -       err = sys_msgsnd (first, (struct msgbuf __user *)p, second, third);
    535 -       set_fs (old_fs);
    536 -out:
    537 -       kfree (p);
    538 -
    539 -       return err;
     229-       if (!(irq_desc[irq_nr].status & (IRQ_DISABLED|IRQ_INPROGRESS))) {
     230-               pb1200_enable_irq(irq_nr);
     231-       }
    540232-}
    541233-
    542 -static int
    543 -do_sys32_msgrcv (int first, int second, int msgtyp, int third,
    544 -                int version, void __user *uptr)
    545 -{
    546 -       struct msgbuf32 __user *up;
    547 -       struct msgbuf *p;
    548 -       mm_segment_t old_fs;
    549 -       int err;
    550 -
    551 -       if (!version) {
    552 -               struct ipc_kludge32 __user *uipck = (struct ipc_kludge32 __user *)uptr;
    553 -               struct ipc_kludge32 ipck;
    554 -
    555 -               err = -EINVAL;
    556 -               if (!uptr)
    557 -                       goto out;
    558 -               err = -EFAULT;
    559 -               if (copy_from_user (&ipck, uipck, sizeof (struct ipc_kludge32)))
    560 -                       goto out;
    561 -               uptr = (void __user *)AA(ipck.msgp);
    562 -               msgtyp = ipck.msgtyp;
    563 -       }
    564 -
    565 -       if (second < 0)
    566 -               return -EINVAL;
    567 -       err = -ENOMEM;
    568 -       p = kmalloc (second + sizeof (struct msgbuf) + 4, GFP_USER);
    569 -       if (!p)
    570 -               goto out;
    571 -       old_fs = get_fs ();
    572 -       set_fs (KERNEL_DS);
    573 -       err = sys_msgrcv (first, (struct msgbuf __user *)p, second + 4, msgtyp, third);
    574 -       set_fs (old_fs);
    575 -       if (err < 0)
    576 -               goto free_then_out;
    577 -       up = (struct msgbuf32 __user *)uptr;
    578 -       if (put_user (p->mtype, &up->mtype) ||
    579 -           __copy_to_user (&up->mtext, p->mtext, err))
    580 -               err = -EFAULT;
    581 -free_then_out:
    582 -       kfree (p);
    583 -out:
    584 -       return err;
    585 -}
    586 -
    587 -static int
    588 -do_sys32_msgctl (int first, int second, void __user *uptr)
    589 -{
    590 -       int err = -EINVAL, err2;
    591 -       struct msqid64_ds m;
    592 -       struct msqid_ds32 __user *up32 = (struct msqid_ds32 __user *)uptr;
    593 -       struct msqid64_ds32 __user *up64 = (struct msqid64_ds32 __user *)uptr;
    594 -       mm_segment_t old_fs;
    595 -
    596 -       switch (second & ~IPC_64) {
    597 -       case IPC_INFO:
    598 -       case IPC_RMID:
    599 -       case MSG_INFO:
    600 -               err = sys_msgctl (first, second, (struct msqid_ds __user *)uptr);
    601 -               break;
    602 -
    603 -       case IPC_SET:
    604 -               if (second & IPC_64) {
    605 -                       if (!access_ok(VERIFY_READ, up64, sizeof(*up64))) {
    606 -                               err = -EFAULT;
    607 -                               break;
    608 -                       }
    609 -                       err = __get_user(m.msg_perm.uid, &up64->msg_perm.uid);
    610 -                       err |= __get_user(m.msg_perm.gid, &up64->msg_perm.gid);
    611 -                       err |= __get_user(m.msg_perm.mode, &up64->msg_perm.mode);
    612 -                       err |= __get_user(m.msg_qbytes, &up64->msg_qbytes);
    613 -               } else {
    614 -                       if (!access_ok(VERIFY_READ, up32, sizeof(*up32))) {
    615 -                               err = -EFAULT;
    616 -                               break;
    617 -                       }
    618 -                       err = __get_user(m.msg_perm.uid, &up32->msg_perm.uid);
    619 -                       err |= __get_user(m.msg_perm.gid, &up32->msg_perm.gid);
    620 -                       err |= __get_user(m.msg_perm.mode, &up32->msg_perm.mode);
    621 -                       err |= __get_user(m.msg_qbytes, &up32->msg_qbytes);
    622 -               }
    623 -               if (err)
    624 -                       break;
    625 -               old_fs = get_fs();
    626 -               set_fs(KERNEL_DS);
    627 -               err = sys_msgctl(first, second | IPC_64, (struct msqid_ds __user *)&m);
    628 -               set_fs(old_fs);
    629 -               break;
    630 -
    631 -       case IPC_STAT:
    632 -       case MSG_STAT:
    633 -               old_fs = get_fs();
    634 -               set_fs(KERNEL_DS);
    635 -               err = sys_msgctl(first, second | IPC_64, (struct msqid_ds __user *)&m);
    636 -               set_fs(old_fs);
    637 -               if (second & IPC_64) {
    638 -                       if (!access_ok(VERIFY_WRITE, up64, sizeof(*up64))) {
    639 -                               err = -EFAULT;
    640 -                               break;
    641 -                       }
    642 -                       err2 = __put_user(m.msg_perm.key, &up64->msg_perm.key);
    643 -                       err2 |= __put_user(m.msg_perm.uid, &up64->msg_perm.uid);
    644 -                       err2 |= __put_user(m.msg_perm.gid, &up64->msg_perm.gid);
    645 -                       err2 |= __put_user(m.msg_perm.cuid, &up64->msg_perm.cuid);
    646 -                       err2 |= __put_user(m.msg_perm.cgid, &up64->msg_perm.cgid);
    647 -                       err2 |= __put_user(m.msg_perm.mode, &up64->msg_perm.mode);
    648 -                       err2 |= __put_user(m.msg_perm.seq, &up64->msg_perm.seq);
    649 -                       err2 |= __put_user(m.msg_stime, &up64->msg_stime);
    650 -                       err2 |= __put_user(m.msg_rtime, &up64->msg_rtime);
    651 -                       err2 |= __put_user(m.msg_ctime, &up64->msg_ctime);
    652 -                       err2 |= __put_user(m.msg_cbytes, &up64->msg_cbytes);
    653 -                       err2 |= __put_user(m.msg_qnum, &up64->msg_qnum);
    654 -                       err2 |= __put_user(m.msg_qbytes, &up64->msg_qbytes);
    655 -                       err2 |= __put_user(m.msg_lspid, &up64->msg_lspid);
    656 -                       err2 |= __put_user(m.msg_lrpid, &up64->msg_lrpid);
    657 -                       if (err2)
    658 -                               err = -EFAULT;
    659 -               } else {
    660 -                       if (!access_ok(VERIFY_WRITE, up32, sizeof(*up32))) {
    661 -                               err = -EFAULT;
    662 -                               break;
    663 -                       }
    664 -                       err2 = __put_user(m.msg_perm.key, &up32->msg_perm.key);
    665 -                       err2 |= __put_user(m.msg_perm.uid, &up32->msg_perm.uid);
    666 -                       err2 |= __put_user(m.msg_perm.gid, &up32->msg_perm.gid);
    667 -                       err2 |= __put_user(m.msg_perm.cuid, &up32->msg_perm.cuid);
    668 -                       err2 |= __put_user(m.msg_perm.cgid, &up32->msg_perm.cgid);
    669 -                       err2 |= __put_user(m.msg_perm.mode, &up32->msg_perm.mode);
    670 -                       err2 |= __put_user(m.msg_perm.seq, &up32->msg_perm.seq);
    671 -                       err2 |= __put_user(m.msg_stime, &up32->msg_stime);
    672 -                       err2 |= __put_user(m.msg_rtime, &up32->msg_rtime);
    673 -                       err2 |= __put_user(m.msg_ctime, &up32->msg_ctime);
    674 -                       err2 |= __put_user(m.msg_cbytes, &up32->msg_cbytes);
    675 -                       err2 |= __put_user(m.msg_qnum, &up32->msg_qnum);
    676 -                       err2 |= __put_user(m.msg_qbytes, &up32->msg_qbytes);
    677 -                       err2 |= __put_user(m.msg_lspid, &up32->msg_lspid);
    678 -                       err2 |= __put_user(m.msg_lrpid, &up32->msg_lrpid);
    679 -                       if (err2)
    680 -                               err = -EFAULT;
    681 -               }
    682 -               break;
    683 -       }
    684 -
    685 -       return err;
    686 -}
    687 -
    688 -static int
    689 -do_sys32_shmat (int first, int second, int third, int version, void __user *uptr)
    690 -{
    691 -       unsigned long raddr;
    692 -       u32 __user *uaddr = (u32 __user *)A((u32)third);
    693 -       int err = -EINVAL;
    694 -
    695 -       if (version == 1)
    696 -               return err;
    697 -       err = do_shmat (first, uptr, second, &raddr);
    698 -       if (err)
    699 -               return err;
    700 -       err = put_user (raddr, uaddr);
    701 -       return err;
    702 -}
    703 -
    704 -struct shm_info32 {
    705 -       int used_ids;
    706 -       u32 shm_tot, shm_rss, shm_swp;
    707 -       u32 swap_attempts, swap_successes;
    708 -};
    709 -
    710 -static int
    711 -do_sys32_shmctl (int first, int second, void __user *uptr)
    712 -{
    713 -       struct shmid64_ds32 __user *up64 = (struct shmid64_ds32 __user *)uptr;
    714 -       struct shmid_ds32 __user *up32 = (struct shmid_ds32 __user *)uptr;
    715 -       struct shm_info32 __user *uip = (struct shm_info32 __user *)uptr;
    716 -       int err = -EFAULT, err2;
    717 -       struct shmid64_ds s64;
    718 -       mm_segment_t old_fs;
    719 -       struct shm_info si;
    720 -       struct shmid_ds s;
    721 -
    722 -       switch (second & ~IPC_64) {
    723 -       case IPC_INFO:
    724 -               second = IPC_INFO; /* So that we don't have to translate it */
    725 -       case IPC_RMID:
    726 -       case SHM_LOCK:
    727 -       case SHM_UNLOCK:
    728 -               err = sys_shmctl(first, second, (struct shmid_ds __user *)uptr);
    729 -               break;
    730 -       case IPC_SET:
    731 -               if (second & IPC_64) {
    732 -                       err = get_user(s.shm_perm.uid, &up64->shm_perm.uid);
    733 -                       err |= get_user(s.shm_perm.gid, &up64->shm_perm.gid);
    734 -                       err |= get_user(s.shm_perm.mode, &up64->shm_perm.mode);
    735 -               } else {
    736 -                       err = get_user(s.shm_perm.uid, &up32->shm_perm.uid);
    737 -                       err |= get_user(s.shm_perm.gid, &up32->shm_perm.gid);
    738 -                       err |= get_user(s.shm_perm.mode, &up32->shm_perm.mode);
    739 -               }
    740 -               if (err)
    741 -                       break;
    742 -               old_fs = get_fs();
    743 -               set_fs(KERNEL_DS);
    744 -               err = sys_shmctl(first, second & ~IPC_64, (struct shmid_ds __user *)&s);
    745 -               set_fs(old_fs);
    746 -               break;
    747 -
    748 -       case IPC_STAT:
    749 -       case SHM_STAT:
    750 -               old_fs = get_fs();
    751 -               set_fs(KERNEL_DS);
    752 -               err = sys_shmctl(first, second | IPC_64, (void __user *) &s64);
    753 -               set_fs(old_fs);
    754 -               if (err < 0)
    755 -                       break;
    756 -               if (second & IPC_64) {
    757 -                       if (!access_ok(VERIFY_WRITE, up64, sizeof(*up64))) {
    758 -                               err = -EFAULT;
    759 -                               break;
    760 -                       }
    761 -                       err2 = __put_user(s64.shm_perm.key, &up64->shm_perm.key);
    762 -                       err2 |= __put_user(s64.shm_perm.uid, &up64->shm_perm.uid);
    763 -                       err2 |= __put_user(s64.shm_perm.gid, &up64->shm_perm.gid);
    764 -                       err2 |= __put_user(s64.shm_perm.cuid, &up64->shm_perm.cuid);
    765 -                       err2 |= __put_user(s64.shm_perm.cgid, &up64->shm_perm.cgid);
    766 -                       err2 |= __put_user(s64.shm_perm.mode, &up64->shm_perm.mode);
    767 -                       err2 |= __put_user(s64.shm_perm.seq, &up64->shm_perm.seq);
    768 -                       err2 |= __put_user(s64.shm_atime, &up64->shm_atime);
    769 -                       err2 |= __put_user(s64.shm_dtime, &up64->shm_dtime);
    770 -                       err2 |= __put_user(s64.shm_ctime, &up64->shm_ctime);
    771 -                       err2 |= __put_user(s64.shm_segsz, &up64->shm_segsz);
    772 -                       err2 |= __put_user(s64.shm_nattch, &up64->shm_nattch);
    773 -                       err2 |= __put_user(s64.shm_cpid, &up64->shm_cpid);
    774 -                       err2 |= __put_user(s64.shm_lpid, &up64->shm_lpid);
    775 -               } else {
    776 -                       if (!access_ok(VERIFY_WRITE, up32, sizeof(*up32))) {
    777 -                               err = -EFAULT;
    778 -                               break;
    779 -                       }
    780 -                       err2 = __put_user(s64.shm_perm.key, &up32->shm_perm.key);
    781 -                       err2 |= __put_user(s64.shm_perm.uid, &up32->shm_perm.uid);
    782 -                       err2 |= __put_user(s64.shm_perm.gid, &up32->shm_perm.gid);
    783 -                       err2 |= __put_user(s64.shm_perm.cuid, &up32->shm_perm.cuid);
    784 -                       err2 |= __put_user(s64.shm_perm.cgid, &up32->shm_perm.cgid);
    785 -                       err2 |= __put_user(s64.shm_perm.mode, &up32->shm_perm.mode);
    786 -                       err2 |= __put_user(s64.shm_perm.seq, &up32->shm_perm.seq);
    787 -                       err2 |= __put_user(s64.shm_atime, &up32->shm_atime);
    788 -                       err2 |= __put_user(s64.shm_dtime, &up32->shm_dtime);
    789 -                       err2 |= __put_user(s64.shm_ctime, &up32->shm_ctime);
    790 -                       err2 |= __put_user(s64.shm_segsz, &up32->shm_segsz);
    791 -                       err2 |= __put_user(s64.shm_nattch, &up32->shm_nattch);
    792 -                       err2 |= __put_user(s64.shm_cpid, &up32->shm_cpid);
    793 -                       err2 |= __put_user(s64.shm_lpid, &up32->shm_lpid);
    794 -               }
    795 -               if (err2)
    796 -                       err = -EFAULT;
    797 -               break;
    798 -
    799 -       case SHM_INFO:
    800 -               old_fs = get_fs();
    801 -               set_fs(KERNEL_DS);
    802 -               err = sys_shmctl(first, second, (void __user *)&si);
    803 -               set_fs(old_fs);
    804 -               if (err < 0)
    805 -                       break;
    806 -               err2 = put_user(si.used_ids, &uip->used_ids);
    807 -               err2 |= __put_user(si.shm_tot, &uip->shm_tot);
    808 -               err2 |= __put_user(si.shm_rss, &uip->shm_rss);
    809 -               err2 |= __put_user(si.shm_swp, &uip->shm_swp);
    810 -               err2 |= __put_user(si.swap_attempts, &uip->swap_attempts);
    811 -               err2 |= __put_user (si.swap_successes, &uip->swap_successes);
    812 -               if (err2)
    813 -                       err = -EFAULT;
    814 -               break;
    815 -
    816 -       default:
    817 -               err = -EINVAL;
    818 -               break;
    819 -       }
    820 -
    821 -       return err;
    822 -}
    823 -
    824 -static int sys32_semtimedop(int semid, struct sembuf __user *tsems, int nsems,
    825 -                            const struct compat_timespec __user *timeout32)
    826 -{
    827 -       struct compat_timespec t32;
    828 -       struct timespec __user *t64 = compat_alloc_user_space(sizeof(*t64));
    829 -
    830 -       if (copy_from_user(&t32, timeout32, sizeof(t32)))
    831 -               return -EFAULT;
    832 -
    833 -       if (put_user(t32.tv_sec, &t64->tv_sec) ||
    834 -           put_user(t32.tv_nsec, &t64->tv_nsec))
    835 -               return -EFAULT;
    836 -
    837 -       return sys_semtimedop(semid, tsems, nsems, t64);
    838 -}
    839 -
    840  asmlinkage long
    841  sys32_ipc (u32 call, int first, int second, int third, u32 ptr, u32 fifth)
     234 static struct irq_chip external_irq_type =
    842235 {
    843 @@ -918,48 +393,43 @@
    844         switch (call) {
    845         case SEMOP:
    846                 /* struct sembuf is the same on 32 and 64bit :)) */
    847 -               err = sys_semtimedop (first, (struct sembuf __user *)AA(ptr), second,
    848 -                                     NULL);
    849 +               err = sys_semtimedop(first, compat_ptr(ptr), second, NULL);
    850                 break;
    851         case SEMTIMEDOP:
    852 -               err = sys32_semtimedop (first, (struct sembuf __user *)AA(ptr), second,
    853 -                                     (const struct compat_timespec __user *)AA(fifth));
    854 +               err = compat_sys_semtimedop(first, compat_ptr(ptr), second,
    855 +                                           compat_ptr(fifth));
    856                 break;
    857         case SEMGET:
    858 -               err = sys_semget (first, second, third);
    859 +               err = sys_semget(first, second, third);
    860                 break;
    861         case SEMCTL:
    862 -               err = do_sys32_semctl (first, second, third,
    863 -                                      (void __user *)AA(ptr));
    864 +               err = compat_sys_semctl(first, second, third, compat_ptr(ptr));
    865                 break;
    866 -
    867         case MSGSND:
    868 -               err = do_sys32_msgsnd (first, second, third,
    869 -                                      (void __user *)AA(ptr));
    870 +               err = compat_sys_msgsnd(first, second, third, compat_ptr(ptr));
    871                 break;
    872         case MSGRCV:
    873 -               err = do_sys32_msgrcv (first, second, fifth, third,
    874 -                                      version, (void __user *)AA(ptr));
    875 +               err = compat_sys_msgrcv(first, second, fifth, third,
    876 +                                       version, compat_ptr(ptr));
    877                 break;
    878         case MSGGET:
    879 -               err = sys_msgget ((key_t) first, second);
    880 +               err = sys_msgget((key_t) first, second);
    881                 break;
    882         case MSGCTL:
    883 -               err = do_sys32_msgctl (first, second, (void __user *)AA(ptr));
    884 +               err = compat_sys_msgctl(first, second, compat_ptr(ptr));
    885                 break;
    886 -
    887         case SHMAT:
    888 -               err = do_sys32_shmat (first, second, third,
    889 -                                     version, (void __user *)AA(ptr));
    890 +               err = compat_sys_shmat(first, second, third, version,
    891 +                                      compat_ptr(ptr));
    892                 break;
    893         case SHMDT:
    894 -               err = sys_shmdt ((char __user *)A(ptr));
    895 +               err = sys_shmdt(compat_ptr(ptr));
    896                 break;
    897         case SHMGET:
    898 -               err = sys_shmget (first, (unsigned)second, third);
    899 +               err = sys_shmget(first, (unsigned)second, third);
    900                 break;
    901         case SHMCTL:
    902 -               err = do_sys32_shmctl (first, second, (void __user *)AA(ptr));
    903 +               err = compat_sys_shmctl(first, second, compat_ptr(ptr));
    904                 break;
    905         default:
    906                 err = -EINVAL;
    907 @@ -969,18 +439,16 @@
    908         return err;
    909  }
     236 #ifdef CONFIG_MIPS_PB1200
     237-       "Pb1200 Ext",
     238+       .name = "Pb1200 Ext",
     239 #endif
     240 #ifdef CONFIG_MIPS_DB1200
     241-       "Db1200 Ext",
     242+       .name = "Db1200 Ext",
     243 #endif
     244-       pb1200_startup_irq,
     245-       pb1200_shutdown_irq,
     246-       pb1200_enable_irq,
     247-       pb1200_disable_irq,
     248-       pb1200_mask_and_ack_irq,
     249-       pb1200_end_irq,
     250-       NULL
     251+       .startup  = pb1200_startup_irq,
     252+       .shutdown = pb1200_shutdown_irq,
     253+       .ack      = pb1200_disable_irq,
     254+       .mask     = pb1200_disable_irq,
     255+       .mask_ack = pb1200_disable_irq,
     256+       .unmask   = pb1200_enable_irq,
     257 };
    910258 
    911 -asmlinkage long sys32_shmat(int shmid, char __user *shmaddr,
    912 -                         int shmflg, int32_t __user *addr)
    913 +#ifdef CONFIG_MIPS32_N32
    914 +asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, union semun arg)
    915  {
    916 -       unsigned long raddr;
    917 -       int err;
    918 -
    919 -       err = do_shmat(shmid, shmaddr, shmflg, &raddr);
    920 -       if (err)
    921 -               return err;
    922 -
    923 -       return put_user(raddr, addr);
    924 +       /* compat_sys_semctl expects a pointer to union semun */
    925 +       u32 __user *uptr = compat_alloc_user_space(sizeof(u32));
    926 +       if (put_user(ptr_to_compat(arg.__pad), uptr))
    927 +               return -EFAULT;
    928 +       return compat_sys_semctl(semid, semnum, cmd, uptr);
    929  }
    930 +#endif
     259 void _board_init_irq(void)
     260@@ -172,7 +159,8 @@
    931261 
    932  struct sysctl_args32
    933  {
    934 diff -Naur linux-2.6.19.1/arch/mips/kernel/mips-mt.c linux-mips-2.6.19.1/arch/mips/kernel/mips-mt.c
    935 --- linux-2.6.19.1/arch/mips/kernel/mips-mt.c   2006-12-11 11:32:53.000000000 -0800
    936 +++ linux-mips-2.6.19.1/arch/mips/kernel/mips-mt.c      2006-12-11 15:38:26.000000000 -0800
     262        for (irq_nr = PB1200_INT_BEGIN; irq_nr <= PB1200_INT_END; irq_nr++)
     263        {
     264-               irq_desc[irq_nr].chip = &external_irq_type;
     265+               set_irq_chip_and_handler(irq_nr, &external_irq_type,
     266+                                        handle_level_irq);
     267                pb1200_disable_irq(irq_nr);
     268        }
     269 
     270diff -Naur linux-2.6.20/arch/mips/kernel/mips-mt.c linux-mips-2.6.20/arch/mips/kernel/mips-mt.c
     271--- linux-2.6.20/arch/mips/kernel/mips-mt.c     2007-02-04 10:44:54.000000000 -0800
     272+++ linux-mips-2.6.20/arch/mips/kernel/mips-mt.c        2007-02-04 12:22:45.000000000 -0800
    937273@@ -96,6 +96,10 @@
    938274                goto out_unlock;
     
    958294        cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map);
    959295 
    960 diff -Naur linux-2.6.19.1/arch/mips/kernel/ptrace.c linux-mips-2.6.19.1/arch/mips/kernel/ptrace.c
    961 --- linux-2.6.19.1/arch/mips/kernel/ptrace.c    2006-12-11 11:32:53.000000000 -0800
    962 +++ linux-mips-2.6.19.1/arch/mips/kernel/ptrace.c       2006-12-11 15:38:26.000000000 -0800
     296diff -Naur linux-2.6.20/arch/mips/kernel/ptrace.c linux-mips-2.6.20/arch/mips/kernel/ptrace.c
     297--- linux-2.6.20/arch/mips/kernel/ptrace.c      2007-02-04 10:44:54.000000000 -0800
     298+++ linux-mips-2.6.20/arch/mips/kernel/ptrace.c 2007-02-04 12:22:45.000000000 -0800
    963299@@ -20,12 +20,12 @@
    964300 #include <linux/mm.h>
     
    1012348+                                   regs->regs[6], regs->regs[7]);
    1013349 }
    1014 diff -Naur linux-2.6.19.1/arch/mips/kernel/reset.c linux-mips-2.6.19.1/arch/mips/kernel/reset.c
    1015 --- linux-2.6.19.1/arch/mips/kernel/reset.c     2006-12-11 11:32:53.000000000 -0800
    1016 +++ linux-mips-2.6.19.1/arch/mips/kernel/reset.c        2006-12-11 15:38:26.000000000 -0800
    1017 @@ -23,6 +23,8 @@
    1018  void (*_machine_halt)(void);
    1019  void (*pm_power_off)(void);
    1020  
    1021 +EXPORT_SYMBOL(pm_power_off);
    1022 +
    1023  void machine_restart(char *command)
    1024  {
    1025         if (_machine_restart)
    1026 diff -Naur linux-2.6.19.1/arch/mips/kernel/scall64-n32.S linux-mips-2.6.19.1/arch/mips/kernel/scall64-n32.S
    1027 --- linux-2.6.19.1/arch/mips/kernel/scall64-n32.S       2006-12-11 11:32:53.000000000 -0800
    1028 +++ linux-mips-2.6.19.1/arch/mips/kernel/scall64-n32.S  2006-12-11 15:38:26.000000000 -0800
    1029 @@ -149,8 +149,8 @@
    1030         PTR     sys_mincore
    1031         PTR     sys_madvise
    1032         PTR     sys_shmget
    1033 -       PTR     sys32_shmat
    1034 -       PTR     sys_shmctl                      /* 6030 */
    1035 +       PTR     sys_shmat
    1036 +       PTR     compat_sys_shmctl                       /* 6030 */
    1037         PTR     sys_dup
    1038         PTR     sys_dup2
    1039         PTR     sys_pause
    1040 @@ -184,12 +184,12 @@
    1041         PTR     sys32_newuname
    1042         PTR     sys_semget
    1043         PTR     sys_semop
    1044 -       PTR     sys_semctl
    1045 +       PTR     sysn32_semctl
    1046         PTR     sys_shmdt                       /* 6065 */
    1047         PTR     sys_msgget
    1048 -       PTR     sys_msgsnd
    1049 -       PTR     sys_msgrcv
    1050 -       PTR     sys_msgctl
    1051 +       PTR     compat_sys_msgsnd
    1052 +       PTR     compat_sys_msgrcv
    1053 +       PTR     compat_sys_msgctl
    1054         PTR     compat_sys_fcntl                /* 6070 */
    1055         PTR     sys_flock
    1056         PTR     sys_fsync
    1057 @@ -335,7 +335,7 @@
    1058         PTR     compat_sys_fcntl64
    1059         PTR     sys_set_tid_address
    1060         PTR     sys_restart_syscall
    1061 -       PTR     sys_semtimedop                  /* 6215 */
    1062 +       PTR     compat_sys_semtimedop                   /* 6215 */
    1063         PTR     sys_fadvise64_64
    1064         PTR     compat_sys_statfs64
    1065         PTR     compat_sys_fstatfs64
    1066 diff -Naur linux-2.6.19.1/arch/mips/kernel/vmlinux.lds.S linux-mips-2.6.19.1/arch/mips/kernel/vmlinux.lds.S
    1067 --- linux-2.6.19.1/arch/mips/kernel/vmlinux.lds.S       2006-12-11 11:32:53.000000000 -0800
    1068 +++ linux-mips-2.6.19.1/arch/mips/kernel/vmlinux.lds.S  2006-12-11 15:38:26.000000000 -0800
    1069 @@ -112,6 +112,7 @@
    1070      /* .exit.text is discarded at runtime, not link time, to deal with
    1071       references from .rodata */
    1072    .exit.text : { *(.exit.text) }
    1073 +  .exit.data : { *(.exit.data) }
    1074    . = ALIGN(_PAGE_SIZE);
    1075    __initramfs_start = .;
    1076    .init.ramfs : { *(.init.ramfs) }
    1077 @@ -139,7 +140,6 @@
    1078  
    1079    /* Sections to be discarded */
    1080    /DISCARD/ : {
    1081 -        *(.exit.data)
    1082          *(.exitcall.exit)
    1083  
    1084         /* ABI crap starts here */
    1085 diff -Naur linux-2.6.19.1/arch/mips/lib/Makefile linux-mips-2.6.19.1/arch/mips/lib/Makefile
    1086 --- linux-2.6.19.1/arch/mips/lib/Makefile       2006-12-11 11:32:53.000000000 -0800
    1087 +++ linux-mips-2.6.19.1/arch/mips/lib/Makefile  2006-12-11 15:38:26.000000000 -0800
     350diff -Naur linux-2.6.20/arch/mips/kernel/scall64-n32.S linux-mips-2.6.20/arch/mips/kernel/scall64-n32.S
     351--- linux-2.6.20/arch/mips/kernel/scall64-n32.S 2007-02-04 10:44:54.000000000 -0800
     352+++ linux-mips-2.6.20/arch/mips/kernel/scall64-n32.S    2007-02-04 12:22:45.000000000 -0800
     353@@ -384,7 +384,7 @@
     354        PTR     sys_readlinkat
     355        PTR     sys_fchmodat
     356        PTR     sys_faccessat
     357-       PTR     sys_pselect6
     358+       PTR     compat_sys_pselect6
     359        PTR     sys_ppoll                       /* 6265 */
     360        PTR     sys_unshare
     361        PTR     sys_splice
     362diff -Naur linux-2.6.20/arch/mips/kernel/scall64-o32.S linux-mips-2.6.20/arch/mips/kernel/scall64-o32.S
     363--- linux-2.6.20/arch/mips/kernel/scall64-o32.S 2007-02-04 10:44:54.000000000 -0800
     364+++ linux-mips-2.6.20/arch/mips/kernel/scall64-o32.S    2007-02-04 12:22:45.000000000 -0800
     365@@ -506,7 +506,7 @@
     366        PTR     sys_readlinkat
     367        PTR     sys_fchmodat
     368        PTR     sys_faccessat                   /* 4300 */
     369-       PTR     sys_pselect6
     370+       PTR     compat_sys_pselect6
     371        PTR     sys_ppoll
     372        PTR     sys_unshare
     373        PTR     sys_splice
     374diff -Naur linux-2.6.20/arch/mips/lib/Makefile linux-mips-2.6.20/arch/mips/lib/Makefile
     375--- linux-2.6.20/arch/mips/lib/Makefile 2007-02-04 10:44:54.000000000 -0800
     376+++ linux-mips-2.6.20/arch/mips/lib/Makefile    2007-02-04 12:22:45.000000000 -0800
    1088377@@ -5,8 +5,6 @@
    1089  lib-y  += csum_partial_copy.o memcpy.o promlib.o strlen_user.o strncpy_user.o \
    1090            strnlen_user.o uncached.o
     378 lib-y  += csum_partial.o memcpy.o promlib.o \
     379           strlen_user.o strncpy_user.o strnlen_user.o uncached.o
    1091380 
    1092381-obj-y  += iomap.o
     
    1095384 lib-y += ashldi3.o ashrdi3.o lshrdi3.o
    1096385 
    1097 diff -Naur linux-2.6.19.1/arch/mips/lib/csum_partial_copy.c linux-mips-2.6.19.1/arch/mips/lib/csum_partial_copy.c
    1098 --- linux-2.6.19.1/arch/mips/lib/csum_partial_copy.c    2006-12-11 11:32:53.000000000 -0800
    1099 +++ linux-mips-2.6.19.1/arch/mips/lib/csum_partial_copy.c       2006-12-11 15:38:26.000000000 -0800
    1100 @@ -7,6 +7,7 @@
    1101   * Copyright (C) 1998, 1999 Ralf Baechle
    1102   */
    1103  #include <linux/kernel.h>
    1104 +#include <linux/module.h>
    1105  #include <linux/types.h>
    1106  #include <asm/byteorder.h>
    1107  #include <asm/string.h>
    1108 @@ -29,6 +30,8 @@
    1109         return sum;
    1110  }
    1111  
    1112 +EXPORT_SYMBOL(csum_partial_copy_nocheck);
    1113 +
    1114  /*
    1115   * Copy from userspace and compute checksum.  If we catch an exception
    1116   * then zero the rest of the buffer.
    1117 diff -Naur linux-2.6.19.1/arch/mips/lib/iomap.c linux-mips-2.6.19.1/arch/mips/lib/iomap.c
    1118 --- linux-2.6.19.1/arch/mips/lib/iomap.c        2006-12-11 11:32:53.000000000 -0800
    1119 +++ linux-mips-2.6.19.1/arch/mips/lib/iomap.c   1969-12-31 16:00:00.000000000 -0800
     386diff -Naur linux-2.6.20/arch/mips/lib/iomap.c linux-mips-2.6.20/arch/mips/lib/iomap.c
     387--- linux-2.6.20/arch/mips/lib/iomap.c  2007-02-04 10:44:54.000000000 -0800
     388+++ linux-mips-2.6.20/arch/mips/lib/iomap.c     1969-12-31 16:00:00.000000000 -0800
    1120389@@ -1,78 +0,0 @@
    1121390-/*
     
    1197466-EXPORT_SYMBOL(pci_iomap);
    1198467-EXPORT_SYMBOL(pci_iounmap);
    1199 diff -Naur linux-2.6.19.1/arch/mips/lib-32/dump_tlb.c linux-mips-2.6.19.1/arch/mips/lib-32/dump_tlb.c
    1200 --- linux-2.6.19.1/arch/mips/lib-32/dump_tlb.c  2006-12-11 11:32:53.000000000 -0800
    1201 +++ linux-mips-2.6.19.1/arch/mips/lib-32/dump_tlb.c     2006-12-11 15:38:26.000000000 -0800
     468diff -Naur linux-2.6.20/arch/mips/lib-32/dump_tlb.c linux-mips-2.6.20/arch/mips/lib-32/dump_tlb.c
     469--- linux-2.6.20/arch/mips/lib-32/dump_tlb.c    2007-02-04 10:44:54.000000000 -0800
     470+++ linux-mips-2.6.20/arch/mips/lib-32/dump_tlb.c       2007-02-04 12:22:45.000000000 -0800
    1202471@@ -40,8 +40,6 @@
    1203472                return "256Mb";
     
    1209478 
    1210479 #define BARRIER()                                      \
    1211 diff -Naur linux-2.6.19.1/arch/mips/lib-64/dump_tlb.c linux-mips-2.6.19.1/arch/mips/lib-64/dump_tlb.c
    1212 --- linux-2.6.19.1/arch/mips/lib-64/dump_tlb.c  2006-12-11 11:32:53.000000000 -0800
    1213 +++ linux-mips-2.6.19.1/arch/mips/lib-64/dump_tlb.c     2006-12-11 15:38:26.000000000 -0800
     480diff -Naur linux-2.6.20/arch/mips/lib-64/dump_tlb.c linux-mips-2.6.20/arch/mips/lib-64/dump_tlb.c
     481--- linux-2.6.20/arch/mips/lib-64/dump_tlb.c    2007-02-04 10:44:54.000000000 -0800
     482+++ linux-mips-2.6.20/arch/mips/lib-64/dump_tlb.c       2007-02-04 12:22:45.000000000 -0800
    1214483@@ -31,8 +31,6 @@
    1215484        case PM_256M:   return "256Mb";
     
    1221490 
    1222491 #define BARRIER()                                      \
    1223 diff -Naur linux-2.6.19.1/arch/mips/mips-boards/malta/Makefile linux-mips-2.6.19.1/arch/mips/mips-boards/malta/Makefile
    1224 --- linux-2.6.19.1/arch/mips/mips-boards/malta/Makefile 2006-12-11 11:32:53.000000000 -0800
    1225 +++ linux-mips-2.6.19.1/arch/mips/mips-boards/malta/Makefile    2006-12-11 15:38:26.000000000 -0800
    1226 @@ -19,5 +19,5 @@
    1227  # under Linux.
    1228  #
    1229  
    1230 -obj-y := malta_int.o malta_setup.o
    1231 +obj-y := malta_int.o malta_mtd.o malta_setup.o
    1232  obj-$(CONFIG_SMP) += malta_smp.o
    1233 diff -Naur linux-2.6.19.1/arch/mips/mips-boards/malta/malta_setup.c linux-mips-2.6.19.1/arch/mips/mips-boards/malta/malta_setup.c
    1234 --- linux-2.6.19.1/arch/mips/mips-boards/malta/malta_setup.c    2006-12-11 11:32:53.000000000 -0800
    1235 +++ linux-mips-2.6.19.1/arch/mips/mips-boards/malta/malta_setup.c       2006-12-11 15:38:26.000000000 -0800
    1236 @@ -21,13 +21,6 @@
    1237  #include <linux/pci.h>
    1238  #include <linux/screen_info.h>
    1239  
    1240 -#ifdef CONFIG_MTD
    1241 -#include <linux/mtd/partitions.h>
    1242 -#include <linux/mtd/physmap.h>
    1243 -#include <linux/mtd/mtd.h>
    1244 -#include <linux/mtd/map.h>
    1245 -#endif
    1246 -
    1247  #include <asm/cpu.h>
    1248  #include <asm/bootinfo.h>
    1249  #include <asm/irq.h>
    1250 @@ -58,30 +51,6 @@
    1251         { .name = "dma2", .start = 0xc0, .end = 0xdf, .flags = IORESOURCE_BUSY },
    1252  };
    1253  
    1254 -#ifdef CONFIG_MTD
    1255 -static struct mtd_partition malta_mtd_partitions[] = {
    1256 -       {
    1257 -               .name =         "YAMON",
    1258 -               .offset =       0x0,
    1259 -               .size =         0x100000,
    1260 -               .mask_flags =   MTD_WRITEABLE
    1261 -       },
    1262 -       {
    1263 -               .name =         "User FS",
    1264 -               .offset =       0x100000,
    1265 -               .size =         0x2e0000
    1266 -       },
    1267 -       {
    1268 -               .name =         "Board Config",
    1269 -               .offset =       0x3e0000,
    1270 -               .size =         0x020000,
    1271 -               .mask_flags =   MTD_WRITEABLE
    1272 -       }
    1273 -};
    1274 -
    1275 -#define number_partitions      (sizeof(malta_mtd_partitions)/sizeof(struct mtd_partition))
    1276 -#endif
    1277 -
    1278  const char *get_system_type(void)
    1279  {
    1280         return "MIPS Malta";
    1281 @@ -211,14 +180,6 @@
    1282  #endif
    1283  #endif
    1284  
    1285 -#ifdef CONFIG_MTD
    1286 -       /*
    1287 -        * Support for MTD on Malta. Use the generic physmap driver
    1288 -        */
    1289 -       physmap_configure(0x1e000000, 0x400000, 4, NULL);
    1290 -       physmap_set_partitions(malta_mtd_partitions, number_partitions);
    1291 -#endif
    1292 -
    1293         mips_reboot_setup();
    1294  
    1295         board_time_init = mips_time_init;
    1296 diff -Naur linux-2.6.19.1/arch/mips/mm/cache.c linux-mips-2.6.19.1/arch/mips/mm/cache.c
    1297 --- linux-2.6.19.1/arch/mips/mm/cache.c 2006-12-11 11:32:53.000000000 -0800
    1298 +++ linux-mips-2.6.19.1/arch/mips/mm/cache.c    2006-12-11 15:38:26.000000000 -0800
    1299 @@ -32,6 +32,7 @@
    1300  void (*flush_data_cache_page)(unsigned long addr);
    1301  void (*flush_icache_all)(void);
    1302  
    1303 +EXPORT_SYMBOL_GPL(local_flush_data_cache_page);
    1304  EXPORT_SYMBOL(flush_data_cache_page);
    1305  
    1306  #ifdef CONFIG_DMA_NONCOHERENT
    1307 diff -Naur linux-2.6.19.1/arch/mips/mm/init.c linux-mips-2.6.19.1/arch/mips/mm/init.c
    1308 --- linux-2.6.19.1/arch/mips/mm/init.c  2006-12-11 11:32:53.000000000 -0800
    1309 +++ linux-mips-2.6.19.1/arch/mips/mm/init.c     2006-12-11 15:38:26.000000000 -0800
    1310 @@ -203,6 +203,31 @@
    1311         preempt_check_resched();
    1312  }
    1313  
    1314 +void copy_user_highpage(struct page *to, struct page *from,
    1315 +       unsigned long vaddr, struct vm_area_struct *vma)
    1316 +{
    1317 +       void *vfrom, *vto;
    1318 +
    1319 +       vto = kmap_atomic(to, KM_USER1);
    1320 +       if (cpu_has_dc_aliases) {
    1321 +               vfrom = kmap_coherent(from, vaddr);
    1322 +               copy_page(vto, vfrom);
    1323 +               kunmap_coherent(from);
    1324 +       } else {
    1325 +               vfrom = kmap_atomic(from, KM_USER0);
    1326 +               copy_page(vto, vfrom);
    1327 +               kunmap_atomic(vfrom, KM_USER0);
    1328 +       }
    1329 +       if (((vma->vm_flags & VM_EXEC) && !cpu_has_ic_fills_f_dc) ||
    1330 +           pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK))
    1331 +               flush_data_cache_page((unsigned long)vto);
    1332 +       kunmap_atomic(vto, KM_USER1);
    1333 +       /* Make sure this page is cleared on other CPU's too before using it */
    1334 +       smp_wmb();
    1335 +}
    1336 +
    1337 +EXPORT_SYMBOL(copy_user_highpage);
    1338 +
    1339  void copy_to_user_page(struct vm_area_struct *vma,
    1340         struct page *page, unsigned long vaddr, void *dst, const void *src,
    1341         unsigned long len)
    1342 diff -Naur linux-2.6.19.1/arch/mips/momentum/jaguar_atx/Makefile linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/Makefile
    1343 --- linux-2.6.19.1/arch/mips/momentum/jaguar_atx/Makefile       2006-12-11 11:32:53.000000000 -0800
    1344 +++ linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/Makefile  2006-12-11 15:38:26.000000000 -0800
     492diff -Naur linux-2.6.20/arch/mips/momentum/jaguar_atx/Makefile linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/Makefile
     493--- linux-2.6.20/arch/mips/momentum/jaguar_atx/Makefile 2007-02-04 10:44:54.000000000 -0800
     494+++ linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/Makefile    2007-02-04 12:22:45.000000000 -0800
    1345495@@ -6,7 +6,7 @@
    1346496 # unless it's something special (ie not a .c file).
     
    1352502 obj-$(CONFIG_SERIAL_8250_CONSOLE) += ja-console.o
    1353503 obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
    1354 diff -Naur linux-2.6.19.1/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h
    1355 --- linux-2.6.19.1/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h      2006-12-11 11:32:53.000000000 -0800
    1356 +++ linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h 2006-12-11 15:38:26.000000000 -0800
     504diff -Naur linux-2.6.20/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h
     505--- linux-2.6.20/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h        2007-02-04 10:44:54.000000000 -0800
     506+++ linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h   2007-02-04 12:22:45.000000000 -0800
    1357507@@ -46,7 +46,9 @@
    1358508 
     
    1367517 
    1368518 #endif
    1369 diff -Naur linux-2.6.19.1/arch/mips/momentum/jaguar_atx/platform.c linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/platform.c
    1370 --- linux-2.6.19.1/arch/mips/momentum/jaguar_atx/platform.c     1969-12-31 16:00:00.000000000 -0800
    1371 +++ linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/platform.c        2006-12-11 15:38:26.000000000 -0800
     519diff -Naur linux-2.6.20/arch/mips/momentum/jaguar_atx/platform.c linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/platform.c
     520--- linux-2.6.20/arch/mips/momentum/jaguar_atx/platform.c       1969-12-31 16:00:00.000000000 -0800
     521+++ linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/platform.c  2007-02-04 12:22:45.000000000 -0800
    1372522@@ -0,0 +1,235 @@
    1373523+#include <linux/delay.h>
     
    1606756+
    1607757+#endif /* defined(CONFIG_MV643XX_ETH) || defined(CONFIG_MV643XX_ETH_MODULE) */
    1608 diff -Naur linux-2.6.19.1/arch/mips/momentum/jaguar_atx/prom.c linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/prom.c
    1609 --- linux-2.6.19.1/arch/mips/momentum/jaguar_atx/prom.c 2006-12-11 11:32:53.000000000 -0800
    1610 +++ linux-mips-2.6.19.1/arch/mips/momentum/jaguar_atx/prom.c    2006-12-11 15:38:26.000000000 -0800
     758diff -Naur linux-2.6.20/arch/mips/momentum/jaguar_atx/prom.c linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/prom.c
     759--- linux-2.6.20/arch/mips/momentum/jaguar_atx/prom.c   2007-02-04 10:44:54.000000000 -0800
     760+++ linux-mips-2.6.20/arch/mips/momentum/jaguar_atx/prom.c      2007-02-04 12:22:45.000000000 -0800
    1611761@@ -39,56 +39,6 @@
    1612762        return "Momentum Jaguar-ATX";
     
    1678828 
    1679829 unsigned long __init prom_free_prom_memory(void)
    1680 diff -Naur linux-2.6.19.1/arch/mips/pci/fixup-tb0219.c linux-mips-2.6.19.1/arch/mips/pci/fixup-tb0219.c
    1681 --- linux-2.6.19.1/arch/mips/pci/fixup-tb0219.c 2006-12-11 11:32:53.000000000 -0800
    1682 +++ linux-mips-2.6.19.1/arch/mips/pci/fixup-tb0219.c    2006-12-11 15:38:26.000000000 -0800
     830diff -Naur linux-2.6.20/arch/mips/oprofile/Kconfig linux-mips-2.6.20/arch/mips/oprofile/Kconfig
     831--- linux-2.6.20/arch/mips/oprofile/Kconfig     2007-02-04 10:44:54.000000000 -0800
     832+++ linux-mips-2.6.20/arch/mips/oprofile/Kconfig        2007-02-04 12:22:45.000000000 -0800
     833@@ -11,7 +11,7 @@
     834 
     835 config OPROFILE
     836        tristate "OProfile system profiling (EXPERIMENTAL)"
     837-       depends on PROFILING && EXPERIMENTAL
     838+       depends on PROFILING && !!MIPS_MT_SMTC && EXPERIMENTAL
     839        help
     840          OProfile is a profiling system capable of profiling the
     841          whole system, include the kernel, kernel modules, libraries,
     842diff -Naur linux-2.6.20/arch/mips/pci/fixup-tb0219.c linux-mips-2.6.20/arch/mips/pci/fixup-tb0219.c
     843--- linux-2.6.20/arch/mips/pci/fixup-tb0219.c   2007-02-04 10:44:54.000000000 -0800
     844+++ linux-mips-2.6.20/arch/mips/pci/fixup-tb0219.c      2007-02-04 12:22:45.000000000 -0800
    1683845@@ -2,7 +2,7 @@
    1684846  *  fixup-tb0219.c, The TANBAC TB0219 specific PCI fixups.
     
    1690852  *  This program is free software; you can redistribute it and/or modify
    1691853  *  it under the terms of the GNU General Public License as published by
    1692 diff -Naur linux-2.6.19.1/arch/mips/qemu/Makefile linux-mips-2.6.19.1/arch/mips/qemu/Makefile
    1693 --- linux-2.6.19.1/arch/mips/qemu/Makefile      2006-12-11 11:32:53.000000000 -0800
    1694 +++ linux-mips-2.6.19.1/arch/mips/qemu/Makefile 2006-12-11 15:38:26.000000000 -0800
     854diff -Naur linux-2.6.20/arch/mips/pci/pci.c linux-mips-2.6.20/arch/mips/pci/pci.c
     855--- linux-2.6.20/arch/mips/pci/pci.c    2007-02-04 10:44:54.000000000 -0800
     856+++ linux-mips-2.6.20/arch/mips/pci/pci.c       2007-02-04 12:22:45.000000000 -0800
     857@@ -103,10 +103,15 @@
     858        return PCI_SLOT(dev->devfn);
     859 }
     860 
     861+int mips_system_has_legacy_ide;
     862+
     863+EXPORT_SYMBOL_GPL(mips_system_has_legacy_ide);
     864+
     865 static int __init pcibios_init(void)
     866 {
     867        struct pci_controller *hose;
     868        struct pci_bus *bus;
     869+       struct pci_dev *dev;
     870        int next_busno;
     871        int need_domain_info = 0;
     872 
     873@@ -150,6 +155,13 @@
     874                pci_assign_unassigned_resources();
     875        pci_fixup_irqs(common_swizzle, pcibios_map_irq);
     876 
     877+       if ((dev = pci_get_class(PCI_CLASS_BRIDGE_EISA << 8, NULL)) != NULL ||
     878+           (dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL)) != NULL) {
     879+               pci_dev_put(dev);
     880+
     881+               mips_system_has_legacy_ide = 1;
     882+       }
     883+
     884        return 0;
     885 }
     886 
     887diff -Naur linux-2.6.20/arch/mips/pmc-sierra/yosemite/setup.c linux-mips-2.6.20/arch/mips/pmc-sierra/yosemite/setup.c
     888--- linux-2.6.20/arch/mips/pmc-sierra/yosemite/setup.c  2007-02-04 10:44:54.000000000 -0800
     889+++ linux-mips-2.6.20/arch/mips/pmc-sierra/yosemite/setup.c     2007-02-04 12:22:45.000000000 -0800
     890@@ -171,6 +171,7 @@
     891 
     892 static void __init py_uart_setup(void)
     893 {
     894+#ifdef CONFIG_SERIAL_8250
     895        struct uart_port up;
     896 
     897        /*
     898@@ -188,6 +189,7 @@
     899 
     900        if (early_serial_setup(&up))
     901                printk(KERN_ERR "Early serial init of port 0 failed\n");
     902+#endif /* CONFIG_SERIAL_8250 */
     903 }
     904 
     905 static void __init py_rtc_setup(void)
     906diff -Naur linux-2.6.20/arch/mips/qemu/Makefile linux-mips-2.6.20/arch/mips/qemu/Makefile
     907--- linux-2.6.20/arch/mips/qemu/Makefile        2007-02-04 10:44:54.000000000 -0800
     908+++ linux-mips-2.6.20/arch/mips/qemu/Makefile   2007-02-04 12:22:45.000000000 -0800
    1695909@@ -4,4 +4,5 @@
    1696910 
     
    1699913+obj-$(CONFIG_VT) += q-vga.o
    1700914 obj-$(CONFIG_SMP) += q-smp.o
    1701 diff -Naur linux-2.6.19.1/arch/mips/qemu/q-setup.c linux-mips-2.6.19.1/arch/mips/qemu/q-setup.c
    1702 --- linux-2.6.19.1/arch/mips/qemu/q-setup.c     2006-12-11 11:32:53.000000000 -0800
    1703 +++ linux-mips-2.6.19.1/arch/mips/qemu/q-setup.c        2006-12-11 15:38:26.000000000 -0800
     915diff -Naur linux-2.6.20/arch/mips/qemu/q-setup.c linux-mips-2.6.20/arch/mips/qemu/q-setup.c
     916--- linux-2.6.20/arch/mips/qemu/q-setup.c       2007-02-04 10:44:54.000000000 -0800
     917+++ linux-mips-2.6.20/arch/mips/qemu/q-setup.c  2007-02-04 12:22:45.000000000 -0800
    1704918@@ -2,6 +2,7 @@
    1705919 #include <asm/io.h>
     
    1720934        qemu_reboot_setup();
    1721935 }
    1722 diff -Naur linux-2.6.19.1/arch/mips/qemu/q-vga.c linux-mips-2.6.19.1/arch/mips/qemu/q-vga.c
    1723 --- linux-2.6.19.1/arch/mips/qemu/q-vga.c       1969-12-31 16:00:00.000000000 -0800
    1724 +++ linux-mips-2.6.19.1/arch/mips/qemu/q-vga.c  2006-12-11 15:38:26.000000000 -0800
     936diff -Naur linux-2.6.20/arch/mips/qemu/q-vga.c linux-mips-2.6.20/arch/mips/qemu/q-vga.c
     937--- linux-2.6.20/arch/mips/qemu/q-vga.c 1969-12-31 16:00:00.000000000 -0800
     938+++ linux-mips-2.6.20/arch/mips/qemu/q-vga.c    2007-02-04 12:22:45.000000000 -0800
    1725939@@ -0,0 +1,189 @@
    1726940+/*
     
    19131127+#endif
    19141128+}
    1915 diff -Naur linux-2.6.19.1/arch/mips/sibyte/swarm/setup.c linux-mips-2.6.19.1/arch/mips/sibyte/swarm/setup.c
    1916 --- linux-2.6.19.1/arch/mips/sibyte/swarm/setup.c       2006-12-11 11:32:53.000000000 -0800
    1917 +++ linux-mips-2.6.19.1/arch/mips/sibyte/swarm/setup.c  2006-12-11 15:38:26.000000000 -0800
    1918 @@ -43,7 +43,7 @@
    1919  #elif defined(CONFIG_SIBYTE_SB1250) || defined(CONFIG_SIBYTE_BCM112X)
    1920  #include <asm/sibyte/sb1250_regs.h>
    1921  #else
    1922 -#error invalid SiByte board configuation
    1923 +#error invalid SiByte board configuration
    1924  #endif
    1925  #include <asm/sibyte/sb1250_genbus.h>
    1926  #include <asm/sibyte/board.h>
    1927 @@ -53,7 +53,7 @@
    1928  #elif defined(CONFIG_SIBYTE_SB1250) || defined(CONFIG_SIBYTE_BCM112X)
    1929  extern void sb1250_setup(void);
    1930  #else
    1931 -#error invalid SiByte board configuation
    1932 +#error invalid SiByte board configuration
    1933  #endif
    1934  
    1935  extern int xicor_probe(void);
    1936 @@ -90,7 +90,7 @@
    1937  #elif defined(CONFIG_SIBYTE_SB1250) || defined(CONFIG_SIBYTE_BCM112X)
    1938         sb1250_time_init();
    1939  #else
    1940 -#error invalid SiByte board configuation
    1941 +#error invalid SiByte board configuration
    1942  #endif
    1943  }
    1944  
    1945 @@ -111,7 +111,7 @@
    1946  #elif defined(CONFIG_SIBYTE_SB1250) || defined(CONFIG_SIBYTE_BCM112X)
    1947         sb1250_setup();
    1948  #else
    1949 -#error invalid SiByte board configuation
    1950 +#error invalid SiByte board configuration
    1951  #endif
    1952  
    1953         panic_timeout = 5;  /* For debug.  */
    1954 diff -Naur linux-2.6.19.1/drivers/char/Kconfig linux-mips-2.6.19.1/drivers/char/Kconfig
    1955 --- linux-2.6.19.1/drivers/char/Kconfig 2006-12-11 11:32:53.000000000 -0800
    1956 +++ linux-mips-2.6.19.1/drivers/char/Kconfig    2006-12-11 15:38:26.000000000 -0800
    1957 @@ -357,19 +357,56 @@
     1129diff -Naur linux-2.6.20/drivers/char/Kconfig linux-mips-2.6.20/drivers/char/Kconfig
     1130--- linux-2.6.20/drivers/char/Kconfig   2007-02-04 10:44:54.000000000 -0800
     1131+++ linux-mips-2.6.20/drivers/char/Kconfig      2007-02-04 12:22:45.000000000 -0800
     1132@@ -372,19 +372,56 @@
    19581133          To compile this driver as a module, choose M here: the
    19591134          module will be called istallion.
     
    20241199 config A2232
    20251200        tristate "Commodore A2232 serial support (EXPERIMENTAL)"
    2026 diff -Naur linux-2.6.19.1/drivers/char/Makefile linux-mips-2.6.19.1/drivers/char/Makefile
    2027 --- linux-2.6.19.1/drivers/char/Makefile        2006-12-11 11:32:53.000000000 -0800
    2028 +++ linux-mips-2.6.19.1/drivers/char/Makefile   2006-12-11 15:38:26.000000000 -0800
    2029 @@ -31,6 +31,7 @@
    2030  obj-$(CONFIG_A2232)            += ser_a2232.o generic_serial.o
     1201diff -Naur linux-2.6.20/drivers/char/Makefile linux-mips-2.6.20/drivers/char/Makefile
     1202--- linux-2.6.20/drivers/char/Makefile  2007-02-04 10:44:54.000000000 -0800
     1203+++ linux-mips-2.6.20/drivers/char/Makefile     2007-02-04 12:22:45.000000000 -0800
     1204@@ -32,6 +32,7 @@
    20311205 obj-$(CONFIG_ATARI_DSP56K)     += dsp56k.o
    20321206 obj-$(CONFIG_MOXA_SMARTIO)     += mxser.o
     1207 obj-$(CONFIG_MOXA_SMARTIO_NEW) += mxser_new.o
    20331208+obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o
    20341209 obj-$(CONFIG_COMPUTONE)                += ip2/
    20351210 obj-$(CONFIG_RISCOM8)          += riscom8.o
    20361211 obj-$(CONFIG_ISI)              += isicom.o
    2037 @@ -53,6 +54,7 @@
     1212@@ -54,6 +55,7 @@
    20381213 obj-$(CONFIG_VIOTAPE)          += viotape.o
    20391214 obj-$(CONFIG_HVCS)             += hvcs.o
     
    20441219 obj-$(CONFIG_PRINTER)          += lp.o
    20451220@@ -80,6 +82,7 @@
     1221 obj-$(CONFIG_DS1620)           += ds1620.o
    20461222 obj-$(CONFIG_HW_RANDOM)                += hw_random/
    2047  obj-$(CONFIG_FTAPE)            += ftape/
    20481223 obj-$(CONFIG_COBALT_LCD)       += lcd.o
    20491224+obj-$(CONFIG_AU1000_GPIO)      += au1000_gpio.o
     
    20511226 obj-$(CONFIG_NWBUTTON)         += nwbutton.o
    20521227 obj-$(CONFIG_NWFLASH)          += nwflash.o
    2053 diff -Naur linux-2.6.19.1/drivers/char/au1000_gpio.c linux-mips-2.6.19.1/drivers/char/au1000_gpio.c
    2054 --- linux-2.6.19.1/drivers/char/au1000_gpio.c   1969-12-31 16:00:00.000000000 -0800
    2055 +++ linux-mips-2.6.19.1/drivers/char/au1000_gpio.c      2006-12-11 15:38:26.000000000 -0800
     1228diff -Naur linux-2.6.20/drivers/char/au1000_gpio.c linux-mips-2.6.20/drivers/char/au1000_gpio.c
     1229--- linux-2.6.20/drivers/char/au1000_gpio.c     1969-12-31 16:00:00.000000000 -0800
     1230+++ linux-mips-2.6.20/drivers/char/au1000_gpio.c        2007-02-04 12:22:45.000000000 -0800
    20561231@@ -0,0 +1,262 @@
    20571232+/*
     
    23171492+module_init(au1000gpio_init);
    23181493+module_exit(au1000gpio_exit);
    2319 diff -Naur linux-2.6.19.1/drivers/char/au1000_ts.c linux-mips-2.6.19.1/drivers/char/au1000_ts.c
    2320 --- linux-2.6.19.1/drivers/char/au1000_ts.c     1969-12-31 16:00:00.000000000 -0800
    2321 +++ linux-mips-2.6.19.1/drivers/char/au1000_ts.c        2006-12-11 15:38:26.000000000 -0800
     1494diff -Naur linux-2.6.20/drivers/char/au1000_ts.c linux-mips-2.6.20/drivers/char/au1000_ts.c
     1495--- linux-2.6.20/drivers/char/au1000_ts.c       1969-12-31 16:00:00.000000000 -0800
     1496+++ linux-mips-2.6.20/drivers/char/au1000_ts.c  2007-02-04 12:22:45.000000000 -0800
    23221497@@ -0,0 +1,677 @@
    23231498+/*
     
    29982173+module_init(au1000ts_init_module);
    29992174+module_exit(au1000ts_cleanup_module);
    3000 diff -Naur linux-2.6.19.1/drivers/char/decserial.c linux-mips-2.6.19.1/drivers/char/decserial.c
    3001 --- linux-2.6.19.1/drivers/char/decserial.c     2006-12-11 11:32:53.000000000 -0800
    3002 +++ linux-mips-2.6.19.1/drivers/char/decserial.c        2006-12-11 15:38:26.000000000 -0800
    3003 @@ -14,86 +14,84 @@
    3004   *      device. Added support for PROM console in drivers/char/tty_io.c
    3005   *      instead. Although it may work to enable more than one
    3006   *      console device I strongly recommend to use only one.
    3007 + *
    3008 + *     Copyright (C) 2004  Maciej W. Rozycki
    3009   */
    3010  
    3011 +#include <linux/errno.h>
    3012  #include <linux/init.h>
    3013 -#include <asm/dec/machtype.h>
    3014 -
    3015 -#ifdef CONFIG_ZS
    3016 -extern int zs_init(void);
    3017 -#endif
    3018  
    3019 -#ifdef CONFIG_DZ
    3020 -extern int dz_init(void);
    3021 -#endif
    3022 +#include <asm/dec/machtype.h>
    3023 +#include <asm/dec/serial.h>
    3024  
    3025 -#ifdef CONFIG_SERIAL_CONSOLE
    3026 +extern int register_zs_hook(unsigned int channel,
    3027 +                           struct dec_serial_hook *hook);
    3028 +extern int unregister_zs_hook(unsigned int channel);
    3029  
    3030 +int register_dec_serial_hook(unsigned int channel,
    3031 +                            struct dec_serial_hook *hook)
    3032 +{
    3033  #ifdef CONFIG_ZS
    3034 -extern void zs_serial_console_init(void);
    3035 -#endif
    3036 -
    3037 -#ifdef CONFIG_DZ
    3038 -extern void dz_serial_console_init(void);
    3039 +       if (IOASIC)
    3040 +               return register_zs_hook(channel, hook);
    3041  #endif
    3042 +       return 0;
    3043 +}
    3044  
    3045 +int unregister_dec_serial_hook(unsigned int channel)
    3046 +{
    3047 +#ifdef CONFIG_ZS
    3048 +       if (IOASIC)
    3049 +               return unregister_zs_hook(channel);
    3050  #endif
    3051 +       return 0;
    3052 +}
    3053  
    3054 -/* rs_init - starts up the serial interface -
    3055 -   handle normal case of starting up the serial interface */
    3056  
    3057 -#ifdef CONFIG_SERIAL
    3058 +extern int zs_init(void);
    3059 +extern int dz_init(void);
    3060  
    3061 +/*
    3062 + * rs_init - starts up the serial interface -
    3063 + * handle normal case of starting up the serial interface
    3064 + */
    3065  int __init rs_init(void)
    3066  {
    3067 -
    3068 -#if defined(CONFIG_ZS) && defined(CONFIG_DZ)
    3069 -    if (IOASIC)
    3070 -       return zs_init();
    3071 -    else
    3072 -       return dz_init();
    3073 -#else
    3074 -
    3075  #ifdef CONFIG_ZS
    3076 -    return zs_init();
    3077 +       if (IOASIC)
    3078 +               return zs_init();
    3079  #endif
    3080 -
    3081  #ifdef CONFIG_DZ
    3082 -    return dz_init();
    3083 -#endif
    3084 -
    3085 +       if (!IOASIC)
    3086 +               return dz_init();
    3087  #endif
    3088 +       return -ENXIO;
    3089  }
    3090  
    3091  __initcall(rs_init);
    3092  
    3093 -#endif
    3094  
    3095 -#ifdef CONFIG_SERIAL_CONSOLE
    3096 +#ifdef CONFIG_SERIAL_DEC_CONSOLE
    3097 +
    3098 +extern void zs_serial_console_init(void);
    3099 +extern void dz_serial_console_init(void);
    3100  
    3101 -/* serial_console_init handles the special case of starting
    3102 - *   up the console on the serial port
    3103 +/*
    3104 + * dec_serial_console_init handles the special case of starting
    3105 + * up the console on the serial port
    3106   */
    3107 -static int __init decserial_console_init(void)
    3108 +static int __init dec_serial_console_init(void)
    3109  {
    3110 -#if defined(CONFIG_ZS) && defined(CONFIG_DZ)
    3111 -    if (IOASIC)
    3112 -       zs_serial_console_init();
    3113 -    else
    3114 -       dz_serial_console_init();
    3115 -#else
    3116 -
    3117  #ifdef CONFIG_ZS
    3118 -    zs_serial_console_init();
    3119 +       if (IOASIC)
    3120 +               zs_serial_console_init();
    3121  #endif
    3122 -
    3123  #ifdef CONFIG_DZ
    3124 -    dz_serial_console_init();
    3125 -#endif
    3126 -
    3127 +       if (!IOASIC)
    3128 +               dz_serial_console_init();
    3129  #endif
    3130      return 0;
    3131  }
    3132 -console_initcall(decserial_console_init);
    3133 +console_initcall(dec_serial_console_init);
    3134  
    3135  #endif
    3136 diff -Naur linux-2.6.19.1/drivers/char/sb1250_duart.c linux-mips-2.6.19.1/drivers/char/sb1250_duart.c
    3137 --- linux-2.6.19.1/drivers/char/sb1250_duart.c  1969-12-31 16:00:00.000000000 -0800
    3138 +++ linux-mips-2.6.19.1/drivers/char/sb1250_duart.c     2006-12-11 15:38:26.000000000 -0800
     2175diff -Naur linux-2.6.20/drivers/char/sb1250_duart.c linux-mips-2.6.20/drivers/char/sb1250_duart.c
     2176--- linux-2.6.20/drivers/char/sb1250_duart.c    1969-12-31 16:00:00.000000000 -0800
     2177+++ linux-mips-2.6.20/drivers/char/sb1250_duart.c       2007-02-04 12:22:45.000000000 -0800
    31392178@@ -0,0 +1,909 @@
    31402179+/*
     
    40473086+
    40483087+#endif /* CONFIG_SIBYTE_SB1250_DUART_CONSOLE */
    4049 diff -Naur linux-2.6.19.1/drivers/ide/mips/Makefile linux-mips-2.6.19.1/drivers/ide/mips/Makefile
    4050 --- linux-2.6.19.1/drivers/ide/mips/Makefile    2006-12-11 11:32:53.000000000 -0800
    4051 +++ linux-mips-2.6.19.1/drivers/ide/mips/Makefile       2006-12-11 15:38:26.000000000 -0800
     3088diff -Naur linux-2.6.20/drivers/ide/mips/Makefile linux-mips-2.6.20/drivers/ide/mips/Makefile
     3089--- linux-2.6.20/drivers/ide/mips/Makefile      2007-02-04 10:44:54.000000000 -0800
     3090+++ linux-mips-2.6.20/drivers/ide/mips/Makefile 2007-02-04 12:22:45.000000000 -0800
    40523091@@ -1,4 +1,4 @@
    40533092 obj-$(CONFIG_BLK_DEV_IDE_SWARM)                += swarm.o
     
    40563095-EXTRA_CFLAGS    := -Idrivers/ide
    40573096+CFLAGS_au1xxx-ide.o := -Idrivers/ide
    4058 diff -Naur linux-2.6.19.1/drivers/isdn/hisax/Kconfig linux-mips-2.6.19.1/drivers/isdn/hisax/Kconfig
    4059 --- linux-2.6.19.1/drivers/isdn/hisax/Kconfig   2006-12-11 11:32:53.000000000 -0800
    4060 +++ linux-mips-2.6.19.1/drivers/isdn/hisax/Kconfig      2006-12-11 15:38:26.000000000 -0800
    4061 @@ -110,7 +110,7 @@
    4062  
    4063  config HISAX_TELESPCI
    4064         bool "Teles PCI"
    4065 -       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || FRV))
    4066 +       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
    4067         help
    4068           This enables HiSax support for the Teles PCI.
    4069           See <file:Documentation/isdn/README.HiSax> on how to configure it.
    4070 @@ -238,7 +238,7 @@
    4071  
    4072  config HISAX_NETJET
    4073         bool "NETjet card"
    4074 -       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || FRV))
    4075 +       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
    4076         help
    4077           This enables HiSax support for the NetJet from Traverse
    4078           Technologies.
    4079 @@ -249,7 +249,7 @@
    4080  
    4081  config HISAX_NETJET_U
    4082         bool "NETspider U card"
    4083 -       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || FRV))
    4084 +       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
    4085         help
    4086           This enables HiSax support for the Netspider U interface ISDN card
    4087           from Traverse Technologies.
    4088 @@ -317,7 +317,7 @@
    4089  
    4090  config HISAX_HFC_PCI
    4091         bool "HFC PCI-Bus cards"
    4092 -       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || FRV))
    4093 +       depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
    4094         help
    4095           This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
    4096  
    4097 @@ -344,7 +344,7 @@
    4098  
    4099  config HISAX_ENTERNOW_PCI
    4100         bool "Formula-n enter:now PCI card"
    4101 -       depends on HISAX_NETJET && PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || FRV))
    4102 +       depends on HISAX_NETJET && PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV))
    4103         help
    4104           This enables HiSax support for the Formula-n enter:now PCI
    4105           ISDN card.
    4106 diff -Naur linux-2.6.19.1/drivers/mtd/devices/docprobe.c linux-mips-2.6.19.1/drivers/mtd/devices/docprobe.c
    4107 --- linux-2.6.19.1/drivers/mtd/devices/docprobe.c       2006-12-11 11:32:53.000000000 -0800
    4108 +++ linux-mips-2.6.19.1/drivers/mtd/devices/docprobe.c  2006-12-11 15:38:26.000000000 -0800
     3097diff -Naur linux-2.6.20/drivers/mtd/devices/docprobe.c linux-mips-2.6.20/drivers/mtd/devices/docprobe.c
     3098--- linux-2.6.20/drivers/mtd/devices/docprobe.c 2007-02-04 10:44:54.000000000 -0800
     3099+++ linux-mips-2.6.20/drivers/mtd/devices/docprobe.c    2007-02-04 12:22:45.000000000 -0800
    41093100@@ -83,10 +83,10 @@
    41103101        0xe4000000,
     
    41213112 #endif
    41223113        0xffffffff };
    4123 diff -Naur linux-2.6.19.1/drivers/mtd/maps/lasat.c linux-mips-2.6.19.1/drivers/mtd/maps/lasat.c
    4124 --- linux-2.6.19.1/drivers/mtd/maps/lasat.c     2006-12-11 11:32:53.000000000 -0800
    4125 +++ linux-mips-2.6.19.1/drivers/mtd/maps/lasat.c        2006-12-11 15:38:26.000000000 -0800
     3114diff -Naur linux-2.6.20/drivers/mtd/maps/lasat.c linux-mips-2.6.20/drivers/mtd/maps/lasat.c
     3115--- linux-2.6.20/drivers/mtd/maps/lasat.c       2007-02-04 10:44:54.000000000 -0800
     3116+++ linux-mips-2.6.20/drivers/mtd/maps/lasat.c  2007-02-04 12:22:45.000000000 -0800
    41263117@@ -7,7 +7,7 @@
    41273118  * modify it under the terms of the GNU General Public License version
     
    41423133        lasat_map.size = lasat_board_info.li_flash_size;
    41433134 
    4144 diff -Naur linux-2.6.19.1/drivers/net/Kconfig linux-mips-2.6.19.1/drivers/net/Kconfig
    4145 --- linux-2.6.19.1/drivers/net/Kconfig  2006-12-11 11:32:53.000000000 -0800
    4146 +++ linux-mips-2.6.19.1/drivers/net/Kconfig     2006-12-11 15:38:26.000000000 -0800
    4147 @@ -441,6 +441,14 @@
     3135diff -Naur linux-2.6.20/drivers/net/Kconfig linux-mips-2.6.20/drivers/net/Kconfig
     3136--- linux-2.6.20/drivers/net/Kconfig    2007-02-04 10:44:54.000000000 -0800
     3137+++ linux-mips-2.6.20/drivers/net/Kconfig       2007-02-04 12:22:45.000000000 -0800
     3138@@ -452,6 +452,14 @@
    41483139          This is the driver for the onboard card of MIPS Magnum 4000,
    41493140          Acer PICA, Olivetti M700-10 and a few other identical OEM systems.
     
    41603151        bool "MIPS AU1000 Ethernet support"
    41613152        depends on NET_ETHERNET && SOC_AU1X00
    4162 @@ -450,10 +458,6 @@
     3153@@ -461,10 +469,6 @@
    41633154          If you have an Alchemy Semi AU1X00 based system
    41643155          say Y.  Otherwise, say N.
     
    41713162        bool "SGI IOC3 Ethernet"
    41723163        depends on NET_ETHERNET && PCI && SGI_IP27
    4173 @@ -464,25 +468,13 @@
     3164@@ -475,25 +479,13 @@
    41743165          the Ethernet-HOWTO, available from
    41753166          <http://www.tldp.org/docs.html#howto>.
     
    42033194 config MIPS_SIM_NET
    42043195        tristate "MIPS simulator Network device (EXPERIMENTAL)"
    4205 @@ -2065,6 +2057,10 @@
     3196@@ -2076,6 +2068,10 @@
    42063197 
    42073198          If in doubt, say N.
     
    42143205        bool "VLAN support"
    42153206        depends on R8169 && VLAN_8021Q
    4216 @@ -2296,8 +2292,8 @@
     3207@@ -2315,8 +2311,8 @@
    42173208        select MII
    42183209        help
     
    42253216 config MV643XX_ETH_0
    42263217        bool "MV-643XX Port 0"
    4227 @@ -2320,6 +2316,20 @@
     3218@@ -2339,6 +2335,20 @@
    42283219          This enables support for Port 2 of the Marvell MV643XX Gigabit
    42293220          Ethernet.
     
    42463237        tristate "QLogic QLA3XXX Network Driver Support"
    42473238        depends on PCI
    4248 diff -Naur linux-2.6.19.1/drivers/net/Makefile linux-mips-2.6.19.1/drivers/net/Makefile
    4249 --- linux-2.6.19.1/drivers/net/Makefile 2006-12-11 11:32:53.000000000 -0800
    4250 +++ linux-mips-2.6.19.1/drivers/net/Makefile    2006-12-11 15:38:26.000000000 -0800
     3239diff -Naur linux-2.6.20/drivers/net/Makefile linux-mips-2.6.20/drivers/net/Makefile
     3240--- linux-2.6.20/drivers/net/Makefile   2007-02-04 10:44:54.000000000 -0800
     3241+++ linux-mips-2.6.20/drivers/net/Makefile      2007-02-04 12:22:45.000000000 -0800
    42513242@@ -112,6 +112,10 @@
    42523243 obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
     
    42603251 obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
    42613252 obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
    4262 diff -Naur linux-2.6.19.1/drivers/net/big_sur_ge.c linux-mips-2.6.19.1/drivers/net/big_sur_ge.c
    4263 --- linux-2.6.19.1/drivers/net/big_sur_ge.c     1969-12-31 16:00:00.000000000 -0800
    4264 +++ linux-mips-2.6.19.1/drivers/net/big_sur_ge.c        2006-12-11 15:38:26.000000000 -0800
     3253diff -Naur linux-2.6.20/drivers/net/big_sur_ge.c linux-mips-2.6.20/drivers/net/big_sur_ge.c
     3254--- linux-2.6.20/drivers/net/big_sur_ge.c       1969-12-31 16:00:00.000000000 -0800
     3255+++ linux-mips-2.6.20/drivers/net/big_sur_ge.c  2007-02-04 12:22:45.000000000 -0800
    42653256@@ -0,0 +1,2004 @@
    42663257+/*
     
    62685259+MODULE_DESCRIPTION("PMC-Sierra Big Sur Ethernet MAC Driver");
    62695260+MODULE_LICENSE("GPL");
    6270 diff -Naur linux-2.6.19.1/drivers/net/big_sur_ge.h linux-mips-2.6.19.1/drivers/net/big_sur_ge.h
    6271 --- linux-2.6.19.1/drivers/net/big_sur_ge.h     1969-12-31 16:00:00.000000000 -0800
    6272 +++ linux-mips-2.6.19.1/drivers/net/big_sur_ge.h        2006-12-11 15:38:26.000000000 -0800
     5261diff -Naur linux-2.6.20/drivers/net/big_sur_ge.h linux-mips-2.6.20/drivers/net/big_sur_ge.h
     5262--- linux-2.6.20/drivers/net/big_sur_ge.h       1969-12-31 16:00:00.000000000 -0800
     5263+++ linux-mips-2.6.20/drivers/net/big_sur_ge.h  2007-02-04 12:22:45.000000000 -0800
    62735264@@ -0,0 +1,713 @@
    62745265+/*
     
    69855976+
    69865977+#endif
    6987 diff -Naur linux-2.6.19.1/drivers/net/gt64240eth.c linux-mips-2.6.19.1/drivers/net/gt64240eth.c
    6988 --- linux-2.6.19.1/drivers/net/gt64240eth.c     1969-12-31 16:00:00.000000000 -0800
    6989 +++ linux-mips-2.6.19.1/drivers/net/gt64240eth.c        2006-12-11 15:38:26.000000000 -0800
     5978diff -Naur linux-2.6.20/drivers/net/gt64240eth.c linux-mips-2.6.20/drivers/net/gt64240eth.c
     5979--- linux-2.6.20/drivers/net/gt64240eth.c       1969-12-31 16:00:00.000000000 -0800
     5980+++ linux-mips-2.6.20/drivers/net/gt64240eth.c  2007-02-04 12:22:45.000000000 -0800
    69905981@@ -0,0 +1,1671 @@
    69915982+/*
     
    86607651+       return &gp->stats;
    86617652+}
    8662 diff -Naur linux-2.6.19.1/drivers/net/gt64240eth.h linux-mips-2.6.19.1/drivers/net/gt64240eth.h
    8663 --- linux-2.6.19.1/drivers/net/gt64240eth.h     1969-12-31 16:00:00.000000000 -0800
    8664 +++ linux-mips-2.6.19.1/drivers/net/gt64240eth.h        2006-12-11 15:38:26.000000000 -0800
     7653diff -Naur linux-2.6.20/drivers/net/gt64240eth.h linux-mips-2.6.20/drivers/net/gt64240eth.h
     7654--- linux-2.6.20/drivers/net/gt64240eth.h       1969-12-31 16:00:00.000000000 -0800
     7655+++ linux-mips-2.6.20/drivers/net/gt64240eth.h  2007-02-04 12:22:45.000000000 -0800
    86657656@@ -0,0 +1,403 @@
    86667657+/*
     
    90678058+
    90688059+#endif /* _GT64240ETH_H */
    9069 diff -Naur linux-2.6.19.1/drivers/net/ioc3-eth.c linux-mips-2.6.19.1/drivers/net/ioc3-eth.c
    9070 --- linux-2.6.19.1/drivers/net/ioc3-eth.c       2006-12-11 11:32:53.000000000 -0800
    9071 +++ linux-mips-2.6.19.1/drivers/net/ioc3-eth.c  2006-12-11 15:38:26.000000000 -0800
     8060diff -Naur linux-2.6.20/drivers/net/ioc3-eth.c linux-mips-2.6.20/drivers/net/ioc3-eth.c
     8061--- linux-2.6.20/drivers/net/ioc3-eth.c 2007-02-04 10:44:54.000000000 -0800
     8062+++ linux-mips-2.6.20/drivers/net/ioc3-eth.c    2007-02-04 12:22:45.000000000 -0800
    90728063@@ -5,7 +5,7 @@
    90738064  *
     
    90798070  *
    90808071  * References:
    9081 @@ -62,12 +62,7 @@
     8072@@ -61,12 +61,7 @@
    90828073 #include <asm/pgtable.h>
    90838074 #include <asm/uaccess.h>
     
    90928083 
    90938084 /*
    9094 @@ -95,6 +90,9 @@
     8085@@ -94,6 +89,9 @@
    90958086        u32 emcr, ehar_h, ehar_l;
    90968087        spinlock_t ioc3_lock;
     
    91028093 
    91038094        /* Members used by autonegotiation  */
    9104 @@ -522,8 +520,6 @@
     8095@@ -521,8 +519,6 @@
    91058096        return &ip->stats;
    91068097 }
     
    91118102 {
    91128103        struct ethhdr *eh = eth_hdr(skb);
    9113 @@ -591,7 +587,6 @@
     8104@@ -590,7 +586,6 @@
    91148105        if (csum == 0xffff)
    91158106                skb->ip_summed = CHECKSUM_UNNECESSARY;
     
    91198110 static inline void ioc3_rx(struct ioc3_private *ip)
    91208111 {
    9121 @@ -626,9 +621,9 @@
     8112@@ -625,9 +620,9 @@
    91228113                                goto next;
    91238114                        }
     
    91328123                        netif_rx(skb);
    91338124 
    9134 @@ -1289,9 +1284,7 @@
     8125@@ -1288,9 +1283,7 @@
    91358126        dev->set_multicast_list = ioc3_set_multicast_list;
    91368127        dev->set_mac_address    = ioc3_set_mac_address;
     
    91428133        sw_physid1 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID1);
    91438134        sw_physid2 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID2);
    9144 @@ -1378,7 +1371,6 @@
     8135@@ -1377,7 +1370,6 @@
    91458136        uint32_t w0 = 0;
    91468137        int produce;
     
    91508141         * IOC3 has a fairly simple minded checksumming hardware which simply
    91518142         * adds up the 1's complement checksum for the entire packet and
    9152 @@ -1426,7 +1418,6 @@
     8143@@ -1425,7 +1417,6 @@
    91538144 
    91548145                w0 = ETXD_DOCHECKSUM | (csoff << ETXD_CHKOFF_SHIFT);
     
    91588149        spin_lock_irq(&ip->ioc3_lock);
    91598150 
    9160 @@ -1580,12 +1571,37 @@
     8151@@ -1579,12 +1570,37 @@
    91618152        return rc;
    91628153 }
     
    91968187 
    91978188 static int ioc3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
    9198 diff -Naur linux-2.6.19.1/drivers/net/titan_ge.c linux-mips-2.6.19.1/drivers/net/titan_ge.c
    9199 --- linux-2.6.19.1/drivers/net/titan_ge.c       1969-12-31 16:00:00.000000000 -0800
    9200 +++ linux-mips-2.6.19.1/drivers/net/titan_ge.c  2006-12-11 15:38:26.000000000 -0800
     8189diff -Naur linux-2.6.20/drivers/net/titan_ge.c linux-mips-2.6.20/drivers/net/titan_ge.c
     8190--- linux-2.6.20/drivers/net/titan_ge.c 1969-12-31 16:00:00.000000000 -0800
     8191+++ linux-mips-2.6.20/drivers/net/titan_ge.c    2007-02-04 12:22:45.000000000 -0800
    92018192@@ -0,0 +1,2069 @@
    92028193+/*
     
    1126910260+module_init(titan_ge_init_module);
    1127010261+module_exit(titan_ge_cleanup_module);
    11271 diff -Naur linux-2.6.19.1/drivers/net/titan_ge.h linux-mips-2.6.19.1/drivers/net/titan_ge.h
    11272 --- linux-2.6.19.1/drivers/net/titan_ge.h       1969-12-31 16:00:00.000000000 -0800
    11273 +++ linux-mips-2.6.19.1/drivers/net/titan_ge.h  2006-12-11 15:38:26.000000000 -0800
     10262diff -Naur linux-2.6.20/drivers/net/titan_ge.h linux-mips-2.6.20/drivers/net/titan_ge.h
     10263--- linux-2.6.20/drivers/net/titan_ge.h 1969-12-31 16:00:00.000000000 -0800
     10264+++ linux-mips-2.6.20/drivers/net/titan_ge.h    2007-02-04 12:22:45.000000000 -0800
    1127410265@@ -0,0 +1,415 @@
    1127510266+#ifndef _TITAN_GE_H_
     
    1168810679+#endif                                 /* _TITAN_GE_H_ */
    1168910680+
    11690 diff -Naur linux-2.6.19.1/drivers/net/titan_mdio.c linux-mips-2.6.19.1/drivers/net/titan_mdio.c
    11691 --- linux-2.6.19.1/drivers/net/titan_mdio.c     1969-12-31 16:00:00.000000000 -0800
    11692 +++ linux-mips-2.6.19.1/drivers/net/titan_mdio.c        2006-12-11 15:38:26.000000000 -0800
     10681diff -Naur linux-2.6.20/drivers/net/titan_mdio.c linux-mips-2.6.20/drivers/net/titan_mdio.c
     10682--- linux-2.6.20/drivers/net/titan_mdio.c       1969-12-31 16:00:00.000000000 -0800
     10683+++ linux-mips-2.6.20/drivers/net/titan_mdio.c  2007-02-04 12:22:45.000000000 -0800
    1169310684@@ -0,0 +1,217 @@
    1169410685+/*
     
    1190910900+}
    1191010901+
    11911 diff -Naur linux-2.6.19.1/drivers/net/titan_mdio.h linux-mips-2.6.19.1/drivers/net/titan_mdio.h
    11912 --- linux-2.6.19.1/drivers/net/titan_mdio.h     1969-12-31 16:00:00.000000000 -0800
    11913 +++ linux-mips-2.6.19.1/drivers/net/titan_mdio.h        2006-12-11 15:38:26.000000000 -0800
     10902diff -Naur linux-2.6.20/drivers/net/titan_mdio.h linux-mips-2.6.20/drivers/net/titan_mdio.h
     10903--- linux-2.6.20/drivers/net/titan_mdio.h       1969-12-31 16:00:00.000000000 -0800
     10904+++ linux-mips-2.6.20/drivers/net/titan_mdio.h  2007-02-04 12:22:45.000000000 -0800
    1191410905@@ -0,0 +1,56 @@
    1191510906+/*
     
    1196910960+
    1197010961+#endif /* _TITAN_MDIO_H */
    11971 diff -Naur linux-2.6.19.1/drivers/scsi/NCR53C9x.h linux-mips-2.6.19.1/drivers/scsi/NCR53C9x.h
    11972 --- linux-2.6.19.1/drivers/scsi/NCR53C9x.h      2006-12-11 11:32:53.000000000 -0800
    11973 +++ linux-mips-2.6.19.1/drivers/scsi/NCR53C9x.h 2006-12-11 15:38:26.000000000 -0800
     10962diff -Naur linux-2.6.20/drivers/scsi/NCR53C9x.h linux-mips-2.6.20/drivers/scsi/NCR53C9x.h
     10963--- linux-2.6.20/drivers/scsi/NCR53C9x.h        2007-02-04 10:44:54.000000000 -0800
     10964+++ linux-mips-2.6.20/drivers/scsi/NCR53C9x.h   2007-02-04 12:22:45.000000000 -0800
    1197410965@@ -144,12 +144,7 @@
    1197510966 
     
    1198610977 
    1198710978 struct ESP_regs {
    11988 diff -Naur linux-2.6.19.1/drivers/scsi/dec_esp.c linux-mips-2.6.19.1/drivers/scsi/dec_esp.c
    11989 --- linux-2.6.19.1/drivers/scsi/dec_esp.c       2006-12-11 11:32:53.000000000 -0800
    11990 +++ linux-mips-2.6.19.1/drivers/scsi/dec_esp.c  2006-12-11 15:38:26.000000000 -0800
     10979diff -Naur linux-2.6.20/drivers/scsi/dec_esp.c linux-mips-2.6.20/drivers/scsi/dec_esp.c
     10980--- linux-2.6.20/drivers/scsi/dec_esp.c 2007-02-04 10:44:54.000000000 -0800
     10981+++ linux-mips-2.6.20/drivers/scsi/dec_esp.c    2007-02-04 12:22:45.000000000 -0800
    1199110982@@ -55,7 +55,7 @@
    1199210983 
     
    1200710998                        esp->dregs = 0;
    1200810999                        esp->eregs = (void *)CKSEG1ADDR(mem_start +
    12009 diff -Naur linux-2.6.19.1/drivers/scsi/sgiwd93.c linux-mips-2.6.19.1/drivers/scsi/sgiwd93.c
    12010 --- linux-2.6.19.1/drivers/scsi/sgiwd93.c       2006-12-11 11:32:53.000000000 -0800
    12011 +++ linux-mips-2.6.19.1/drivers/scsi/sgiwd93.c  2006-12-11 15:38:26.000000000 -0800
     11000diff -Naur linux-2.6.20/drivers/scsi/sgiwd93.c linux-mips-2.6.20/drivers/scsi/sgiwd93.c
     11001--- linux-2.6.20/drivers/scsi/sgiwd93.c 2007-02-04 10:44:54.000000000 -0800
     11002+++ linux-mips-2.6.20/drivers/scsi/sgiwd93.c    2007-02-04 12:22:45.000000000 -0800
    1201211003@@ -14,6 +14,7 @@
    1201311004 #include <linux/interrupt.h>
     
    1202611017 static inline void init_hpc_chain(struct hpc_data *hd)
    1202711018 {
    12028 diff -Naur linux-2.6.19.1/drivers/serial/Kconfig linux-mips-2.6.19.1/drivers/serial/Kconfig
    12029 --- linux-2.6.19.1/drivers/serial/Kconfig       2006-12-11 11:32:53.000000000 -0800
    12030 +++ linux-mips-2.6.19.1/drivers/serial/Kconfig  2006-12-11 15:38:26.000000000 -0800
    12031 @@ -657,6 +657,25 @@
     11019diff -Naur linux-2.6.20/drivers/serial/Kconfig linux-mips-2.6.20/drivers/serial/Kconfig
     11020--- linux-2.6.20/drivers/serial/Kconfig 2007-02-04 10:44:54.000000000 -0800
     11021+++ linux-mips-2.6.20/drivers/serial/Kconfig    2007-02-04 12:22:45.000000000 -0800
     11022@@ -686,6 +686,25 @@
    1203211023        depends on SERIAL_SH_SCI=y
    1203311024        select SERIAL_CORE_CONSOLE
     
    1205511046        tristate
    1205611047 
    12057 diff -Naur linux-2.6.19.1/drivers/serial/Makefile linux-mips-2.6.19.1/drivers/serial/Makefile
    12058 --- linux-2.6.19.1/drivers/serial/Makefile      2006-12-11 11:32:53.000000000 -0800
    12059 +++ linux-mips-2.6.19.1/drivers/serial/Makefile 2006-12-11 15:38:26.000000000 -0800
    12060 @@ -39,6 +39,7 @@
     11048diff -Naur linux-2.6.20/drivers/serial/Makefile linux-mips-2.6.20/drivers/serial/Makefile
     11049--- linux-2.6.20/drivers/serial/Makefile        2007-02-04 10:44:54.000000000 -0800
     11050+++ linux-mips-2.6.20/drivers/serial/Makefile   2007-02-04 12:22:45.000000000 -0800
     11051@@ -40,6 +40,7 @@
    1206111052 obj-$(CONFIG_V850E_UART) += v850e_uart.o
    1206211053 obj-$(CONFIG_SERIAL_PMACZILOG) += pmac_zilog.o
     
    1206611057 obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o
    1206711058 obj-$(CONFIG_SERIAL_SGI_L1_CONSOLE) += sn_console.o
    12068 diff -Naur linux-2.6.19.1/drivers/serial/ip22zilog.c linux-mips-2.6.19.1/drivers/serial/ip22zilog.c
    12069 --- linux-2.6.19.1/drivers/serial/ip22zilog.c   2006-12-11 11:32:53.000000000 -0800
    12070 +++ linux-mips-2.6.19.1/drivers/serial/ip22zilog.c      2006-12-11 15:38:26.000000000 -0800
     11059diff -Naur linux-2.6.20/drivers/serial/ip22zilog.c linux-mips-2.6.20/drivers/serial/ip22zilog.c
     11060--- linux-2.6.20/drivers/serial/ip22zilog.c     2007-02-04 10:44:54.000000000 -0800
     11061+++ linux-mips-2.6.20/drivers/serial/ip22zilog.c        2007-02-04 12:22:45.000000000 -0800
    1207111062@@ -863,6 +863,7 @@
    1207211063        up->cflag = termios->c_cflag;
     
    1208611077 
    1208711078 static int __init ip22zilog_console_setup(struct console *con, char *options)
    12088 diff -Naur linux-2.6.19.1/drivers/serial/ip3106_uart.c linux-mips-2.6.19.1/drivers/serial/ip3106_uart.c
    12089 --- linux-2.6.19.1/drivers/serial/ip3106_uart.c 1969-12-31 16:00:00.000000000 -0800
    12090 +++ linux-mips-2.6.19.1/drivers/serial/ip3106_uart.c    2006-12-11 15:38:26.000000000 -0800
     11079diff -Naur linux-2.6.20/drivers/serial/ip3106_uart.c linux-mips-2.6.20/drivers/serial/ip3106_uart.c
     11080--- linux-2.6.20/drivers/serial/ip3106_uart.c   1969-12-31 16:00:00.000000000 -0800
     11081+++ linux-mips-2.6.20/drivers/serial/ip3106_uart.c      2007-02-04 12:22:45.000000000 -0800
    1209111082@@ -0,0 +1,909 @@
    1209211083+/*
     
    1299911990+MODULE_LICENSE("GPL");
    1300011991+MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_IP3106_MAJOR);
    13001 diff -Naur linux-2.6.19.1/drivers/usb/host/ohci-hcd.c linux-mips-2.6.19.1/drivers/usb/host/ohci-hcd.c
    13002 --- linux-2.6.19.1/drivers/usb/host/ohci-hcd.c  2006-12-11 11:32:53.000000000 -0800
    13003 +++ linux-mips-2.6.19.1/drivers/usb/host/ohci-hcd.c     2006-12-11 15:38:26.000000000 -0800
    13004 @@ -931,6 +931,10 @@
    13005  #include "ohci-au1xxx.c"
    13006  #endif
    13007  
    13008 +#ifdef CONFIG_PNX8550
    13009 +#include "ohci-pnx8550.c"
    13010 +#endif
    13011 +
    13012  #ifdef CONFIG_USB_OHCI_HCD_PPC_SOC
    13013  #include "ohci-ppc-soc.c"
    13014  #endif
    13015 diff -Naur linux-2.6.19.1/drivers/usb/host/ohci-pnx8550.c linux-mips-2.6.19.1/drivers/usb/host/ohci-pnx8550.c
    13016 --- linux-2.6.19.1/drivers/usb/host/ohci-pnx8550.c      1969-12-31 16:00:00.000000000 -0800
    13017 +++ linux-mips-2.6.19.1/drivers/usb/host/ohci-pnx8550.c 2006-12-11 15:38:26.000000000 -0800
    13018 @@ -0,0 +1,277 @@
    13019 +/*
    13020 + * OHCI HCD (Host Controller Driver) for USB.
    13021 + *
    13022 + * (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>
    13023 + * (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net>
    13024 + * (C) Copyright 2002 Hewlett-Packard Company
    13025 + * (C) Copyright 2005 Embedded Alley Solutions, Inc.
    13026 + *
    13027 + * Bus Glue for PNX8550
    13028 + *
    13029 + * Written by Christopher Hoover <ch@hpl.hp.com>
    13030 + * Based on fragments of previous driver by Russell King et al.
    13031 + *
    13032 + * Modified for LH7A404 from ohci-sa1111.c
    13033 + *  by Durgesh Pattamatta <pattamattad@sharpsec.com>
    13034 + *
    13035 + * Modified for pxa27x from ohci-lh7a404.c
    13036 + *  by Nick Bane <nick@cecomputing.co.uk> 26-8-2004
    13037 + *
    13038 + * Modified for PNX8550 from ohci-pxa27x.c
    13039 + *  by Embedded Alley Solutions, Inc.
    13040 + *
    13041 + * This file is licenced under the GPL.
    13042 + */
    13043 +
    13044 +#include <linux/device.h>
    13045 +#include <asm/mach-pnx8550/usb.h>
    13046 +#include <asm/mach-pnx8550/int.h>
    13047 +#include <asm/mach-pnx8550/pci.h>
    13048 +
    13049 +#ifndef CONFIG_PNX8550
    13050 +#error "This file is PNX8550 bus glue.  CONFIG_PNX8550 must be defined."
    13051 +#endif
    13052 +
    13053 +extern int usb_disabled(void);
    13054 +
    13055 +/*-------------------------------------------------------------------------*/
    13056 +
    13057 +static void pnx8550_start_hc(struct platform_device *dev)
    13058 +{
    13059 +       /*
    13060 +        * Set register CLK48CTL to enable and 48MHz
    13061 +        */
    13062 +       outl(0x00000003, PCI_BASE | 0x0004770c);
    13063 +
    13064 +       /*
    13065 +        * Set register CLK12CTL to enable and 48MHz
    13066 +        */
    13067 +       outl(0x00000003, PCI_BASE | 0x00047710);
    13068 +
    13069 +       udelay(100);
    13070 +}
    13071 +
    13072 +static void pnx8550_stop_hc(struct platform_device *dev)
    13073 +{
    13074 +       udelay(10);
    13075 +}
    13076 +
    13077 +
    13078 +/*-------------------------------------------------------------------------*/
    13079 +
    13080 +/* configure so an HC device and id are always provided */
    13081 +/* always called with process context; sleeping is OK */
    13082 +
    13083 +
    13084 +/**
    13085 + * usb_hcd_pnx8550_probe - initialize pnx8550-based HCDs
    13086 + * Context: !in_interrupt()
    13087 + *
    13088 + * Allocates basic resources for this USB host controller, and
    13089 + * then invokes the start() method for the HCD associated with it
    13090 + * through the hotplug entry's driver_data.
    13091 + *
    13092 + */
    13093 +int usb_hcd_pnx8550_probe (const struct hc_driver *driver,
    13094 +                         struct platform_device *dev)
    13095 +{
    13096 +       int retval;
    13097 +       struct usb_hcd *hcd;
    13098 +
    13099 +       if (dev->resource[1].flags != IORESOURCE_IRQ) {
    13100 +               pr_debug ("resource[1] is not IORESOURCE_IRQ");
    13101 +               return -ENOMEM;
    13102 +       }
    13103 +
    13104 +       hcd = usb_create_hcd (driver, &dev->dev, "pnx8550");
    13105 +       if (!hcd)
    13106 +               return -ENOMEM;
    13107 +       hcd->rsrc_start = dev->resource[0].start;
    13108 +       hcd->rsrc_len = dev->resource[0].end - dev->resource[0].start + 1;
    13109 +
    13110 +       if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
    13111 +               pr_debug("request_mem_region failed");
    13112 +               retval = -EBUSY;
    13113 +               goto err1;
    13114 +       }
    13115 +
    13116 +       hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
    13117 +       if (!hcd->regs) {
    13118 +               pr_debug("ioremap failed");
    13119 +               retval = -ENOMEM;
    13120 +               goto err2;
    13121 +       }
    13122 +
    13123 +       pnx8550_start_hc(dev);
    13124 +
    13125 +       ohci_hcd_init(hcd_to_ohci(hcd));
    13126 +
    13127 +       retval = usb_add_hcd(hcd, dev->resource[1].start, SA_INTERRUPT);
    13128 +       if (retval == 0)
    13129 +               return retval;
    13130 +
    13131 +       pnx8550_stop_hc(dev);
    13132 +       iounmap(hcd->regs);
    13133 + err2:
    13134 +       release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
    13135 + err1:
    13136 +       usb_put_hcd(hcd);
    13137 +       return retval;
    13138 +}
    13139 +
    13140 +
    13141 +/* may be called without controller electrically present */
    13142 +/* may be called with controller, bus, and devices active */
    13143 +
    13144 +/**
    13145 + * usb_hcd_pnx8550_remove - shutdown processing for pnx8550-based HCDs
    13146 + * @dev: USB Host Controller being removed
    13147 + * Context: !in_interrupt()
    13148 + *
    13149 + * Reverses the effect of usb_hcd_pnx8550_probe(), first invoking
    13150 + * the HCD's stop() method.  It is always called from a thread
    13151 + * context, normally "rmmod", "apmd", or something similar.
    13152 + *
    13153 + */
    13154 +void usb_hcd_pnx8550_remove (struct usb_hcd *hcd, struct platform_device *dev)
    13155 +{
    13156 +       usb_remove_hcd(hcd);
    13157 +       pnx8550_stop_hc(dev);
    13158 +       iounmap(hcd->regs);
    13159 +       release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
    13160 +       usb_put_hcd(hcd);
    13161 +}
    13162 +
    13163 +/*-------------------------------------------------------------------------*/
    13164 +
    13165 +static int __devinit
    13166 +ohci_pnx8550_start (struct usb_hcd *hcd)
    13167 +{
    13168 +       struct ohci_hcd *ohci = hcd_to_ohci (hcd);
    13169 +       int             ret;
    13170 +
    13171 +       ohci_dbg (ohci, "ohci_pnx8550_start, ohci:%p", ohci);
    13172 +
    13173 +       if ((ret = ohci_init(ohci)) < 0)
    13174 +               return ret;
    13175 +
    13176 +       if ((ret = ohci_run (ohci)) < 0) {
    13177 +               err ("can't start %s", hcd->self.bus_name);
    13178 +               ohci_stop (hcd);
    13179 +               return ret;
    13180 +       }
    13181 +
    13182 +       return 0;
    13183 +}
    13184 +
    13185 +/*-------------------------------------------------------------------------*/
    13186 +
    13187 +static const struct hc_driver ohci_pnx8550_hc_driver = {
    13188 +       .description =          hcd_name,
    13189 +       .product_desc =         "PNX8550 OHCI",
    13190 +       .hcd_priv_size =        sizeof(struct ohci_hcd),
    13191 +
    13192 +       /*
    13193 +        * generic hardware linkage
    13194 +        */
    13195 +       .irq =                  ohci_irq,
    13196 +       .flags =                HCD_USB11 | HCD_MEMORY,
    13197 +
    13198 +       /*
    13199 +        * basic lifecycle operations
    13200 +        */
    13201 +       .start =                ohci_pnx8550_start,
    13202 +       .stop =                 ohci_stop,
    13203 +
    13204 +       /*
    13205 +        * managing i/o requests and associated device resources
    13206 +        */
    13207 +       .urb_enqueue =          ohci_urb_enqueue,
    13208 +       .urb_dequeue =          ohci_urb_dequeue,
    13209 +       .endpoint_disable =     ohci_endpoint_disable,
    13210 +
    13211 +       /*
    13212 +        * scheduling support
    13213 +        */
    13214 +       .get_frame_number =     ohci_get_frame,
    13215 +
    13216 +       /*
    13217 +        * root hub support
    13218 +        */
    13219 +       .hub_status_data =      ohci_hub_status_data,
    13220 +       .hub_control =          ohci_hub_control,
    13221 +#ifdef  CONFIG_USB_SUSPEND
    13222 +       .hub_suspend =          ohci_hub_suspend,
    13223 +       .hub_resume =           ohci_hub_resume,
    13224 +#endif
    13225 +};
    13226 +
    13227 +/*-------------------------------------------------------------------------*/
    13228 +
    13229 +static int ohci_hcd_pnx8550_drv_probe(struct device *dev)
    13230 +{
    13231 +       struct platform_device *pdev = to_platform_device(dev);
    13232 +       int ret;
    13233 +
    13234 +       pr_debug ("In ohci_hcd_pnx8550_drv_probe");
    13235 +
    13236 +       if (usb_disabled())
    13237 +               return -ENODEV;
    13238 +
    13239 +       ret = usb_hcd_pnx8550_probe(&ohci_pnx8550_hc_driver, pdev);
    13240 +       return ret;
    13241 +}
    13242 +
    13243 +static int ohci_hcd_pnx8550_drv_remove(struct device *dev)
    13244 +{
    13245 +       struct platform_device *pdev = to_platform_device(dev);
    13246 +       struct usb_hcd *hcd = dev_get_drvdata(dev);
    13247 +
    13248 +       usb_hcd_pnx8550_remove(hcd, pdev);
    13249 +       return 0;
    13250 +}
    13251 +
    13252 +static int ohci_hcd_pnx8550_drv_suspend(struct device *dev, u32 state, u32 level)
    13253 +{
    13254 +//     struct platform_device *pdev = to_platform_device(dev);
    13255 +//     struct usb_hcd *hcd = dev_get_drvdata(dev);
    13256 +       printk("%s: not implemented yet\n", __FUNCTION__);
    13257 +
    13258 +       return 0;
    13259 +}
    13260 +
    13261 +static int ohci_hcd_pnx8550_drv_resume(struct device *dev, u32 state)
    13262 +{
    13263 +//     struct platform_device *pdev = to_platform_device(dev);
    13264 +//     struct usb_hcd *hcd = dev_get_drvdata(dev);
    13265 +       printk("%s: not implemented yet\n", __FUNCTION__);
    13266 +
    13267 +       return 0;
    13268 +}
    13269 +
    13270 +
    13271 +static struct device_driver ohci_hcd_pnx8550_driver = {
    13272 +       .name           = "pnx8550-ohci",
    13273 +       .bus            = &platform_bus_type,
    13274 +       .probe          = ohci_hcd_pnx8550_drv_probe,
    13275 +       .remove         = ohci_hcd_pnx8550_drv_remove,
    13276 +       .suspend        = ohci_hcd_pnx8550_drv_suspend,
    13277 +       .resume         = ohci_hcd_pnx8550_drv_resume,
    13278 +};
    13279 +
    13280 +static int __init ohci_hcd_pnx8550_init (void)
    13281 +{
    13282 +       pr_debug (DRIVER_INFO " (pnx8550)");
    13283 +       pr_debug ("block sizes: ed %d td %d\n",
    13284 +               sizeof (struct ed), sizeof (struct td));
    13285 +
    13286 +       return driver_register(&ohci_hcd_pnx8550_driver);
    13287 +}
    13288 +
    13289 +static void __exit ohci_hcd_pnx8550_cleanup (void)
    13290 +{
    13291 +       driver_unregister(&ohci_hcd_pnx8550_driver);
    13292 +}
    13293 +
    13294 +module_init (ohci_hcd_pnx8550_init);
    13295 +module_exit (ohci_hcd_pnx8550_cleanup);
    13296 diff -Naur linux-2.6.19.1/drivers/video/Kconfig linux-mips-2.6.19.1/drivers/video/Kconfig
    13297 --- linux-2.6.19.1/drivers/video/Kconfig        2006-12-11 11:32:53.000000000 -0800
    13298 +++ linux-mips-2.6.19.1/drivers/video/Kconfig   2006-12-11 15:38:26.000000000 -0800
    13299 @@ -1277,6 +1277,17 @@
     11992diff -Naur linux-2.6.20/drivers/video/Kconfig linux-mips-2.6.20/drivers/video/Kconfig
     11993--- linux-2.6.20/drivers/video/Kconfig  2007-02-04 10:44:54.000000000 -0800
     11994+++ linux-mips-2.6.20/drivers/video/Kconfig     2007-02-04 12:22:45.000000000 -0800
     11995@@ -1281,6 +1281,17 @@
    1330011996          Please read the <file:Documentation/fb/README-sstfb.txt> for supported
    1330111997          options and other important info  support.
     
    1331512011        tristate "Cyberblade/i1 support"
    1331612012        depends on FB && PCI && X86_32 && !64BIT
    13317 @@ -1341,7 +1352,25 @@
     12013@@ -1345,7 +1356,25 @@
    1331812014 
    1331912015 config FB_AU1100
     
    1334212038 config FB_AU1200
    1334312039        bool "Au1200 LCD Driver"
    13344 @@ -1457,8 +1486,8 @@
     12040@@ -1461,8 +1490,8 @@
    1334512041        select FB_CFB_IMAGEBLIT
    1334612042        help
     
    1335312049 config FB_MAXINE
    1335412050        bool "Maxine (Personal DECstation) onboard framebuffer support"
    13355 diff -Naur linux-2.6.19.1/drivers/video/Makefile linux-mips-2.6.19.1/drivers/video/Makefile
    13356 --- linux-2.6.19.1/drivers/video/Makefile       2006-12-11 11:32:53.000000000 -0800
    13357 +++ linux-mips-2.6.19.1/drivers/video/Makefile  2006-12-11 15:38:26.000000000 -0800
     12051diff -Naur linux-2.6.20/drivers/video/Makefile linux-mips-2.6.20/drivers/video/Makefile
     12052--- linux-2.6.20/drivers/video/Makefile 2007-02-04 10:44:54.000000000 -0800
     12053+++ linux-mips-2.6.20/drivers/video/Makefile    2007-02-04 12:22:45.000000000 -0800
    1335812054@@ -96,6 +96,7 @@
    1335912055 obj-$(CONFIG_FB_TX3912)                  += tx3912fb.o
     
    1336412060 obj-$(CONFIG_FB_PNX4008_DUM)     += pnx4008/
    1336512061 obj-$(CONFIG_FB_PNX4008_DUM_RGB)  += pnx4008/
    13366 diff -Naur linux-2.6.19.1/drivers/video/au1100fb.c linux-mips-2.6.19.1/drivers/video/au1100fb.c
    13367 --- linux-2.6.19.1/drivers/video/au1100fb.c     2006-12-11 11:32:53.000000000 -0800
    13368 +++ linux-mips-2.6.19.1/drivers/video/au1100fb.c        2006-12-11 15:38:26.000000000 -0800
     12062diff -Naur linux-2.6.20/drivers/video/au1100fb.c linux-mips-2.6.20/drivers/video/au1100fb.c
     12063--- linux-2.6.20/drivers/video/au1100fb.c       2007-02-04 10:44:54.000000000 -0800
     12064+++ linux-mips-2.6.20/drivers/video/au1100fb.c  2007-02-04 12:22:45.000000000 -0800
    1336912065@@ -41,6 +41,7 @@
    1337012066  *  with this program; if not, write  to the Free Software Foundation, Inc.,
     
    1337512071 #include <linux/kernel.h>
    1337612072 #include <linux/errno.h>
    13377 diff -Naur linux-2.6.19.1/drivers/video/smivgxfb.c linux-mips-2.6.19.1/drivers/video/smivgxfb.c
    13378 --- linux-2.6.19.1/drivers/video/smivgxfb.c     1969-12-31 16:00:00.000000000 -0800
    13379 +++ linux-mips-2.6.19.1/drivers/video/smivgxfb.c        2006-12-11 15:38:26.000000000 -0800
     12073diff -Naur linux-2.6.20/drivers/video/smivgxfb.c linux-mips-2.6.20/drivers/video/smivgxfb.c
     12074--- linux-2.6.20/drivers/video/smivgxfb.c       1969-12-31 16:00:00.000000000 -0800
     12075+++ linux-mips-2.6.20/drivers/video/smivgxfb.c  2007-02-04 12:22:45.000000000 -0800
    1338012076@@ -0,0 +1,387 @@
    1338112077+/***************************************************************************
     
    1376612462+MODULE_DESCRIPTION("Framebuffer driver for SMI Voyager");
    1376712463+MODULE_LICENSE("GPL");
    13768 diff -Naur linux-2.6.19.1/include/asm-mips/compat.h linux-mips-2.6.19.1/include/asm-mips/compat.h
    13769 --- linux-2.6.19.1/include/asm-mips/compat.h    2006-12-11 11:32:53.000000000 -0800
    13770 +++ linux-mips-2.6.19.1/include/asm-mips/compat.h       2006-12-11 15:38:26.000000000 -0800
    13771 @@ -5,6 +5,7 @@
    13772   */
    13773  #include <linux/types.h>
    13774  #include <asm/page.h>
    13775 +#include <asm/ptrace.h>
    13776  
    13777  #define COMPAT_USER_HZ 100
    13778  
    13779 @@ -32,6 +33,7 @@
    13780         s32     val[2];
    13781  } compat_fsid_t;
    13782  typedef s32            compat_timer_t;
    13783 +typedef s32            compat_key_t;
    13784  
    13785  typedef s32            compat_int_t;
    13786  typedef s32            compat_long_t;
    13787 @@ -146,4 +148,71 @@
    13788         return (void __user *) (regs->regs[29] - len);
    13789  }
    13790  
    13791 +struct compat_ipc64_perm {
    13792 +       compat_key_t key;
    13793 +       __compat_uid32_t uid;
    13794 +       __compat_gid32_t gid;
    13795 +       __compat_uid32_t cuid;
    13796 +       __compat_gid32_t cgid;
    13797 +       compat_mode_t mode;
    13798 +       unsigned short seq;
    13799 +       unsigned short __pad2;
    13800 +       compat_ulong_t __unused1;
    13801 +       compat_ulong_t __unused2;
    13802 +};
    13803 +
    13804 +struct compat_semid64_ds {
    13805 +       struct compat_ipc64_perm sem_perm;
    13806 +       compat_time_t   sem_otime;
    13807 +       compat_time_t   sem_ctime;
    13808 +       compat_ulong_t  sem_nsems;
    13809 +       compat_ulong_t  __unused1;
    13810 +       compat_ulong_t  __unused2;
    13811 +};
    13812 +
    13813 +struct compat_msqid64_ds {
    13814 +       struct compat_ipc64_perm msg_perm;
    13815 +#ifndef CONFIG_CPU_LITTLE_ENDIAN
    13816 +       compat_ulong_t  __unused1;
    13817 +#endif
    13818 +       compat_time_t   msg_stime;
    13819 +#ifdef CONFIG_CPU_LITTLE_ENDIAN
    13820 +       compat_ulong_t  __unused1;
    13821 +#endif
    13822 +#ifndef CONFIG_CPU_LITTLE_ENDIAN
    13823 +       compat_ulong_t  __unused2;
    13824 +#endif
    13825 +       compat_time_t   msg_rtime;
    13826 +#ifdef CONFIG_CPU_LITTLE_ENDIAN
    13827 +       compat_ulong_t  __unused2;
    13828 +#endif
    13829 +#ifndef CONFIG_CPU_LITTLE_ENDIAN
    13830 +       compat_ulong_t  __unused3;
    13831 +#endif
    13832 +       compat_time_t   msg_ctime;
    13833 +#ifdef CONFIG_CPU_LITTLE_ENDIAN
    13834 +       compat_ulong_t  __unused3;
    13835 +#endif
    13836 +       compat_ulong_t  msg_cbytes;
    13837 +       compat_ulong_t  msg_qnum;
    13838 +       compat_ulong_t  msg_qbytes;
    13839 +       compat_pid_t    msg_lspid;
    13840 +       compat_pid_t    msg_lrpid;
    13841 +       compat_ulong_t  __unused4;
    13842 +       compat_ulong_t  __unused5;
    13843 +};
    13844 +
    13845 +struct compat_shmid64_ds {
    13846 +       struct compat_ipc64_perm shm_perm;
    13847 +       compat_size_t   shm_segsz;
    13848 +       compat_time_t   shm_atime;
    13849 +       compat_time_t   shm_dtime;
    13850 +       compat_time_t   shm_ctime;
    13851 +       compat_pid_t    shm_cpid;
    13852 +       compat_pid_t    shm_lpid;
    13853 +       compat_ulong_t  shm_nattch;
    13854 +       compat_ulong_t  __unused1;
    13855 +       compat_ulong_t  __unused2;
    13856 +};
    13857 +
    13858  #endif /* _ASM_COMPAT_H */
    13859 diff -Naur linux-2.6.19.1/include/asm-mips/io.h linux-mips-2.6.19.1/include/asm-mips/io.h
    13860 --- linux-2.6.19.1/include/asm-mips/io.h        2006-12-11 11:32:53.000000000 -0800
    13861 +++ linux-mips-2.6.19.1/include/asm-mips/io.h   2006-12-11 15:38:26.000000000 -0800
     12464diff -Naur linux-2.6.20/include/asm-mips/io.h linux-mips-2.6.20/include/asm-mips/io.h
     12465--- linux-2.6.20/include/asm-mips/io.h  2007-02-04 10:44:54.000000000 -0800
     12466+++ linux-mips-2.6.20/include/asm-mips/io.h     2007-02-04 12:22:45.000000000 -0800
    1386212467@@ -518,34 +518,6 @@
    1386312468 }
     
    1389512500  * to explicitly ioremap() it. The fact that the ISA IO space is mapped
    1389612501  * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
    13897 diff -Naur linux-2.6.19.1/include/asm-mips/mach-au1x00/au1000.h linux-mips-2.6.19.1/include/asm-mips/mach-au1x00/au1000.h
    13898 --- linux-2.6.19.1/include/asm-mips/mach-au1x00/au1000.h        2006-12-11 11:32:53.000000000 -0800
    13899 +++ linux-mips-2.6.19.1/include/asm-mips/mach-au1x00/au1000.h   2006-12-11 15:38:26.000000000 -0800
     12502diff -Naur linux-2.6.20/include/asm-mips/mach-au1x00/au1000.h linux-mips-2.6.20/include/asm-mips/mach-au1x00/au1000.h
     12503--- linux-2.6.20/include/asm-mips/mach-au1x00/au1000.h  2007-02-04 10:44:54.000000000 -0800
     12504+++ linux-mips-2.6.20/include/asm-mips/mach-au1x00/au1000.h     2007-02-04 12:22:45.000000000 -0800
    1390012505@@ -39,6 +39,7 @@
    1390112506 #ifndef _LANGUAGE_ASSEMBLY
     
    1390612511 
    1390712512 /* cpu pipeline flush */
    13908 @@ -1664,12 +1665,12 @@
    13909   * addresses.  For PCI IO, it's simpler because we get to do the ioremap
    13910   * ourselves and then adjust the device's resources.
    13911   */
    13912 -#define Au1500_EXT_CFG            0x600000000ULL
    13913 -#define Au1500_EXT_CFG_TYPE1      0x680000000ULL
    13914 -#define Au1500_PCI_IO_START       0x500000000ULL
    13915 -#define Au1500_PCI_IO_END         0x5000FFFFFULL
    13916 -#define Au1500_PCI_MEM_START      0x440000000ULL
    13917 -#define Au1500_PCI_MEM_END        0x44FFFFFFFULL
    13918 +#define Au1500_EXT_CFG            ((resource_size_t) 0x600000000ULL)
    13919 +#define Au1500_EXT_CFG_TYPE1      ((resource_size_t) 0x680000000ULL)
    13920 +#define Au1500_PCI_IO_START       ((resource_size_t) 0x500000000ULL)
    13921 +#define Au1500_PCI_IO_END         ((resource_size_t) 0x5000FFFFFULL)
    13922 +#define Au1500_PCI_MEM_START      ((resource_size_t) 0x440000000ULL)
    13923 +#define Au1500_PCI_MEM_END        ((resource_size_t) 0x44FFFFFFFULL)
    13924  
    13925  #define PCI_IO_START    (Au1500_PCI_IO_START + 0x1000)
    13926  #define PCI_IO_END      (Au1500_PCI_IO_END)
    13927 diff -Naur linux-2.6.19.1/include/asm-mips/mach-au1x00/au1xxx_ide.h linux-mips-2.6.19.1/include/asm-mips/mach-au1x00/au1xxx_ide.h
    13928 --- linux-2.6.19.1/include/asm-mips/mach-au1x00/au1xxx_ide.h    2006-12-11 11:32:53.000000000 -0800
    13929 +++ linux-mips-2.6.19.1/include/asm-mips/mach-au1x00/au1xxx_ide.h       2006-12-11 15:38:26.000000000 -0800
     12513diff -Naur linux-2.6.20/include/asm-mips/mach-au1x00/au1xxx_ide.h linux-mips-2.6.20/include/asm-mips/mach-au1x00/au1xxx_ide.h
     12514--- linux-2.6.20/include/asm-mips/mach-au1x00/au1xxx_ide.h      2007-02-04 10:44:54.000000000 -0800
     12515+++ linux-mips-2.6.20/include/asm-mips/mach-au1x00/au1xxx_ide.h 2007-02-04 12:22:45.000000000 -0800
    1393012516@@ -83,6 +83,7 @@
    1393112517 } _auide_hwif;
     
    1393612522 static const struct drive_list_entry dma_white_list [] = {
    1393712523 /*
    13938 diff -Naur linux-2.6.19.1/include/asm-mips/mach-ip27/irq.h linux-mips-2.6.19.1/include/asm-mips/mach-ip27/irq.h
    13939 --- linux-2.6.19.1/include/asm-mips/mach-ip27/irq.h     2006-12-11 11:32:53.000000000 -0800
    13940 +++ linux-mips-2.6.19.1/include/asm-mips/mach-ip27/irq.h        2006-12-11 15:38:26.000000000 -0800
    13941 @@ -10,8 +10,6 @@
    13942  #ifndef __ASM_MACH_IP27_IRQ_H
    13943  #define __ASM_MACH_IP27_IRQ_H
     12524diff -Naur linux-2.6.20/include/asm-mips/mach-generic/ide.h linux-mips-2.6.20/include/asm-mips/mach-generic/ide.h
     12525--- linux-2.6.20/include/asm-mips/mach-generic/ide.h    2007-02-04 10:44:54.000000000 -0800
     12526+++ linux-mips-2.6.20/include/asm-mips/mach-generic/ide.h       2007-02-04 12:22:45.000000000 -0800
     12527@@ -29,17 +29,12 @@
    1394412528 
    13945 -#include <asm/sn/arch.h>
     12529 #define IDE_ARCH_OBSOLETE_DEFAULTS
     12530 
     12531+extern int mips_system_has_legacy_ide;
     12532+
     12533 static __inline__ int ide_probe_legacy(void)
     12534 {
     12535 #ifdef CONFIG_PCI
     12536-       struct pci_dev *dev;
     12537-       if ((dev = pci_get_class(PCI_CLASS_BRIDGE_EISA << 8, NULL)) != NULL ||
     12538-           (dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL)) != NULL) {
     12539-               pci_dev_put(dev);
    1394612540-
    13947  /*
    13948   * A hardwired interrupt number is completly stupid for this system - a
    13949   * large configuration might have thousands if not tenthousands of
    13950 diff -Naur linux-2.6.19.1/include/asm-mips/mach-ip27/topology.h linux-mips-2.6.19.1/include/asm-mips/mach-ip27/topology.h
    13951 --- linux-2.6.19.1/include/asm-mips/mach-ip27/topology.h        2006-12-11 11:32:53.000000000 -0800
    13952 +++ linux-mips-2.6.19.1/include/asm-mips/mach-ip27/topology.h   2006-12-11 15:38:26.000000000 -0800
    13953 @@ -1,7 +1,6 @@
    13954  #ifndef _ASM_MACH_TOPOLOGY_H
    13955  #define _ASM_MACH_TOPOLOGY_H   1
    13956  
    13957 -#include <asm/sn/arch.h>
    13958  #include <asm/sn/hub.h>
    13959  #include <asm/mmzone.h>
    13960  
    13961 diff -Naur linux-2.6.19.1/include/asm-mips/page.h linux-mips-2.6.19.1/include/asm-mips/page.h
    13962 --- linux-2.6.19.1/include/asm-mips/page.h      2006-12-11 11:32:53.000000000 -0800
    13963 +++ linux-mips-2.6.19.1/include/asm-mips/page.h 2006-12-11 15:38:26.000000000 -0800
    13964 @@ -59,16 +59,13 @@
    13965                 flush_data_cache_page((unsigned long)addr);
    13966  }
    13967  
    13968 -static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
    13969 -       struct page *to)
    13970 -{
    13971 -       extern void (*flush_data_cache_page)(unsigned long addr);
    13972 -
    13973 -       copy_page(vto, vfrom);
    13974 -       if (!cpu_has_ic_fills_f_dc ||
    13975 -           pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK))
    13976 -               flush_data_cache_page((unsigned long)vto);
    13977 -}
    13978 +extern void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
    13979 +       struct page *to);
    13980 +struct vm_area_struct;
    13981 +extern void copy_user_highpage(struct page *to, struct page *from,
    13982 +       unsigned long vaddr, struct vm_area_struct *vma);
    13983 +
    13984 +#define __HAVE_ARCH_COPY_USER_HIGHPAGE
    13985  
    13986  /*
    13987   * These are used to make use of C type-checking..
    13988 diff -Naur linux-2.6.19.1/include/asm-mips/pci.h linux-mips-2.6.19.1/include/asm-mips/pci.h
    13989 --- linux-2.6.19.1/include/asm-mips/pci.h       2006-12-11 11:32:53.000000000 -0800
    13990 +++ linux-mips-2.6.19.1/include/asm-mips/pci.h  2006-12-11 15:38:26.000000000 -0800
    13991 @@ -187,4 +187,10 @@
    13992  /* Do platform specific device initialization at pci_enable_device() time */
    13993  extern int pcibios_plat_dev_init(struct pci_dev *dev);
    13994  
    13995 +/* Chances are this interrupt is wired PC-style ...  */
    13996 +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
    13997 +{
    13998 +       return channel ? 15 : 14;
    13999 +}
    14000 +
    14001  #endif /* _ASM_PCI_H */
    14002 diff -Naur linux-2.6.19.1/include/asm-mips/ptrace.h linux-mips-2.6.19.1/include/asm-mips/ptrace.h
    14003 --- linux-2.6.19.1/include/asm-mips/ptrace.h    2006-12-11 11:32:53.000000000 -0800
    14004 +++ linux-mips-2.6.19.1/include/asm-mips/ptrace.h       2006-12-11 15:38:26.000000000 -0800
    14005 @@ -84,6 +84,14 @@
    14006  
    14007  extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit);
    14008  
    14009 +extern NORET_TYPE void die(const char *, struct pt_regs *);
    14010 +
    14011 +static inline void die_if_kernel(const char *str, struct pt_regs *regs)
    14012 +{
    14013 +       if (unlikely(!user_mode(regs)))
    14014 +               die(str, regs);
    14015 +}
    14016 +
    14017  #endif
    14018  
    14019  #endif /* _ASM_PTRACE_H */
    14020 diff -Naur linux-2.6.19.1/include/asm-mips/sn/arch.h linux-mips-2.6.19.1/include/asm-mips/sn/arch.h
    14021 --- linux-2.6.19.1/include/asm-mips/sn/arch.h   2006-12-11 11:32:53.000000000 -0800
    14022 +++ linux-mips-2.6.19.1/include/asm-mips/sn/arch.h      2006-12-11 15:38:26.000000000 -0800
    14023 @@ -18,7 +18,6 @@
    14024  #endif
    14025  
    14026  typedef u64    hubreg_t;
    14027 -typedef u64    nic_t;
    14028  
    14029  #define cputonasid(cpu)                        (cpu_data[(cpu)].p_nasid)
    14030  #define cputoslice(cpu)                        (cpu_data[(cpu)].p_slice)
    14031 diff -Naur linux-2.6.19.1/include/asm-mips/sn/klconfig.h linux-mips-2.6.19.1/include/asm-mips/sn/klconfig.h
    14032 --- linux-2.6.19.1/include/asm-mips/sn/klconfig.h       2006-12-11 11:32:53.000000000 -0800
    14033 +++ linux-mips-2.6.19.1/include/asm-mips/sn/klconfig.h  2006-12-11 15:38:26.000000000 -0800
    14034 @@ -61,6 +61,8 @@
    14035  #endif /* CONFIG_SGI_IP35 */
    14036  #endif /* CONFIG_SGI_IP27 || CONFIG_SGI_IP35 */
    14037  
    14038 +typedef u64  nic_t;
    14039 +
    14040  #define KLCFGINFO_MAGIC        0xbeedbabe
    14041  
    14042  typedef s32 klconf_off_t;
    14043 @@ -176,7 +178,7 @@
    14044  /* --- New Macros for the changed kl_config_hdr_t structure --- */
    14045  
    14046  #define PTR_CH_MALLOC_HDR(_k)   ((klc_malloc_hdr_t *)\
    14047 -                       (unsigned long)_k + (_k->ch_malloc_hdr_off)))
    14048 +                       ((unsigned long)_k + (_k->ch_malloc_hdr_off)))
    14049  
    14050  #define KL_CONFIG_CH_MALLOC_HDR(_n)   PTR_CH_MALLOC_HDR(KL_CONFIG_HDR(_n))
    14051  
    14052 diff -Naur linux-2.6.19.1/include/asm-mips/system.h linux-mips-2.6.19.1/include/asm-mips/system.h
    14053 --- linux-2.6.19.1/include/asm-mips/system.h    2006-12-11 11:32:53.000000000 -0800
    14054 +++ linux-mips-2.6.19.1/include/asm-mips/system.h       2006-12-11 15:38:26.000000000 -0800
    14055 @@ -18,7 +18,6 @@
    14056  #include <asm/addrspace.h>
    14057  #include <asm/cpu-features.h>
    14058  #include <asm/dsp.h>
    14059 -#include <asm/ptrace.h>
    14060  #include <asm/war.h>
    14061  
    14062  /*
    14063 @@ -472,14 +471,6 @@
    14064  extern unsigned long ebase;
    14065  extern void per_cpu_trap_init(void);
    14066  
    14067 -extern NORET_TYPE void die(const char *, struct pt_regs *);
    14068 -
    14069 -static inline void die_if_kernel(const char *str, struct pt_regs *regs)
    14070 -{
    14071 -       if (unlikely(!user_mode(regs)))
    14072 -               die(str, regs);
    14073 -}
    14074 -
    14075  extern int stop_a_enabled;
    14076  
    14077  /*
    14078 diff -Naur linux-2.6.19.1/include/linux/highmem.h linux-mips-2.6.19.1/include/linux/highmem.h
    14079 --- linux-2.6.19.1/include/linux/highmem.h      2006-12-11 11:32:53.000000000 -0800
    14080 +++ linux-mips-2.6.19.1/include/linux/highmem.h 2006-12-11 15:38:26.000000000 -0800
    14081 @@ -94,7 +94,10 @@
    14082         kunmap_atomic(kaddr, KM_USER0);
    14083  }
    14084  
    14085 -static inline void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr)
    14086 +#ifndef __HAVE_ARCH_COPY_USER_HIGHPAGE
    14087 +
    14088 +static inline void copy_user_highpage(struct page *to, struct page *from,
    14089 +       unsigned long vaddr, struct vm_area_struct *vma)
    14090  {
    14091         char *vfrom, *vto;
    14092  
    14093 @@ -107,6 +110,8 @@
    14094         smp_wmb();
    14095  }
    14096  
    14097 +#endif
    14098 +
    14099  static inline void copy_highpage(struct page *to, struct page *from)
    14100  {
    14101         char *vfrom, *vto;
    14102 diff -Naur linux-2.6.19.1/include/linux/pci_ids.h linux-mips-2.6.19.1/include/linux/pci_ids.h
    14103 --- linux-2.6.19.1/include/linux/pci_ids.h      2006-12-11 11:32:53.000000000 -0800
    14104 +++ linux-mips-2.6.19.1/include/linux/pci_ids.h 2006-12-11 15:38:26.000000000 -0800
    14105 @@ -1604,6 +1604,9 @@
     12541-               return 1;
     12542-       }
     12543-       return 0;
     12544+       return mips_system_has_legacy_ide;
     12545 #elif defined(CONFIG_EISA) || defined(CONFIG_ISA)
     12546        return 1;
     12547 #else
     12548diff -Naur linux-2.6.20/include/linux/pci_ids.h linux-mips-2.6.20/include/linux/pci_ids.h
     12549--- linux-2.6.20/include/linux/pci_ids.h        2007-02-04 10:44:54.000000000 -0800
     12550+++ linux-mips-2.6.20/include/linux/pci_ids.h   2007-02-04 12:22:45.000000000 -0800
     12551@@ -1614,6 +1614,9 @@
    1410612552 #define PCI_VENDOR_ID_SATSAGEM         0x1267
    1410712553 #define PCI_DEVICE_ID_SATSAGEM_NICCY   0x1016
     
    1411312559 #define PCI_VENDOR_ID_ENSONIQ          0x1274
    1411412560 #define PCI_DEVICE_ID_ENSONIQ_CT5880   0x5880
    14115 diff -Naur linux-2.6.19.1/include/linux/serial.h linux-mips-2.6.19.1/include/linux/serial.h
    14116 --- linux-2.6.19.1/include/linux/serial.h       2006-12-11 11:32:53.000000000 -0800
    14117 +++ linux-mips-2.6.19.1/include/linux/serial.h  2006-12-11 15:38:26.000000000 -0800
     12561diff -Naur linux-2.6.20/include/linux/serial.h linux-mips-2.6.20/include/linux/serial.h
     12562--- linux-2.6.20/include/linux/serial.h 2007-02-04 10:44:54.000000000 -0800
     12563+++ linux-mips-2.6.20/include/linux/serial.h    2007-02-04 12:22:45.000000000 -0800
    1411812564@@ -76,7 +76,8 @@
    1411912565 #define PORT_16654     11
     
    1412612572 #define SERIAL_IO_PORT 0
    1412712573 #define SERIAL_IO_HUB6 1
    14128 diff -Naur linux-2.6.19.1/include/linux/serial_ip3106.h linux-mips-2.6.19.1/include/linux/serial_ip3106.h
    14129 --- linux-2.6.19.1/include/linux/serial_ip3106.h        2006-12-11 11:32:53.000000000 -0800
    14130 +++ linux-mips-2.6.19.1/include/linux/serial_ip3106.h   2006-12-11 15:38:26.000000000 -0800
     12574diff -Naur linux-2.6.20/include/linux/serial_ip3106.h linux-mips-2.6.20/include/linux/serial_ip3106.h
     12575--- linux-2.6.20/include/linux/serial_ip3106.h  2007-02-04 10:44:54.000000000 -0800
     12576+++ linux-mips-2.6.20/include/linux/serial_ip3106.h     2007-02-04 12:22:45.000000000 -0800
    1413112577@@ -78,4 +78,16 @@
    1413212578 #define IP3106_UART_FIFO_RXFIFO                0x00001F00
     
    1414612592+
    1414712593 #endif
    14148 diff -Naur linux-2.6.19.1/mm/memory.c linux-mips-2.6.19.1/mm/memory.c
    14149 --- linux-2.6.19.1/mm/memory.c  2006-12-11 11:32:53.000000000 -0800
    14150 +++ linux-mips-2.6.19.1/mm/memory.c     2006-12-11 15:38:26.000000000 -0800
    14151 @@ -1431,7 +1431,7 @@
    14152         return pte;
    14153  }
    14154  
    14155 -static inline void cow_user_page(struct page *dst, struct page *src, unsigned long va)
    14156 +static inline void cow_user_page(struct page *dst, struct page *src, unsigned long va, struct vm_area_struct *vma)
    14157  {
    14158         /*
    14159          * If the source page was a PFN mapping, we don't have
    14160 @@ -1454,9 +1454,9 @@
    14161                 kunmap_atomic(kaddr, KM_USER0);
    14162                 flush_dcache_page(dst);
    14163                 return;
    14164 -               
    14165 +
    14166         }
    14167 -       copy_user_highpage(dst, src, va);
    14168 +       copy_user_highpage(dst, src, va, vma);
    14169  }
    14170  
    14171  /*
    14172 @@ -1567,7 +1567,7 @@
    14173                 new_page = alloc_page_vma(GFP_HIGHUSER, vma, address);
    14174                 if (!new_page)
    14175                         goto oom;
    14176 -               cow_user_page(new_page, old_page, address);
    14177 +               cow_user_page(new_page, old_page, address, vma);
    14178         }
    14179  
    14180         /*
    14181 @@ -2191,7 +2191,7 @@
    14182                         page = alloc_page_vma(GFP_HIGHUSER, vma, address);
    14183                         if (!page)
    14184                                 goto oom;
    14185 -                       copy_user_highpage(page, new_page, address);
    14186 +                       copy_user_highpage(page, new_page, address, vma);
    14187                         page_cache_release(new_page);
    14188                         new_page = page;
    14189                         anon = 1;
    14190 diff -Naur linux-2.6.19.1/sound/oss/Kconfig linux-mips-2.6.19.1/sound/oss/Kconfig
    14191 --- linux-2.6.19.1/sound/oss/Kconfig    2006-12-11 11:32:53.000000000 -0800
    14192 +++ linux-mips-2.6.19.1/sound/oss/Kconfig       2006-12-11 15:38:26.000000000 -0800
    14193 @@ -128,6 +128,13 @@
     12594diff -Naur linux-2.6.20/sound/oss/Kconfig linux-mips-2.6.20/sound/oss/Kconfig
     12595--- linux-2.6.20/sound/oss/Kconfig      2007-02-04 10:44:54.000000000 -0800
     12596+++ linux-mips-2.6.20/sound/oss/Kconfig 2007-02-04 12:22:45.000000000 -0800
     12597@@ -80,6 +80,13 @@
    1419412598        select SND_AC97_CODEC
    1419512599        depends on SOUND_PRIME && (SOC_AU1550 || SOC_AU1200)
     
    1420512609        tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core"
    1420612610        depends on SOUND_PRIME && PCI
    14207 diff -Naur linux-2.6.19.1/sound/oss/Makefile linux-mips-2.6.19.1/sound/oss/Makefile
    14208 --- linux-2.6.19.1/sound/oss/Makefile   2006-12-11 11:32:53.000000000 -0800
    14209 +++ linux-mips-2.6.19.1/sound/oss/Makefile      2006-12-11 15:38:26.000000000 -0800
     12611diff -Naur linux-2.6.20/sound/oss/Makefile linux-mips-2.6.20/sound/oss/Makefile
     12612--- linux-2.6.20/sound/oss/Makefile     2007-02-04 10:44:54.000000000 -0800
     12613+++ linux-mips-2.6.20/sound/oss/Makefile        2007-02-04 12:22:45.000000000 -0800
    1421012614@@ -45,6 +45,7 @@
    1421112615 obj-$(CONFIG_SOUND_ES1371)     += es1371.o ac97_codec.o
     
    1421612620 obj-$(CONFIG_SOUND_TRIDENT)    += trident.o ac97_codec.o
    1421712621 obj-$(CONFIG_SOUND_EMU10K1)    += ac97_codec.o
    14218 diff -Naur linux-2.6.19.1/sound/oss/au1550_i2s.c linux-mips-2.6.19.1/sound/oss/au1550_i2s.c
    14219 --- linux-2.6.19.1/sound/oss/au1550_i2s.c       1969-12-31 16:00:00.000000000 -0800
    14220 +++ linux-mips-2.6.19.1/sound/oss/au1550_i2s.c  2006-12-11 15:38:26.000000000 -0800
     12622diff -Naur linux-2.6.20/sound/oss/au1550_i2s.c linux-mips-2.6.20/sound/oss/au1550_i2s.c
     12623--- linux-2.6.20/sound/oss/au1550_i2s.c 1969-12-31 16:00:00.000000000 -0800
     12624+++ linux-mips-2.6.20/sound/oss/au1550_i2s.c    2007-02-04 12:22:45.000000000 -0800
    1422112625@@ -0,0 +1,2029 @@
    1422212626+/*
  • patches/linux-2.6.20-mips_fixes-1.patch

    r762f470 r18bf2a3  
    11Submitted By: Jim Gifford (patches at jg555 dot com)
    2 Date: 2006-11-29
    3 Initial Package Version: 2.6.19
     2Date: 2007-02-04
     3Initial Package Version: 2.6.20
    44Origin: Linux-MIPS Mailing List
    55Upstream Status: Not Applied
     
    1111        3 - Updates to Support N32 only builds
    1212
    13 diff -Naur linux-2.6.19.orig/arch/mips/kernel/Makefile linux-2.6.19/arch/mips/kernel/Makefile
    14 --- linux-2.6.19.orig/arch/mips/kernel/Makefile 2006-11-29 13:57:37.000000000 -0800
    15 +++ linux-2.6.19/arch/mips/kernel/Makefile      2006-11-29 20:06:07.000000000 -0800
    16 @@ -57,7 +57,7 @@
     13diff -Naur linux-mips-2.6.20/arch/mips/kernel/Makefile linux-2.6.20/arch/mips/kernel/Makefile
     14--- linux-mips-2.6.20/arch/mips/kernel/Makefile 2007-02-04 12:22:45.000000000 -0800
     15+++ linux-2.6.20/arch/mips/kernel/Makefile      2007-02-04 20:10:24.000000000 -0800
     16@@ -56,7 +56,7 @@
    1717 obj-$(CONFIG_64BIT)            += scall64-64.o
    1818 obj-$(CONFIG_BINFMT_IRIX)      += binfmt_irix.o
     
    2323 
    2424 obj-$(CONFIG_KGDB)             += gdb-low.o gdb-stub.o
    25 diff -Naur linux-2.6.19.orig/arch/mips/lib/Makefile linux-2.6.19/arch/mips/lib/Makefile
    26 --- linux-2.6.19.orig/arch/mips/lib/Makefile    2006-11-29 20:05:48.000000000 -0800
    27 +++ linux-2.6.19/arch/mips/lib/Makefile 2006-11-29 20:06:07.000000000 -0800
     25diff -Naur linux-mips-2.6.20/arch/mips/lib/Makefile linux-2.6.20/arch/mips/lib/Makefile
     26--- linux-mips-2.6.20/arch/mips/lib/Makefile    2007-02-04 12:22:45.000000000 -0800
     27+++ linux-2.6.20/arch/mips/lib/Makefile 2007-02-04 20:10:24.000000000 -0800
    2828@@ -5,6 +5,8 @@
    29  lib-y  += csum_partial_copy.o memcpy.o promlib.o strlen_user.o strncpy_user.o \
    30            strnlen_user.o uncached.o
     29 lib-y  += csum_partial.o memcpy.o promlib.o \
     30           strlen_user.o strncpy_user.o strnlen_user.o uncached.o
    3131 
    3232+obj-y  += iomap.o
     
    3535 lib-y += ashldi3.o ashrdi3.o lshrdi3.o
    3636 
    37 diff -Naur linux-2.6.19.orig/arch/mips/lib/iomap.c linux-2.6.19/arch/mips/lib/iomap.c
    38 --- linux-2.6.19.orig/arch/mips/lib/iomap.c     1969-12-31 16:00:00.000000000 -0800
    39 +++ linux-2.6.19/arch/mips/lib/iomap.c  2006-11-29 20:06:07.000000000 -0800
     37diff -Naur linux-mips-2.6.20/arch/mips/lib/iomap.c linux-2.6.20/arch/mips/lib/iomap.c
     38--- linux-mips-2.6.20/arch/mips/lib/iomap.c     1969-12-31 16:00:00.000000000 -0800
     39+++ linux-2.6.20/arch/mips/lib/iomap.c  2007-02-04 20:10:24.000000000 -0800
    4040@@ -0,0 +1,78 @@
    4141+/*
     
    117117+EXPORT_SYMBOL(pci_iomap);
    118118+EXPORT_SYMBOL(pci_iounmap);
    119 diff -Naur linux-2.6.19.orig/include/asm-mips/io.h linux-2.6.19/include/asm-mips/io.h
    120 --- linux-2.6.19.orig/include/asm-mips/io.h     2006-11-29 20:05:48.000000000 -0800
    121 +++ linux-2.6.19/include/asm-mips/io.h  2006-11-29 20:06:07.000000000 -0800
     119diff -Naur linux-mips-2.6.20/include/asm-mips/io.h linux-2.6.20/include/asm-mips/io.h
     120--- linux-mips-2.6.20/include/asm-mips/io.h     2007-02-04 12:22:45.000000000 -0800
     121+++ linux-2.6.20/include/asm-mips/io.h  2007-02-04 20:10:24.000000000 -0800
    122122@@ -518,6 +518,34 @@
    123123 }
     
    155155  * to explicitly ioremap() it. The fact that the ISA IO space is mapped
    156156  * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
    157 diff -Naur linux-2.6.19.orig/include/asm-mips/mach-cobalt/ide.h linux-2.6.19/include/asm-mips/mach-cobalt/ide.h
    158 --- linux-2.6.19.orig/include/asm-mips/mach-cobalt/ide.h        1969-12-31 16:00:00.000000000 -0800
    159 +++ linux-2.6.19/include/asm-mips/mach-cobalt/ide.h     2006-11-29 20:06:07.000000000 -0800
     157diff -Naur linux-mips-2.6.20/include/asm-mips/mach-cobalt/ide.h linux-2.6.20/include/asm-mips/mach-cobalt/ide.h
     158--- linux-mips-2.6.20/include/asm-mips/mach-cobalt/ide.h        1969-12-31 16:00:00.000000000 -0800
     159+++ linux-2.6.20/include/asm-mips/mach-cobalt/ide.h     2007-02-04 20:10:24.000000000 -0800
    160160@@ -0,0 +1,83 @@
    161161+
  • patches/linux-2.6.20-tulip-1.patch

    r762f470 r18bf2a3  
    11Submitted By: Jim Gifford (patches at jg555 dot com)
    2 Date: 2006-11-29
    3 Initial Package Version: 2.6.19
     2Date: 2007-02-04
     3Initial Package Version: 2.6.20
    44Origin: Grant Gundler (parisc linux)
    55Upstream Status: in -mm
    66Description: Make the tulip drivers follow the chipset specs
    77
    8 diff -Naur linux-2.6.19.orig/drivers/net/tulip/21142.c linux-2.6.19/drivers/net/tulip/21142.c
    9 --- linux-2.6.19.orig/drivers/net/tulip/21142.c 2006-11-29 13:57:37.000000000 -0800
    10 +++ linux-2.6.19/drivers/net/tulip/21142.c      2006-11-29 19:27:20.000000000 -0800
    11 @@ -172,7 +172,7 @@
     8diff -Naur linux-2.6.20.orig/drivers/net/tulip/21142.c linux-2.6.20/drivers/net/tulip/21142.c
     9--- linux-2.6.20.orig/drivers/net/tulip/21142.c 2007-02-04 10:44:54.000000000 -0800
     10+++ linux-2.6.20/drivers/net/tulip/21142.c      2007-02-04 20:43:32.000000000 -0800
     11@@ -173,7 +173,7 @@
    1212                        int i;
    1313                        for (i = 0; i < tp->mtable->leafcount; i++)
     
    1818                                        tulip_select_media(dev, startup);
    1919                                        setup_done = 1;
    20 diff -Naur linux-2.6.19.orig/drivers/net/tulip/media.c linux-2.6.19/drivers/net/tulip/media.c
    21 --- linux-2.6.19.orig/drivers/net/tulip/media.c 2006-11-29 13:57:37.000000000 -0800
    22 +++ linux-2.6.19/drivers/net/tulip/media.c      2006-11-29 19:27:20.000000000 -0800
     20diff -Naur linux-2.6.20.orig/drivers/net/tulip/media.c linux-2.6.20/drivers/net/tulip/media.c
     21--- linux-2.6.20.orig/drivers/net/tulip/media.c 2007-02-04 10:44:54.000000000 -0800
     22+++ linux-2.6.20/drivers/net/tulip/media.c      2007-02-04 20:43:32.000000000 -0800
    2323@@ -44,8 +44,10 @@
    2424 
     
    9292                        if (tmp_info)
    9393                                tp->advertising[phy_num] = tmp_info | 1;
    94 diff -Naur linux-2.6.19.orig/drivers/net/tulip/tulip.h linux-2.6.19/drivers/net/tulip/tulip.h
    95 --- linux-2.6.19.orig/drivers/net/tulip/tulip.h 2006-11-29 13:57:37.000000000 -0800
    96 +++ linux-2.6.19/drivers/net/tulip/tulip.h      2006-11-29 19:27:20.000000000 -0800
    97 @@ -481,8 +481,11 @@
     94diff -Naur linux-2.6.20.orig/drivers/net/tulip/tulip.h linux-2.6.20/drivers/net/tulip/tulip.h
     95--- linux-2.6.20.orig/drivers/net/tulip/tulip.h 2007-02-04 10:44:54.000000000 -0800
     96+++ linux-2.6.20/drivers/net/tulip/tulip.h      2007-02-04 20:43:32.000000000 -0800
     97@@ -482,8 +482,11 @@
    9898                        udelay(10);
    9999 
     
    109109 }
    110110 
    111 diff -Naur linux-2.6.19.orig/drivers/net/tulip/tulip_core.c linux-2.6.19/drivers/net/tulip/tulip_core.c
    112 --- linux-2.6.19.orig/drivers/net/tulip/tulip_core.c    2006-11-29 13:57:37.000000000 -0800
    113 +++ linux-2.6.19/drivers/net/tulip/tulip_core.c 2006-11-29 19:27:20.000000000 -0800
     111diff -Naur linux-2.6.20.orig/drivers/net/tulip/tulip_core.c linux-2.6.20/drivers/net/tulip/tulip_core.c
     112--- linux-2.6.20.orig/drivers/net/tulip/tulip_core.c    2007-02-04 10:44:54.000000000 -0800
     113+++ linux-2.6.20/drivers/net/tulip/tulip_core.c 2007-02-04 20:43:32.000000000 -0800
    114114@@ -21,7 +21,7 @@
    115115 #else
     
    121121 
    122122 #include <linux/module.h>
    123 
Note: See TracChangeset for help on using the changeset viewer.