mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 00:14:22 +08:00
[arm/src/moxart/irq] irq_decode: process one irq at once
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
This commit is contained in:
@@ -274,19 +274,17 @@ void up_decodeirq(uint32_t *regs)
|
|||||||
|
|
||||||
/* Detect & deliver the IRQ */
|
/* Detect & deliver the IRQ */
|
||||||
status = getreg32(IRQ_REG(IRQ__STATUS));
|
status = getreg32(IRQ_REG(IRQ__STATUS));
|
||||||
while (status != 0)
|
if (!status)
|
||||||
{
|
return;
|
||||||
/* Ack IRQ */
|
|
||||||
num = ffs(status) - 1;
|
|
||||||
up_ack_irq(num);
|
|
||||||
|
|
||||||
DEBUGASSERT(current_regs == NULL);
|
/* Ack IRQ */
|
||||||
current_regs = regs;
|
num = ffs(status) - 1;
|
||||||
|
up_ack_irq(num);
|
||||||
|
|
||||||
irq_dispatch(num, regs);
|
DEBUGASSERT(current_regs == NULL);
|
||||||
|
current_regs = regs;
|
||||||
|
|
||||||
current_regs = NULL;
|
irq_dispatch(num, regs);
|
||||||
|
|
||||||
status = getreg32(IRQ_REG(IRQ__STATUS));
|
current_regs = NULL;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user