Commit 6c725f33 authored by Anup Patel's avatar Anup Patel Committed by Thomas Gleixner

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: default avatarAnup Patel <apatel@ventanamicro.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20240222094006.1030709-5-apatel@ventanamicro.com
parent b68d0ff5
...@@ -423,6 +423,7 @@ static int plic_probe(struct platform_device *pdev) ...@@ -423,6 +423,7 @@ static int plic_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
unsigned long plic_quirks = 0; unsigned long plic_quirks = 0;
struct plic_handler *handler; struct plic_handler *handler;
struct irq_domain *domain;
struct plic_priv *priv; struct plic_priv *priv;
bool cpuhp_setup; bool cpuhp_setup;
unsigned int cpu; unsigned int cpu;
...@@ -502,11 +503,11 @@ static int plic_probe(struct platform_device *pdev) ...@@ -502,11 +503,11 @@ static int plic_probe(struct platform_device *pdev)
} }
/* Find parent domain and register chained handler */ /* Find parent domain and register chained handler */
if (!plic_parent_irq && irq_find_host(parent.np)) { domain = irq_find_matching_fwnode(riscv_get_intc_hwnode(), DOMAIN_BUS_ANY);
plic_parent_irq = irq_of_parse_and_map(to_of_node(dev->fwnode), i); if (!plic_parent_irq && domain) {
plic_parent_irq = irq_create_mapping(domain, RV_IRQ_EXT);
if (plic_parent_irq) if (plic_parent_irq)
irq_set_chained_handler(plic_parent_irq, irq_set_chained_handler(plic_parent_irq, plic_handle_irq);
plic_handle_irq);
} }
/* /*
......
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