diff options
Diffstat (limited to 'arch/arm/mach-pxa/pcm990-baseboard.c')
-rw-r--r-- | arch/arm/mach-pxa/pcm990-baseboard.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c index f33647a8e0b7..90820faa711a 100644 --- a/arch/arm/mach-pxa/pcm990-baseboard.c +++ b/arch/arm/mach-pxa/pcm990-baseboard.c | |||
@@ -241,23 +241,23 @@ static struct platform_device pcm990_backlight_device = { | |||
241 | 241 | ||
242 | static unsigned long pcm990_irq_enabled; | 242 | static unsigned long pcm990_irq_enabled; |
243 | 243 | ||
244 | static void pcm990_mask_ack_irq(unsigned int irq) | 244 | static void pcm990_mask_ack_irq(struct irq_data *d) |
245 | { | 245 | { |
246 | int pcm990_irq = (irq - PCM027_IRQ(0)); | 246 | int pcm990_irq = (d->irq - PCM027_IRQ(0)); |
247 | PCM990_INTMSKENA = (pcm990_irq_enabled &= ~(1 << pcm990_irq)); | 247 | PCM990_INTMSKENA = (pcm990_irq_enabled &= ~(1 << pcm990_irq)); |
248 | } | 248 | } |
249 | 249 | ||
250 | static void pcm990_unmask_irq(unsigned int irq) | 250 | static void pcm990_unmask_irq(struct irq_data *d) |
251 | { | 251 | { |
252 | int pcm990_irq = (irq - PCM027_IRQ(0)); | 252 | int pcm990_irq = (d->irq - PCM027_IRQ(0)); |
253 | /* the irq can be acknowledged only if deasserted, so it's done here */ | 253 | /* the irq can be acknowledged only if deasserted, so it's done here */ |
254 | PCM990_INTSETCLR |= 1 << pcm990_irq; | 254 | PCM990_INTSETCLR |= 1 << pcm990_irq; |
255 | PCM990_INTMSKENA = (pcm990_irq_enabled |= (1 << pcm990_irq)); | 255 | PCM990_INTMSKENA = (pcm990_irq_enabled |= (1 << pcm990_irq)); |
256 | } | 256 | } |
257 | 257 | ||
258 | static struct irq_chip pcm990_irq_chip = { | 258 | static struct irq_chip pcm990_irq_chip = { |
259 | .mask_ack = pcm990_mask_ack_irq, | 259 | .irq_mask_ack = pcm990_mask_ack_irq, |
260 | .unmask = pcm990_unmask_irq, | 260 | .irq_unmask = pcm990_unmask_irq, |
261 | }; | 261 | }; |
262 | 262 | ||
263 | static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc) | 263 | static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc) |
@@ -265,7 +265,8 @@ static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
265 | unsigned long pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled; | 265 | unsigned long pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled; |
266 | 266 | ||
267 | do { | 267 | do { |
268 | desc->chip->ack(irq); /* clear our parent IRQ */ | 268 | /* clear our parent IRQ */ |
269 | desc->irq_data.chip->irq_ack(&desc->irq_data); | ||
269 | if (likely(pending)) { | 270 | if (likely(pending)) { |
270 | irq = PCM027_IRQ(0) + __ffs(pending); | 271 | irq = PCM027_IRQ(0) + __ffs(pending); |
271 | generic_handle_irq(irq); | 272 | generic_handle_irq(irq); |