ARCv2: IDU-intc: mask all common interrupts by default
authorYuriy Kolerov <yuriy.kolerov@synopsys.com>
Wed, 1 Feb 2017 19:00:30 +0000 (11:00 -0800)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 6 Feb 2017 17:37:57 +0000 (09:37 -0800)
Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
[vgupta: broken off from a bigger patch]

arch/arc/kernel/mcip.c

index 21dc897..b91d833 100644 (file)
@@ -156,15 +156,20 @@ static void idu_set_mode(unsigned int cmn_irq, unsigned int lvl,
        __mcip_cmd_data(CMD_IDU_SET_MODE, cmn_irq, data.word);
 }
 
-static void idu_irq_mask(struct irq_data *data)
+static void idu_irq_mask_raw(irq_hw_number_t hwirq)
 {
        unsigned long flags;
 
        raw_spin_lock_irqsave(&mcip_lock, flags);
-       __mcip_cmd_data(CMD_IDU_SET_MASK, data->hwirq, 1);
+       __mcip_cmd_data(CMD_IDU_SET_MASK, hwirq, 1);
        raw_spin_unlock_irqrestore(&mcip_lock, flags);
 }
 
+static void idu_irq_mask(struct irq_data *data)
+{
+       idu_irq_mask_raw(data->hwirq);
+}
+
 static void idu_irq_unmask(struct irq_data *data)
 {
        unsigned long flags;
@@ -301,6 +306,9 @@ idu_of_init(struct device_node *intc, struct device_node *parent)
        /* Parent interrupts (core-intc) are already mapped */
 
        for (i = 0; i < nr_irqs; i++) {
+               /* Mask all common interrupts by default */
+               idu_irq_mask_raw(i);
+
                /*
                 * Return parent uplink IRQs (towards core intc) 24,25,.....
                 * this step has been done before already