[PATCH 28/30] leon, gptimer: offset intnum with subtimer index

Daniel Hellstrom daniel at gaisler.com
Thu Apr 13 19:31:37 UTC 2017


From: Martin Aberg <maberg at gaisler.com>

If separate interrupts are not available, then do not add the timer hardware
index number when configuring interrupt affinity.
---
 c/src/lib/libbsp/sparc/shared/timer/gptimer.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/c/src/lib/libbsp/sparc/shared/timer/gptimer.c b/c/src/lib/libbsp/sparc/shared/timer/gptimer.c
index d26d007..ebcb0b5 100644
--- a/c/src/lib/libbsp/sparc/shared/timer/gptimer.c
+++ b/c/src/lib/libbsp/sparc/shared/timer/gptimer.c
@@ -444,7 +444,13 @@ static void gptimer_tlib_irq_reg(struct tlib_dev *hand, tlib_isr_t func, void *d
 
 #if RTEMS_SMP
 	if (flags & TLIB_FLAGS_BROADCAST) {
-		drvmgr_interrupt_set_affinity(priv->dev, timer->tindex,
+		int tindex = 0;
+
+		if (priv->separate_interrupt) {
+			/* Offset interrupt number with HW subtimer index */
+			tindex = timer->tindex;
+		}
+		drvmgr_interrupt_set_affinity(priv->dev, tindex,
 					      _SMP_Online_processors);
 	}
 #endif
-- 
2.7.4




More information about the devel mailing list