diff options
Diffstat (limited to 'arch/alpha/kernel/sys_wildfire.c')
-rw-r--r-- | arch/alpha/kernel/sys_wildfire.c | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/arch/alpha/kernel/sys_wildfire.c b/arch/alpha/kernel/sys_wildfire.c index f6004f05f502..eec52594d410 100644 --- a/arch/alpha/kernel/sys_wildfire.c +++ b/arch/alpha/kernel/sys_wildfire.c | |||
@@ -139,32 +139,11 @@ wildfire_mask_and_ack_irq(unsigned int irq) | |||
139 | spin_unlock(&wildfire_irq_lock); | 139 | spin_unlock(&wildfire_irq_lock); |
140 | } | 140 | } |
141 | 141 | ||
142 | static unsigned int | ||
143 | wildfire_startup_irq(unsigned int irq) | ||
144 | { | ||
145 | wildfire_enable_irq(irq); | ||
146 | return 0; /* never anything pending */ | ||
147 | } | ||
148 | |||
149 | static void | ||
150 | wildfire_end_irq(unsigned int irq) | ||
151 | { | ||
152 | #if 0 | ||
153 | if (!irq_has_action(irq)) | ||
154 | printk("got irq %d\n", irq); | ||
155 | #endif | ||
156 | if (!(irq_to_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
157 | wildfire_enable_irq(irq); | ||
158 | } | ||
159 | |||
160 | static struct irq_chip wildfire_irq_type = { | 142 | static struct irq_chip wildfire_irq_type = { |
161 | .name = "WILDFIRE", | 143 | .name = "WILDFIRE", |
162 | .startup = wildfire_startup_irq, | 144 | .unmask = wildfire_enable_irq, |
163 | .shutdown = wildfire_disable_irq, | 145 | .mask = wildfire_disable_irq, |
164 | .enable = wildfire_enable_irq, | 146 | .mask_ack = wildfire_mask_and_ack_irq, |
165 | .disable = wildfire_disable_irq, | ||
166 | .ack = wildfire_mask_and_ack_irq, | ||
167 | .end = wildfire_end_irq, | ||
168 | }; | 147 | }; |
169 | 148 | ||
170 | static void __init | 149 | static void __init |
@@ -200,15 +179,16 @@ wildfire_init_irq_per_pca(int qbbno, int pcano) | |||
200 | continue; | 179 | continue; |
201 | irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL; | 180 | irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL; |
202 | set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type, | 181 | set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type, |
203 | alpha_do_IRQ); | 182 | handle_level_irq); |
204 | } | 183 | } |
205 | 184 | ||
206 | irq_to_desc(36+irq_bias)->status |= IRQ_LEVEL; | 185 | irq_to_desc(36+irq_bias)->status |= IRQ_LEVEL; |
207 | set_irq_chip_and_handler(36+irq_bias, &wildfire_irq_type, alpha_do_IRQ); | 186 | set_irq_chip_and_handler(36+irq_bias, &wildfire_irq_type, |
187 | handle_level_irq); | ||
208 | for (i = 40; i < 64; ++i) { | 188 | for (i = 40; i < 64; ++i) { |
209 | irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL; | 189 | irq_to_desc(i+irq_bias)->status |= IRQ_LEVEL; |
210 | set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type, | 190 | set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type, |
211 | alpha_do_IRQ); | 191 | handle_level_irq); |
212 | } | 192 | } |
213 | 193 | ||
214 | setup_irq(32+irq_bias, &isa_enable); | 194 | setup_irq(32+irq_bias, &isa_enable); |