irqchip/sifive-plic: Use riscv_get_intc_hwnode() to get parent fwnode
The RISC-V INTC irqdomain is always the parent irqdomain of SiFive PLIC so use riscv_get_intc_hwnode() to get the parent fwnode similar to other RISC-V drivers which use local interrupts. Signed-off-by: Anup Patel <apatel@ventanamicro.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20240222094006.1030709-5-apatel@ventanamicro.com
This commit is contained in:
parent
b68d0ff529
commit
6c725f33d6
@ -423,6 +423,7 @@ static int plic_probe(struct platform_device *pdev)
|
||||
struct device *dev = &pdev->dev;
|
||||
unsigned long plic_quirks = 0;
|
||||
struct plic_handler *handler;
|
||||
struct irq_domain *domain;
|
||||
struct plic_priv *priv;
|
||||
bool cpuhp_setup;
|
||||
unsigned int cpu;
|
||||
@ -502,11 +503,11 @@ static int plic_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
/* Find parent domain and register chained handler */
|
||||
if (!plic_parent_irq && irq_find_host(parent.np)) {
|
||||
plic_parent_irq = irq_of_parse_and_map(to_of_node(dev->fwnode), i);
|
||||
domain = irq_find_matching_fwnode(riscv_get_intc_hwnode(), DOMAIN_BUS_ANY);
|
||||
if (!plic_parent_irq && domain) {
|
||||
plic_parent_irq = irq_create_mapping(domain, RV_IRQ_EXT);
|
||||
if (plic_parent_irq)
|
||||
irq_set_chained_handler(plic_parent_irq,
|
||||
plic_handle_irq);
|
||||
irq_set_chained_handler(plic_parent_irq, plic_handle_irq);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user