summaryrefslogtreecommitdiffstats
path: root/drivers/sh/intc.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-06-11 09:33:09 +0200
committerPaul Mundt <lethal@linux-sh.org>2009-06-11 09:33:09 +0200
commit54ff328b46e58568c4b3350c2fa3223ef862e5a4 (patch)
tree93a39c2dffa2490fd62f6441acba5538abf56b03 /drivers/sh/intc.c
parentsh: Wire up sys_rt_tgsigqueueinfo. (diff)
downloadlinux-54ff328b46e58568c4b3350c2fa3223ef862e5a4.tar.xz
linux-54ff328b46e58568c4b3350c2fa3223ef862e5a4.zip
sh: Tie sparseirq in to Kconfig.
Now that the dependent patches are merged, we are ready to enable sparseirq support. This simply adds the Kconfig option, and then converts from the _cpu to the _node allocation routines to follow the upstream sparseirq API changes. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/sh/intc.c')
-rw-r--r--drivers/sh/intc.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c
index caf065694042..d687a9b93d03 100644
--- a/drivers/sh/intc.c
+++ b/drivers/sh/intc.c
@@ -24,6 +24,7 @@
#include <linux/sh_intc.h>
#include <linux/sysdev.h>
#include <linux/list.h>
+#include <linux/topology.h>
#define _INTC_MK(fn, mode, addr_e, addr_d, width, shift) \
((shift) | ((width) << 5) | ((fn) << 9) | ((mode) << 13) | \
@@ -671,7 +672,7 @@ unsigned int intc_evt2irq(unsigned int vector)
void __init register_intc_controller(struct intc_desc *desc)
{
- unsigned int i, k, smp, cpu = smp_processor_id();
+ unsigned int i, k, smp;
struct intc_desc_int *d;
d = alloc_bootmem(sizeof(*d));
@@ -771,19 +772,16 @@ void __init register_intc_controller(struct intc_desc *desc)
for (i = 0; i < desc->nr_vectors; i++) {
struct intc_vect *vect = desc->vectors + i;
unsigned int irq = evt2irq(vect->vect);
-#ifdef CONFIG_SPARSE_IRQ
struct irq_desc *irq_desc;
-#endif
+
if (!vect->enum_id)
continue;
-#ifdef CONFIG_SPARSE_IRQ
- irq_desc = irq_to_desc_alloc_cpu(irq, cpu);
+ irq_desc = irq_to_desc_alloc_node(irq, numa_node_id());
if (unlikely(!irq_desc)) {
printk(KERN_INFO "can not get irq_desc for %d\n", irq);
continue;
}
-#endif
intc_register_irq(desc, d, vect->enum_id, irq);
}