Reviewed-by: Guo Ren <guoren@xxxxxxxxxx> On Thu, Jun 30, 2022 at 6:02 PM Samuel Holland <samuel@xxxxxxxxxxxx> wrote: > > The T-HEAD PLIC ignores additional edges seen while an edge-triggered > interrupt is being handled. Because of this behavior, the driver needs > to complete edge-triggered interrupts in the .irq_ack callback before > handling them, instead of in the .irq_eoi callback afterward. Otherwise, > it could miss some interrupts. > > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > Signed-off-by: Samuel Holland <samuel@xxxxxxxxxxxx> > --- > > Changes in v3: > - Rebased on top of the RZ/Five patches > > drivers/irqchip/irq-sifive-plic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c > index 90e44367bee9..b3a36dca7f1b 100644 > --- a/drivers/irqchip/irq-sifive-plic.c > +++ b/drivers/irqchip/irq-sifive-plic.c > @@ -474,7 +474,6 @@ static int __init plic_init(struct device_node *node, > > IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init); > IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */ > -IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */ > > static int __init plic_edge_init(struct device_node *node, > struct device_node *parent) > @@ -483,3 +482,4 @@ static int __init plic_edge_init(struct device_node *node, > } > > IRQCHIP_DECLARE(andestech_nceplic100, "andestech,nceplic100", plic_edge_init); > +IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_edge_init); > -- > 2.35.1 > -- Best Regards Guo Ren ML: https://lore.kernel.org/linux-csky/