The PLIC driver does not require very early initialization so let us replace use of IRQCHIP_DECLARE() with IRQCHIP_PLATFORM_DRIVER_xyz() so that PLIC is probed through platform driver probing. Signed-off-by: Anup Patel <apatel@xxxxxxxxxxxxxxxx> --- drivers/irqchip/irq-sifive-plic.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c index 56b0544b1f27..dc02f0761ced 100644 --- a/drivers/irqchip/irq-sifive-plic.c +++ b/drivers/irqchip/irq-sifive-plic.c @@ -569,8 +569,10 @@ static int __init plic_init(struct device_node *node, return __plic_init(node, parent, 0); } -IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init); -IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */ +IRQCHIP_PLATFORM_DRIVER_BEGIN(sifive_plic) +IRQCHIP_MATCH("sifive,plic-1.0.0", plic_init) +IRQCHIP_MATCH("riscv,plic0", plic_init) /* for legacy systems */ +IRQCHIP_PLATFORM_DRIVER_END(sifive_plic) static int __init plic_edge_init(struct device_node *node, struct device_node *parent) @@ -578,5 +580,7 @@ static int __init plic_edge_init(struct device_node *node, return __plic_init(node, parent, BIT(PLIC_QUIRK_EDGE_INTERRUPT)); } -IRQCHIP_DECLARE(andestech_nceplic100, "andestech,nceplic100", plic_edge_init); -IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_edge_init); +IRQCHIP_PLATFORM_DRIVER_BEGIN(edge_plic) +IRQCHIP_MATCH("andestech,nceplic100", plic_edge_init) +IRQCHIP_MATCH("thead,c900-plic", plic_edge_init) +IRQCHIP_PLATFORM_DRIVER_END(edge_plic) -- 2.34.1