aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/include
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2011-04-19 19:41:22 -0400
committerDavid S. Miller <davem@davemloft.net>2011-04-21 18:31:29 -0400
commit4c6773c3954cb1192f70a63e2dc61adc55bb0948 (patch)
tree959f841e0ac17fc3e4796f9ee7582ea1a02627c3 /arch/sparc/include
parentd61a38b2ced149c00898833ccd3ea0433db8ae7d (diff)
sparc32,leon: add support for extended interrupt controller
The extended IRQ controller gives the LEON 16 more IRQs. The patch installs a custom handler for the exetended controller IRQ, where a register is read and the "real" IRQ causing IRQ is determined. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include')
-rw-r--r--arch/sparc/include/asm/leon.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/sparc/include/asm/leon.h b/arch/sparc/include/asm/leon.h
index c04f96fb753c..12712541e9ee 100644
--- a/arch/sparc/include/asm/leon.h
+++ b/arch/sparc/include/asm/leon.h
@@ -183,7 +183,6 @@ static inline void leon_srmmu_enabletlb(void)
183/* macro access for leon_readnobuffer_reg() */ 183/* macro access for leon_readnobuffer_reg() */
184#define LEON_BYPASSCACHE_LOAD_VA(x) leon_readnobuffer_reg((unsigned long)(x)) 184#define LEON_BYPASSCACHE_LOAD_VA(x) leon_readnobuffer_reg((unsigned long)(x))
185 185
186extern void sparc_leon_eirq_register(int eirq);
187extern void leon_init(void); 186extern void leon_init(void);
188extern void leon_switch_mm(void); 187extern void leon_switch_mm(void);
189extern void leon_init_IRQ(void); 188extern void leon_init_IRQ(void);
@@ -339,9 +338,9 @@ struct leon2_cacheregs {
339#include <linux/interrupt.h> 338#include <linux/interrupt.h>
340 339
341struct device_node; 340struct device_node;
342extern int sparc_leon_eirq_get(int eirq, int cpu); 341extern unsigned int leon_build_device_irq(unsigned int real_irq,
343extern irqreturn_t sparc_leon_eirq_isr(int dummy, void *dev_id); 342 irq_flow_handler_t flow_handler,
344extern void sparc_leon_eirq_register(int eirq); 343 const char *name, int do_ack);
345extern void leon_clear_clock_irq(void); 344extern void leon_clear_clock_irq(void);
346extern void leon_load_profile_irq(int cpu, unsigned int limit); 345extern void leon_load_profile_irq(int cpu, unsigned int limit);
347extern void leon_init_timers(irq_handler_t counter_fn); 346extern void leon_init_timers(irq_handler_t counter_fn);