summaryrefslogtreecommitdiffstats
path: root/arch/mn10300/kernel
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2010-10-27 17:28:58 +0100
committerDavid Howells <dhowells@redhat.com>2010-10-27 17:28:58 +0100
commit6044cf1d9426dfd5cdc1e7b9cf8eaed6418e1ff6 (patch)
tree3f6f209d37328ce1635df8f5d0b5df1cef1afe30 /arch/mn10300/kernel
parent730c1fad0ee22a170d2ee76a904709ee304931c0 (diff)
downloadlinux-6044cf1d9426dfd5cdc1e7b9cf8eaed6418e1ff6.tar.gz
linux-6044cf1d9426dfd5cdc1e7b9cf8eaed6418e1ff6.tar.bz2
linux-6044cf1d9426dfd5cdc1e7b9cf8eaed6418e1ff6.zip
MN10300: ASB2364: Handle the IRQ multiplexer in the FPGA
Handle the IRQ multiplexer in the FPGA by implementing a cascade interrupt driver for it. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'arch/mn10300/kernel')
-rw-r--r--arch/mn10300/kernel/irq.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c
index 2f66a45dcd18..c2e44597c22b 100644
--- a/arch/mn10300/kernel/irq.c
+++ b/arch/mn10300/kernel/irq.c
@@ -381,9 +381,16 @@ int show_interrupts(struct seq_file *p, void *v)
seq_printf(p, "%3d: ", i);
for_each_present_cpu(cpu)
seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu));
- seq_printf(p, " %14s.%u", irq_desc[i].chip->name,
- (GxICR(i) & GxICR_LEVEL) >>
- GxICR_LEVEL_SHIFT);
+
+ if (i < NR_CPU_IRQS)
+ seq_printf(p, " %14s.%u",
+ irq_desc[i].chip->name,
+ (GxICR(i) & GxICR_LEVEL) >>
+ GxICR_LEVEL_SHIFT);
+ else
+ seq_printf(p, " %14s",
+ irq_desc[i].chip->name);
+
seq_printf(p, " %s", action->name);
for (action = action->next;