Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus

+286 -191
+1 -9
arch/mips/Kconfig
··· 1471 1471 1472 1472 config 64BIT_PHYS_ADDR 1473 1473 bool "Support for 64-bit physical address space" 1474 - depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32_R1 || CPU_MIPS64_R1) && 32BIT 1474 + depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT 1475 1475 1476 1476 config CPU_ADVANCED 1477 1477 bool "Override CPU Options" ··· 1491 1491 Say Y here if your CPU has the ll and sc instructions. Say Y here 1492 1492 for better performance, N if you don't know. You must say Y here 1493 1493 for multiprocessor machines. 1494 - 1495 - config CPU_HAS_LLDSCD 1496 - bool "lld/scd Instructions available" if CPU_ADVANCED 1497 - default y if !CPU_ADVANCED && !CPU_R3000 && !CPU_VR41XX && !CPU_TX39XX && !CPU_MIPS32_R1 1498 - help 1499 - Say Y here if your CPU has the lld and scd instructions, the 64-bit 1500 - equivalents of ll and sc. Say Y here for better performance, N if 1501 - you don't know. You must say Y here for multiprocessor machines. 1502 1494 1503 1495 config CPU_HAS_WB 1504 1496 bool "Writeback Buffer available" if CPU_ADVANCED
-1
arch/mips/Makefile
··· 93 93 # 94 94 cflags-y += -I $(TOPDIR)/include/asm/gcc 95 95 cflags-y += -G 0 -mno-abicalls -fno-pic -pipe 96 - cflags-y += $(call cc-option, -finline-limit=100000) 97 96 LDFLAGS_vmlinux += -G 0 -static -n -nostdlib 98 97 MODFLAGS += -mlong-calls 99 98
-1
arch/mips/configs/bigsur_defconfig
··· 130 130 # CONFIG_SIBYTE_DMA_PAGEOPS is not set 131 131 # CONFIG_MIPS_MT is not set 132 132 CONFIG_CPU_HAS_LLSC=y 133 - CONFIG_CPU_HAS_LLDSCD=y 134 133 CONFIG_CPU_HAS_SYNC=y 135 134 CONFIG_GENERIC_HARDIRQS=y 136 135 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/cobalt_defconfig
··· 115 115 # CONFIG_MIPS_MT is not set 116 116 # CONFIG_CPU_ADVANCED is not set 117 117 CONFIG_CPU_HAS_LLSC=y 118 - CONFIG_CPU_HAS_LLDSCD=y 119 118 CONFIG_CPU_HAS_SYNC=y 120 119 CONFIG_GENERIC_HARDIRQS=y 121 120 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ddb5476_defconfig
··· 116 116 # CONFIG_MIPS_MT is not set 117 117 # CONFIG_CPU_ADVANCED is not set 118 118 CONFIG_CPU_HAS_LLSC=y 119 - CONFIG_CPU_HAS_LLDSCD=y 120 119 CONFIG_CPU_HAS_SYNC=y 121 120 CONFIG_GENERIC_HARDIRQS=y 122 121 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ddb5477_defconfig
··· 116 116 # CONFIG_MIPS_MT is not set 117 117 # CONFIG_CPU_ADVANCED is not set 118 118 CONFIG_CPU_HAS_LLSC=y 119 - CONFIG_CPU_HAS_LLDSCD=y 120 119 CONFIG_CPU_HAS_SYNC=y 121 120 CONFIG_GENERIC_HARDIRQS=y 122 121 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ev64120_defconfig
··· 118 118 # CONFIG_64BIT_PHYS_ADDR is not set 119 119 # CONFIG_CPU_ADVANCED is not set 120 120 CONFIG_CPU_HAS_LLSC=y 121 - CONFIG_CPU_HAS_LLDSCD=y 122 121 CONFIG_CPU_HAS_SYNC=y 123 122 CONFIG_GENERIC_HARDIRQS=y 124 123 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ev96100_defconfig
··· 121 121 # CONFIG_64BIT_PHYS_ADDR is not set 122 122 # CONFIG_CPU_ADVANCED is not set 123 123 CONFIG_CPU_HAS_LLSC=y 124 - CONFIG_CPU_HAS_LLDSCD=y 125 124 CONFIG_CPU_HAS_SYNC=y 126 125 CONFIG_GENERIC_HARDIRQS=y 127 126 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ip22_defconfig
··· 123 123 # CONFIG_64BIT_PHYS_ADDR is not set 124 124 # CONFIG_CPU_ADVANCED is not set 125 125 CONFIG_CPU_HAS_LLSC=y 126 - CONFIG_CPU_HAS_LLDSCD=y 127 126 CONFIG_CPU_HAS_SYNC=y 128 127 CONFIG_GENERIC_HARDIRQS=y 129 128 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ip27_defconfig
··· 119 119 CONFIG_CPU_HAS_PREFETCH=y 120 120 # CONFIG_MIPS_MT is not set 121 121 CONFIG_CPU_HAS_LLSC=y 122 - CONFIG_CPU_HAS_LLDSCD=y 123 122 CONFIG_CPU_HAS_SYNC=y 124 123 CONFIG_GENERIC_HARDIRQS=y 125 124 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ip32_defconfig
··· 121 121 CONFIG_RM7000_CPU_SCACHE=y 122 122 # CONFIG_MIPS_MT is not set 123 123 CONFIG_CPU_HAS_LLSC=y 124 - CONFIG_CPU_HAS_LLDSCD=y 125 124 CONFIG_CPU_HAS_SYNC=y 126 125 CONFIG_GENERIC_HARDIRQS=y 127 126 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/it8172_defconfig
··· 117 117 # CONFIG_MIPS_MT is not set 118 118 # CONFIG_CPU_ADVANCED is not set 119 119 CONFIG_CPU_HAS_LLSC=y 120 - CONFIG_CPU_HAS_LLDSCD=y 121 120 CONFIG_CPU_HAS_SYNC=y 122 121 CONFIG_GENERIC_HARDIRQS=y 123 122 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ivr_defconfig
··· 114 114 # CONFIG_MIPS_MT is not set 115 115 # CONFIG_CPU_ADVANCED is not set 116 116 CONFIG_CPU_HAS_LLSC=y 117 - CONFIG_CPU_HAS_LLDSCD=y 118 117 CONFIG_CPU_HAS_SYNC=y 119 118 CONFIG_GENERIC_HARDIRQS=y 120 119 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/jaguar-atx_defconfig
··· 124 124 # CONFIG_64BIT_PHYS_ADDR is not set 125 125 # CONFIG_CPU_ADVANCED is not set 126 126 CONFIG_CPU_HAS_LLSC=y 127 - CONFIG_CPU_HAS_LLDSCD=y 128 127 CONFIG_CPU_HAS_SYNC=y 129 128 CONFIG_GENERIC_HARDIRQS=y 130 129 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/lasat200_defconfig
··· 121 121 # CONFIG_64BIT_PHYS_ADDR is not set 122 122 # CONFIG_CPU_ADVANCED is not set 123 123 CONFIG_CPU_HAS_LLSC=y 124 - CONFIG_CPU_HAS_LLDSCD=y 125 124 CONFIG_CPU_HAS_SYNC=y 126 125 CONFIG_GENERIC_HARDIRQS=y 127 126 CONFIG_GENERIC_IRQ_PROBE=y
+5 -5
arch/mips/configs/malta_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.15-rc2 4 - # Thu Nov 24 01:06:35 2005 3 + # Linux kernel version: 2.6.15-rc5 4 + # Fri Dec 23 02:21:03 2005 5 5 # 6 6 CONFIG_MIPS=y 7 7 ··· 87 87 # 88 88 # CPU selection 89 89 # 90 - CONFIG_CPU_MIPS32_R1=y 91 - # CONFIG_CPU_MIPS32_R2 is not set 90 + # CONFIG_CPU_MIPS32_R1 is not set 91 + CONFIG_CPU_MIPS32_R2=y 92 92 # CONFIG_CPU_MIPS64_R1 is not set 93 93 # CONFIG_CPU_MIPS64_R2 is not set 94 94 # CONFIG_CPU_R3000 is not set ··· 112 112 CONFIG_SYS_HAS_CPU_NEVADA=y 113 113 CONFIG_SYS_HAS_CPU_RM7000=y 114 114 CONFIG_CPU_MIPS32=y 115 - CONFIG_CPU_MIPSR1=y 115 + CONFIG_CPU_MIPSR2=y 116 116 CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 117 117 CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y 118 118 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-1
arch/mips/configs/ocelot_3_defconfig
··· 122 122 # CONFIG_64BIT_PHYS_ADDR is not set 123 123 # CONFIG_CPU_ADVANCED is not set 124 124 CONFIG_CPU_HAS_LLSC=y 125 - CONFIG_CPU_HAS_LLDSCD=y 126 125 CONFIG_CPU_HAS_SYNC=y 127 126 CONFIG_GENERIC_HARDIRQS=y 128 127 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ocelot_c_defconfig
··· 118 118 CONFIG_CPU_HAS_PREFETCH=y 119 119 # CONFIG_MIPS_MT is not set 120 120 CONFIG_CPU_HAS_LLSC=y 121 - CONFIG_CPU_HAS_LLDSCD=y 122 121 CONFIG_CPU_HAS_SYNC=y 123 122 CONFIG_GENERIC_HARDIRQS=y 124 123 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ocelot_defconfig
··· 123 123 # CONFIG_64BIT_PHYS_ADDR is not set 124 124 # CONFIG_CPU_ADVANCED is not set 125 125 CONFIG_CPU_HAS_LLSC=y 126 - CONFIG_CPU_HAS_LLDSCD=y 127 126 CONFIG_CPU_HAS_SYNC=y 128 127 CONFIG_GENERIC_HARDIRQS=y 129 128 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/ocelot_g_defconfig
··· 121 121 CONFIG_CPU_HAS_PREFETCH=y 122 122 # CONFIG_MIPS_MT is not set 123 123 CONFIG_CPU_HAS_LLSC=y 124 - CONFIG_CPU_HAS_LLDSCD=y 125 124 CONFIG_CPU_HAS_SYNC=y 126 125 CONFIG_GENERIC_HARDIRQS=y 127 126 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/pnx8550-v2pci_defconfig
··· 116 116 # CONFIG_64BIT_PHYS_ADDR is not set 117 117 CONFIG_CPU_ADVANCED=y 118 118 CONFIG_CPU_HAS_LLSC=y 119 - # CONFIG_CPU_HAS_LLDSCD is not set 120 119 # CONFIG_CPU_HAS_WB is not set 121 120 CONFIG_CPU_HAS_SYNC=y 122 121 CONFIG_GENERIC_HARDIRQS=y
-1
arch/mips/configs/rbhma4500_defconfig
··· 124 124 # CONFIG_MIPS_MT is not set 125 125 CONFIG_CPU_ADVANCED=y 126 126 CONFIG_CPU_HAS_LLSC=y 127 - CONFIG_CPU_HAS_LLDSCD=y 128 127 CONFIG_CPU_HAS_WB=y 129 128 CONFIG_CPU_HAS_SYNC=y 130 129 CONFIG_GENERIC_HARDIRQS=y
-1
arch/mips/configs/rm200_defconfig
··· 124 124 # CONFIG_64BIT_PHYS_ADDR is not set 125 125 # CONFIG_CPU_ADVANCED is not set 126 126 CONFIG_CPU_HAS_LLSC=y 127 - CONFIG_CPU_HAS_LLDSCD=y 128 127 CONFIG_CPU_HAS_SYNC=y 129 128 CONFIG_GENERIC_HARDIRQS=y 130 129 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/sb1250-swarm_defconfig
··· 133 133 # CONFIG_MIPS_MT is not set 134 134 CONFIG_SB1_PASS_1_WORKAROUNDS=y 135 135 CONFIG_CPU_HAS_LLSC=y 136 - CONFIG_CPU_HAS_LLDSCD=y 137 136 CONFIG_CPU_HAS_SYNC=y 138 137 CONFIG_GENERIC_HARDIRQS=y 139 138 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/configs/yosemite_defconfig
··· 118 118 # CONFIG_64BIT_PHYS_ADDR is not set 119 119 # CONFIG_CPU_ADVANCED is not set 120 120 CONFIG_CPU_HAS_LLSC=y 121 - CONFIG_CPU_HAS_LLDSCD=y 122 121 CONFIG_CPU_HAS_SYNC=y 123 122 CONFIG_GENERIC_HARDIRQS=y 124 123 CONFIG_GENERIC_IRQ_PROBE=y
-1
arch/mips/defconfig
··· 123 123 # CONFIG_64BIT_PHYS_ADDR is not set 124 124 # CONFIG_CPU_ADVANCED is not set 125 125 CONFIG_CPU_HAS_LLSC=y 126 - CONFIG_CPU_HAS_LLDSCD=y 127 126 CONFIG_CPU_HAS_SYNC=y 128 127 CONFIG_GENERIC_HARDIRQS=y 129 128 CONFIG_GENERIC_IRQ_PROBE=y
+32 -7
arch/mips/kernel/cpu-probe.c
··· 435 435 } 436 436 } 437 437 438 + static char unknown_isa[] __initdata = KERN_ERR \ 439 + "Unsupported ISA type, c0.config0: %d."; 440 + 438 441 static inline unsigned int decode_config0(struct cpuinfo_mips *c) 439 442 { 440 443 unsigned int config0; ··· 450 447 isa = (config0 & MIPS_CONF_AT) >> 13; 451 448 switch (isa) { 452 449 case 0: 453 - c->isa_level = MIPS_CPU_ISA_M32; 450 + switch ((config0 >> 10) & 7) { 451 + case 0: 452 + c->isa_level = MIPS_CPU_ISA_M32R1; 453 + break; 454 + case 1: 455 + c->isa_level = MIPS_CPU_ISA_M32R2; 456 + break; 457 + default: 458 + goto unknown; 459 + } 454 460 break; 455 461 case 2: 456 - c->isa_level = MIPS_CPU_ISA_M64; 462 + switch ((config0 >> 10) & 7) { 463 + case 0: 464 + c->isa_level = MIPS_CPU_ISA_M64R1; 465 + break; 466 + case 1: 467 + c->isa_level = MIPS_CPU_ISA_M64R2; 468 + break; 469 + default: 470 + goto unknown; 471 + } 457 472 break; 458 473 default: 459 - panic("Unsupported ISA type, cp0.config0.at: %d.", isa); 474 + goto unknown; 460 475 } 461 476 462 477 return config0 & MIPS_CONF_M; 478 + 479 + unknown: 480 + panic(unknown_isa, config0); 463 481 } 464 482 465 483 static inline unsigned int decode_config1(struct cpuinfo_mips *c) ··· 592 568 break; 593 569 case PRID_IMP_34K: 594 570 c->cputype = CPU_34K; 595 - c->isa_level = MIPS_CPU_ISA_M32; 596 571 break; 597 572 } 598 573 } ··· 670 647 switch (c->processor_id & 0xff00) { 671 648 case PRID_IMP_PR4450: 672 649 c->cputype = CPU_PR4450; 673 - c->isa_level = MIPS_CPU_ISA_M32; 650 + c->isa_level = MIPS_CPU_ISA_M32R1; 674 651 break; 675 652 default: 676 653 panic("Unknown Philips Core!"); /* REVISIT: die? */ ··· 713 690 if (c->options & MIPS_CPU_FPU) { 714 691 c->fpu_id = cpu_get_fpu_id(); 715 692 716 - if (c->isa_level == MIPS_CPU_ISA_M32 || 717 - c->isa_level == MIPS_CPU_ISA_M64) { 693 + if (c->isa_level == MIPS_CPU_ISA_M32R1 || 694 + c->isa_level == MIPS_CPU_ISA_M32R2 || 695 + c->isa_level == MIPS_CPU_ISA_M64R1 || 696 + c->isa_level == MIPS_CPU_ISA_M64R2) { 718 697 if (c->fpu_id & MIPS_FPIR_3D) 719 698 c->ases |= MIPS_ASE_MIPS3D; 720 699 }
+2 -2
arch/mips/kernel/process.c
··· 205 205 return 1; 206 206 } 207 207 208 - void dump_regs(elf_greg_t *gp, struct pt_regs *regs) 208 + void elf_dump_regs(elf_greg_t *gp, struct pt_regs *regs) 209 209 { 210 210 int i; 211 211 ··· 231 231 { 232 232 struct thread_info *ti = tsk->thread_info; 233 233 long ksp = (unsigned long)ti + THREAD_SIZE - 32; 234 - dump_regs(&(*regs)[0], (struct pt_regs *) ksp - 1); 234 + elf_dump_regs(&(*regs)[0], (struct pt_regs *) ksp - 1); 235 235 return 1; 236 236 } 237 237
+2 -6
arch/mips/kernel/ptrace.c
··· 280 280 ret = -EIO; 281 281 goto out; 282 282 } 283 - if (child->thread.dsp.used_dsp) { 284 - dregs = __get_dsp_regs(child); 285 - tmp = (unsigned long) (dregs[addr - DSP_BASE]); 286 - } else { 287 - tmp = -1; /* DSP registers yet used */ 288 - } 283 + dregs = __get_dsp_regs(child); 284 + tmp = (unsigned long) (dregs[addr - DSP_BASE]); 289 285 break; 290 286 } 291 287 case DSP_CONTROL:
+2 -6
arch/mips/kernel/ptrace32.c
··· 201 201 ret = -EIO; 202 202 goto out_tsk; 203 203 } 204 - if (child->thread.dsp.used_dsp) { 205 - dspreg_t *dregs = __get_dsp_regs(child); 206 - tmp = (unsigned long) (dregs[addr - DSP_BASE]); 207 - } else { 208 - tmp = -1; /* DSP registers yet used */ 209 - } 204 + dspreg_t *dregs = __get_dsp_regs(child); 205 + tmp = (unsigned long) (dregs[addr - DSP_BASE]); 210 206 break; 211 207 case DSP_CONTROL: 212 208 if (!cpu_has_dsp) {
+1 -1
arch/mips/kernel/signal32.c
··· 588 588 err |= __put_user(regs->hi, &sc->sc_mdhi); 589 589 err |= __put_user(regs->lo, &sc->sc_mdlo); 590 590 if (cpu_has_dsp) { 591 - err |= __put_user(rddsp(DSP_MASK), &sc->sc_hi1); 591 + err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); 592 592 err |= __put_user(mfhi1(), &sc->sc_hi1); 593 593 err |= __put_user(mflo1(), &sc->sc_lo1); 594 594 err |= __put_user(mfhi2(), &sc->sc_hi2);
+29 -5
arch/mips/kernel/time.c
··· 507 507 return IRQ_HANDLED; 508 508 } 509 509 510 + int null_perf_irq(struct pt_regs *regs) 511 + { 512 + return 0; 513 + } 514 + 515 + int (*perf_irq)(struct pt_regs *regs) = null_perf_irq; 516 + 517 + EXPORT_SYMBOL(null_perf_irq); 518 + EXPORT_SYMBOL(perf_irq); 519 + 510 520 asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs) 511 521 { 522 + int r2 = cpu_has_mips_r2; 523 + 512 524 irq_enter(); 513 525 kstat_this_cpu.irqs[irq]++; 514 526 515 - /* we keep interrupt disabled all the time */ 516 - timer_interrupt(irq, NULL, regs); 527 + /* 528 + * Suckage alert: 529 + * Before R2 of the architecture there was no way to see if a 530 + * performance counter interrupt was pending, so we have to run the 531 + * performance counter interrupt handler anyway. 532 + */ 533 + if (!r2 || (read_c0_cause() & (1 << 26))) 534 + if (perf_irq(regs)) 535 + goto out; 517 536 537 + /* we keep interrupt disabled all the time */ 538 + if (!r2 || (read_c0_cause() & (1 << 30))) 539 + timer_interrupt(irq, NULL, regs); 540 + 541 + out: 518 542 irq_exit(); 519 543 } 520 544 ··· 652 628 mips_hpt_init = c0_hpt_init; 653 629 } 654 630 655 - if ((current_cpu_data.isa_level == MIPS_CPU_ISA_M32) || 656 - (current_cpu_data.isa_level == MIPS_CPU_ISA_I) || 657 - (current_cpu_data.isa_level == MIPS_CPU_ISA_II)) 631 + if (cpu_has_mips32r1 || cpu_has_mips32r2 || 632 + (current_cpu_data.isa_level == MIPS_CPU_ISA_I) || 633 + (current_cpu_data.isa_level == MIPS_CPU_ISA_II)) 658 634 /* 659 635 * We need to calibrate the counter but we don't have 660 636 * 64-bit division.
+4 -4
arch/mips/kernel/vpe.c
··· 99 99 100 100 /* elfloader stuff */ 101 101 void *load_addr; 102 - u32 len; 102 + unsigned long len; 103 103 char *pbuffer; 104 - u32 plen; 104 + unsigned long plen; 105 105 106 106 unsigned long __start; 107 107 ··· 253 253 } 254 254 255 255 /* Find some VPE program space */ 256 - static void *alloc_progmem(u32 len) 256 + static void *alloc_progmem(unsigned long len) 257 257 { 258 258 #ifdef CONFIG_MIPS_VPE_LOADER_TOM 259 259 /* this means you must tell linux to use less memory than you physically have */ 260 - return (void *)((max_pfn * PAGE_SIZE) + KSEG0); 260 + return pfn_to_kaddr(max_pfn); 261 261 #else 262 262 // simple grab some mem for now 263 263 return kmalloc(len, GFP_KERNEL);
+1 -1
arch/mips/lib/iomap.c
··· 3 3 * 4 4 * This code is based on lib/iomap.c, by Linus Torvalds. 5 5 * 6 - * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by
-2
arch/mips/math-emu/dp_fint.c
··· 33 33 34 34 CLEARCX; 35 35 36 - xc = ( 0 ? xc : xc ); 37 - 38 36 if (x == 0) 39 37 return ieee754dp_zero(0); 40 38 if (x == 1 || x == -1)
-2
arch/mips/math-emu/dp_flong.c
··· 33 33 34 34 CLEARCX; 35 35 36 - xc = ( 0 ? xc : xc ); 37 - 38 36 if (x == 0) 39 37 return ieee754dp_zero(0); 40 38 if (x == 1 || x == -1)
-2
arch/mips/math-emu/sp_fint.c
··· 33 33 34 34 CLEARCX; 35 35 36 - xc = ( 0 ? xc : xc ); 37 - 38 36 if (x == 0) 39 37 return ieee754sp_zero(0); 40 38 if (x == 1 || x == -1)
-2
arch/mips/math-emu/sp_flong.c
··· 33 33 34 34 CLEARCX; 35 35 36 - xc = ( 0 ? xc : xc ); 37 - 38 36 if (x == 0) 39 37 return ieee754sp_zero(0); 40 38 if (x == 1 || x == -1)
+18 -15
arch/mips/mips-boards/generic/time.c
··· 75 75 do_IRQ (mips_cpu_timer_irq, regs); 76 76 } 77 77 78 + extern int null_perf_irq(struct pt_regs *regs); 79 + 80 + extern int (*perf_irq)(struct pt_regs *regs); 81 + 78 82 irqreturn_t mips_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 79 83 { 80 - #ifdef CONFIG_SMP 84 + int r2 = cpu_has_mips_r2; 81 85 int cpu = smp_processor_id(); 82 86 83 87 if (cpu == 0) { 84 88 /* 85 - * CPU 0 handles the global timer interrupt job and process accounting 86 - * resets count/compare registers to trigger next timer int. 89 + * CPU 0 handles the global timer interrupt job and process 90 + * accounting resets count/compare registers to trigger next 91 + * timer int. 87 92 */ 88 - (void) timer_interrupt(irq, dev_id, regs); 93 + if (!r2 || (read_c0_cause() & (1 << 26))) 94 + if (perf_irq(regs)) 95 + goto out; 96 + 97 + /* we keep interrupt disabled all the time */ 98 + if (!r2 || (read_c0_cause() & (1 << 30))) 99 + timer_interrupt(irq, NULL, regs); 100 + 89 101 scroll_display_message(); 90 - } 91 - else { 102 + } else { 92 103 /* Everyone else needs to reset the timer int here as 93 104 ll_local_timer_interrupt doesn't */ 94 105 /* ··· 114 103 local_timer_interrupt (irq, dev_id, regs); 115 104 } 116 105 106 + out: 117 107 return IRQ_HANDLED; 118 - #else 119 - irqreturn_t r; 120 - 121 - r = timer_interrupt(irq, dev_id, regs); 122 - 123 - scroll_display_message(); 124 - 125 - return r; 126 - #endif 127 108 } 128 109 129 110 /*
+2 -2
arch/mips/mm/c-r4k.c
··· 1183 1183 if (!sc_present) 1184 1184 return; 1185 1185 1186 - if ((c->isa_level == MIPS_CPU_ISA_M32 || 1187 - c->isa_level == MIPS_CPU_ISA_M64) && 1186 + if ((c->isa_level == MIPS_CPU_ISA_M32R1 || 1187 + c->isa_level == MIPS_CPU_ISA_M64R1) && 1188 1188 !(c->scache.flags & MIPS_CACHE_NOT_PRESENT)) 1189 1189 panic("Dunno how to handle MIPS32 / MIPS64 second level cache"); 1190 1190
+3
arch/mips/oprofile/common.c
··· 75 75 int res; 76 76 77 77 switch (current_cpu_data.cputype) { 78 + case CPU_5KC: 79 + case CPU_20KC: 78 80 case CPU_24K: 81 + case CPU_25KF: 79 82 lmodel = &op_model_mipsxx; 80 83 break; 81 84
+2 -2
arch/mips/oprofile/op_impl.h
··· 12 12 13 13 struct pt_regs; 14 14 15 - extern void null_perf_irq(struct pt_regs *regs); 16 - extern void (*perf_irq)(struct pt_regs *regs); 15 + extern int null_perf_irq(struct pt_regs *regs); 16 + extern int (*perf_irq)(struct pt_regs *regs); 17 17 18 18 /* Per-counter configuration as set via oprofilefs. */ 19 19 struct op_counter_config {
+20 -2
arch/mips/oprofile/op_model_mipsxx.c
··· 114 114 } 115 115 } 116 116 117 - static void mipsxx_perfcount_handler(struct pt_regs *regs) 117 + static int mipsxx_perfcount_handler(struct pt_regs *regs) 118 118 { 119 119 unsigned int counters = op_model_mipsxx.num_counters; 120 120 unsigned int control; 121 121 unsigned int counter; 122 + int handled = 0; 122 123 123 124 switch (counters) { 124 125 #define HANDLE_COUNTER(n) \ ··· 130 129 (counter & M_COUNTER_OVERFLOW)) { \ 131 130 oprofile_add_sample(regs, n); \ 132 131 write_c0_perfcntr ## n(reg.counter[n]); \ 132 + handled = 1; \ 133 133 } 134 134 HANDLE_COUNTER(3) 135 135 HANDLE_COUNTER(2) 136 136 HANDLE_COUNTER(1) 137 137 HANDLE_COUNTER(0) 138 138 } 139 + 140 + return handled; 139 141 } 140 142 141 143 #define M_CONFIG1_PC (1 << 4) ··· 180 176 int counters; 181 177 182 178 counters = n_counters(); 183 - if (counters == 0) 179 + if (counters == 0) { 180 + printk(KERN_ERR "Oprofile: CPU has no performance counters\n"); 184 181 return -ENODEV; 182 + } 185 183 186 184 reset_counters(counters); 187 185 188 186 op_model_mipsxx.num_counters = counters; 189 187 switch (current_cpu_data.cputype) { 188 + case CPU_20KC: 189 + op_model_mipsxx.cpu_type = "mips/20K"; 190 + break; 191 + 190 192 case CPU_24K: 191 193 op_model_mipsxx.cpu_type = "mips/24K"; 194 + break; 195 + 196 + case CPU_25KF: 197 + op_model_mipsxx.cpu_type = "mips/25K"; 198 + break; 199 + 200 + case CPU_5KC: 201 + op_model_mipsxx.cpu_type = "mips/5K"; 192 202 break; 193 203 194 204 default:
+1 -1
arch/mips/pci/fixup-capcella.c
··· 1 1 /* 2 2 * fixup-cappcela.c, The ZAO Networks Capcella specific PCI fixups. 3 3 * 4 - * Copyright (C) 2002,2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002,2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/pci/fixup-mpc30x.c
··· 1 1 /* 2 2 * fixup-mpc30x.c, The Victor MP-C303/304 specific PCI fixups. 3 3 * 4 - * Copyright (C) 2002,2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002,2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/pci/fixup-tb0219.c
··· 2 2 * fixup-tb0219.c, The TANBAC TB0219 specific PCI fixups. 3 3 * 4 4 * Copyright (C) 2003 Megasolution Inc. <matsu@megasolution.jp> 5 - * Copyright (C) 2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 5 + * Copyright (C) 2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 6 6 * 7 7 * This program is free software; you can redistribute it and/or modify 8 8 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/pci/fixup-tb0226.c
··· 1 1 /* 2 2 * fixup-tb0226.c, The TANBAC TB0226 specific PCI fixups. 3 3 * 4 - * Copyright (C) 2002-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/pci/fixup-tb0287.c
··· 1 1 /* 2 2 * fixup-tb0287.c, The TANBAC TB0287 specific PCI fixups. 3 3 * 4 - * Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/pci/ops-vr41xx.c
··· 3 3 * 4 4 * Copyright (C) 2001-2003 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 6 - * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/pci/pci-vr41xx.c
··· 3 3 * 4 4 * Copyright (C) 2001-2003 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 6 - * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org) 8 8 * 9 9 * This program is free software; you can redistribute it and/or modify
+1 -1
arch/mips/pci/pci-vr41xx.h
··· 3 3 * 4 4 * Copyright (C) 2002 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 6 - * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/vr41xx/casio-e55/setup.c
··· 1 1 /* 2 2 * setup.c, Setup for the CASIO CASSIOPEIA E-11/15/55/65. 3 3 * 4 - * Copyright (C) 2002-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+2 -2
arch/mips/vr41xx/common/bcu.c
··· 3 3 * 4 4 * Copyright (C) 2002 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com> 6 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by ··· 25 25 * - New creation, NEC VR4122 and VR4131 are supported. 26 26 * - Added support for NEC VR4111 and VR4121. 27 27 * 28 - * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 28 + * Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 29 29 * - Added support for NEC VR4133. 30 30 */ 31 31 #include <linux/kernel.h>
+2 -2
arch/mips/vr41xx/common/cmu.c
··· 3 3 * 4 4 * Copyright (C) 2001-2002 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 6 - * Copuright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copuright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by ··· 25 25 * - New creation, NEC VR4122 and VR4131 are supported. 26 26 * - Added support for NEC VR4111 and VR4121. 27 27 * 28 - * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 28 + * Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 29 29 * - Added support for NEC VR4133. 30 30 */ 31 31 #include <linux/init.h>
+2 -2
arch/mips/vr41xx/common/icu.c
··· 3 3 * 4 4 * Copyright (C) 2001-2002 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 6 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by ··· 25 25 * - New creation, NEC VR4122 and VR4131 are supported. 26 26 * - Added support for NEC VR4111 and VR4121. 27 27 * 28 - * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 28 + * Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 29 29 * - Coped with INTASSIGN of NEC VR4133. 30 30 */ 31 31 #include <linux/errno.h>
+1 -1
arch/mips/vr41xx/common/init.c
··· 1 1 /* 2 2 * init.c, Common initialization routines for NEC VR4100 series. 3 3 * 4 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/vr41xx/common/int-handler.S
··· 35 35 * MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com> 36 36 * - New creation, NEC VR4100 series are supported. 37 37 * 38 - * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 38 + * Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 39 39 * - Coped with INTASSIGN of NEC VR4133. 40 40 */ 41 41 #include <asm/asm.h>
+1 -1
arch/mips/vr41xx/common/irq.c
··· 1 1 /* 2 2 * Interrupt handing routines for NEC VR4100 series. 3 3 * 4 - * Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/vr41xx/common/pmu.c
··· 1 1 /* 2 2 * pmu.c, Power Management Unit routines for NEC VR4100 series. 3 3 * 4 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/vr41xx/common/type.c
··· 1 1 /* 2 2 * type.c, System type for NEC VR4100 series. 3 3 * 4 - * Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
arch/mips/vr41xx/common/vrc4173.c
··· 3 3 * 4 4 * Copyright (C) 2001-2003 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com> 6 - * Copyright (C) 2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) 8 8 * 9 9 * This program is free software; you can redistribute it and/or modify
+1 -1
arch/mips/vr41xx/ibm-workpad/setup.c
··· 1 1 /* 2 2 * setup.c, Setup for the IBM WorkPad z50. 3 3 * 4 - * Copyright (C) 2002-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+2 -2
drivers/char/tb0219.c
··· 1 1 /* 2 2 * Driver for TANBAC TB0219 base board. 3 3 * 4 - * Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by ··· 27 27 #include <asm/vr41xx/giu.h> 28 28 #include <asm/vr41xx/tb0219.h> 29 29 30 - MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>"); 30 + MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 31 31 MODULE_DESCRIPTION("TANBAC TB0219 base board driver"); 32 32 MODULE_LICENSE("GPL"); 33 33
+2 -2
drivers/char/vr41xx_giu.c
··· 3 3 * 4 4 * Copyright (C) 2002 MontaVista Software Inc. 5 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 6 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 6 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 7 7 * 8 8 * This program is free software; you can redistribute it and/or modify 9 9 * it under the terms of the GNU General Public License as published by ··· 35 35 #include <asm/vr41xx/giu.h> 36 36 #include <asm/vr41xx/vr41xx.h> 37 37 38 - MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>"); 38 + MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 39 39 MODULE_DESCRIPTION("NEC VR4100 series General-purpose I/O Unit driver"); 40 40 MODULE_LICENSE("GPL"); 41 41
+2 -2
drivers/char/vr41xx_rtc.c
··· 1 1 /* 2 2 * Driver for NEC VR4100 series Real Time Clock unit. 3 3 * 4 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by ··· 37 37 #include <asm/uaccess.h> 38 38 #include <asm/vr41xx/vr41xx.h> 39 39 40 - MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>"); 40 + MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 41 41 MODULE_DESCRIPTION("NEC VR4100 series RTC driver"); 42 42 MODULE_LICENSE("GPL"); 43 43
+2 -2
drivers/pcmcia/vrc4171_card.c
··· 1 1 /* 2 2 * vrc4171_card.c, NEC VRC4171 Card Controller driver for Socket Services. 3 3 * 4 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by ··· 33 33 #include "i82365.h" 34 34 35 35 MODULE_DESCRIPTION("NEC VRC4171 Card Controllers driver for Socket Services"); 36 - MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>"); 36 + MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 37 37 MODULE_LICENSE("GPL"); 38 38 39 39 #define CARD_MAX_SLOTS 2
+2 -2
drivers/pcmcia/vrc4173_cardu.c
··· 6 6 * NEC VRC4173 CARDU driver for Socket Services 7 7 * (This device doesn't support CardBus. it is supporting only 16bit PC Card.) 8 8 * 9 - * Copyright 2002,2003 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 9 + * Copyright 2002,2003 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 10 10 * 11 11 * This program is free software; you can redistribute it and/or modify it 12 12 * under the terms of the GNU General Public License as published by the ··· 41 41 #include "vrc4173_cardu.h" 42 42 43 43 MODULE_DESCRIPTION("NEC VRC4173 CARDU driver for Socket Services"); 44 - MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>"); 44 + MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 45 45 MODULE_LICENSE("GPL"); 46 46 47 47 static int vrc4173_cardu_slots;
+1 -1
drivers/pcmcia/vrc4173_cardu.h
··· 5 5 * BRIEF MODULE DESCRIPTION 6 6 * Include file for NEC VRC4173 CARDU. 7 7 * 8 - * Copyright 2002 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 8 + * Copyright 2002 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 9 9 * 10 10 * This program is free software; you can redistribute it and/or modify it 11 11 * under the terms of the GNU General Public License as published by the
+1 -1
drivers/serial/vr41xx_siu.c
··· 1 1 /* 2 2 * Driver for NEC VR4100 series Serial Interface Unit. 3 3 * 4 - * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * Based on drivers/serial/8250.c, by Russell King. 7 7 *
+21 -22
include/asm-mips/atomic.h
··· 24 24 #define _ASM_ATOMIC_H 25 25 26 26 #include <asm/cpu-features.h> 27 + #include <asm/interrupt.h> 27 28 #include <asm/war.h> 28 - 29 - extern spinlock_t atomic_lock; 30 29 31 30 typedef struct { volatile int counter; } atomic_t; 32 31 ··· 84 85 } else { 85 86 unsigned long flags; 86 87 87 - spin_lock_irqsave(&atomic_lock, flags); 88 + local_irq_save(flags); 88 89 v->counter += i; 89 - spin_unlock_irqrestore(&atomic_lock, flags); 90 + local_irq_restore(flags); 90 91 } 91 92 } 92 93 ··· 126 127 } else { 127 128 unsigned long flags; 128 129 129 - spin_lock_irqsave(&atomic_lock, flags); 130 + local_irq_save(flags); 130 131 v->counter -= i; 131 - spin_unlock_irqrestore(&atomic_lock, flags); 132 + local_irq_restore(flags); 132 133 } 133 134 } 134 135 ··· 172 173 } else { 173 174 unsigned long flags; 174 175 175 - spin_lock_irqsave(&atomic_lock, flags); 176 + local_irq_save(flags); 176 177 result = v->counter; 177 178 result += i; 178 179 v->counter = result; 179 - spin_unlock_irqrestore(&atomic_lock, flags); 180 + local_irq_restore(flags); 180 181 } 181 182 182 183 return result; ··· 219 220 } else { 220 221 unsigned long flags; 221 222 222 - spin_lock_irqsave(&atomic_lock, flags); 223 + local_irq_save(flags); 223 224 result = v->counter; 224 225 result -= i; 225 226 v->counter = result; 226 - spin_unlock_irqrestore(&atomic_lock, flags); 227 + local_irq_restore(flags); 227 228 } 228 229 229 230 return result; ··· 276 277 } else { 277 278 unsigned long flags; 278 279 279 - spin_lock_irqsave(&atomic_lock, flags); 280 + local_irq_save(flags); 280 281 result = v->counter; 281 282 result -= i; 282 283 if (result >= 0) 283 284 v->counter = result; 284 - spin_unlock_irqrestore(&atomic_lock, flags); 285 + local_irq_restore(flags); 285 286 } 286 287 287 288 return result; ··· 432 433 } else { 433 434 unsigned long flags; 434 435 435 - spin_lock_irqsave(&atomic_lock, flags); 436 + local_irq_save(flags); 436 437 v->counter += i; 437 - spin_unlock_irqrestore(&atomic_lock, flags); 438 + local_irq_restore(flags); 438 439 } 439 440 } 440 441 ··· 474 475 } else { 475 476 unsigned long flags; 476 477 477 - spin_lock_irqsave(&atomic_lock, flags); 478 + local_irq_save(flags); 478 479 v->counter -= i; 479 - spin_unlock_irqrestore(&atomic_lock, flags); 480 + local_irq_restore(flags); 480 481 } 481 482 } 482 483 ··· 520 521 } else { 521 522 unsigned long flags; 522 523 523 - spin_lock_irqsave(&atomic_lock, flags); 524 + local_irq_save(flags); 524 525 result = v->counter; 525 526 result += i; 526 527 v->counter = result; 527 - spin_unlock_irqrestore(&atomic_lock, flags); 528 + local_irq_restore(flags); 528 529 } 529 530 530 531 return result; ··· 567 568 } else { 568 569 unsigned long flags; 569 570 570 - spin_lock_irqsave(&atomic_lock, flags); 571 + local_irq_save(flags); 571 572 result = v->counter; 572 573 result -= i; 573 574 v->counter = result; 574 - spin_unlock_irqrestore(&atomic_lock, flags); 575 + local_irq_restore(flags); 575 576 } 576 577 577 578 return result; ··· 624 625 } else { 625 626 unsigned long flags; 626 627 627 - spin_lock_irqsave(&atomic_lock, flags); 628 + local_irq_save(flags); 628 629 result = v->counter; 629 630 result -= i; 630 631 if (result >= 0) 631 632 v->counter = result; 632 - spin_unlock_irqrestore(&atomic_lock, flags); 633 + local_irq_restore(flags); 633 634 } 634 635 635 636 return result;
+21
include/asm-mips/cpu-features.h
··· 116 116 #endif 117 117 #endif 118 118 119 + # ifndef cpu_has_mips32r1 120 + # define cpu_has_mips32r1 (cpu_data[0].isa_level & MIPS_CPU_ISA_M32R1) 121 + # endif 122 + # ifndef cpu_has_mips32r2 123 + # define cpu_has_mips32r2 (cpu_data[0].isa_level & MIPS_CPU_ISA_M32R2) 124 + # endif 125 + # ifndef cpu_has_mips64r1 126 + # define cpu_has_mips64r1 (cpu_data[0].isa_level & MIPS_CPU_ISA_M64R1) 127 + # endif 128 + # ifndef cpu_has_mips64r2 129 + # define cpu_has_mips64r2 (cpu_data[0].isa_level & MIPS_CPU_ISA_M64R2) 130 + # endif 131 + 132 + /* 133 + * Shortcuts ... 134 + */ 135 + #define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2) 136 + #define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2) 137 + #define cpu_has_mips_r1 (cpu_has_mips32r1 | cpu_has_mips64r1) 138 + #define cpu_has_mips_r2 (cpu_has_mips32r2 | cpu_has_mips64r2) 139 + 119 140 #ifndef cpu_has_dsp 120 141 #define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP) 121 142 #endif
+11 -9
include/asm-mips/cpu.h
··· 204 204 */ 205 205 #define MIPS_CPU_ISA_I 0x00000001 206 206 #define MIPS_CPU_ISA_II 0x00000002 207 - #define MIPS_CPU_ISA_III 0x00008003 208 - #define MIPS_CPU_ISA_IV 0x00008004 209 - #define MIPS_CPU_ISA_V 0x00008005 210 - #define MIPS_CPU_ISA_M32 0x00000020 211 - #define MIPS_CPU_ISA_M64 0x00008040 207 + #define MIPS_CPU_ISA_III 0x00000003 208 + #define MIPS_CPU_ISA_IV 0x00000004 209 + #define MIPS_CPU_ISA_V 0x00000005 210 + #define MIPS_CPU_ISA_M32R1 0x00000020 211 + #define MIPS_CPU_ISA_M32R2 0x00000040 212 + #define MIPS_CPU_ISA_M64R1 0x00000080 213 + #define MIPS_CPU_ISA_M64R2 0x00000100 212 214 213 - /* 214 - * Bit 15 encodes if an ISA level supports 64-bit operations. 215 - */ 216 - #define MIPS_CPU_ISA_64BIT 0x00008000 215 + #define MIPS_CPU_ISA_32BIT (MIPS_CPU_ISA_I | MIPS_CPU_ISA_II | \ 216 + MIPS_CPU_ISA_M32R1 | MIPS_CPU_ISA_M32R2 ) 217 + #define MIPS_CPU_ISA_64BIT (MIPS_CPU_ISA_III | MIPS_CPU_ISA_IV | \ 218 + MIPS_CPU_ISA_V | MIPS_CPU_ISA_M64R1 | MIPS_CPU_ISA_M64R2) 217 219 218 220 /* 219 221 * CPU Option encodings
+2 -4
include/asm-mips/delay.h
··· 52 52 unsigned long lo; 53 53 54 54 /* 55 - * The common rates of 1000 and 128 are rounded wrongly by the 56 - * catchall case for 64-bit. Excessive precission? Probably ... 55 + * The rates of 128 is rounded wrongly by the catchall case 56 + * for 64-bit. Excessive precission? Probably ... 57 57 */ 58 58 #if defined(CONFIG_64BIT) && (HZ == 128) 59 59 usecs *= 0x0008637bd05af6c7UL; /* 2**64 / (1000000 / HZ) */ 60 - #elif defined(CONFIG_64BIT) && (HZ == 1000) 61 - usecs *= 0x004189374BC6A7f0UL; /* 2**64 / (1000000 / HZ) */ 62 60 #elif defined(CONFIG_64BIT) 63 61 usecs *= (0x8000000000000000UL / (500000 / HZ)); 64 62 #else /* 32-bit junk follows here */
+3 -1
include/asm-mips/dsp.h
··· 16 16 #include <asm/mipsregs.h> 17 17 18 18 #define DSP_DEFAULT 0x00000000 19 - #define DSP_MASK 0x1f 19 + #define DSP_MASK 0x3ff 20 20 21 21 #define __enable_dsp_hazard() \ 22 22 do { \ ··· 48 48 tsk->thread.dsp.dspr[3] = mflo2(); \ 49 49 tsk->thread.dsp.dspr[4] = mfhi3(); \ 50 50 tsk->thread.dsp.dspr[5] = mflo3(); \ 51 + tsk->thread.dsp.dspcontrol = rddsp(DSP_MASK); \ 51 52 } while (0) 52 53 53 54 #define save_dsp(tsk) \ ··· 65 64 mtlo2(tsk->thread.dsp.dspr[3]); \ 66 65 mthi3(tsk->thread.dsp.dspr[4]); \ 67 66 mtlo3(tsk->thread.dsp.dspr[5]); \ 67 + wrdsp(tsk->thread.dsp.dspcontrol, DSP_MASK); \ 68 68 } while (0) 69 69 70 70 #define restore_dsp(tsk) \
+2 -2
include/asm-mips/elf.h
··· 277 277 278 278 struct task_struct; 279 279 280 - extern void dump_regs(elf_greg_t *, struct pt_regs *regs); 280 + extern void elf_dump_regs(elf_greg_t *, struct pt_regs *regs); 281 281 extern int dump_task_regs (struct task_struct *, elf_gregset_t *); 282 282 extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *); 283 283 284 284 #define ELF_CORE_COPY_REGS(elf_regs, regs) \ 285 - dump_regs((elf_greg_t *)&(elf_regs), regs); 285 + elf_dump_regs((elf_greg_t *)&(elf_regs), regs); 286 286 #define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs) 287 287 #define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) \ 288 288 dump_task_fpu(tsk, elf_fpregs)
+15 -5
include/asm-mips/hazards.h
··· 233 233 #endif 234 234 235 235 #ifdef CONFIG_CPU_MIPSR2 236 + /* 237 + * gcc has a tradition of misscompiling the previous construct using the 238 + * address of a label as argument to inline assembler. Gas otoh has the 239 + * annoying difference between la and dla which are only usable for 32-bit 240 + * rsp. 64-bit code, so can't be used without conditional compilation. 241 + * The alterantive is switching the assembler to 64-bit code which happens 242 + * to work right even for 32-bit code ... 243 + */ 236 244 #define instruction_hazard() \ 237 245 do { \ 238 - __label__ __next; \ 246 + unsigned long tmp; \ 247 + \ 239 248 __asm__ __volatile__( \ 249 + " .set mips64r2 \n" \ 250 + " dla %0, 1f \n" \ 240 251 " jr.hb %0 \n" \ 241 - : \ 242 - : "r" (&&__next)); \ 243 - __next: \ 244 - ; \ 252 + " .set mips0 \n" \ 253 + "1: \n" \ 254 + : "=r" (tmp)); \ 245 255 } while (0) 246 256 247 257 #else
+1
include/asm-mips/interrupt.h
··· 93 93 " .set noat \n" 94 94 #ifdef CONFIG_CPU_MIPSR2 95 95 " di \\result \n" 96 + " andi \\result, 1 \n" 96 97 #else 97 98 " mfc0 \\result, $12 \n" 98 99 " ori $1, \\result, 1 \n"
+5 -2
include/asm-mips/mach-au1x00/au1000.h
··· 838 838 #define UART3_ADDR 0xB1400000 839 839 840 840 #define USB_OHCI_BASE 0x14020000 // phys addr for ioremap 841 + #define USB_OHCI_LEN 0x00060000 841 842 #define USB_HOST_CONFIG 0xB4027ffc 842 843 843 844 #define AU1550_ETH0_BASE 0xB0500000 ··· 1018 1017 #define I2S_CONTROL_D (1<<1) 1019 1018 #define I2S_CONTROL_CE (1<<0) 1020 1019 1021 - #ifndef CONFIG_SOC_AU1200 1022 - 1023 1020 /* USB Host Controller */ 1021 + #ifndef USB_OHCI_LEN 1024 1022 #define USB_OHCI_LEN 0x00100000 1023 + #endif 1024 + 1025 + #ifndef CONFIG_SOC_AU1200 1025 1026 1026 1027 /* USB Device Controller */ 1027 1028 #define USBD_EP0RD 0xB0200000
+5
include/asm-mips/mach-ip22/cpu-feature-overrides.h
··· 34 34 #define cpu_has_nofpuex 0 35 35 #define cpu_has_64bits 1 36 36 37 + #define cpu_has_mips32r1 0 38 + #define cpu_has_mips32r2 0 39 + #define cpu_has_mips64r1 0 40 + #define cpu_has_mips64r2 0 41 + 37 42 #endif /* __ASM_MACH_IP22_CPU_FEATURE_OVERRIDES_H */
+5
include/asm-mips/mach-ip27/cpu-feature-overrides.h
··· 37 37 #define cpu_icache_line_size() 64 38 38 #define cpu_scache_line_size() 128 39 39 40 + #define cpu_has_mips32r1 0 41 + #define cpu_has_mips32r2 0 42 + #define cpu_has_mips64r1 0 43 + #define cpu_has_mips64r2 0 44 + 40 45 #endif /* __ASM_MACH_IP27_CPU_FEATURE_OVERRIDES_H */
+5
include/asm-mips/mach-ip32/cpu-feature-overrides.h
··· 39 39 #define cpu_has_ic_fills_f_dc 0 40 40 #define cpu_has_dsp 0 41 41 42 + #define cpu_has_mips32r1 0 43 + #define cpu_has_mips32r2 0 44 + #define cpu_has_mips64r1 0 45 + #define cpu_has_mips64r2 0 46 + 42 47 #endif /* __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H */
+5
include/asm-mips/mach-ja/cpu-feature-overrides.h
··· 37 37 #define cpu_icache_line_size() 32 38 38 #define cpu_scache_line_size() 32 39 39 40 + #define cpu_has_mips32r1 0 41 + #define cpu_has_mips32r2 0 42 + #define cpu_has_mips64r1 0 43 + #define cpu_has_mips64r2 0 44 + 40 45 #endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
+5
include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
··· 40 40 #define cpu_icache_line_size() 32 41 41 #define cpu_scache_line_size() 32 42 42 43 + #define cpu_has_mips32r1 0 44 + #define cpu_has_mips32r2 0 45 + #define cpu_has_mips64r1 0 46 + #define cpu_has_mips64r2 0 47 + 43 48 #endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */
+5
include/asm-mips/mach-rm200/cpu-feature-overrides.h
··· 40 40 #define cpu_icache_line_size() 32 41 41 #define cpu_scache_line_size() 0 /* No S-cache on R5000 I think ... */ 42 42 43 + #define cpu_has_mips32r1 0 44 + #define cpu_has_mips32r2 0 45 + #define cpu_has_mips64r1 0 46 + #define cpu_has_mips64r2 0 47 + 43 48 #endif /* __ASM_MACH_RM200_CPU_FEATURE_OVERRIDES_H */
+5
include/asm-mips/mach-yosemite/cpu-feature-overrides.h
··· 37 37 #define cpu_icache_line_size() 32 38 38 #define cpu_scache_line_size() 32 39 39 40 + #define cpu_has_mips32r1 0 41 + #define cpu_has_mips32r2 0 42 + #define cpu_has_mips64r1 0 43 + #define cpu_has_mips64r2 0 44 + 40 45 #endif /* __ASM_MACH_YOSEMITE_CPU_FEATURE_OVERRIDES_H */
+1 -1
include/asm-mips/mipsregs.h
··· 1059 1059 " .set noat \n" \ 1060 1060 " move $1, %0 \n" \ 1061 1061 " # wrdsp $1, %x1 \n" \ 1062 - " .word 0x7c2004f8 | (%x1 << 15) \n" \ 1062 + " .word 0x7c2004f8 | (%x1 << 11) \n" \ 1063 1063 " .set pop \n" \ 1064 1064 : \ 1065 1065 : "r" (val), "i" (mask)); \
-1
include/asm-mips/processor.h
··· 103 103 struct mips_dsp_state { 104 104 dspreg_t dspr[NUM_DSP_REGS]; 105 105 unsigned int dspcontrol; 106 - unsigned short used_dsp; 107 106 }; 108 107 109 108 #define INIT_DSP {{0,},}
+1 -1
include/asm-mips/vr41xx/capcella.h
··· 1 1 /* 2 2 * capcella.h, Include file for ZAO Networks Capcella. 3 3 * 4 - * Copyright (C) 2002-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/e55.h
··· 1 1 /* 2 2 * e55.h, Include file for CASIO CASSIOPEIA E-10/15/55/65. 3 3 * 4 - * Copyright (C) 2002-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/giu.h
··· 1 1 /* 2 2 * Include file for NEC VR4100 series General-purpose I/O Unit. 3 3 * 4 - * Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/mpc30x.h
··· 1 1 /* 2 2 * mpc30x.h, Include file for Victor MP-C303/304. 3 3 * 4 - * Copyright (C) 2002-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/pci.h
··· 1 1 /* 2 2 * Include file for NEC VR4100 series PCI Control Unit. 3 3 * 4 - * Copyright (C) 2004-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/siu.h
··· 1 1 /* 2 2 * Include file for NEC VR4100 series Serial Interface Unit. 3 3 * 4 - * Copyright (C) 2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/tb0219.h
··· 1 1 /* 2 2 * tb0219.h, Include file for TANBAC TB0219. 3 3 * 4 - * Copyright (C) 2002-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * Modified for TANBAC TB0219: 7 7 * Copyright (C) 2003 Megasolution Inc. <matsu@megasolution.jp>
+1 -1
include/asm-mips/vr41xx/tb0226.h
··· 1 1 /* 2 2 * tb0226.h, Include file for TANBAC TB0226. 3 3 * 4 - * Copyright (C) 2002-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by
+1 -1
include/asm-mips/vr41xx/vr41xx.h
··· 7 7 * Copyright (C) 2001, 2002 Paul Mundt 8 8 * Copyright (C) 2002 MontaVista Software, Inc. 9 9 * Copyright (C) 2002 TimeSys Corp. 10 - * Copyright (C) 2003-2005 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 10 + * Copyright (C) 2003-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 11 11 * 12 12 * This program is free software; you can redistribute it and/or modify it 13 13 * under the terms of the GNU General Public License as published by the
+1 -1
include/asm-mips/vr41xx/vrc4173.h
··· 4 4 * Copyright (C) 2000 Michael R. McDonald 5 5 * Copyright (C) 2001-2003 Montavista Software Inc. 6 6 * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com> 7 - * Copyright (C) 2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 7 + * Copyright (C) 2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 8 8 * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) 9 9 * 10 10 * This program is free software; you can redistribute it and/or modify
+1 -1
include/asm-mips/vr41xx/workpad.h
··· 1 1 /* 2 2 * workpad.h, Include file for IBM WorkPad z50. 3 3 * 4 - * Copyright (C) 2002-2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp> 4 + * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify 7 7 * it under the terms of the GNU General Public License as published by