Lines Matching full:imsic

7 #define pr_fmt(fmt) "riscv-imsic: " fmt
15 #include <linux/irqchip/riscv-imsic.h>
21 #include "irq-riscv-imsic-state.h"
28 struct imsic_local_config *local = per_cpu_ptr(imsic->global.local, cpu); in imsic_ipi_send()
49 /* Create IMSIC IPI multiplexing */ in imsic_ipi_domain_init()
57 /* Announce that IMSIC is providing IPIs */ in imsic_ipi_domain_init()
58 pr_info("%pfwP: providing IPIs using interrupt %d\n", imsic->fwnode, IMSIC_IPI_ID); in imsic_ipi_domain_init()
91 if (unlikely(!imsic->base_domain)) in imsic_handle_irq()
100 err = generic_handle_domain_irq(imsic->base_domain, vec->hwirq); in imsic_handle_irq()
110 /* Mark per-CPU IMSIC state as online */ in imsic_starting_cpu()
136 /* Mark per-CPU IMSIC state as offline */ in imsic_dying_cpu()
172 * Don't disable per-CPU IMSIC file when CPU goes offline in imsic_early_probe()
176 cpuhp_setup_state(CPUHP_AP_IRQ_RISCV_IMSIC_STARTING, "irqchip/riscv/imsic:starting", in imsic_early_probe()
187 /* Setup IMSIC state */ in imsic_early_dt_init()
218 struct acpi_madt_imsic *imsic = (struct acpi_madt_imsic *)header; in imsic_early_acpi_init() local
221 imsic_acpi_fwnode = irq_domain_alloc_named_fwnode("imsic"); in imsic_early_acpi_init()
223 pr_err("unable to allocate IMSIC FW node\n"); in imsic_early_acpi_init()
227 /* Setup IMSIC state */ in imsic_early_acpi_init()
228 rc = imsic_setup_state(imsic_acpi_fwnode, imsic); in imsic_early_acpi_init()
234 /* Do early setup of IMSIC state and IPIs */ in imsic_early_acpi_init()
250 pr_err("%pfwP: failed to register IMSIC for MSI functionality (error %d)\n", in imsic_early_acpi_init()
254 * Even if imsic_platform_acpi_probe() fails, the IPI part of IMSIC can in imsic_early_acpi_init()