diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2009-06-11 10:33:09 +0300 | 
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2009-06-11 10:33:09 +0300 | 
| commit | 54ff328b46e58568c4b3350c2fa3223ef862e5a4 (patch) | |
| tree | 93a39c2dffa2490fd62f6441acba5538abf56b03 /drivers/sh/intc.c | |
| parent | 6a1555fdde407dad23b8a119cf5feeb7c6466de9 (diff) | |
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.c | 10 | 
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);  	} | 
