diff options
| -rw-r--r-- | arch/alpha/kernel/sys_takara.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/alpha/kernel/sys_takara.c b/arch/alpha/kernel/sys_takara.c index f8a1e8a862f..42a5331f13c 100644 --- a/arch/alpha/kernel/sys_takara.c +++ b/arch/alpha/kernel/sys_takara.c | |||
| @@ -45,16 +45,18 @@ takara_update_irq_hw(unsigned long irq, unsigned long mask) | |||
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | static inline void | 47 | static inline void |
| 48 | takara_enable_irq(unsigned int irq) | 48 | takara_enable_irq(struct irq_data *d) |
| 49 | { | 49 | { |
| 50 | unsigned int irq = d->irq; | ||
| 50 | unsigned long mask; | 51 | unsigned long mask; |
| 51 | mask = (cached_irq_mask[irq >= 64] &= ~(1UL << (irq & 63))); | 52 | mask = (cached_irq_mask[irq >= 64] &= ~(1UL << (irq & 63))); |
| 52 | takara_update_irq_hw(irq, mask); | 53 | takara_update_irq_hw(irq, mask); |
| 53 | } | 54 | } |
| 54 | 55 | ||
| 55 | static void | 56 | static void |
| 56 | takara_disable_irq(unsigned int irq) | 57 | takara_disable_irq(struct irq_data *d) |
| 57 | { | 58 | { |
| 59 | unsigned int irq = d->irq; | ||
| 58 | unsigned long mask; | 60 | unsigned long mask; |
| 59 | mask = (cached_irq_mask[irq >= 64] |= 1UL << (irq & 63)); | 61 | mask = (cached_irq_mask[irq >= 64] |= 1UL << (irq & 63)); |
| 60 | takara_update_irq_hw(irq, mask); | 62 | takara_update_irq_hw(irq, mask); |
| @@ -62,9 +64,9 @@ takara_disable_irq(unsigned int irq) | |||
| 62 | 64 | ||
| 63 | static struct irq_chip takara_irq_type = { | 65 | static struct irq_chip takara_irq_type = { |
| 64 | .name = "TAKARA", | 66 | .name = "TAKARA", |
| 65 | .unmask = takara_enable_irq, | 67 | .irq_unmask = takara_enable_irq, |
| 66 | .mask = takara_disable_irq, | 68 | .irq_mask = takara_disable_irq, |
| 67 | .mask_ack = takara_disable_irq, | 69 | .irq_mask_ack = takara_disable_irq, |
| 68 | }; | 70 | }; |
| 69 | 71 | ||
| 70 | static void | 72 | static void |
| @@ -136,8 +138,8 @@ takara_init_irq(void) | |||
| 136 | takara_update_irq_hw(i, -1); | 138 | takara_update_irq_hw(i, -1); |
| 137 | 139 | ||
| 138 | for (i = 16; i < 128; ++i) { | 140 | for (i = 16; i < 128; ++i) { |
| 139 | irq_to_desc(i)->status |= IRQ_LEVEL; | ||
| 140 | set_irq_chip_and_handler(i, &takara_irq_type, handle_level_irq); | 141 | set_irq_chip_and_handler(i, &takara_irq_type, handle_level_irq); |
| 142 | irq_set_status_flags(i, IRQ_LEVEL); | ||
| 141 | } | 143 | } |
| 142 | 144 | ||
| 143 | common_init_isa_dma(); | 145 | common_init_isa_dma(); |
