diff options
author | Tejun Heo <tj@kernel.org> | 2011-05-24 03:59:36 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2011-05-24 03:59:36 -0400 |
commit | 6988f20fe04e9ef3aea488cb8ab57fbeb78e12f0 (patch) | |
tree | c9d7fc50a2e2147a5ca07e3096e7eeb916ad2da9 /arch/m68k/kernel/irq.c | |
parent | 0415b00d175e0d8945e6785aad21b5f157976ce0 (diff) | |
parent | 6ea0c34dac89611126455537552cffe6c7e832ad (diff) |
Merge branch 'fixes-2.6.39' into for-2.6.40
Diffstat (limited to 'arch/m68k/kernel/irq.c')
-rw-r--r-- | arch/m68k/kernel/irq.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/arch/m68k/kernel/irq.c b/arch/m68k/kernel/irq.c new file mode 100644 index 00000000000..c7dd48f37be --- /dev/null +++ b/arch/m68k/kernel/irq.c | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * irq.c | ||
3 | * | ||
4 | * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com> | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file COPYING in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | |||
11 | #include <linux/types.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/kernel_stat.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/irq.h> | ||
17 | #include <linux/seq_file.h> | ||
18 | #include <asm/system.h> | ||
19 | #include <asm/traps.h> | ||
20 | |||
21 | asmlinkage void do_IRQ(int irq, struct pt_regs *regs) | ||
22 | { | ||
23 | struct pt_regs *oldregs = set_irq_regs(regs); | ||
24 | |||
25 | irq_enter(); | ||
26 | generic_handle_irq(irq); | ||
27 | irq_exit(); | ||
28 | |||
29 | set_irq_regs(oldregs); | ||
30 | } | ||
31 | |||
32 | int show_interrupts(struct seq_file *p, void *v) | ||
33 | { | ||
34 | struct irqaction *ap; | ||
35 | int irq = *((loff_t *) v); | ||
36 | |||
37 | if (irq == 0) | ||
38 | seq_puts(p, " CPU0\n"); | ||
39 | |||
40 | if (irq < NR_IRQS) { | ||
41 | struct irq_desc *desc = irq_to_desc(irq); | ||
42 | |||
43 | ap = desc->action; | ||
44 | if (ap) { | ||
45 | seq_printf(p, "%3d: ", irq); | ||
46 | seq_printf(p, "%10u ", kstat_irqs(irq)); | ||
47 | seq_printf(p, "%14s ", get_irq_desc_chip(desc)->name); | ||
48 | |||
49 | seq_printf(p, "%s", ap->name); | ||
50 | for (ap = ap->next; ap; ap = ap->next) | ||
51 | seq_printf(p, ", %s", ap->name); | ||
52 | seq_putc(p, '\n'); | ||
53 | } | ||
54 | } | ||
55 | |||
56 | return 0; | ||
57 | } | ||
58 | |||