mirror of https://gitee.com/openkylin/linux.git
ARM: OMAP1: ams-delta-fiq: Fix missing irq_ack
Non-serio path of Amstrad Delta FIQ deferred handler depended on
irq_ack() method provided by OMAP GPIO driver. That method has been
removed by commit 693de831c6
("gpio: omap: remove irq_ack method").
Remove useless code from the deferred handler and reimplement the
missing operation inside the base FIQ handler.
Should another dependency - irq_unmask() - be ever removed from the OMAP
GPIO driver, WARN once if missing.
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
07f9a8be66
commit
fa8397e45c
|
@ -129,6 +129,8 @@ restart:
|
||||||
orr r11, r11, r13 @ mask all requested interrupts
|
orr r11, r11, r13 @ mask all requested interrupts
|
||||||
str r11, [r12, #OMAP1510_GPIO_INT_MASK]
|
str r11, [r12, #OMAP1510_GPIO_INT_MASK]
|
||||||
|
|
||||||
|
str r13, [r12, #OMAP1510_GPIO_INT_STATUS] @ ack all requested interrupts
|
||||||
|
|
||||||
ands r10, r13, #KEYBRD_CLK_MASK @ extract keyboard status - set?
|
ands r10, r13, #KEYBRD_CLK_MASK @ extract keyboard status - set?
|
||||||
beq hksw @ no - try next source
|
beq hksw @ no - try next source
|
||||||
|
|
||||||
|
@ -136,7 +138,6 @@ restart:
|
||||||
@@@@@@@@@@@@@@@@@@@@@@
|
@@@@@@@@@@@@@@@@@@@@@@
|
||||||
@ Keyboard clock FIQ mode interrupt handler
|
@ Keyboard clock FIQ mode interrupt handler
|
||||||
@ r10 now contains KEYBRD_CLK_MASK, use it
|
@ r10 now contains KEYBRD_CLK_MASK, use it
|
||||||
str r10, [r12, #OMAP1510_GPIO_INT_STATUS] @ ack the interrupt
|
|
||||||
bic r11, r11, r10 @ unmask it
|
bic r11, r11, r10 @ unmask it
|
||||||
str r11, [r12, #OMAP1510_GPIO_INT_MASK]
|
str r11, [r12, #OMAP1510_GPIO_INT_MASK]
|
||||||
|
|
||||||
|
|
|
@ -72,9 +72,7 @@ static irqreturn_t deferred_fiq(int irq, void *dev_id)
|
||||||
* interrupts default to since commit 80ac93c27441
|
* interrupts default to since commit 80ac93c27441
|
||||||
* requires interrupt already acked and unmasked.
|
* requires interrupt already acked and unmasked.
|
||||||
*/
|
*/
|
||||||
if (irq_chip->irq_ack)
|
if (!WARN_ON_ONCE(!irq_chip->irq_unmask))
|
||||||
irq_chip->irq_ack(d);
|
|
||||||
if (irq_chip->irq_unmask)
|
|
||||||
irq_chip->irq_unmask(d);
|
irq_chip->irq_unmask(d);
|
||||||
}
|
}
|
||||||
for (; irq_counter[gpio] < fiq_count; irq_counter[gpio]++)
|
for (; irq_counter[gpio] < fiq_count; irq_counter[gpio]++)
|
||||||
|
|
Loading…
Reference in New Issue