Commit 2163266c authored by Yuriy Kolerov's avatar Yuriy Kolerov Committed by Vineet Gupta

ARC: IRQ: Use hwirq instead of virq in mask/unmask

It is necessary to use hwirq instead of virq when you communicate
with an interrupt controller since there is no guaranty that virq
numbers match hwirq numbers.
Signed-off-by: default avatarYuriy Kolerov <yuriy.kolerov@synopsys.com>
Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
parent fa84d731
...@@ -77,20 +77,20 @@ void arc_init_IRQ(void) ...@@ -77,20 +77,20 @@ void arc_init_IRQ(void)
static void arcv2_irq_mask(struct irq_data *data) static void arcv2_irq_mask(struct irq_data *data)
{ {
write_aux_reg(AUX_IRQ_SELECT, data->irq); write_aux_reg(AUX_IRQ_SELECT, data->hwirq);
write_aux_reg(AUX_IRQ_ENABLE, 0); write_aux_reg(AUX_IRQ_ENABLE, 0);
} }
static void arcv2_irq_unmask(struct irq_data *data) static void arcv2_irq_unmask(struct irq_data *data)
{ {
write_aux_reg(AUX_IRQ_SELECT, data->irq); write_aux_reg(AUX_IRQ_SELECT, data->hwirq);
write_aux_reg(AUX_IRQ_ENABLE, 1); write_aux_reg(AUX_IRQ_ENABLE, 1);
} }
void arcv2_irq_enable(struct irq_data *data) void arcv2_irq_enable(struct irq_data *data)
{ {
/* set default priority */ /* set default priority */
write_aux_reg(AUX_IRQ_SELECT, data->irq); write_aux_reg(AUX_IRQ_SELECT, data->hwirq);
write_aux_reg(AUX_IRQ_PRIORITY, ARCV2_IRQ_DEF_PRIO); write_aux_reg(AUX_IRQ_PRIORITY, ARCV2_IRQ_DEF_PRIO);
/* /*
......
...@@ -57,7 +57,7 @@ static void arc_irq_mask(struct irq_data *data) ...@@ -57,7 +57,7 @@ static void arc_irq_mask(struct irq_data *data)
unsigned int ienb; unsigned int ienb;
ienb = read_aux_reg(AUX_IENABLE); ienb = read_aux_reg(AUX_IENABLE);
ienb &= ~(1 << data->irq); ienb &= ~(1 << data->hwirq);
write_aux_reg(AUX_IENABLE, ienb); write_aux_reg(AUX_IENABLE, ienb);
} }
...@@ -66,7 +66,7 @@ static void arc_irq_unmask(struct irq_data *data) ...@@ -66,7 +66,7 @@ static void arc_irq_unmask(struct irq_data *data)
unsigned int ienb; unsigned int ienb;
ienb = read_aux_reg(AUX_IENABLE); ienb = read_aux_reg(AUX_IENABLE);
ienb |= (1 << data->irq); ienb |= (1 << data->hwirq);
write_aux_reg(AUX_IENABLE, ienb); write_aux_reg(AUX_IENABLE, ienb);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment