[PATCH 13/47] bsp/tms570: Avoid spurious interrupts

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Dec 21 14:37:46 UTC 2023


---
 bsps/arm/tms570/irq/irq.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/bsps/arm/tms570/irq/irq.c b/bsps/arm/tms570/irq/irq.c
index 684e3d47fb..9a80e0e3d2 100644
--- a/bsps/arm/tms570/irq/irq.c
+++ b/bsps/arm/tms570/irq/irq.c
@@ -166,9 +166,17 @@ rtems_status_code tms570_irq_get_priority(
  */
 void bsp_interrupt_dispatch(void)
 {
-  rtems_vector_number vector = TMS570_VIM.IRQINDEX-1;
+  while (true) {
+    uint32_t irqindex;
 
-  bsp_interrupt_handler_dispatch(vector);
+    irqindex = TMS570_VIM.IRQINDEX;
+
+    if (irqindex == 0) {
+      return;
+    }
+
+    bsp_interrupt_handler_dispatch(irqindex - 1);
+  }
 }
 
 static bool can_disable(rtems_vector_number vector)
-- 
2.35.3



More information about the devel mailing list