diff options
Diffstat (limited to 'arch/alpha/kernel/irq_srm.c')
-rw-r--r-- | arch/alpha/kernel/irq_srm.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/arch/alpha/kernel/irq_srm.c b/arch/alpha/kernel/irq_srm.c index d63e93e1e8b..0e57e828b41 100644 --- a/arch/alpha/kernel/irq_srm.c +++ b/arch/alpha/kernel/irq_srm.c | |||
@@ -33,29 +33,12 @@ srm_disable_irq(unsigned int irq) | |||
33 | spin_unlock(&srm_irq_lock); | 33 | spin_unlock(&srm_irq_lock); |
34 | } | 34 | } |
35 | 35 | ||
36 | static unsigned int | ||
37 | srm_startup_irq(unsigned int irq) | ||
38 | { | ||
39 | srm_enable_irq(irq); | ||
40 | return 0; | ||
41 | } | ||
42 | |||
43 | static void | ||
44 | srm_end_irq(unsigned int irq) | ||
45 | { | ||
46 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
47 | srm_enable_irq(irq); | ||
48 | } | ||
49 | |||
50 | /* Handle interrupts from the SRM, assuming no additional weirdness. */ | 36 | /* Handle interrupts from the SRM, assuming no additional weirdness. */ |
51 | static struct irq_chip srm_irq_type = { | 37 | static struct irq_chip srm_irq_type = { |
52 | .name = "SRM", | 38 | .name = "SRM", |
53 | .startup = srm_startup_irq, | 39 | .unmask = srm_enable_irq, |
54 | .shutdown = srm_disable_irq, | 40 | .mask = srm_disable_irq, |
55 | .enable = srm_enable_irq, | 41 | .mask_ack = srm_disable_irq, |
56 | .disable = srm_disable_irq, | ||
57 | .ack = srm_disable_irq, | ||
58 | .end = srm_end_irq, | ||
59 | }; | 42 | }; |
60 | 43 | ||
61 | void __init | 44 | void __init |
@@ -68,8 +51,8 @@ init_srm_irqs(long max, unsigned long ignore_mask) | |||
68 | for (i = 16; i < max; ++i) { | 51 | for (i = 16; i < max; ++i) { |
69 | if (i < 64 && ((ignore_mask >> i) & 1)) | 52 | if (i < 64 && ((ignore_mask >> i) & 1)) |
70 | continue; | 53 | continue; |
71 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 54 | set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq); |
72 | irq_desc[i].chip = &srm_irq_type; | 55 | irq_to_desc(i)->status |= IRQ_LEVEL; |
73 | } | 56 | } |
74 | } | 57 | } |
75 | 58 | ||