aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/leon_kernel.c
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2012-05-14 09:14:36 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-14 17:05:07 -0400
commit4ba22b16bbf354822b7988ec5b4b35774dcd479f (patch)
tree3476a58b0d8788b89b575f4926e294f4b8bbdd43 /arch/sparc/kernel/leon_kernel.c
parentc68e5d39a502d01421cbc70d25c377e9215facef (diff)
sparc32: move smp ipi to method ops
I ended up renaming set_cpu_int to send_ipi to be consistent all way around. send_ipi was moved to the *_smp.c files so we could call the relevant method direct, without any _ops indirection. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/leon_kernel.c')
-rw-r--r--arch/sparc/kernel/leon_kernel.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/arch/sparc/kernel/leon_kernel.c b/arch/sparc/kernel/leon_kernel.c
index aeb411cd3927..1770b3c1cc74 100644
--- a/arch/sparc/kernel/leon_kernel.c
+++ b/arch/sparc/kernel/leon_kernel.c
@@ -86,7 +86,7 @@ void leon_eirq_setup(unsigned int eirq)
86 sparc_leon_eirq = eirq; 86 sparc_leon_eirq = eirq;
87} 87}
88 88
89static inline unsigned long get_irqmask(unsigned int irq) 89unsigned long leon_get_irqmask(unsigned int irq)
90{ 90{
91 unsigned long mask; 91 unsigned long mask;
92 92
@@ -212,7 +212,7 @@ unsigned int leon_build_device_irq(unsigned int real_irq,
212 unsigned long mask; 212 unsigned long mask;
213 213
214 irq = 0; 214 irq = 0;
215 mask = get_irqmask(real_irq); 215 mask = leon_get_irqmask(real_irq);
216 if (mask == 0) 216 if (mask == 0)
217 goto out; 217 goto out;
218 218
@@ -497,14 +497,6 @@ void __init leon_node_init(struct device_node *dp, struct device_node ***nextp)
497} 497}
498 498
499#ifdef CONFIG_SMP 499#ifdef CONFIG_SMP
500
501void leon_set_cpu_int(int cpu, int level)
502{
503 unsigned long mask;
504 mask = get_irqmask(level);
505 LEON3_BYPASS_STORE_PA(&leon3_irqctrl_regs->force[cpu], mask);
506}
507
508void leon_clear_profile_irq(int cpu) 500void leon_clear_profile_irq(int cpu)
509{ 501{
510} 502}
@@ -512,7 +504,7 @@ void leon_clear_profile_irq(int cpu)
512void leon_enable_irq_cpu(unsigned int irq_nr, unsigned int cpu) 504void leon_enable_irq_cpu(unsigned int irq_nr, unsigned int cpu)
513{ 505{
514 unsigned long mask, flags, *addr; 506 unsigned long mask, flags, *addr;
515 mask = get_irqmask(irq_nr); 507 mask = leon_get_irqmask(irq_nr);
516 spin_lock_irqsave(&leon_irq_lock, flags); 508 spin_lock_irqsave(&leon_irq_lock, flags);
517 addr = (unsigned long *)LEON_IMASK(cpu); 509 addr = (unsigned long *)LEON_IMASK(cpu);
518 LEON3_BYPASS_STORE_PA(addr, (LEON3_BYPASS_LOAD_PA(addr) | mask)); 510 LEON3_BYPASS_STORE_PA(addr, (LEON3_BYPASS_LOAD_PA(addr) | mask));
@@ -531,11 +523,6 @@ void __init leon_init_IRQ(void)
531 BTFIXUPCALL_NORM); 523 BTFIXUPCALL_NORM);
532 BTFIXUPSET_CALL(load_profile_irq, leon_load_profile_irq, 524 BTFIXUPSET_CALL(load_profile_irq, leon_load_profile_irq,
533 BTFIXUPCALL_NOP); 525 BTFIXUPCALL_NOP);
534
535#ifdef CONFIG_SMP
536 BTFIXUPSET_CALL(set_cpu_int, leon_set_cpu_int, BTFIXUPCALL_NORM);
537#endif
538
539} 526}
540 527
541void __init leon_init(void) 528void __init leon_init(void)