mirror of
https://github.com/apache/nuttx.git
synced 2026-09-04 08:04:02 +00:00
[arm/src/moxart/irq] irq_decode: process several interrupts at once
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
This commit is contained in:
parent
ea6c65d813
commit
ab27747484
1 changed files with 12 additions and 10 deletions
|
|
@ -135,7 +135,7 @@ void up_irqinitialize(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void ftintc010_mask_irq(int irq)
|
||||
inline void ftintc010_mask_irq(int irq)
|
||||
{
|
||||
/*
|
||||
* 0: masked
|
||||
|
|
@ -274,17 +274,19 @@ void up_decodeirq(uint32_t *regs)
|
|||
|
||||
/* Detect & deliver the IRQ */
|
||||
status = getreg32(IRQ_REG(IRQ__STATUS));
|
||||
if (!status)
|
||||
return;
|
||||
while (status != 0)
|
||||
{
|
||||
/* Ack IRQ */
|
||||
num = ffs(status) - 1;
|
||||
up_ack_irq(num);
|
||||
|
||||
/* Ack IRQ */
|
||||
num = ffs(status) - 1;
|
||||
up_ack_irq(num);
|
||||
DEBUGASSERT(current_regs == NULL);
|
||||
current_regs = regs;
|
||||
|
||||
DEBUGASSERT(current_regs == NULL);
|
||||
current_regs = regs;
|
||||
irq_dispatch(num, regs);
|
||||
|
||||
irq_dispatch(num, regs);
|
||||
current_regs = NULL;
|
||||
|
||||
current_regs = NULL;
|
||||
status = getreg32(IRQ_REG(IRQ__STATUS));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue