diff options
Diffstat (limited to 'arch/alpha/kernel/sys_marvel.c')
-rw-r--r-- | arch/alpha/kernel/sys_marvel.c | 44 |
1 files changed, 10 insertions, 34 deletions
diff --git a/arch/alpha/kernel/sys_marvel.c b/arch/alpha/kernel/sys_marvel.c index a5095e09b805..2bfc9f1b1ddc 100644 --- a/arch/alpha/kernel/sys_marvel.c +++ b/arch/alpha/kernel/sys_marvel.c | |||
@@ -143,20 +143,6 @@ io7_disable_irq(unsigned int irq) | |||
143 | spin_unlock(&io7->irq_lock); | 143 | spin_unlock(&io7->irq_lock); |
144 | } | 144 | } |
145 | 145 | ||
146 | static unsigned int | ||
147 | io7_startup_irq(unsigned int irq) | ||
148 | { | ||
149 | io7_enable_irq(irq); | ||
150 | return 0; /* never anything pending */ | ||
151 | } | ||
152 | |||
153 | static void | ||
154 | io7_end_irq(unsigned int irq) | ||
155 | { | ||
156 | if (!(irq_to_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
157 | io7_enable_irq(irq); | ||
158 | } | ||
159 | |||
160 | static void | 146 | static void |
161 | marvel_irq_noop(unsigned int irq) | 147 | marvel_irq_noop(unsigned int irq) |
162 | { | 148 | { |
@@ -171,32 +157,22 @@ marvel_irq_noop_return(unsigned int irq) | |||
171 | 157 | ||
172 | static struct irq_chip marvel_legacy_irq_type = { | 158 | static struct irq_chip marvel_legacy_irq_type = { |
173 | .name = "LEGACY", | 159 | .name = "LEGACY", |
174 | .startup = marvel_irq_noop_return, | 160 | .mask = marvel_irq_noop, |
175 | .shutdown = marvel_irq_noop, | 161 | .unmask = marvel_irq_noop, |
176 | .enable = marvel_irq_noop, | ||
177 | .disable = marvel_irq_noop, | ||
178 | .ack = marvel_irq_noop, | ||
179 | .end = marvel_irq_noop, | ||
180 | }; | 162 | }; |
181 | 163 | ||
182 | static struct irq_chip io7_lsi_irq_type = { | 164 | static struct irq_chip io7_lsi_irq_type = { |
183 | .name = "LSI", | 165 | .name = "LSI", |
184 | .startup = io7_startup_irq, | 166 | .unmask = io7_enable_irq, |
185 | .shutdown = io7_disable_irq, | 167 | .mask = io7_disable_irq, |
186 | .enable = io7_enable_irq, | 168 | .mask_ack = io7_disable_irq, |
187 | .disable = io7_disable_irq, | ||
188 | .ack = io7_disable_irq, | ||
189 | .end = io7_end_irq, | ||
190 | }; | 169 | }; |
191 | 170 | ||
192 | static struct irq_chip io7_msi_irq_type = { | 171 | static struct irq_chip io7_msi_irq_type = { |
193 | .name = "MSI", | 172 | .name = "MSI", |
194 | .startup = io7_startup_irq, | 173 | .unmask = io7_enable_irq, |
195 | .shutdown = io7_disable_irq, | 174 | .mask = io7_disable_irq, |
196 | .enable = io7_enable_irq, | ||
197 | .disable = io7_disable_irq, | ||
198 | .ack = marvel_irq_noop, | 175 | .ack = marvel_irq_noop, |
199 | .end = io7_end_irq, | ||
200 | }; | 176 | }; |
201 | 177 | ||
202 | static void | 178 | static void |
@@ -305,7 +281,7 @@ init_io7_irqs(struct io7 *io7, | |||
305 | /* Set up the lsi irqs. */ | 281 | /* Set up the lsi irqs. */ |
306 | for (i = 0; i < 128; ++i) { | 282 | for (i = 0; i < 128; ++i) { |
307 | irq_to_desc(base + i)->status |= IRQ_LEVEL; | 283 | irq_to_desc(base + i)->status |= IRQ_LEVEL; |
308 | set_irq_chip_and_handler(base + i, lsi_ops, alpha_do_IRQ); | 284 | set_irq_chip_and_handler(base + i, lsi_ops, handle_level_irq); |
309 | } | 285 | } |
310 | 286 | ||
311 | /* Disable the implemented irqs in hardware. */ | 287 | /* Disable the implemented irqs in hardware. */ |
@@ -319,7 +295,7 @@ init_io7_irqs(struct io7 *io7, | |||
319 | /* Set up the msi irqs. */ | 295 | /* Set up the msi irqs. */ |
320 | for (i = 128; i < (128 + 512); ++i) { | 296 | for (i = 128; i < (128 + 512); ++i) { |
321 | irq_to_desc(base + i)->status |= IRQ_LEVEL; | 297 | irq_to_desc(base + i)->status |= IRQ_LEVEL; |
322 | set_irq_chip_and_handler(base + i, msi_ops, alpha_do_IRQ); | 298 | set_irq_chip_and_handler(base + i, msi_ops, handle_level_irq); |
323 | } | 299 | } |
324 | 300 | ||
325 | for (i = 0; i < 16; ++i) | 301 | for (i = 0; i < 16; ++i) |
@@ -337,7 +313,7 @@ marvel_init_irq(void) | |||
337 | /* Reserve the legacy irqs. */ | 313 | /* Reserve the legacy irqs. */ |
338 | for (i = 0; i < 16; ++i) { | 314 | for (i = 0; i < 16; ++i) { |
339 | set_irq_chip_and_handler(i, &marvel_legacy_irq_type, | 315 | set_irq_chip_and_handler(i, &marvel_legacy_irq_type, |
340 | alpha_do_IRQ); | 316 | handle_level_irq); |
341 | } | 317 | } |
342 | 318 | ||
343 | /* Init the io7 irqs. */ | 319 | /* Init the io7 irqs. */ |