aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze/kernel/irq.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /arch/microblaze/kernel/irq.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'arch/microblaze/kernel/irq.c')
-rw-r--r--arch/microblaze/kernel/irq.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c
index 7d5ddd62d4d2..8f120aca123d 100644
--- a/arch/microblaze/kernel/irq.c
+++ b/arch/microblaze/kernel/irq.c
@@ -9,6 +9,7 @@
9 */ 9 */
10 10
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/ftrace.h>
12#include <linux/kernel.h> 13#include <linux/kernel.h>
13#include <linux/hardirq.h> 14#include <linux/hardirq.h>
14#include <linux/interrupt.h> 15#include <linux/interrupt.h>
@@ -32,7 +33,7 @@ EXPORT_SYMBOL_GPL(irq_of_parse_and_map);
32 33
33static u32 concurrent_irq; 34static u32 concurrent_irq;
34 35
35void do_IRQ(struct pt_regs *regs) 36void __irq_entry do_IRQ(struct pt_regs *regs)
36{ 37{
37 unsigned int irq; 38 unsigned int irq;
38 struct pt_regs *old_regs = set_irq_regs(regs); 39 struct pt_regs *old_regs = set_irq_regs(regs);
@@ -68,7 +69,7 @@ int show_interrupts(struct seq_file *p, void *v)
68 } 69 }
69 70
70 if (i < nr_irq) { 71 if (i < nr_irq) {
71 spin_lock_irqsave(&irq_desc[i].lock, flags); 72 raw_spin_lock_irqsave(&irq_desc[i].lock, flags);
72 action = irq_desc[i].action; 73 action = irq_desc[i].action;
73 if (!action) 74 if (!action)
74 goto skip; 75 goto skip;
@@ -89,7 +90,22 @@ int show_interrupts(struct seq_file *p, void *v)
89 90
90 seq_putc(p, '\n'); 91 seq_putc(p, '\n');
91skip: 92skip:
92 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 93 raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags);
93 } 94 }
94 return 0; 95 return 0;
95} 96}
97
98/* MS: There is no any advance mapping mechanism. We are using simple 32bit
99 intc without any cascades or any connection that's why mapping is 1:1 */
100unsigned int irq_create_mapping(struct irq_host *host, irq_hw_number_t hwirq)
101{
102 return hwirq;
103}
104EXPORT_SYMBOL_GPL(irq_create_mapping);
105
106unsigned int irq_create_of_mapping(struct device_node *controller,
107 u32 *intspec, unsigned int intsize)
108{
109 return intspec[0];
110}
111EXPORT_SYMBOL_GPL(irq_create_of_mapping);