aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa/kernel/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/xtensa/kernel/irq.c')
-rw-r--r--arch/xtensa/kernel/irq.c15
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
56int arch_show_interrupts(struct seq_file *p, int prec) 58int 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}