diff options
Diffstat (limited to 'arch/m68k/apollo/dn_ints.c')
-rw-r--r-- | arch/m68k/apollo/dn_ints.c | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/arch/m68k/apollo/dn_ints.c b/arch/m68k/apollo/dn_ints.c index fc190b34b621..b7d0aa37d199 100644 --- a/arch/m68k/apollo/dn_ints.c +++ b/arch/m68k/apollo/dn_ints.c | |||
@@ -1,23 +1,9 @@ | |||
1 | #include <linux/interrupt.h> | 1 | #include <linux/interrupt.h> |
2 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
3 | #include <linux/irq.h> | 2 | #include <linux/irq.h> |
4 | #else | ||
5 | #include <asm/irq.h> | ||
6 | #endif | ||
7 | 3 | ||
8 | #include <asm/traps.h> | 4 | #include <asm/traps.h> |
9 | #include <asm/apollohw.h> | 5 | #include <asm/apollohw.h> |
10 | 6 | ||
11 | #ifndef CONFIG_GENERIC_HARDIRQS | ||
12 | void dn_process_int(unsigned int irq, struct pt_regs *fp) | ||
13 | { | ||
14 | do_IRQ(irq, fp); | ||
15 | |||
16 | *(volatile unsigned char *)(pica)=0x20; | ||
17 | *(volatile unsigned char *)(picb)=0x20; | ||
18 | } | ||
19 | #endif | ||
20 | |||
21 | unsigned int apollo_irq_startup(struct irq_data *data) | 7 | unsigned int apollo_irq_startup(struct irq_data *data) |
22 | { | 8 | { |
23 | unsigned int irq = data->irq; | 9 | unsigned int irq = data->irq; |
@@ -39,31 +25,23 @@ void apollo_irq_shutdown(struct irq_data *data) | |||
39 | *(volatile unsigned char *)(picb+1) |= (1 << (irq - 8)); | 25 | *(volatile unsigned char *)(picb+1) |= (1 << (irq - 8)); |
40 | } | 26 | } |
41 | 27 | ||
42 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
43 | void apollo_irq_eoi(struct irq_data *data) | 28 | void apollo_irq_eoi(struct irq_data *data) |
44 | { | 29 | { |
45 | *(volatile unsigned char *)(pica) = 0x20; | 30 | *(volatile unsigned char *)(pica) = 0x20; |
46 | *(volatile unsigned char *)(picb) = 0x20; | 31 | *(volatile unsigned char *)(picb) = 0x20; |
47 | } | 32 | } |
48 | #endif | ||
49 | 33 | ||
50 | static struct irq_chip apollo_irq_chip = { | 34 | static struct irq_chip apollo_irq_chip = { |
51 | .name = "apollo", | 35 | .name = "apollo", |
52 | .irq_startup = apollo_irq_startup, | 36 | .irq_startup = apollo_irq_startup, |
53 | .irq_shutdown = apollo_irq_shutdown, | 37 | .irq_shutdown = apollo_irq_shutdown, |
54 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
55 | .irq_eoi = apollo_irq_eoi, | 38 | .irq_eoi = apollo_irq_eoi, |
56 | #endif | ||
57 | }; | 39 | }; |
58 | 40 | ||
59 | 41 | ||
60 | void __init dn_init_IRQ(void) | 42 | void __init dn_init_IRQ(void) |
61 | { | 43 | { |
62 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
63 | m68k_setup_user_interrupt(VEC_USER + 96, 16, NULL); | 44 | m68k_setup_user_interrupt(VEC_USER + 96, 16, NULL); |
64 | #else | ||
65 | m68k_setup_user_interrupt(VEC_USER + 96, 16, dn_process_int); | ||
66 | #endif | ||
67 | m68k_setup_irq_controller(&apollo_irq_chip, handle_fasteoi_irq, | 45 | m68k_setup_irq_controller(&apollo_irq_chip, handle_fasteoi_irq, |
68 | IRQ_APOLLO, 16); | 46 | IRQ_APOLLO, 16); |
69 | } | 47 | } |