diff options
Diffstat (limited to 'arch/cris/arch-v10/kernel/irq.c')
| -rw-r--r-- | arch/cris/arch-v10/kernel/irq.c | 41 |
1 files changed, 10 insertions, 31 deletions
diff --git a/arch/cris/arch-v10/kernel/irq.c b/arch/cris/arch-v10/kernel/irq.c index a0c0df8be9c..7328a7cf744 100644 --- a/arch/cris/arch-v10/kernel/irq.c +++ b/arch/cris/arch-v10/kernel/irq.c | |||
| @@ -104,43 +104,21 @@ static void (*interrupt[NR_IRQS])(void) = { | |||
| 104 | IRQ31_interrupt | 104 | IRQ31_interrupt |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| 107 | static void enable_crisv10_irq(unsigned int irq); | 107 | static void enable_crisv10_irq(struct irq_data *data) |
| 108 | |||
| 109 | static unsigned int startup_crisv10_irq(unsigned int irq) | ||
| 110 | { | ||
| 111 | enable_crisv10_irq(irq); | ||
| 112 | return 0; | ||
| 113 | } | ||
| 114 | |||
| 115 | #define shutdown_crisv10_irq disable_crisv10_irq | ||
| 116 | |||
| 117 | static void enable_crisv10_irq(unsigned int irq) | ||
| 118 | { | ||
| 119 | crisv10_unmask_irq(irq); | ||
| 120 | } | ||
| 121 | |||
| 122 | static void disable_crisv10_irq(unsigned int irq) | ||
| 123 | { | ||
| 124 | crisv10_mask_irq(irq); | ||
| 125 | } | ||
| 126 | |||
| 127 | static void ack_crisv10_irq(unsigned int irq) | ||
| 128 | { | 108 | { |
| 109 | crisv10_unmask_irq(data->irq); | ||
| 129 | } | 110 | } |
| 130 | 111 | ||
| 131 | static void end_crisv10_irq(unsigned int irq) | 112 | static void disable_crisv10_irq(struct irq_data *data) |
| 132 | { | 113 | { |
| 114 | crisv10_mask_irq(data->irq); | ||
| 133 | } | 115 | } |
| 134 | 116 | ||
| 135 | static struct irq_chip crisv10_irq_type = { | 117 | static struct irq_chip crisv10_irq_type = { |
| 136 | .name = "CRISv10", | 118 | .name = "CRISv10", |
| 137 | .startup = startup_crisv10_irq, | 119 | .irq_shutdown = disable_crisv10_irq, |
| 138 | .shutdown = shutdown_crisv10_irq, | 120 | .irq_enable = enable_crisv10_irq, |
| 139 | .enable = enable_crisv10_irq, | 121 | .irq_disable = disable_crisv10_irq, |
| 140 | .disable = disable_crisv10_irq, | ||
| 141 | .ack = ack_crisv10_irq, | ||
| 142 | .end = end_crisv10_irq, | ||
| 143 | .set_affinity = NULL | ||
| 144 | }; | 122 | }; |
| 145 | 123 | ||
| 146 | void weird_irq(void); | 124 | void weird_irq(void); |
| @@ -221,7 +199,8 @@ init_IRQ(void) | |||
| 221 | 199 | ||
| 222 | /* Initialize IRQ handler descriptors. */ | 200 | /* Initialize IRQ handler descriptors. */ |
| 223 | for(i = 2; i < NR_IRQS; i++) { | 201 | for(i = 2; i < NR_IRQS; i++) { |
| 224 | irq_desc[i].chip = &crisv10_irq_type; | 202 | set_irq_desc_and_handler(i, &crisv10_irq_type, |
| 203 | handle_simple_irq); | ||
| 225 | set_int_vector(i, interrupt[i]); | 204 | set_int_vector(i, interrupt[i]); |
| 226 | } | 205 | } |
| 227 | 206 | ||
