diff options
Diffstat (limited to 'arch/alpha/kernel/sys_alcor.c')
-rw-r--r-- | arch/alpha/kernel/sys_alcor.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/arch/alpha/kernel/sys_alcor.c b/arch/alpha/kernel/sys_alcor.c index 20a30b8b965..7bef6176823 100644 --- a/arch/alpha/kernel/sys_alcor.c +++ b/arch/alpha/kernel/sys_alcor.c | |||
@@ -65,13 +65,6 @@ alcor_mask_and_ack_irq(unsigned int irq) | |||
65 | *(vuip)GRU_INT_CLEAR = 0; mb(); | 65 | *(vuip)GRU_INT_CLEAR = 0; mb(); |
66 | } | 66 | } |
67 | 67 | ||
68 | static unsigned int | ||
69 | alcor_startup_irq(unsigned int irq) | ||
70 | { | ||
71 | alcor_enable_irq(irq); | ||
72 | return 0; | ||
73 | } | ||
74 | |||
75 | static void | 68 | static void |
76 | alcor_isa_mask_and_ack_irq(unsigned int irq) | 69 | alcor_isa_mask_and_ack_irq(unsigned int irq) |
77 | { | 70 | { |
@@ -82,21 +75,11 @@ alcor_isa_mask_and_ack_irq(unsigned int irq) | |||
82 | *(vuip)GRU_INT_CLEAR = 0; mb(); | 75 | *(vuip)GRU_INT_CLEAR = 0; mb(); |
83 | } | 76 | } |
84 | 77 | ||
85 | static void | ||
86 | alcor_end_irq(unsigned int irq) | ||
87 | { | ||
88 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
89 | alcor_enable_irq(irq); | ||
90 | } | ||
91 | |||
92 | static struct irq_chip alcor_irq_type = { | 78 | static struct irq_chip alcor_irq_type = { |
93 | .name = "ALCOR", | 79 | .name = "ALCOR", |
94 | .startup = alcor_startup_irq, | 80 | .unmask = alcor_enable_irq, |
95 | .shutdown = alcor_disable_irq, | 81 | .mask = alcor_disable_irq, |
96 | .enable = alcor_enable_irq, | 82 | .mask_ack = alcor_mask_and_ack_irq, |
97 | .disable = alcor_disable_irq, | ||
98 | .ack = alcor_mask_and_ack_irq, | ||
99 | .end = alcor_end_irq, | ||
100 | }; | 83 | }; |
101 | 84 | ||
102 | static void | 85 | static void |
@@ -142,8 +125,8 @@ alcor_init_irq(void) | |||
142 | on while IRQ probing. */ | 125 | on while IRQ probing. */ |
143 | if (i >= 16+20 && i <= 16+30) | 126 | if (i >= 16+20 && i <= 16+30) |
144 | continue; | 127 | continue; |
145 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 128 | set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq); |
146 | irq_desc[i].chip = &alcor_irq_type; | 129 | irq_to_desc(i)->status |= IRQ_LEVEL; |
147 | } | 130 | } |
148 | i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq; | 131 | i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq; |
149 | 132 | ||