diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2006-06-25 08:47:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:00:57 -0400 |
commit | b5dc7840b3ebe9c7967dd8ba73db957767009ff9 (patch) | |
tree | 0c5d45c592f140937e4e3e49ac9bc4ea8fc2cef7 /arch/m68k/q40 | |
parent | 1d174cfb0f2a8967433e157bae9c2d4dcdee5324 (diff) |
[PATCH] m68k: introduce irq controller
Introduce irq controller and use it to manage auto vector interrupts.
Introduce setup_irq() which can be used for irq setup.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/m68k/q40')
-rw-r--r-- | arch/m68k/q40/config.c | 2 | ||||
-rw-r--r-- | arch/m68k/q40/q40ints.c | 17 |
2 files changed, 0 insertions, 19 deletions
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c index 5e0f9b04d45e..01fd662bfada 100644 --- a/arch/m68k/q40/config.c +++ b/arch/m68k/q40/config.c | |||
@@ -37,7 +37,6 @@ | |||
37 | #include <asm/q40_master.h> | 37 | #include <asm/q40_master.h> |
38 | 38 | ||
39 | extern irqreturn_t q40_process_int (int level, struct pt_regs *regs); | 39 | extern irqreturn_t q40_process_int (int level, struct pt_regs *regs); |
40 | extern irqreturn_t (*q40_default_handler[]) (int, void *, struct pt_regs *); /* added just for debugging */ | ||
41 | extern void q40_init_IRQ (void); | 40 | extern void q40_init_IRQ (void); |
42 | extern void q40_free_irq (unsigned int, void *); | 41 | extern void q40_free_irq (unsigned int, void *); |
43 | extern int show_q40_interrupts (struct seq_file *, void *); | 42 | extern int show_q40_interrupts (struct seq_file *, void *); |
@@ -181,7 +180,6 @@ void __init config_q40(void) | |||
181 | mach_request_irq = q40_request_irq; | 180 | mach_request_irq = q40_request_irq; |
182 | enable_irq = q40_enable_irq; | 181 | enable_irq = q40_enable_irq; |
183 | disable_irq = q40_disable_irq; | 182 | disable_irq = q40_disable_irq; |
184 | mach_default_handler = &q40_default_handler; | ||
185 | mach_get_model = q40_get_model; | 183 | mach_get_model = q40_get_model; |
186 | mach_get_hardware_list = q40_get_hardware_list; | 184 | mach_get_hardware_list = q40_get_hardware_list; |
187 | 185 | ||
diff --git a/arch/m68k/q40/q40ints.c b/arch/m68k/q40/q40ints.c index b106839ad813..ff80cba110d4 100644 --- a/arch/m68k/q40/q40ints.c +++ b/arch/m68k/q40/q40ints.c | |||
@@ -46,7 +46,6 @@ irqreturn_t q40_irq2_handler (int, void *, struct pt_regs *fp); | |||
46 | 46 | ||
47 | 47 | ||
48 | static irqreturn_t q40_defhand (int irq, void *dev_id, struct pt_regs *fp); | 48 | static irqreturn_t q40_defhand (int irq, void *dev_id, struct pt_regs *fp); |
49 | static irqreturn_t default_handler(int lev, void *dev_id, struct pt_regs *regs); | ||
50 | 49 | ||
51 | 50 | ||
52 | #define DEVNAME_SIZE 24 | 51 | #define DEVNAME_SIZE 24 |
@@ -415,22 +414,6 @@ static irqreturn_t q40_defhand (int irq, void *dev_id, struct pt_regs *fp) | |||
415 | else master_outb(-1,KEYBOARD_UNLOCK_REG); | 414 | else master_outb(-1,KEYBOARD_UNLOCK_REG); |
416 | return IRQ_NONE; | 415 | return IRQ_NONE; |
417 | } | 416 | } |
418 | static irqreturn_t default_handler(int lev, void *dev_id, struct pt_regs *regs) | ||
419 | { | ||
420 | printk ("Uninitialised interrupt level %d\n", lev); | ||
421 | return IRQ_NONE; | ||
422 | } | ||
423 | |||
424 | irqreturn_t (*q40_default_handler[SYS_IRQS])(int, void *, struct pt_regs *) = { | ||
425 | [0] = default_handler, | ||
426 | [1] = default_handler, | ||
427 | [2] = default_handler, | ||
428 | [3] = default_handler, | ||
429 | [4] = default_handler, | ||
430 | [5] = default_handler, | ||
431 | [6] = default_handler, | ||
432 | [7] = default_handler | ||
433 | }; | ||
434 | 417 | ||
435 | 418 | ||
436 | void q40_enable_irq (unsigned int irq) | 419 | void q40_enable_irq (unsigned int irq) |