- Timestamp:
- Feb 4, 2007, 8:50:38 PM (18 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- 9d5e756
- Parents:
- 762f470
- Location:
- patches
- Files:
-
- 1 added
- 1 deleted
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
patches/linux-2.6.20-mips-1.patch
r762f470 r18bf2a3 1 1 Submitted By: Jim Gifford (patches at jg555 dot com) 2 Date: 200 6-12-123 Initial Package Version: 2.6. 19.12 Date: 2007-02-04 3 Initial Package Version: 2.6.20 4 4 Origin: Linux-MIPS 5 5 Upstream Status: http://www.linux-mips.org/pub/linux/mips/kernel/v2.6/ 6 6 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 @@ 7 diff -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 @@ 20 11 select CPU_SUPPORTS_32BIT_KERNEL 21 12 select CPU_SUPPORTS_64BIT_KERNEL … … 26 17 kernel built with this option will not run on any other type of 27 18 processor or vice versa. 28 @@ -1922,6 +1920,11 @@ 29 depends on MIPS32_COMPAT 30 default y 19 diff -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. 31 35 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 37 diff -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 43 40 @@ -76,13 +76,17 @@ 44 41 } … … 66 63 #endif 67 64 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.c69 --- linux-2.6. 19.1/arch/mips/au1000/common/setup.c 2006-12-11 11:32:53.000000000 -080070 +++ linux-mips-2.6. 19.1/arch/mips/au1000/common/setup.c 2006-12-11 15:38:26.000000000 -080065 diff -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 71 68 @@ -141,17 +141,20 @@ 72 69 /* This routine should be valid for all Au1x based boards */ … … 98 95 #endif 99 96 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.c101 --- linux-2.6. 19.1/arch/mips/au1000/pb1100/board_setup.c 2006-12-11 11:32:53.000000000 -0800102 +++ linux-mips-2.6. 19.1/arch/mips/au1000/pb1100/board_setup.c 2006-12-11 15:38:26.000000000 -080097 diff -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 103 100 @@ -47,8 +47,7 @@ 104 101 … … 216 213 } 217 214 } 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; 215 diff -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; 313 220 } 314 221 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) 318 223 -{ 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 ); 510 225 -} 511 226 - 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) 514 228 -{ 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 - } 540 232 -} 541 233 - 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 = 842 235 { 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 }; 910 258 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 @@ 931 261 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 270 diff -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 937 273 @@ -96,6 +96,10 @@ 938 274 goto out_unlock; … … 958 294 cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map); 959 295 960 diff -Naur linux-2.6. 19.1/arch/mips/kernel/ptrace.c linux-mips-2.6.19.1/arch/mips/kernel/ptrace.c961 --- linux-2.6. 19.1/arch/mips/kernel/ptrace.c 2006-12-11 11:32:53.000000000 -0800962 +++ linux-mips-2.6. 19.1/arch/mips/kernel/ptrace.c 2006-12-11 15:38:26.000000000 -0800296 diff -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 963 299 @@ -20,12 +20,12 @@ 964 300 #include <linux/mm.h> … … 1012 348 + regs->regs[6], regs->regs[7]); 1013 349 } 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 350 diff -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 362 diff -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 374 diff -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 1088 377 @@ -5,8 +5,6 @@ 1089 lib-y += csum_partial _copy.o memcpy.o promlib.o strlen_user.o strncpy_user.o \1090 str nlen_user.o uncached.o378 lib-y += csum_partial.o memcpy.o promlib.o \ 379 strlen_user.o strncpy_user.o strnlen_user.o uncached.o 1091 380 1092 381 -obj-y += iomap.o … … 1095 384 lib-y += ashldi3.o ashrdi3.o lshrdi3.o 1096 385 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 386 diff -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 1120 389 @@ -1,78 +0,0 @@ 1121 390 -/* … … 1197 466 -EXPORT_SYMBOL(pci_iomap); 1198 467 -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.c1200 --- linux-2.6. 19.1/arch/mips/lib-32/dump_tlb.c 2006-12-11 11:32:53.000000000 -08001201 +++ linux-mips-2.6. 19.1/arch/mips/lib-32/dump_tlb.c 2006-12-11 15:38:26.000000000 -0800468 diff -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 1202 471 @@ -40,8 +40,6 @@ 1203 472 return "256Mb"; … … 1209 478 1210 479 #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.c1212 --- linux-2.6. 19.1/arch/mips/lib-64/dump_tlb.c 2006-12-11 11:32:53.000000000 -08001213 +++ linux-mips-2.6. 19.1/arch/mips/lib-64/dump_tlb.c 2006-12-11 15:38:26.000000000 -0800480 diff -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 1214 483 @@ -31,8 +31,6 @@ 1215 484 case PM_256M: return "256Mb"; … … 1221 490 1222 491 #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 492 diff -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 1345 495 @@ -6,7 +6,7 @@ 1346 496 # unless it's something special (ie not a .c file). … … 1352 502 obj-$(CONFIG_SERIAL_8250_CONSOLE) += ja-console.o 1353 503 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.h1355 --- linux-2.6. 19.1/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h 2006-12-11 11:32:53.000000000 -08001356 +++ linux-mips-2.6. 19.1/arch/mips/momentum/jaguar_atx/jaguar_atx_fpga.h 2006-12-11 15:38:26.000000000 -0800504 diff -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 1357 507 @@ -46,7 +46,9 @@ 1358 508 … … 1367 517 1368 518 #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.c1370 --- linux-2.6. 19.1/arch/mips/momentum/jaguar_atx/platform.c 1969-12-31 16:00:00.000000000 -08001371 +++ linux-mips-2.6. 19.1/arch/mips/momentum/jaguar_atx/platform.c 2006-12-11 15:38:26.000000000 -0800519 diff -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 1372 522 @@ -0,0 +1,235 @@ 1373 523 +#include <linux/delay.h> … … 1606 756 + 1607 757 +#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.c1609 --- linux-2.6. 19.1/arch/mips/momentum/jaguar_atx/prom.c 2006-12-11 11:32:53.000000000 -08001610 +++ linux-mips-2.6. 19.1/arch/mips/momentum/jaguar_atx/prom.c 2006-12-11 15:38:26.000000000 -0800758 diff -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 1611 761 @@ -39,56 +39,6 @@ 1612 762 return "Momentum Jaguar-ATX"; … … 1678 828 1679 829 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 830 diff -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, 842 diff -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 1683 845 @@ -2,7 +2,7 @@ 1684 846 * fixup-tb0219.c, The TANBAC TB0219 specific PCI fixups. … … 1690 852 * This program is free software; you can redistribute it and/or modify 1691 853 * 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 854 diff -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 887 diff -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) 906 diff -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 1695 909 @@ -4,4 +4,5 @@ 1696 910 … … 1699 913 +obj-$(CONFIG_VT) += q-vga.o 1700 914 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.c1702 --- linux-2.6. 19.1/arch/mips/qemu/q-setup.c 2006-12-11 11:32:53.000000000 -08001703 +++ linux-mips-2.6. 19.1/arch/mips/qemu/q-setup.c 2006-12-11 15:38:26.000000000 -0800915 diff -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 1704 918 @@ -2,6 +2,7 @@ 1705 919 #include <asm/io.h> … … 1720 934 qemu_reboot_setup(); 1721 935 } 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.c1723 --- linux-2.6. 19.1/arch/mips/qemu/q-vga.c 1969-12-31 16:00:00.000000000 -08001724 +++ linux-mips-2.6. 19.1/arch/mips/qemu/q-vga.c 2006-12-11 15:38:26.000000000 -0800936 diff -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 1725 939 @@ -0,0 +1,189 @@ 1726 940 +/* … … 1913 1127 +#endif 1914 1128 +} 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 @@ 1129 diff -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 @@ 1958 1133 To compile this driver as a module, choose M here: the 1959 1134 module will be called istallion. … … 2024 1199 config A2232 2025 1200 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 1201 diff -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 @@ 2031 1205 obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o 2032 1206 obj-$(CONFIG_MOXA_SMARTIO) += mxser.o 1207 obj-$(CONFIG_MOXA_SMARTIO_NEW) += mxser_new.o 2033 1208 +obj-$(CONFIG_SIBYTE_SB1250_DUART) += sb1250_duart.o 2034 1209 obj-$(CONFIG_COMPUTONE) += ip2/ 2035 1210 obj-$(CONFIG_RISCOM8) += riscom8.o 2036 1211 obj-$(CONFIG_ISI) += isicom.o 2037 @@ -5 3,6 +54,7 @@1212 @@ -54,6 +55,7 @@ 2038 1213 obj-$(CONFIG_VIOTAPE) += viotape.o 2039 1214 obj-$(CONFIG_HVCS) += hvcs.o … … 2044 1219 obj-$(CONFIG_PRINTER) += lp.o 2045 1220 @@ -80,6 +82,7 @@ 1221 obj-$(CONFIG_DS1620) += ds1620.o 2046 1222 obj-$(CONFIG_HW_RANDOM) += hw_random/ 2047 obj-$(CONFIG_FTAPE) += ftape/2048 1223 obj-$(CONFIG_COBALT_LCD) += lcd.o 2049 1224 +obj-$(CONFIG_AU1000_GPIO) += au1000_gpio.o … … 2051 1226 obj-$(CONFIG_NWBUTTON) += nwbutton.o 2052 1227 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.c2054 --- linux-2.6. 19.1/drivers/char/au1000_gpio.c 1969-12-31 16:00:00.000000000 -08002055 +++ linux-mips-2.6. 19.1/drivers/char/au1000_gpio.c 2006-12-11 15:38:26.000000000 -08001228 diff -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 2056 1231 @@ -0,0 +1,262 @@ 2057 1232 +/* … … 2317 1492 +module_init(au1000gpio_init); 2318 1493 +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.c2320 --- linux-2.6. 19.1/drivers/char/au1000_ts.c 1969-12-31 16:00:00.000000000 -08002321 +++ linux-mips-2.6. 19.1/drivers/char/au1000_ts.c 2006-12-11 15:38:26.000000000 -08001494 diff -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 2322 1497 @@ -0,0 +1,677 @@ 2323 1498 +/* … … 2998 2173 +module_init(au1000ts_init_module); 2999 2174 +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 2175 diff -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 3139 2178 @@ -0,0 +1,909 @@ 3140 2179 +/* … … 4047 3086 + 4048 3087 +#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/Makefile4050 --- linux-2.6. 19.1/drivers/ide/mips/Makefile 2006-12-11 11:32:53.000000000 -08004051 +++ linux-mips-2.6. 19.1/drivers/ide/mips/Makefile 2006-12-11 15:38:26.000000000 -08003088 diff -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 4052 3091 @@ -1,4 +1,4 @@ 4053 3092 obj-$(CONFIG_BLK_DEV_IDE_SWARM) += swarm.o … … 4056 3095 -EXTRA_CFLAGS := -Idrivers/ide 4057 3096 +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 3097 diff -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 4109 3100 @@ -83,10 +83,10 @@ 4110 3101 0xe4000000, … … 4121 3112 #endif 4122 3113 0xffffffff }; 4123 diff -Naur linux-2.6. 19.1/drivers/mtd/maps/lasat.c linux-mips-2.6.19.1/drivers/mtd/maps/lasat.c4124 --- linux-2.6. 19.1/drivers/mtd/maps/lasat.c 2006-12-11 11:32:53.000000000 -08004125 +++ linux-mips-2.6. 19.1/drivers/mtd/maps/lasat.c 2006-12-11 15:38:26.000000000 -08003114 diff -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 4126 3117 @@ -7,7 +7,7 @@ 4127 3118 * modify it under the terms of the GNU General Public License version … … 4142 3133 lasat_map.size = lasat_board_info.li_flash_size; 4143 3134 4144 diff -Naur linux-2.6. 19.1/drivers/net/Kconfig linux-mips-2.6.19.1/drivers/net/Kconfig4145 --- linux-2.6. 19.1/drivers/net/Kconfig 2006-12-11 11:32:53.000000000 -08004146 +++ linux-mips-2.6. 19.1/drivers/net/Kconfig 2006-12-11 15:38:26.000000000 -08004147 @@ -4 41,6 +441,14 @@3135 diff -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 @@ 4148 3139 This is the driver for the onboard card of MIPS Magnum 4000, 4149 3140 Acer PICA, Olivetti M700-10 and a few other identical OEM systems. … … 4160 3151 bool "MIPS AU1000 Ethernet support" 4161 3152 depends on NET_ETHERNET && SOC_AU1X00 4162 @@ -4 50,10 +458,6 @@3153 @@ -461,10 +469,6 @@ 4163 3154 If you have an Alchemy Semi AU1X00 based system 4164 3155 say Y. Otherwise, say N. … … 4171 3162 bool "SGI IOC3 Ethernet" 4172 3163 depends on NET_ETHERNET && PCI && SGI_IP27 4173 @@ -4 64,25 +468,13 @@3164 @@ -475,25 +479,13 @@ 4174 3165 the Ethernet-HOWTO, available from 4175 3166 <http://www.tldp.org/docs.html#howto>. … … 4203 3194 config MIPS_SIM_NET 4204 3195 tristate "MIPS simulator Network device (EXPERIMENTAL)" 4205 @@ -20 65,6 +2057,10 @@3196 @@ -2076,6 +2068,10 @@ 4206 3197 4207 3198 If in doubt, say N. … … 4214 3205 bool "VLAN support" 4215 3206 depends on R8169 && VLAN_8021Q 4216 @@ -2 296,8 +2292,8 @@3207 @@ -2315,8 +2311,8 @@ 4217 3208 select MII 4218 3209 help … … 4225 3216 config MV643XX_ETH_0 4226 3217 bool "MV-643XX Port 0" 4227 @@ -23 20,6 +2316,20 @@3218 @@ -2339,6 +2335,20 @@ 4228 3219 This enables support for Port 2 of the Marvell MV643XX Gigabit 4229 3220 Ethernet. … … 4246 3237 tristate "QLogic QLA3XXX Network Driver Support" 4247 3238 depends on PCI 4248 diff -Naur linux-2.6. 19.1/drivers/net/Makefile linux-mips-2.6.19.1/drivers/net/Makefile4249 --- linux-2.6. 19.1/drivers/net/Makefile 2006-12-11 11:32:53.000000000 -08004250 +++ linux-mips-2.6. 19.1/drivers/net/Makefile 2006-12-11 15:38:26.000000000 -08003239 diff -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 4251 3242 @@ -112,6 +112,10 @@ 4252 3243 obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o … … 4260 3251 obj-$(CONFIG_PPP_ASYNC) += ppp_async.o 4261 3252 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.c4263 --- linux-2.6. 19.1/drivers/net/big_sur_ge.c 1969-12-31 16:00:00.000000000 -08004264 +++ linux-mips-2.6. 19.1/drivers/net/big_sur_ge.c 2006-12-11 15:38:26.000000000 -08003253 diff -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 4265 3256 @@ -0,0 +1,2004 @@ 4266 3257 +/* … … 6268 5259 +MODULE_DESCRIPTION("PMC-Sierra Big Sur Ethernet MAC Driver"); 6269 5260 +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.h6271 --- linux-2.6. 19.1/drivers/net/big_sur_ge.h 1969-12-31 16:00:00.000000000 -08006272 +++ linux-mips-2.6. 19.1/drivers/net/big_sur_ge.h 2006-12-11 15:38:26.000000000 -08005261 diff -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 6273 5264 @@ -0,0 +1,713 @@ 6274 5265 +/* … … 6985 5976 + 6986 5977 +#endif 6987 diff -Naur linux-2.6. 19.1/drivers/net/gt64240eth.c linux-mips-2.6.19.1/drivers/net/gt64240eth.c6988 --- linux-2.6. 19.1/drivers/net/gt64240eth.c 1969-12-31 16:00:00.000000000 -08006989 +++ linux-mips-2.6. 19.1/drivers/net/gt64240eth.c 2006-12-11 15:38:26.000000000 -08005978 diff -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 6990 5981 @@ -0,0 +1,1671 @@ 6991 5982 +/* … … 8660 7651 + return &gp->stats; 8661 7652 +} 8662 diff -Naur linux-2.6. 19.1/drivers/net/gt64240eth.h linux-mips-2.6.19.1/drivers/net/gt64240eth.h8663 --- linux-2.6. 19.1/drivers/net/gt64240eth.h 1969-12-31 16:00:00.000000000 -08008664 +++ linux-mips-2.6. 19.1/drivers/net/gt64240eth.h 2006-12-11 15:38:26.000000000 -08007653 diff -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 8665 7656 @@ -0,0 +1,403 @@ 8666 7657 +/* … … 9067 8058 + 9068 8059 +#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.c9070 --- linux-2.6. 19.1/drivers/net/ioc3-eth.c 2006-12-11 11:32:53.000000000 -08009071 +++ linux-mips-2.6. 19.1/drivers/net/ioc3-eth.c 2006-12-11 15:38:26.000000000 -08008060 diff -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 9072 8063 @@ -5,7 +5,7 @@ 9073 8064 * … … 9079 8070 * 9080 8071 * References: 9081 @@ -6 2,12 +62,7 @@8072 @@ -61,12 +61,7 @@ 9082 8073 #include <asm/pgtable.h> 9083 8074 #include <asm/uaccess.h> … … 9092 8083 9093 8084 /* 9094 @@ -9 5,6 +90,9 @@8085 @@ -94,6 +89,9 @@ 9095 8086 u32 emcr, ehar_h, ehar_l; 9096 8087 spinlock_t ioc3_lock; … … 9102 8093 9103 8094 /* Members used by autonegotiation */ 9104 @@ -52 2,8 +520,6 @@8095 @@ -521,8 +519,6 @@ 9105 8096 return &ip->stats; 9106 8097 } … … 9111 8102 { 9112 8103 struct ethhdr *eh = eth_hdr(skb); 9113 @@ -59 1,7 +587,6 @@8104 @@ -590,7 +586,6 @@ 9114 8105 if (csum == 0xffff) 9115 8106 skb->ip_summed = CHECKSUM_UNNECESSARY; … … 9119 8110 static inline void ioc3_rx(struct ioc3_private *ip) 9120 8111 { 9121 @@ -62 6,9 +621,9 @@8112 @@ -625,9 +620,9 @@ 9122 8113 goto next; 9123 8114 } … … 9132 8123 netif_rx(skb); 9133 8124 9134 @@ -128 9,9 +1284,7 @@8125 @@ -1288,9 +1283,7 @@ 9135 8126 dev->set_multicast_list = ioc3_set_multicast_list; 9136 8127 dev->set_mac_address = ioc3_set_mac_address; … … 9142 8133 sw_physid1 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID1); 9143 8134 sw_physid2 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID2); 9144 @@ -137 8,7 +1371,6 @@8135 @@ -1377,7 +1370,6 @@ 9145 8136 uint32_t w0 = 0; 9146 8137 int produce; … … 9150 8141 * IOC3 has a fairly simple minded checksumming hardware which simply 9151 8142 * adds up the 1's complement checksum for the entire packet and 9152 @@ -142 6,7 +1418,6 @@8143 @@ -1425,7 +1417,6 @@ 9153 8144 9154 8145 w0 = ETXD_DOCHECKSUM | (csoff << ETXD_CHKOFF_SHIFT); … … 9158 8149 spin_lock_irq(&ip->ioc3_lock); 9159 8150 9160 @@ -15 80,12 +1571,37 @@8151 @@ -1579,12 +1570,37 @@ 9161 8152 return rc; 9162 8153 } … … 9196 8187 9197 8188 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.c9199 --- linux-2.6. 19.1/drivers/net/titan_ge.c 1969-12-31 16:00:00.000000000 -08009200 +++ linux-mips-2.6. 19.1/drivers/net/titan_ge.c 2006-12-11 15:38:26.000000000 -08008189 diff -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 9201 8192 @@ -0,0 +1,2069 @@ 9202 8193 +/* … … 11269 10260 +module_init(titan_ge_init_module); 11270 10261 +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.h11272 --- linux-2.6. 19.1/drivers/net/titan_ge.h 1969-12-31 16:00:00.000000000 -080011273 +++ linux-mips-2.6. 19.1/drivers/net/titan_ge.h 2006-12-11 15:38:26.000000000 -080010262 diff -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 11274 10265 @@ -0,0 +1,415 @@ 11275 10266 +#ifndef _TITAN_GE_H_ … … 11688 10679 +#endif /* _TITAN_GE_H_ */ 11689 10680 + 11690 diff -Naur linux-2.6. 19.1/drivers/net/titan_mdio.c linux-mips-2.6.19.1/drivers/net/titan_mdio.c11691 --- linux-2.6. 19.1/drivers/net/titan_mdio.c 1969-12-31 16:00:00.000000000 -080011692 +++ linux-mips-2.6. 19.1/drivers/net/titan_mdio.c 2006-12-11 15:38:26.000000000 -080010681 diff -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 11693 10684 @@ -0,0 +1,217 @@ 11694 10685 +/* … … 11909 10900 +} 11910 10901 + 11911 diff -Naur linux-2.6. 19.1/drivers/net/titan_mdio.h linux-mips-2.6.19.1/drivers/net/titan_mdio.h11912 --- linux-2.6. 19.1/drivers/net/titan_mdio.h 1969-12-31 16:00:00.000000000 -080011913 +++ linux-mips-2.6. 19.1/drivers/net/titan_mdio.h 2006-12-11 15:38:26.000000000 -080010902 diff -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 11914 10905 @@ -0,0 +1,56 @@ 11915 10906 +/* … … 11969 10960 + 11970 10961 +#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.h11972 --- linux-2.6. 19.1/drivers/scsi/NCR53C9x.h 2006-12-11 11:32:53.000000000 -080011973 +++ linux-mips-2.6. 19.1/drivers/scsi/NCR53C9x.h 2006-12-11 15:38:26.000000000 -080010962 diff -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 11974 10965 @@ -144,12 +144,7 @@ 11975 10966 … … 11986 10977 11987 10978 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.c11989 --- linux-2.6. 19.1/drivers/scsi/dec_esp.c 2006-12-11 11:32:53.000000000 -080011990 +++ linux-mips-2.6. 19.1/drivers/scsi/dec_esp.c 2006-12-11 15:38:26.000000000 -080010979 diff -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 11991 10982 @@ -55,7 +55,7 @@ 11992 10983 … … 12007 10998 esp->dregs = 0; 12008 10999 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.c12010 --- linux-2.6. 19.1/drivers/scsi/sgiwd93.c 2006-12-11 11:32:53.000000000 -080012011 +++ linux-mips-2.6. 19.1/drivers/scsi/sgiwd93.c 2006-12-11 15:38:26.000000000 -080011000 diff -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 12012 11003 @@ -14,6 +14,7 @@ 12013 11004 #include <linux/interrupt.h> … … 12026 11017 static inline void init_hpc_chain(struct hpc_data *hd) 12027 11018 { 12028 diff -Naur linux-2.6. 19.1/drivers/serial/Kconfig linux-mips-2.6.19.1/drivers/serial/Kconfig12029 --- linux-2.6. 19.1/drivers/serial/Kconfig 2006-12-11 11:32:53.000000000 -080012030 +++ linux-mips-2.6. 19.1/drivers/serial/Kconfig 2006-12-11 15:38:26.000000000 -080012031 @@ -6 57,6 +657,25 @@11019 diff -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 @@ 12032 11023 depends on SERIAL_SH_SCI=y 12033 11024 select SERIAL_CORE_CONSOLE … … 12055 11046 tristate 12056 11047 12057 diff -Naur linux-2.6. 19.1/drivers/serial/Makefile linux-mips-2.6.19.1/drivers/serial/Makefile12058 --- linux-2.6. 19.1/drivers/serial/Makefile 2006-12-11 11:32:53.000000000 -080012059 +++ linux-mips-2.6. 19.1/drivers/serial/Makefile 2006-12-11 15:38:26.000000000 -080012060 @@ - 39,6 +39,7 @@11048 diff -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 @@ 12061 11052 obj-$(CONFIG_V850E_UART) += v850e_uart.o 12062 11053 obj-$(CONFIG_SERIAL_PMACZILOG) += pmac_zilog.o … … 12066 11057 obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o 12067 11058 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.c12069 --- linux-2.6. 19.1/drivers/serial/ip22zilog.c 2006-12-11 11:32:53.000000000 -080012070 +++ linux-mips-2.6. 19.1/drivers/serial/ip22zilog.c 2006-12-11 15:38:26.000000000 -080011059 diff -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 12071 11062 @@ -863,6 +863,7 @@ 12072 11063 up->cflag = termios->c_cflag; … … 12086 11077 12087 11078 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.c12089 --- linux-2.6. 19.1/drivers/serial/ip3106_uart.c 1969-12-31 16:00:00.000000000 -080012090 +++ linux-mips-2.6. 19.1/drivers/serial/ip3106_uart.c 2006-12-11 15:38:26.000000000 -080011079 diff -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 12091 11082 @@ -0,0 +1,909 @@ 12092 11083 +/* … … 12999 11990 +MODULE_LICENSE("GPL"); 13000 11991 +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 @@ 11992 diff -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 @@ 13300 11996 Please read the <file:Documentation/fb/README-sstfb.txt> for supported 13301 11997 options and other important info support. … … 13315 12011 tristate "Cyberblade/i1 support" 13316 12012 depends on FB && PCI && X86_32 && !64BIT 13317 @@ -134 1,7 +1352,25 @@12013 @@ -1345,7 +1356,25 @@ 13318 12014 13319 12015 config FB_AU1100 … … 13342 12038 config FB_AU1200 13343 12039 bool "Au1200 LCD Driver" 13344 @@ -14 57,8 +1486,8 @@12040 @@ -1461,8 +1490,8 @@ 13345 12041 select FB_CFB_IMAGEBLIT 13346 12042 help … … 13353 12049 config FB_MAXINE 13354 12050 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/Makefile13356 --- linux-2.6. 19.1/drivers/video/Makefile 2006-12-11 11:32:53.000000000 -080013357 +++ linux-mips-2.6. 19.1/drivers/video/Makefile 2006-12-11 15:38:26.000000000 -080012051 diff -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 13358 12054 @@ -96,6 +96,7 @@ 13359 12055 obj-$(CONFIG_FB_TX3912) += tx3912fb.o … … 13364 12060 obj-$(CONFIG_FB_PNX4008_DUM) += pnx4008/ 13365 12061 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.c13367 --- linux-2.6. 19.1/drivers/video/au1100fb.c 2006-12-11 11:32:53.000000000 -080013368 +++ linux-mips-2.6. 19.1/drivers/video/au1100fb.c 2006-12-11 15:38:26.000000000 -080012062 diff -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 13369 12065 @@ -41,6 +41,7 @@ 13370 12066 * with this program; if not, write to the Free Software Foundation, Inc., … … 13375 12071 #include <linux/kernel.h> 13376 12072 #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.c13378 --- linux-2.6. 19.1/drivers/video/smivgxfb.c 1969-12-31 16:00:00.000000000 -080013379 +++ linux-mips-2.6. 19.1/drivers/video/smivgxfb.c 2006-12-11 15:38:26.000000000 -080012073 diff -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 13380 12076 @@ -0,0 +1,387 @@ 13381 12077 +/*************************************************************************** … … 13766 12462 +MODULE_DESCRIPTION("Framebuffer driver for SMI Voyager"); 13767 12463 +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 12464 diff -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 13862 12467 @@ -518,34 +518,6 @@ 13863 12468 } … … 13895 12500 * to explicitly ioremap() it. The fact that the ISA IO space is mapped 13896 12501 * 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.h13898 --- linux-2.6. 19.1/include/asm-mips/mach-au1x00/au1000.h 2006-12-11 11:32:53.000000000 -080013899 +++ linux-mips-2.6. 19.1/include/asm-mips/mach-au1x00/au1000.h 2006-12-11 15:38:26.000000000 -080012502 diff -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 13900 12505 @@ -39,6 +39,7 @@ 13901 12506 #ifndef _LANGUAGE_ASSEMBLY … … 13906 12511 13907 12512 /* 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 12513 diff -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 13930 12516 @@ -83,6 +83,7 @@ 13931 12517 } _auide_hwif; … … 13936 12522 static const struct drive_list_entry dma_white_list [] = { 13937 12523 /* 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 12524 diff -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 @@ 13944 12528 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); 13946 12540 - 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 12548 diff -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 @@ 14106 12552 #define PCI_VENDOR_ID_SATSAGEM 0x1267 14107 12553 #define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016 … … 14113 12559 #define PCI_VENDOR_ID_ENSONIQ 0x1274 14114 12560 #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.h14116 --- linux-2.6. 19.1/include/linux/serial.h 2006-12-11 11:32:53.000000000 -080014117 +++ linux-mips-2.6. 19.1/include/linux/serial.h 2006-12-11 15:38:26.000000000 -080012561 diff -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 14118 12564 @@ -76,7 +76,8 @@ 14119 12565 #define PORT_16654 11 … … 14126 12572 #define SERIAL_IO_PORT 0 14127 12573 #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.h14129 --- linux-2.6. 19.1/include/linux/serial_ip3106.h 2006-12-11 11:32:53.000000000 -080014130 +++ linux-mips-2.6. 19.1/include/linux/serial_ip3106.h 2006-12-11 15:38:26.000000000 -080012574 diff -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 14131 12577 @@ -78,4 +78,16 @@ 14132 12578 #define IP3106_UART_FIFO_RXFIFO 0x00001F00 … … 14146 12592 + 14147 12593 #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 @@ 12594 diff -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 @@ 14194 12598 select SND_AC97_CODEC 14195 12599 depends on SOUND_PRIME && (SOC_AU1550 || SOC_AU1200) … … 14205 12609 tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core" 14206 12610 depends on SOUND_PRIME && PCI 14207 diff -Naur linux-2.6. 19.1/sound/oss/Makefile linux-mips-2.6.19.1/sound/oss/Makefile14208 --- linux-2.6. 19.1/sound/oss/Makefile 2006-12-11 11:32:53.000000000 -080014209 +++ linux-mips-2.6. 19.1/sound/oss/Makefile 2006-12-11 15:38:26.000000000 -080012611 diff -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 14210 12614 @@ -45,6 +45,7 @@ 14211 12615 obj-$(CONFIG_SOUND_ES1371) += es1371.o ac97_codec.o … … 14216 12620 obj-$(CONFIG_SOUND_TRIDENT) += trident.o ac97_codec.o 14217 12621 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.c14219 --- linux-2.6. 19.1/sound/oss/au1550_i2s.c 1969-12-31 16:00:00.000000000 -080014220 +++ linux-mips-2.6. 19.1/sound/oss/au1550_i2s.c 2006-12-11 15:38:26.000000000 -080012622 diff -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 14221 12625 @@ -0,0 +1,2029 @@ 14222 12626 +/* -
patches/linux-2.6.20-mips_fixes-1.patch
r762f470 r18bf2a3 1 1 Submitted By: Jim Gifford (patches at jg555 dot com) 2 Date: 200 6-11-293 Initial Package Version: 2.6. 192 Date: 2007-02-04 3 Initial Package Version: 2.6.20 4 4 Origin: Linux-MIPS Mailing List 5 5 Upstream Status: Not Applied … … 11 11 3 - Updates to Support N32 only builds 12 12 13 diff -Naur linux- 2.6.19.orig/arch/mips/kernel/Makefile linux-2.6.19/arch/mips/kernel/Makefile14 --- linux- 2.6.19.orig/arch/mips/kernel/Makefile 2006-11-29 13:57:37.000000000 -080015 +++ linux-2.6. 19/arch/mips/kernel/Makefile 2006-11-29 20:06:07.000000000 -080016 @@ -5 7,7 +57,7 @@13 diff -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 @@ 17 17 obj-$(CONFIG_64BIT) += scall64-64.o 18 18 obj-$(CONFIG_BINFMT_IRIX) += binfmt_irix.o … … 23 23 24 24 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/Makefile26 --- linux- 2.6.19.orig/arch/mips/lib/Makefile 2006-11-29 20:05:48.000000000 -080027 +++ linux-2.6. 19/arch/mips/lib/Makefile 2006-11-29 20:06:07.000000000 -080025 diff -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 28 28 @@ -5,6 +5,8 @@ 29 lib-y += csum_partial _copy.o memcpy.o promlib.o strlen_user.o strncpy_user.o \30 str nlen_user.o uncached.o29 lib-y += csum_partial.o memcpy.o promlib.o \ 30 strlen_user.o strncpy_user.o strnlen_user.o uncached.o 31 31 32 32 +obj-y += iomap.o … … 35 35 lib-y += ashldi3.o ashrdi3.o lshrdi3.o 36 36 37 diff -Naur linux- 2.6.19.orig/arch/mips/lib/iomap.c linux-2.6.19/arch/mips/lib/iomap.c38 --- linux- 2.6.19.orig/arch/mips/lib/iomap.c 1969-12-31 16:00:00.000000000 -080039 +++ linux-2.6. 19/arch/mips/lib/iomap.c 2006-11-29 20:06:07.000000000 -080037 diff -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 40 40 @@ -0,0 +1,78 @@ 41 41 +/* … … 117 117 +EXPORT_SYMBOL(pci_iomap); 118 118 +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.h120 --- linux- 2.6.19.orig/include/asm-mips/io.h 2006-11-29 20:05:48.000000000 -0800121 +++ linux-2.6. 19/include/asm-mips/io.h 2006-11-29 20:06:07.000000000 -0800119 diff -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 122 122 @@ -518,6 +518,34 @@ 123 123 } … … 155 155 * to explicitly ioremap() it. The fact that the ISA IO space is mapped 156 156 * 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.h158 --- linux- 2.6.19.orig/include/asm-mips/mach-cobalt/ide.h 1969-12-31 16:00:00.000000000 -0800159 +++ linux-2.6. 19/include/asm-mips/mach-cobalt/ide.h 2006-11-29 20:06:07.000000000 -0800157 diff -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 160 160 @@ -0,0 +1,83 @@ 161 161 + -
patches/linux-2.6.20-tulip-1.patch
r762f470 r18bf2a3 1 1 Submitted By: Jim Gifford (patches at jg555 dot com) 2 Date: 200 6-11-293 Initial Package Version: 2.6. 192 Date: 2007-02-04 3 Initial Package Version: 2.6.20 4 4 Origin: Grant Gundler (parisc linux) 5 5 Upstream Status: in -mm 6 6 Description: Make the tulip drivers follow the chipset specs 7 7 8 diff -Naur linux-2.6. 19.orig/drivers/net/tulip/21142.c linux-2.6.19/drivers/net/tulip/21142.c9 --- linux-2.6. 19.orig/drivers/net/tulip/21142.c 2006-11-29 13:57:37.000000000 -080010 +++ linux-2.6. 19/drivers/net/tulip/21142.c 2006-11-29 19:27:20.000000000 -080011 @@ -17 2,7 +172,7 @@8 diff -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 @@ 12 12 int i; 13 13 for (i = 0; i < tp->mtable->leafcount; i++) … … 18 18 tulip_select_media(dev, startup); 19 19 setup_done = 1; 20 diff -Naur linux-2.6. 19.orig/drivers/net/tulip/media.c linux-2.6.19/drivers/net/tulip/media.c21 --- linux-2.6. 19.orig/drivers/net/tulip/media.c 2006-11-29 13:57:37.000000000 -080022 +++ linux-2.6. 19/drivers/net/tulip/media.c 2006-11-29 19:27:20.000000000 -080020 diff -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 23 23 @@ -44,8 +44,10 @@ 24 24 … … 92 92 if (tmp_info) 93 93 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.h95 --- linux-2.6. 19.orig/drivers/net/tulip/tulip.h 2006-11-29 13:57:37.000000000 -080096 +++ linux-2.6. 19/drivers/net/tulip/tulip.h 2006-11-29 19:27:20.000000000 -080097 @@ -48 1,8 +481,11 @@94 diff -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 @@ 98 98 udelay(10); 99 99 … … 109 109 } 110 110 111 diff -Naur linux-2.6. 19.orig/drivers/net/tulip/tulip_core.c linux-2.6.19/drivers/net/tulip/tulip_core.c112 --- linux-2.6. 19.orig/drivers/net/tulip/tulip_core.c 2006-11-29 13:57:37.000000000 -0800113 +++ linux-2.6. 19/drivers/net/tulip/tulip_core.c 2006-11-29 19:27:20.000000000 -0800111 diff -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 114 114 @@ -21,7 +21,7 @@ 115 115 #else … … 121 121 122 122 #include <linux/module.h> 123
Note:
See TracChangeset
for help on using the changeset viewer.