diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/mach-ixp23xx/core.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c index 092ee12ced42..affd1d5d7440 100644 --- a/arch/arm/mach-ixp23xx/core.c +++ b/arch/arm/mach-ixp23xx/core.c | |||
| @@ -178,8 +178,12 @@ static int ixp23xx_irq_set_type(unsigned int irq, unsigned int type) | |||
| 178 | 178 | ||
| 179 | static void ixp23xx_irq_mask(unsigned int irq) | 179 | static void ixp23xx_irq_mask(unsigned int irq) |
| 180 | { | 180 | { |
| 181 | volatile unsigned long *intr_reg = IXP23XX_INTR_EN1 + (irq / 32); | 181 | volatile unsigned long *intr_reg; |
| 182 | 182 | ||
| 183 | if (irq >= 56) | ||
| 184 | irq += 8; | ||
| 185 | |||
| 186 | intr_reg = IXP23XX_INTR_EN1 + (irq / 32); | ||
| 183 | *intr_reg &= ~(1 << (irq % 32)); | 187 | *intr_reg &= ~(1 << (irq % 32)); |
| 184 | } | 188 | } |
| 185 | 189 | ||
| @@ -199,17 +203,25 @@ static void ixp23xx_irq_ack(unsigned int irq) | |||
| 199 | */ | 203 | */ |
| 200 | static void ixp23xx_irq_level_unmask(unsigned int irq) | 204 | static void ixp23xx_irq_level_unmask(unsigned int irq) |
| 201 | { | 205 | { |
| 202 | volatile unsigned long *intr_reg = IXP23XX_INTR_EN1 + (irq / 32); | 206 | volatile unsigned long *intr_reg; |
| 203 | 207 | ||
| 204 | ixp23xx_irq_ack(irq); | 208 | ixp23xx_irq_ack(irq); |
| 205 | 209 | ||
| 210 | if (irq >= 56) | ||
| 211 | irq += 8; | ||
| 212 | |||
| 213 | intr_reg = IXP23XX_INTR_EN1 + (irq / 32); | ||
| 206 | *intr_reg |= (1 << (irq % 32)); | 214 | *intr_reg |= (1 << (irq % 32)); |
| 207 | } | 215 | } |
| 208 | 216 | ||
| 209 | static void ixp23xx_irq_edge_unmask(unsigned int irq) | 217 | static void ixp23xx_irq_edge_unmask(unsigned int irq) |
| 210 | { | 218 | { |
| 211 | volatile unsigned long *intr_reg = IXP23XX_INTR_EN1 + (irq / 32); | 219 | volatile unsigned long *intr_reg; |
| 220 | |||
| 221 | if (irq >= 56) | ||
| 222 | irq += 8; | ||
| 212 | 223 | ||
| 224 | intr_reg = IXP23XX_INTR_EN1 + (irq / 32); | ||
| 213 | *intr_reg |= (1 << (irq % 32)); | 225 | *intr_reg |= (1 << (irq % 32)); |
| 214 | } | 226 | } |
| 215 | 227 | ||
