From 9eb8baeff9f815ab1280656233d0787223ffcb08 Mon Sep 17 00:00:00 2001 From: Evgeniy Paltsev Date: Tue, 24 Jan 2023 17:36:12 +0000 Subject: [PATCH] ARC: irq: idu: mask IRQ before level setup Currently we setup irq trigger type (pulse or level) in IDU before we Mask (disable) IRQ line. The IDU is disabled at this moment, however we still may accidentally generate interrupt by trigger setup. To avoid that let's mask (disable) IRQ before trigger type setup. Signed-off-by: Eugeniy Paltsev Signed-off-by: Evgeniy Paltsev --- drivers/interrupt_controller/intc_arcv2_irq_unit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/interrupt_controller/intc_arcv2_irq_unit.c b/drivers/interrupt_controller/intc_arcv2_irq_unit.c index e437587bfcb..4a060736ce8 100644 --- a/drivers/interrupt_controller/intc_arcv2_irq_unit.c +++ b/drivers/interrupt_controller/intc_arcv2_irq_unit.c @@ -40,6 +40,9 @@ static void arc_shared_intc_init(void) * TODO: don't use z_arc_connect_idu* functions to avoid * locking/unlocking every time. */ + + /* Disable (mask) line */ + z_arc_connect_idu_set_mask(i, 0x1); z_arc_connect_idu_set_mode(i, ARC_CONNECT_INTRPT_TRIGGER_LEVEL, ARC_CONNECT_DISTRI_MODE_ROUND_ROBIN); @@ -48,9 +51,6 @@ static void arc_shared_intc_init(void) * secondary cores may be not initialized yet. */ z_arc_connect_idu_set_dest(i, BIT(ARC_MP_PRIMARY_CPU_ID)); - - /* Disable (mask) line */ - z_arc_connect_idu_set_mask(i, 0x1); } z_arc_connect_idu_enable();