diff options
Diffstat (limited to 'arch/xtensa/kernel/irq.c')
-rw-r--r-- | arch/xtensa/kernel/irq.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c index 7d49730f4056..fad9e0059765 100644 --- a/arch/xtensa/kernel/irq.c +++ b/arch/xtensa/kernel/irq.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Xtensa built-in interrupt controller and some generic functions copied | 4 | * Xtensa built-in interrupt controller and some generic functions copied |
5 | * from i386. | 5 | * from i386. |
6 | * | 6 | * |
7 | * Copyright (C) 2002 - 2006 Tensilica, Inc. | 7 | * Copyright (C) 2002 - 2013 Tensilica, Inc. |
8 | * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar | 8 | * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar |
9 | * | 9 | * |
10 | * | 10 | * |
@@ -19,10 +19,12 @@ | |||
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | #include <linux/kernel_stat.h> | 20 | #include <linux/kernel_stat.h> |
21 | #include <linux/irqchip.h> | 21 | #include <linux/irqchip.h> |
22 | #include <linux/irqchip/xtensa-mx.h> | ||
22 | #include <linux/irqchip/xtensa-pic.h> | 23 | #include <linux/irqchip/xtensa-pic.h> |
23 | #include <linux/irqdomain.h> | 24 | #include <linux/irqdomain.h> |
24 | #include <linux/of.h> | 25 | #include <linux/of.h> |
25 | 26 | ||
27 | #include <asm/mxregs.h> | ||
26 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
27 | #include <asm/platform.h> | 29 | #include <asm/platform.h> |
28 | 30 | ||
@@ -55,6 +57,9 @@ asmlinkage void do_IRQ(int hwirq, struct pt_regs *regs) | |||
55 | 57 | ||
56 | int arch_show_interrupts(struct seq_file *p, int prec) | 58 | int arch_show_interrupts(struct seq_file *p, int prec) |
57 | { | 59 | { |
60 | #ifdef CONFIG_SMP | ||
61 | show_ipi_list(p, prec); | ||
62 | #endif | ||
58 | seq_printf(p, "%*s: ", prec, "ERR"); | 63 | seq_printf(p, "%*s: ", prec, "ERR"); |
59 | seq_printf(p, "%10u\n", atomic_read(&irq_err_count)); | 64 | seq_printf(p, "%10u\n", atomic_read(&irq_err_count)); |
60 | return 0; | 65 | return 0; |
@@ -136,7 +141,15 @@ void __init init_IRQ(void) | |||
136 | #ifdef CONFIG_OF | 141 | #ifdef CONFIG_OF |
137 | irqchip_init(); | 142 | irqchip_init(); |
138 | #else | 143 | #else |
144 | #ifdef CONFIG_HAVE_SMP | ||
145 | xtensa_mx_init_legacy(NULL); | ||
146 | #else | ||
139 | xtensa_pic_init_legacy(NULL); | 147 | xtensa_pic_init_legacy(NULL); |
140 | #endif | 148 | #endif |
149 | #endif | ||
150 | |||
151 | #ifdef CONFIG_SMP | ||
152 | ipi_init(); | ||
153 | #endif | ||
141 | variant_init_irq(); | 154 | variant_init_irq(); |
142 | } | 155 | } |