diff options
Diffstat (limited to 'arch/alpha/kernel/sys_rx164.c')
-rw-r--r-- | arch/alpha/kernel/sys_rx164.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/arch/alpha/kernel/sys_rx164.c b/arch/alpha/kernel/sys_rx164.c index 8a029a913014..89e7e37ec84c 100644 --- a/arch/alpha/kernel/sys_rx164.c +++ b/arch/alpha/kernel/sys_rx164.c | |||
@@ -58,28 +58,11 @@ rx164_disable_irq(unsigned int irq) | |||
58 | rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16))); | 58 | rx164_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16))); |
59 | } | 59 | } |
60 | 60 | ||
61 | static unsigned int | ||
62 | rx164_startup_irq(unsigned int irq) | ||
63 | { | ||
64 | rx164_enable_irq(irq); | ||
65 | return 0; | ||
66 | } | ||
67 | |||
68 | static void | ||
69 | rx164_end_irq(unsigned int irq) | ||
70 | { | ||
71 | if (!(irq_to_desc(irq)->status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
72 | rx164_enable_irq(irq); | ||
73 | } | ||
74 | |||
75 | static struct irq_chip rx164_irq_type = { | 61 | static struct irq_chip rx164_irq_type = { |
76 | .name = "RX164", | 62 | .name = "RX164", |
77 | .startup = rx164_startup_irq, | 63 | .unmask = rx164_enable_irq, |
78 | .shutdown = rx164_disable_irq, | 64 | .mask = rx164_disable_irq, |
79 | .enable = rx164_enable_irq, | 65 | .mask_ack = rx164_disable_irq, |
80 | .disable = rx164_disable_irq, | ||
81 | .ack = rx164_disable_irq, | ||
82 | .end = rx164_end_irq, | ||
83 | }; | 66 | }; |
84 | 67 | ||
85 | static void | 68 | static void |
@@ -117,7 +100,7 @@ rx164_init_irq(void) | |||
117 | rx164_update_irq_hw(0); | 100 | rx164_update_irq_hw(0); |
118 | for (i = 16; i < 40; ++i) { | 101 | for (i = 16; i < 40; ++i) { |
119 | irq_to_desc(i)->status |= IRQ_LEVEL; | 102 | irq_to_desc(i)->status |= IRQ_LEVEL; |
120 | set_irq_chip_and_handler(i, &rx164_irq_type, alpha_do_IRQ); | 103 | set_irq_chip_and_handler(i, &rx164_irq_type, handle_level_irq); |
121 | } | 104 | } |
122 | 105 | ||
123 | init_i8259a_irqs(); | 106 | init_i8259a_irqs(); |