mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
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: Guo Ren <guoren@linux.alibaba.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20211101134534.3804542-1-guoren@kernel.org
This commit is contained in:
parent
debe436e77
commit
1cbb418b69
@ -78,7 +78,7 @@ static void csky_mpintc_handler(struct pt_regs *regs)
|
||||
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);
|
||||
|
||||
@ -87,7 +87,7 @@ static void csky_mpintc_enable(struct irq_data *d)
|
||||
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);
|
||||
|
||||
@ -164,8 +164,8 @@ static int csky_irq_set_affinity(struct irq_data *d,
|
||||
static struct irq_chip csky_irq_chip = {
|
||||
.name = "C-SKY SMP Intc",
|
||||
.irq_eoi = csky_mpintc_eoi,
|
||||
.irq_enable = csky_mpintc_enable,
|
||||
.irq_disable = csky_mpintc_disable,
|
||||
.irq_unmask = csky_mpintc_unmask,
|
||||
.irq_mask = csky_mpintc_mask,
|
||||
.irq_set_type = csky_mpintc_set_type,
|
||||
#ifdef CONFIG_SMP
|
||||
.irq_set_affinity = csky_irq_set_affinity,
|
||||
|
Loading…
Reference in New Issue
Block a user