diff options
| -rw-r--r-- | drivers/irqchip/irq-sun4i.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c index 003a146a1750..6fcef4a95a18 100644 --- a/drivers/irqchip/irq-sun4i.c +++ b/drivers/irqchip/irq-sun4i.c | |||
| @@ -41,16 +41,11 @@ static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs); | |||
| 41 | static void sun4i_irq_ack(struct irq_data *irqd) | 41 | static void sun4i_irq_ack(struct irq_data *irqd) |
| 42 | { | 42 | { |
| 43 | unsigned int irq = irqd_to_hwirq(irqd); | 43 | unsigned int irq = irqd_to_hwirq(irqd); |
| 44 | unsigned int irq_off = irq % 32; | ||
| 45 | int reg = irq / 32; | ||
| 46 | u32 val; | ||
| 47 | 44 | ||
| 48 | if (irq != 0) | 45 | if (irq != 0) |
| 49 | return; /* Only IRQ 0 / the ENMI needs to be acked */ | 46 | return; /* Only IRQ 0 / the ENMI needs to be acked */ |
| 50 | 47 | ||
| 51 | val = readl(sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg)); | 48 | writel(BIT(0), sun4i_irq_base + SUN4I_IRQ_PENDING_REG(0)); |
| 52 | writel(val | (1 << irq_off), | ||
| 53 | sun4i_irq_base + SUN4I_IRQ_PENDING_REG(reg)); | ||
| 54 | } | 49 | } |
| 55 | 50 | ||
| 56 | static void sun4i_irq_mask(struct irq_data *irqd) | 51 | static void sun4i_irq_mask(struct irq_data *irqd) |
