aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-09-12 04:23:06 -0400
committerVineet Gupta <vgupta@synopsys.com>2013-11-06 00:11:40 -0500
commit54c8bff14d604de23d0718eee59c5436a4703fe5 (patch)
tree2afb7639568befca863408e49df9292a301e96ad
parent07ba69a46c3394fe6675483275337e5a79a959e0 (diff)
ARC: Reset the value of Interrupt Priority Register
In case bootloader has changed the priority of one/more IRQ lines Reported-by: Noam Camus <noamc@ezchip.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r--arch/arc/kernel/irq.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/arc/kernel/irq.c b/arch/arc/kernel/irq.c
index 5fc92455da36..02684e1a0cf0 100644
--- a/arch/arc/kernel/irq.c
+++ b/arch/arc/kernel/irq.c
@@ -39,10 +39,14 @@ void arc_init_IRQ(void)
39 level_mask |= IS_ENABLED(CONFIG_ARC_IRQ5_LV2) << 5; 39 level_mask |= IS_ENABLED(CONFIG_ARC_IRQ5_LV2) << 5;
40 level_mask |= IS_ENABLED(CONFIG_ARC_IRQ6_LV2) << 6; 40 level_mask |= IS_ENABLED(CONFIG_ARC_IRQ6_LV2) << 6;
41 41
42 if (level_mask) { 42 /*
43 * Write to register, even if no LV2 IRQs configured to reset it
44 * in case bootloader had mucked with it
45 */
46 write_aux_reg(AUX_IRQ_LEV, level_mask);
47
48 if (level_mask)
43 pr_info("Level-2 interrupts bitset %x\n", level_mask); 49 pr_info("Level-2 interrupts bitset %x\n", level_mask);
44 write_aux_reg(AUX_IRQ_LEV, level_mask);
45 }
46} 50}
47 51
48/* 52/*