diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /arch/microblaze/kernel/irq.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (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.c | 22 |
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 | ||
33 | static u32 concurrent_irq; | 34 | static u32 concurrent_irq; |
34 | 35 | ||
35 | void do_IRQ(struct pt_regs *regs) | 36 | void __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'); |
91 | skip: | 92 | skip: |
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 */ | ||
100 | unsigned int irq_create_mapping(struct irq_host *host, irq_hw_number_t hwirq) | ||
101 | { | ||
102 | return hwirq; | ||
103 | } | ||
104 | EXPORT_SYMBOL_GPL(irq_create_mapping); | ||
105 | |||
106 | unsigned int irq_create_of_mapping(struct device_node *controller, | ||
107 | u32 *intspec, unsigned int intsize) | ||
108 | { | ||
109 | return intspec[0]; | ||
110 | } | ||
111 | EXPORT_SYMBOL_GPL(irq_create_of_mapping); | ||