diff options
| author | Thomas Gleixner <[email protected]> | 2023-10-09 16:01:55 +0200 |
|---|---|---|
| committer | Thomas Gleixner <[email protected]> | 2023-10-09 16:01:55 +0200 |
| commit | 4dc5af1fee55e38b5016e45b66bec1e1312973f5 (patch) | |
| tree | db8a686053b878c704c38b993b3d3b556f0a62b5 /drivers/irqchip/irq-riscv-intc.c | |
| parent | 9cd847ee4d64c10b52f26f18d19eb6462ba7d2fe (diff) | |
| parent | b673fe1a6229a49be5394f4e539055d9ce685615 (diff) | |
Merge tag 'irqchip-fixes-6.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent
Pull irqchip fixes from Marc Zyngier:
- DT binding updates for Renesas r8a779f0 and rzg2l
- Let GICv3 honor the "dma-non-coherent" attribute for systems that
rely on SW guessing what the HW supports
- Fix the RISC-V INTC probing by marking all devices as initialised
at once
- Properly translate interrupt numbers from DT on stm32-exti
- Use irq_data_get_irq_chip_data() in the rzg2l driver instead of
blindly dereferencing the irq_data structure
- Add a MAINTAINERS entry for the various ARM GIC irqchip drivers
- Remove myself as the top-level irqchip/irqdomain maintainer
Link: https://lore.kernel.org/all/[email protected]
Diffstat (limited to 'drivers/irqchip/irq-riscv-intc.c')
| -rw-r--r-- | drivers/irqchip/irq-riscv-intc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-riscv-intc.c b/drivers/irqchip/irq-riscv-intc.c index 4adeee1bc391..e8d01b14ccdd 100644 --- a/drivers/irqchip/irq-riscv-intc.c +++ b/drivers/irqchip/irq-riscv-intc.c @@ -155,8 +155,16 @@ static int __init riscv_intc_init(struct device_node *node, * for each INTC DT node. We only need to do INTC initialization * for the INTC DT node belonging to boot CPU (or boot HART). */ - if (riscv_hartid_to_cpuid(hartid) != smp_processor_id()) + if (riscv_hartid_to_cpuid(hartid) != smp_processor_id()) { + /* + * The INTC nodes of each CPU are suppliers for downstream + * interrupt controllers (such as PLIC, IMSIC and APLIC + * direct-mode) so we should mark an INTC node as initialized + * if we are not creating IRQ domain for it. + */ + fwnode_dev_initialized(of_fwnode_handle(node), true); return 0; + } return riscv_intc_init_common(of_node_to_fwnode(node)); } |