diff options
Diffstat (limited to 'arch/arm/mach-shmobile/intc-sh73a0.c')
-rw-r--r-- | arch/arm/mach-shmobile/intc-sh73a0.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/arm/mach-shmobile/intc-sh73a0.c b/arch/arm/mach-shmobile/intc-sh73a0.c index f0c5e5190601..91faba666d46 100644 --- a/arch/arm/mach-shmobile/intc-sh73a0.c +++ b/arch/arm/mach-shmobile/intc-sh73a0.c | |||
@@ -23,10 +23,11 @@ | |||
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/sh_intc.h> | 25 | #include <linux/sh_intc.h> |
26 | #include <linux/irqchip.h> | ||
27 | #include <linux/irqchip/arm-gic.h> | ||
26 | #include <mach/intc.h> | 28 | #include <mach/intc.h> |
27 | #include <mach/irqs.h> | 29 | #include <mach/irqs.h> |
28 | #include <mach/sh73a0.h> | 30 | #include <mach/sh73a0.h> |
29 | #include <asm/hardware/gic.h> | ||
30 | #include <asm/mach-types.h> | 31 | #include <asm/mach-types.h> |
31 | #include <asm/mach/arch.h> | 32 | #include <asm/mach/arch.h> |
32 | 33 | ||
@@ -315,11 +316,6 @@ static int intca_gic_set_type(struct irq_data *data, unsigned int type) | |||
315 | return irq_cbp(irq_set_type, to_intca_reloc_irq(data), type); | 316 | return irq_cbp(irq_set_type, to_intca_reloc_irq(data), type); |
316 | } | 317 | } |
317 | 318 | ||
318 | static int intca_gic_set_wake(struct irq_data *data, unsigned int on) | ||
319 | { | ||
320 | return irq_cbp(irq_set_wake, to_intca_reloc_irq(data), on); | ||
321 | } | ||
322 | |||
323 | #ifdef CONFIG_SMP | 319 | #ifdef CONFIG_SMP |
324 | static int intca_gic_set_affinity(struct irq_data *data, | 320 | static int intca_gic_set_affinity(struct irq_data *data, |
325 | const struct cpumask *cpumask, | 321 | const struct cpumask *cpumask, |
@@ -339,7 +335,7 @@ struct irq_chip intca_gic_irq_chip = { | |||
339 | .irq_disable = intca_gic_disable, | 335 | .irq_disable = intca_gic_disable, |
340 | .irq_shutdown = intca_gic_disable, | 336 | .irq_shutdown = intca_gic_disable, |
341 | .irq_set_type = intca_gic_set_type, | 337 | .irq_set_type = intca_gic_set_type, |
342 | .irq_set_wake = intca_gic_set_wake, | 338 | .irq_set_wake = sh73a0_set_wake, |
343 | #ifdef CONFIG_SMP | 339 | #ifdef CONFIG_SMP |
344 | .irq_set_affinity = intca_gic_set_affinity, | 340 | .irq_set_affinity = intca_gic_set_affinity, |
345 | #endif | 341 | #endif |
@@ -464,3 +460,11 @@ void __init sh73a0_init_irq(void) | |||
464 | sh73a0_pint1_cascade.handler = sh73a0_pint1_demux; | 460 | sh73a0_pint1_cascade.handler = sh73a0_pint1_demux; |
465 | setup_irq(gic_spi(34), &sh73a0_pint1_cascade); | 461 | setup_irq(gic_spi(34), &sh73a0_pint1_cascade); |
466 | } | 462 | } |
463 | |||
464 | #ifdef CONFIG_OF | ||
465 | void __init sh73a0_init_irq_dt(void) | ||
466 | { | ||
467 | irqchip_init(); | ||
468 | gic_arch_extn.irq_set_wake = sh73a0_set_wake; | ||
469 | } | ||
470 | #endif | ||