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

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
[MIPS] MIPS doesn't need compat_sys_getdents.
[MIPS] JMR3927: Fixup another victim of the irq pt_regs cleanup.
[MIPS] EMMA 2 / Markeins: struct resource takes physical addresses.
[MIPS] EMMA 2 / Markeins: Convert to name struct resource initialization.
[MIPS] EMMA 2 / Markeins: Formitting fixes split from actual address fixes.
[MIPS] EMMA 2 / Markeins: Fix build wreckage due to genirq wreckage.
[MIPS] Ocelot G: Fix build error and numerous warnings.
[MIPS] Fix return value of TXX9 SPI interrupt handler
[MIPS] Au1000: Fix warning about unused variable.
[MIPS] Wire up getcpu(2) and epoll_wait(2) syscalls.
[MIPS] Make SB1 cache flushes not to use on_each_cpu
[MIPS] Fix warning about unused definition in c-sb1.c
[MIPS] SMTC: Make 8 the default number of processors.
[MIPS] Oprofile: Fix MIPSxx counter number detection.
[MIPS] Au1xx0 code sets incorrect mips_hpt_frequency
[MIPS] Oprofile: fix on non-VSMP / non-SMTC SMP configurations.

+121 -63
+2 -1
arch/mips/Kconfig
··· 408 select SWAP_IO_SPACE 409 select SYS_HAS_CPU_RM7000 410 select SYS_SUPPORTS_32BIT_KERNEL 411 - select SYS_SUPPORTS_64BIT_KERNEL 412 select SYS_SUPPORTS_BIG_ENDIAN 413 help 414 The Ocelot is a MIPS-based Single Board Computer (SBC) made by ··· 1690 depends on SMP 1691 default "64" if SGI_IP27 1692 default "2" 1693 help 1694 This allows you to specify the maximum number of CPUs which this 1695 kernel will support. The maximum supported value is 32 for 32-bit
··· 408 select SWAP_IO_SPACE 409 select SYS_HAS_CPU_RM7000 410 select SYS_SUPPORTS_32BIT_KERNEL 411 + select SYS_SUPPORTS_64BIT_KERNEL if BROKEN 412 select SYS_SUPPORTS_BIG_ENDIAN 413 help 414 The Ocelot is a MIPS-based Single Board Computer (SBC) made by ··· 1690 depends on SMP 1691 default "64" if SGI_IP27 1692 default "2" 1693 + default "8" if MIPS_MT_SMTC 1694 help 1695 This allows you to specify the maximum number of CPUs which this 1696 kernel will support. The maximum supported value is 32 for 32-bit
+2 -6
arch/mips/au1000/common/time.c
··· 82 void mips_timer_interrupt(void) 83 { 84 int irq = 63; 85 - unsigned long count; 86 87 irq_enter(); 88 kstat_this_cpu.irqs[irq]++; ··· 230 */ 231 unsigned long cal_r4koff(void) 232 { 233 - unsigned long count; 234 unsigned long cpu_speed; 235 unsigned long flags; 236 unsigned long counter; ··· 256 257 #if defined(CONFIG_AU1000_USE32K) 258 { 259 - unsigned long start, end; 260 261 start = au_readl(SYS_RTCREAD); 262 start += 2; ··· 280 #else 281 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * 282 AU1000_SRC_CLK; 283 - count = cpu_speed / 2; 284 #endif 285 } 286 else { ··· 288 * NOTE: some old silicon doesn't allow reading the PLL. 289 */ 290 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; 291 - count = cpu_speed / 2; 292 no_au1xxx_32khz = 1; 293 } 294 - mips_hpt_frequency = count; 295 // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) 296 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); 297 spin_unlock_irqrestore(&time_lock, flags);
··· 82 void mips_timer_interrupt(void) 83 { 84 int irq = 63; 85 86 irq_enter(); 87 kstat_this_cpu.irqs[irq]++; ··· 231 */ 232 unsigned long cal_r4koff(void) 233 { 234 unsigned long cpu_speed; 235 unsigned long flags; 236 unsigned long counter; ··· 258 259 #if defined(CONFIG_AU1000_USE32K) 260 { 261 + unsigned long start, end, count; 262 263 start = au_readl(SYS_RTCREAD); 264 start += 2; ··· 282 #else 283 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * 284 AU1000_SRC_CLK; 285 #endif 286 } 287 else { ··· 291 * NOTE: some old silicon doesn't allow reading the PLL. 292 */ 293 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; 294 no_au1xxx_32khz = 1; 295 } 296 + mips_hpt_frequency = cpu_speed; 297 // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) 298 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); 299 spin_unlock_irqrestore(&time_lock, flags);
+1 -1
arch/mips/emma2rh/common/irq_emma2rh.c
··· 97 irq_desc[i].status = IRQ_DISABLED; 98 irq_desc[i].action = NULL; 99 irq_desc[i].depth = 1; 100 - irq_desc[i].handler = &emma2rh_irq_controller; 101 } 102 103 emma2rh_irq_base = irq_base;
··· 97 irq_desc[i].status = IRQ_DISABLED; 98 irq_desc[i].action = NULL; 99 irq_desc[i].depth = 1; 100 + irq_desc[i].chip = &emma2rh_irq_controller; 101 } 102 103 emma2rh_irq_base = irq_base;
+2 -2
arch/mips/emma2rh/markeins/irq_markeins.c
··· 86 irq_desc[i].status = IRQ_DISABLED; 87 irq_desc[i].action = NULL; 88 irq_desc[i].depth = 2; 89 - irq_desc[i].handler = &emma2rh_sw_irq_controller; 90 } 91 92 emma2rh_sw_irq_base = irq_base; ··· 166 irq_desc[i].status = IRQ_DISABLED; 167 irq_desc[i].action = NULL; 168 irq_desc[i].depth = 2; 169 - irq_desc[i].handler = &emma2rh_gpio_irq_controller; 170 } 171 172 emma2rh_gpio_irq_base = irq_base;
··· 86 irq_desc[i].status = IRQ_DISABLED; 87 irq_desc[i].action = NULL; 88 irq_desc[i].depth = 2; 89 + irq_desc[i].chip = &emma2rh_sw_irq_controller; 90 } 91 92 emma2rh_sw_irq_base = irq_base; ··· 166 irq_desc[i].status = IRQ_DISABLED; 167 irq_desc[i].action = NULL; 168 irq_desc[i].depth = 2; 169 + irq_desc[i].chip = &emma2rh_gpio_irq_controller; 170 } 171 172 emma2rh_gpio_irq_base = irq_base;
+56 -32
arch/mips/emma2rh/markeins/platform.c
··· 44 #define I2C_EMMA2RH "emma2rh-iic" /* must be in sync with IIC driver */ 45 46 static struct resource i2c_emma_resources_0[] = { 47 - { NULL, EMMA2RH_IRQ_PIIC0, EMMA2RH_IRQ_PIIC0, IORESOURCE_IRQ }, 48 - { NULL, KSEG1ADDR(EMMA2RH_PIIC0_BASE), KSEG1ADDR(EMMA2RH_PIIC0_BASE + 0x1000), 0 }, 49 }; 50 51 struct resource i2c_emma_resources_1[] = { 52 - { NULL, EMMA2RH_IRQ_PIIC1, EMMA2RH_IRQ_PIIC1, IORESOURCE_IRQ }, 53 - { NULL, KSEG1ADDR(EMMA2RH_PIIC1_BASE), KSEG1ADDR(EMMA2RH_PIIC1_BASE + 0x1000), 0 }, 54 }; 55 56 struct resource i2c_emma_resources_2[] = { 57 - { NULL, EMMA2RH_IRQ_PIIC2, EMMA2RH_IRQ_PIIC2, IORESOURCE_IRQ }, 58 - { NULL, KSEG1ADDR(EMMA2RH_PIIC2_BASE), KSEG1ADDR(EMMA2RH_PIIC2_BASE + 0x1000), 0 }, 59 }; 60 61 struct platform_device i2c_emma_devices[] = { ··· 110 #define EMMA2RH_SERIAL_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST 111 112 static struct plat_serial8250_port platform_serial_ports[] = { 113 - [0] = { 114 - .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3), 115 - .irq = EMMA2RH_IRQ_PFUR0, 116 - .uartclk = EMMA2RH_SERIAL_CLOCK, 117 - .regshift = 4, 118 - .iotype = UPIO_MEM, 119 - .flags = EMMA2RH_SERIAL_FLAGS, 120 - }, 121 - [1] = { 122 - .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3), 123 - .irq = EMMA2RH_IRQ_PFUR1, 124 - .uartclk = EMMA2RH_SERIAL_CLOCK, 125 - .regshift = 4, 126 - .iotype = UPIO_MEM, 127 - .flags = EMMA2RH_SERIAL_FLAGS, 128 - }, 129 - [2] = { 130 - .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR2_BASE + 3), 131 - .irq = EMMA2RH_IRQ_PFUR2, 132 - .uartclk = EMMA2RH_SERIAL_CLOCK, 133 - .regshift = 4, 134 - .iotype = UPIO_MEM, 135 - .flags = EMMA2RH_SERIAL_FLAGS, 136 - }, 137 - [3] = { 138 - .flags = 0, 139 }, 140 }; 141
··· 44 #define I2C_EMMA2RH "emma2rh-iic" /* must be in sync with IIC driver */ 45 46 static struct resource i2c_emma_resources_0[] = { 47 + { 48 + .name = NULL, 49 + .start = EMMA2RH_IRQ_PIIC0, 50 + .end = EMMA2RH_IRQ_PIIC0, 51 + .flags = IORESOURCE_IRQ 52 + }, { 53 + .name = NULL, 54 + .start = EMMA2RH_PIIC0_BASE, 55 + .end = EMMA2RH_PIIC0_BASE + 0x1000, 56 + .flags = 0 57 + }, 58 }; 59 60 struct resource i2c_emma_resources_1[] = { 61 + { 62 + .name = NULL, 63 + .start = EMMA2RH_IRQ_PIIC1, 64 + .end = EMMA2RH_IRQ_PIIC1, 65 + .flags = IORESOURCE_IRQ 66 + }, { 67 + .name = NULL, 68 + .start = EMMA2RH_PIIC1_BASE, 69 + .end = EMMA2RH_PIIC1_BASE + 0x1000, 70 + .flags = 0 71 + }, 72 }; 73 74 struct resource i2c_emma_resources_2[] = { 75 + { 76 + .name = NULL, 77 + .start = EMMA2RH_IRQ_PIIC2, 78 + .end = EMMA2RH_IRQ_PIIC2, 79 + .flags = IORESOURCE_IRQ 80 + }, { 81 + .name = NULL, 82 + .start = EMMA2RH_PIIC2_BASE, 83 + .end = EMMA2RH_PIIC2_BASE + 0x1000, 84 + .flags = 0 85 + }, 86 }; 87 88 struct platform_device i2c_emma_devices[] = { ··· 83 #define EMMA2RH_SERIAL_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST 84 85 static struct plat_serial8250_port platform_serial_ports[] = { 86 + [0] = { 87 + .membase= (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3), 88 + .irq = EMMA2RH_IRQ_PFUR0, 89 + .uartclk = EMMA2RH_SERIAL_CLOCK, 90 + .regshift = 4, 91 + .iotype = UPIO_MEM, 92 + .flags = EMMA2RH_SERIAL_FLAGS, 93 + }, [1] = { 94 + .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3), 95 + .irq = EMMA2RH_IRQ_PFUR1, 96 + .uartclk = EMMA2RH_SERIAL_CLOCK, 97 + .regshift = 4, 98 + .iotype = UPIO_MEM, 99 + .flags = EMMA2RH_SERIAL_FLAGS, 100 + }, [2] = { 101 + .membase = (void __iomem*)KSEG1ADDR(EMMA2RH_PFUR2_BASE + 3), 102 + .irq = EMMA2RH_IRQ_PFUR2, 103 + .uartclk = EMMA2RH_SERIAL_CLOCK, 104 + .regshift = 4, 105 + .iotype = UPIO_MEM, 106 + .flags = EMMA2RH_SERIAL_FLAGS, 107 + }, [3] = { 108 + .flags = 0, 109 }, 110 }; 111
+3
arch/mips/jmr3927/rbhma3100/irq.c
··· 288 289 static void jmr3927_spurious(void) 290 { 291 #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND 292 tx_branch_likely_bug_fixup(); 293 #endif ··· 299 300 asmlinkage void plat_irq_dispatch(void) 301 { 302 int irq; 303 304 #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
··· 288 289 static void jmr3927_spurious(void) 290 { 291 + struct pt_regs * regs = get_irq_regs(); 292 + 293 #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND 294 tx_branch_likely_bug_fixup(); 295 #endif ··· 297 298 asmlinkage void plat_irq_dispatch(void) 299 { 300 + struct pt_regs * regs = get_irq_regs(); 301 int irq; 302 303 #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
+2
arch/mips/kernel/scall32-o32.S
··· 654 sys sys_set_robust_list 2 655 sys sys_get_robust_list 3 /* 4310 */ 656 sys sys_ni_syscall 0 657 .endm 658 659 /* We pre-compute the number of _instruction_ bytes needed to
··· 654 sys sys_set_robust_list 2 655 sys sys_get_robust_list 3 /* 4310 */ 656 sys sys_ni_syscall 0 657 + sys sys_getcpu 3 658 + sys sys_epoll_pwait 6 659 .endm 660 661 /* We pre-compute the number of _instruction_ bytes needed to
+2
arch/mips/kernel/scall64-64.S
··· 469 PTR sys_set_robust_list 470 PTR sys_get_robust_list 471 PTR sys_ni_syscall /* 5270 */
··· 469 PTR sys_set_robust_list 470 PTR sys_get_robust_list 471 PTR sys_ni_syscall /* 5270 */ 472 + PTR sys_getcpu 473 + PTR sys_epoll_pwait
+2
arch/mips/kernel/scall64-n32.S
··· 395 PTR compat_sys_set_robust_list 396 PTR compat_sys_get_robust_list 397 PTR sys_ni_syscall
··· 395 PTR compat_sys_set_robust_list 396 PTR compat_sys_get_robust_list 397 PTR sys_ni_syscall 398 + PTR sys_getcpu 399 + PTR sys_epoll_pwait
+2
arch/mips/kernel/scall64-o32.S
··· 517 PTR compat_sys_set_robust_list 518 PTR compat_sys_get_robust_list /* 4310 */ 519 PTR sys_ni_syscall 520 .size sys_call_table,.-sys_call_table
··· 517 PTR compat_sys_set_robust_list 518 PTR compat_sys_get_robust_list /* 4310 */ 519 PTR sys_ni_syscall 520 + PTR sys_getcpu 521 + PTR sys_epoll_pwait 522 .size sys_call_table,.-sys_call_table
+13 -5
arch/mips/mm/c-sb1.c
··· 49 static unsigned int icache_range_cutoff; 50 static unsigned int dcache_range_cutoff; 51 52 /* 53 * The dcache is fully coherent to the system, with one 54 * big caveat: the instruction stream. In other words, ··· 235 args.vma = vma; 236 args.addr = addr; 237 args.pfn = pfn; 238 - on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1); 239 } 240 #else 241 void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) ··· 258 259 static void sb1___flush_cache_all(void) 260 { 261 - on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1); 262 } 263 #else 264 void sb1___flush_cache_all(void) ··· 308 309 args.start = start; 310 args.end = end; 311 - on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1); 312 } 313 #else 314 void sb1_flush_icache_range(unsigned long start, unsigned long end) ··· 335 336 static void sb1_flush_cache_sigtramp(unsigned long addr) 337 { 338 - on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); 339 } 340 #else 341 void sb1_flush_cache_sigtramp(unsigned long addr) ··· 453 void sb1_cache_init(void) 454 { 455 extern char except_vec2_sb1; 456 - extern char handle_vec2_sb1; 457 458 /* Special cache error handler for SB1 */ 459 set_uncached_handler (0x100, &except_vec2_sb1, 0x80);
··· 49 static unsigned int icache_range_cutoff; 50 static unsigned int dcache_range_cutoff; 51 52 + static inline void sb1_on_each_cpu(void (*func) (void *info), void *info, 53 + int retry, int wait) 54 + { 55 + preempt_disable(); 56 + smp_call_function(func, info, retry, wait); 57 + func(info); 58 + preempt_enable(); 59 + } 60 + 61 /* 62 * The dcache is fully coherent to the system, with one 63 * big caveat: the instruction stream. In other words, ··· 226 args.vma = vma; 227 args.addr = addr; 228 args.pfn = pfn; 229 + sb1_on_each_cpu(sb1_flush_cache_page_ipi, (void *) &args, 1, 1); 230 } 231 #else 232 void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) ··· 249 250 static void sb1___flush_cache_all(void) 251 { 252 + sb1_on_each_cpu(sb1___flush_cache_all_ipi, 0, 1, 1); 253 } 254 #else 255 void sb1___flush_cache_all(void) ··· 299 300 args.start = start; 301 args.end = end; 302 + sb1_on_each_cpu(sb1_flush_icache_range_ipi, &args, 1, 1); 303 } 304 #else 305 void sb1_flush_icache_range(unsigned long start, unsigned long end) ··· 326 327 static void sb1_flush_cache_sigtramp(unsigned long addr) 328 { 329 + sb1_on_each_cpu(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); 330 } 331 #else 332 void sb1_flush_cache_sigtramp(unsigned long addr) ··· 444 void sb1_cache_init(void) 445 { 446 extern char except_vec2_sb1; 447 448 /* Special cache error handler for SB1 */ 449 set_uncached_handler (0x100, &except_vec2_sb1, 0x80);
+3 -3
arch/mips/momentum/ocelot_g/ocelot_pld.h
··· 23 #define OCELOT_REG_INTSET (12) 24 #define OCELOT_REG_INTCLR (13) 25 26 - #define OCELOT_PLD_WRITE(x, y) writeb(x, OCELOT_CS0_ADDR + OCELOT_REG_##y) 27 - #define OCELOT_PLD_READ(x) readb(OCELOT_CS0_ADDR + OCELOT_REG_##x) 28 - 29 30 #endif /* __MOMENCO_OCELOT_PLD_H__ */
··· 23 #define OCELOT_REG_INTSET (12) 24 #define OCELOT_REG_INTCLR (13) 25 26 + #define __PLD_REG_TO_ADDR(reg) ((void *) OCELOT_CS0_ADDR + OCELOT_REG_##reg) 27 + #define OCELOT_PLD_WRITE(x, reg) writeb(x, __PLD_REG_TO_ADDR(reg)) 28 + #define OCELOT_PLD_READ(reg) readb(__PLD_REG_TO_ADDR(reg)) 29 30 #endif /* __MOMENCO_OCELOT_PLD_H__ */
+5
arch/mips/momentum/ocelot_g/setup.c
··· 57 #include <asm/gt64240.h> 58 #include <asm/irq.h> 59 #include <asm/pci.h> 60 #include <asm/processor.h> 61 #include <asm/reboot.h> 62 #include <linux/bootmem.h> ··· 159 rm7k_tcache_enabled = 1; 160 161 printk("Done\n"); 162 } 163 164 void __init plat_mem_setup(void)
··· 57 #include <asm/gt64240.h> 58 #include <asm/irq.h> 59 #include <asm/pci.h> 60 + #include <asm/pgtable.h> 61 #include <asm/processor.h> 62 #include <asm/reboot.h> 63 #include <linux/bootmem.h> ··· 158 rm7k_tcache_enabled = 1; 159 160 printk("Done\n"); 161 + } 162 + 163 + void __init plat_timer_setup(struct irqaction *irq) 164 + { 165 } 166 167 void __init plat_mem_setup(void)
+7 -5
arch/mips/oprofile/op_model_mipsxx.c
··· 31 #define M_COUNTER_OVERFLOW (1UL << 31) 32 33 #ifdef CONFIG_MIPS_MT_SMP 34 - #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) 35 #else 36 - #define WHAT 0 37 #endif 38 39 #define __define_perf_accessors(r, n, np) \ 40 \ 41 static inline unsigned int r_c0_ ## r ## n(void) \ 42 { \ 43 - unsigned int cpu = smp_processor_id(); \ 44 \ 45 switch (cpu) { \ 46 case 0: \ ··· 57 \ 58 static inline void w_c0_ ## r ## n(unsigned int value) \ 59 { \ 60 - unsigned int cpu = smp_processor_id(); \ 61 \ 62 switch (cpu) { \ 63 case 0: \ ··· 220 { 221 int counters = __n_counters(); 222 223 - #ifndef CONFIG_SMP 224 if (current_cpu_data.cputype == CPU_34K) 225 return counters >> 1; 226 #endif
··· 31 #define M_COUNTER_OVERFLOW (1UL << 31) 32 33 #ifdef CONFIG_MIPS_MT_SMP 34 + #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) 35 + #define vpe_id() smp_processor_id() 36 #else 37 + #define WHAT 0 38 + #define vpe_id() smp_processor_id() 39 #endif 40 41 #define __define_perf_accessors(r, n, np) \ 42 \ 43 static inline unsigned int r_c0_ ## r ## n(void) \ 44 { \ 45 + unsigned int cpu = vpe_id(); \ 46 \ 47 switch (cpu) { \ 48 case 0: \ ··· 55 \ 56 static inline void w_c0_ ## r ## n(unsigned int value) \ 57 { \ 58 + unsigned int cpu = vpe_id(); \ 59 \ 60 switch (cpu) { \ 61 case 0: \ ··· 218 { 219 int counters = __n_counters(); 220 221 + #ifdef CONFIG_MIPS_MT_SMP 222 if (current_cpu_data.cputype == CPU_34K) 223 return counters >> 1; 224 #endif
+6 -2
arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c
··· 36 37 static DECLARE_WAIT_QUEUE_HEAD(txx9_spi_wait); 38 39 - static void txx9_spi_interrupt(int irq, void *dev_id) 40 { 41 /* disable rx intr */ 42 tx4938_spiptr->cr0 &= ~TXx9_SPCR0_RBSIE; 43 wake_up(&txx9_spi_wait); 44 } 45 static struct irqaction txx9_spi_action = { 46 - txx9_spi_interrupt, 0, 0, "spi", NULL, NULL, 47 }; 48 49 void __init txx9_spi_irqinit(int irc_irq)
··· 36 37 static DECLARE_WAIT_QUEUE_HEAD(txx9_spi_wait); 38 39 + static irqreturn_t txx9_spi_interrupt(int irq, void *dev_id) 40 { 41 /* disable rx intr */ 42 tx4938_spiptr->cr0 &= ~TXx9_SPCR0_RBSIE; 43 wake_up(&txx9_spi_wait); 44 + 45 + return IRQ_HANDLED; 46 } 47 + 48 static struct irqaction txx9_spi_action = { 49 + .handler = txx9_spi_interrupt, 50 + .name = "spi", 51 }; 52 53 void __init txx9_spi_irqinit(int irc_irq)
+13 -6
include/asm-mips/unistd.h
··· 332 #define __NR_set_robust_list (__NR_Linux + 309) 333 #define __NR_get_robust_list (__NR_Linux + 310) 334 #define __NR_kexec_load (__NR_Linux + 311) 335 336 /* 337 * Offset of the last Linux o32 flavoured syscall 338 */ 339 - #define __NR_Linux_syscalls 311 340 341 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 342 343 #define __NR_O32_Linux 4000 344 - #define __NR_O32_Linux_syscalls 311 345 346 #if _MIPS_SIM == _MIPS_SIM_ABI64 347 ··· 622 #define __NR_set_robust_list (__NR_Linux + 268) 623 #define __NR_get_robust_list (__NR_Linux + 269) 624 #define __NR_kexec_load (__NR_Linux + 270) 625 626 /* 627 * Offset of the last Linux 64-bit flavoured syscall 628 */ 629 - #define __NR_Linux_syscalls 270 630 631 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 632 633 #define __NR_64_Linux 5000 634 - #define __NR_64_Linux_syscalls 270 635 636 #if _MIPS_SIM == _MIPS_SIM_NABI32 637 ··· 916 #define __NR_set_robust_list (__NR_Linux + 272) 917 #define __NR_get_robust_list (__NR_Linux + 273) 918 #define __NR_kexec_load (__NR_Linux + 274) 919 920 /* 921 * Offset of the last N32 flavoured syscall 922 */ 923 - #define __NR_Linux_syscalls 274 924 925 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 926 927 #define __NR_N32_Linux 6000 928 - #define __NR_N32_Linux_syscalls 274 929 930 #ifdef __KERNEL__ 931 ··· 1195 #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ 1196 1197 1198 #define __ARCH_WANT_IPC_PARSE_VERSION 1199 #define __ARCH_WANT_OLD_READDIR 1200 #define __ARCH_WANT_SYS_ALARM
··· 332 #define __NR_set_robust_list (__NR_Linux + 309) 333 #define __NR_get_robust_list (__NR_Linux + 310) 334 #define __NR_kexec_load (__NR_Linux + 311) 335 + #define __NR_getcpu (__NR_Linux + 312) 336 + #define __NR_epoll_pwait (__NR_Linux + 313) 337 338 /* 339 * Offset of the last Linux o32 flavoured syscall 340 */ 341 + #define __NR_Linux_syscalls 313 342 343 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 344 345 #define __NR_O32_Linux 4000 346 + #define __NR_O32_Linux_syscalls 313 347 348 #if _MIPS_SIM == _MIPS_SIM_ABI64 349 ··· 620 #define __NR_set_robust_list (__NR_Linux + 268) 621 #define __NR_get_robust_list (__NR_Linux + 269) 622 #define __NR_kexec_load (__NR_Linux + 270) 623 + #define __NR_getcpu (__NR_Linux + 271) 624 + #define __NR_epoll_pwait (__NR_Linux + 272) 625 626 /* 627 * Offset of the last Linux 64-bit flavoured syscall 628 */ 629 + #define __NR_Linux_syscalls 272 630 631 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 632 633 #define __NR_64_Linux 5000 634 + #define __NR_64_Linux_syscalls 272 635 636 #if _MIPS_SIM == _MIPS_SIM_NABI32 637 ··· 912 #define __NR_set_robust_list (__NR_Linux + 272) 913 #define __NR_get_robust_list (__NR_Linux + 273) 914 #define __NR_kexec_load (__NR_Linux + 274) 915 + #define __NR_getcpu (__NR_Linux + 275) 916 + #define __NR_epoll_pwait (__NR_Linux + 276) 917 918 /* 919 * Offset of the last N32 flavoured syscall 920 */ 921 + #define __NR_Linux_syscalls 276 922 923 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 924 925 #define __NR_N32_Linux 6000 926 + #define __NR_N32_Linux_syscalls 276 927 928 #ifdef __KERNEL__ 929 ··· 1189 #endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ 1190 1191 1192 + #define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 1193 #define __ARCH_WANT_IPC_PARSE_VERSION 1194 #define __ARCH_WANT_OLD_READDIR 1195 #define __ARCH_WANT_SYS_ALARM