Commit 1cbb418b authored by Guo Ren's avatar Guo Ren Committed by Marc Zyngier

irqchip/csky-mpintc: Fixup mask/unmask implementation

The mask/unmask must be implemented, and enable/disable supplement
them if the HW requires something different at startup time. When
irq source is disabled by mask, mpintc could complete irq normally.

So drop enable/disable if favour of mask/unmask.
Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211101134534.3804542-1-guoren@kernel.org
parent debe436e
...@@ -78,7 +78,7 @@ static void csky_mpintc_handler(struct pt_regs *regs) ...@@ -78,7 +78,7 @@ static void csky_mpintc_handler(struct pt_regs *regs)
readl_relaxed(reg_base + INTCL_RDYIR)); readl_relaxed(reg_base + INTCL_RDYIR));
} }
static void csky_mpintc_enable(struct irq_data *d) static void csky_mpintc_unmask(struct irq_data *d)
{ {
void __iomem *reg_base = this_cpu_read(intcl_reg); void __iomem *reg_base = this_cpu_read(intcl_reg);
...@@ -87,7 +87,7 @@ static void csky_mpintc_enable(struct irq_data *d) ...@@ -87,7 +87,7 @@ static void csky_mpintc_enable(struct irq_data *d)
writel_relaxed(d->hwirq, reg_base + INTCL_SENR); writel_relaxed(d->hwirq, reg_base + INTCL_SENR);
} }
static void csky_mpintc_disable(struct irq_data *d) static void csky_mpintc_mask(struct irq_data *d)
{ {
void __iomem *reg_base = this_cpu_read(intcl_reg); void __iomem *reg_base = this_cpu_read(intcl_reg);
...@@ -164,8 +164,8 @@ static int csky_irq_set_affinity(struct irq_data *d, ...@@ -164,8 +164,8 @@ static int csky_irq_set_affinity(struct irq_data *d,
static struct irq_chip csky_irq_chip = { static struct irq_chip csky_irq_chip = {
.name = "C-SKY SMP Intc", .name = "C-SKY SMP Intc",
.irq_eoi = csky_mpintc_eoi, .irq_eoi = csky_mpintc_eoi,
.irq_enable = csky_mpintc_enable, .irq_unmask = csky_mpintc_unmask,
.irq_disable = csky_mpintc_disable, .irq_mask = csky_mpintc_mask,
.irq_set_type = csky_mpintc_set_type, .irq_set_type = csky_mpintc_set_type,
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
.irq_set_affinity = csky_irq_set_affinity, .irq_set_affinity = csky_irq_set_affinity,
......
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