diff options
Diffstat (limited to 'arch/microblaze/kernel/irq.c')
| -rw-r--r-- | arch/microblaze/kernel/irq.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c index 8f120aca123d..a9345fb4906a 100644 --- a/arch/microblaze/kernel/irq.c +++ b/arch/microblaze/kernel/irq.c | |||
| @@ -17,26 +17,17 @@ | |||
| 17 | #include <linux/seq_file.h> | 17 | #include <linux/seq_file.h> |
| 18 | #include <linux/kernel_stat.h> | 18 | #include <linux/kernel_stat.h> |
| 19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
| 20 | #include <linux/of_irq.h> | ||
| 20 | 21 | ||
| 21 | #include <asm/prom.h> | 22 | #include <asm/prom.h> |
| 22 | 23 | ||
| 23 | unsigned int irq_of_parse_and_map(struct device_node *dev, int index) | ||
| 24 | { | ||
| 25 | struct of_irq oirq; | ||
| 26 | |||
| 27 | if (of_irq_map_one(dev, index, &oirq)) | ||
| 28 | return NO_IRQ; | ||
| 29 | |||
| 30 | return oirq.specifier[0]; | ||
| 31 | } | ||
| 32 | EXPORT_SYMBOL_GPL(irq_of_parse_and_map); | ||
| 33 | |||
| 34 | static u32 concurrent_irq; | 24 | static u32 concurrent_irq; |
| 35 | 25 | ||
| 36 | void __irq_entry do_IRQ(struct pt_regs *regs) | 26 | void __irq_entry do_IRQ(struct pt_regs *regs) |
| 37 | { | 27 | { |
| 38 | unsigned int irq; | 28 | unsigned int irq; |
| 39 | struct pt_regs *old_regs = set_irq_regs(regs); | 29 | struct pt_regs *old_regs = set_irq_regs(regs); |
| 30 | trace_hardirqs_off(); | ||
| 40 | 31 | ||
| 41 | irq_enter(); | 32 | irq_enter(); |
| 42 | irq = get_irq(regs); | 33 | irq = get_irq(regs); |
| @@ -53,6 +44,7 @@ next_irq: | |||
| 53 | 44 | ||
| 54 | irq_exit(); | 45 | irq_exit(); |
| 55 | set_irq_regs(old_regs); | 46 | set_irq_regs(old_regs); |
| 47 | trace_hardirqs_on(); | ||
| 56 | } | 48 | } |
| 57 | 49 | ||
| 58 | int show_interrupts(struct seq_file *p, void *v) | 50 | int show_interrupts(struct seq_file *p, void *v) |
| @@ -104,7 +96,7 @@ unsigned int irq_create_mapping(struct irq_host *host, irq_hw_number_t hwirq) | |||
| 104 | EXPORT_SYMBOL_GPL(irq_create_mapping); | 96 | EXPORT_SYMBOL_GPL(irq_create_mapping); |
| 105 | 97 | ||
| 106 | unsigned int irq_create_of_mapping(struct device_node *controller, | 98 | unsigned int irq_create_of_mapping(struct device_node *controller, |
| 107 | u32 *intspec, unsigned int intsize) | 99 | const u32 *intspec, unsigned int intsize) |
| 108 | { | 100 | { |
| 109 | return intspec[0]; | 101 | return intspec[0]; |
| 110 | } | 102 | } |
