aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r--arch/powerpc/sysdev/bestcomm/Kconfig9
-rw-r--r--arch/powerpc/sysdev/mpic.c11
-rw-r--r--arch/powerpc/sysdev/xilinx_intc.c4
3 files changed, 13 insertions, 11 deletions
diff --git a/arch/powerpc/sysdev/bestcomm/Kconfig b/arch/powerpc/sysdev/bestcomm/Kconfig
index 57cc56562567..0b192a1c429d 100644
--- a/arch/powerpc/sysdev/bestcomm/Kconfig
+++ b/arch/powerpc/sysdev/bestcomm/Kconfig
@@ -17,23 +17,20 @@ config PPC_BESTCOMM
17 answer Y or M. Otherwise say N. 17 answer Y or M. Otherwise say N.
18 18
19config PPC_BESTCOMM_ATA 19config PPC_BESTCOMM_ATA
20 tristate "Bestcomm ATA task support" 20 tristate
21 depends on PPC_BESTCOMM 21 depends on PPC_BESTCOMM
22 default n
23 help 22 help
24 This option enables the support for the ATA task. 23 This option enables the support for the ATA task.
25 24
26config PPC_BESTCOMM_FEC 25config PPC_BESTCOMM_FEC
27 tristate "Bestcomm FEC tasks support" 26 tristate
28 depends on PPC_BESTCOMM 27 depends on PPC_BESTCOMM
29 default n
30 help 28 help
31 This option enables the support for the FEC tasks. 29 This option enables the support for the FEC tasks.
32 30
33config PPC_BESTCOMM_GEN_BD 31config PPC_BESTCOMM_GEN_BD
34 tristate "Bestcomm GenBD tasks support" 32 tristate
35 depends on PPC_BESTCOMM 33 depends on PPC_BESTCOMM
36 default n
37 help 34 help
38 This option enables the support for the GenBD tasks. 35 This option enables the support for the GenBD tasks.
39 36
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 86a7346f6f20..c82babb70074 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -600,7 +600,7 @@ static int irq_choose_cpu(unsigned int virt_irq)
600 cpuid = first_cpu(tmp); 600 cpuid = first_cpu(tmp);
601 } 601 }
602 602
603 return cpuid; 603 return get_hard_smp_processor_id(cpuid);
604} 604}
605#else 605#else
606static int irq_choose_cpu(unsigned int virt_irq) 606static int irq_choose_cpu(unsigned int virt_irq)
@@ -1260,6 +1260,7 @@ void __init mpic_set_default_senses(struct mpic *mpic, u8 *senses, int count)
1260void __init mpic_init(struct mpic *mpic) 1260void __init mpic_init(struct mpic *mpic)
1261{ 1261{
1262 int i; 1262 int i;
1263 int cpu;
1263 1264
1264 BUG_ON(mpic->num_sources == 0); 1265 BUG_ON(mpic->num_sources == 0);
1265 1266
@@ -1302,6 +1303,11 @@ void __init mpic_init(struct mpic *mpic)
1302 1303
1303 mpic_pasemi_msi_init(mpic); 1304 mpic_pasemi_msi_init(mpic);
1304 1305
1306 if (mpic->flags & MPIC_PRIMARY)
1307 cpu = hard_smp_processor_id();
1308 else
1309 cpu = 0;
1310
1305 for (i = 0; i < mpic->num_sources; i++) { 1311 for (i = 0; i < mpic->num_sources; i++) {
1306 /* start with vector = source number, and masked */ 1312 /* start with vector = source number, and masked */
1307 u32 vecpri = MPIC_VECPRI_MASK | i | 1313 u32 vecpri = MPIC_VECPRI_MASK | i |
@@ -1312,8 +1318,7 @@ void __init mpic_init(struct mpic *mpic)
1312 continue; 1318 continue;
1313 /* init hw */ 1319 /* init hw */
1314 mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri); 1320 mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri);
1315 mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1321 mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1 << cpu);
1316 1 << hard_smp_processor_id());
1317 } 1322 }
1318 1323
1319 /* Init spurious vector */ 1324 /* Init spurious vector */
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index b7aefd0d45cb..a22e1a2df1af 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -107,8 +107,8 @@ xilinx_intc_init(struct device_node *np)
107 } 107 }
108 regs = ioremap(res.start, 32); 108 regs = ioremap(res.start, 32);
109 109
110 printk(KERN_INFO "Xilinx intc at 0x%08LX mapped to 0x%p\n", 110 printk(KERN_INFO "Xilinx intc at 0x%08llx mapped to 0x%p\n",
111 res.start, regs); 111 (unsigned long long) res.start, regs);
112 112
113 /* Setup interrupt controller */ 113 /* Setup interrupt controller */
114 out_be32(regs + XINTC_IER, 0); /* disable all irqs */ 114 out_be32(regs + XINTC_IER, 0); /* disable all irqs */