summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/drivers/pic/pic.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/components/drivers/pic/pic.c b/components/drivers/pic/pic.c
index 5cd2ece005..8893f974c2 100644
--- a/components/drivers/pic/pic.c
+++ b/components/drivers/pic/pic.c
@@ -548,11 +548,17 @@ rt_err_t rt_pic_handle_isr(struct rt_pic_irq *pirq)
rt_list_for_each_entry(child, &pirq->children_nodes, list)
{
- rt_pic_irq_ack(child->irq);
+ if (child->pic->ops->irq_ack)
+ {
+ child->pic->ops->irq_ack(child);
+ }
err = rt_pic_handle_isr(child);
- rt_pic_irq_eoi(child->irq);
+ if (child->pic->ops->irq_eoi)
+ {
+ child->pic->ops->irq_eoi(child);
+ }
}
}