aboutsummaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/sys_wildfire.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/alpha/kernel/sys_wildfire.c')
-rw-r--r--arch/alpha/kernel/sys_wildfire.c34
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
142static unsigned int
143wildfire_startup_irq(unsigned int irq)
144{
145 wildfire_enable_irq(irq);
146 return 0; /* never anything pending */
147}
148
149static void
150wildfire_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
160static struct irq_chip wildfire_irq_type = { 142static 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
170static void __init 149static 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);