Home
last modified time | relevance | path

Searched full:imsic (Results 1 – 9 of 9) sorted by relevance

/linux/drivers/irqchip/
H A Dirq-riscv-imsic-platform.c7 #define pr_fmt(fmt) "riscv-imsic: " fmt
24 #include "irq-riscv-imsic-state.h"
32 global = &imsic->global; in imsic_cpu_page_phys()
62 local = per_cpu_ptr(imsic->global.local, vec->cpu); in imsic_irq_retrigger()
140 * state when changing target IMSIC vector from one CPU to another. in imsic_irq_set_affinity()
145 * 1) First write a temporary IMSIC vector to the device which in imsic_irq_set_affinity()
146 * has MSI address same as the old IMSIC vector but MSI data in imsic_irq_set_affinity()
147 * matches the new IMSIC vector. in imsic_irq_set_affinity()
149 * 2) Next write the new IMSIC vector to the device. in imsic_irq_set_affinity()
192 /* Do nothing if the old IMSIC vector does not belong to current CPU */ in imsic_irq_force_complete_move()
[all …]
H A Dirq-riscv-imsic-early.c7 #define pr_fmt(fmt) "riscv-imsic: " fmt
18 #include <linux/irqchip/riscv-imsic.h>
24 #include "irq-riscv-imsic-state.h"
39 struct imsic_local_config *local = per_cpu_ptr(imsic->global.local, cpu); in imsic_ipi_send()
69 /* Create IMSIC IPI multiplexing */ in imsic_ipi_domain_init()
77 /* Announce that IMSIC is providing IPIs */ in imsic_ipi_domain_init()
78 pr_info("%pfwP: providing IPIs using interrupt %d\n", imsic->fwnode, IMSIC_IPI_ID); in imsic_ipi_domain_init()
95 struct imsic_local_priv *lpriv = this_cpu_ptr(imsic->lpriv); in imsic_handle_irq()
116 if (unlikely(local_id > imsic->global.nr_ids)) { in imsic_handle_irq()
144 /* Mark per-CPU IMSIC state as online */ in imsic_starting_cpu()
[all …]
H A Dirq-riscv-aplic-msi.c13 #include <linux/irqchip/riscv-imsic.h>
197 * controller to be RISC-V AIA IMSIC controller. in aplic_msi_setup()
201 dev_err(dev, "IMSIC global config not found\n"); in aplic_msi_setup()
208 dev_err(dev, "IMSIC guest index bits big for APLIC LHXS\n"); in aplic_msi_setup()
215 dev_err(dev, "IMSIC hart index bits big for APLIC LHXW\n"); in aplic_msi_setup()
222 dev_err(dev, "IMSIC group index bits big for APLIC HHXW\n"); in aplic_msi_setup()
229 dev_err(dev, "IMSIC group index shift should be >= %d\n", in aplic_msi_setup()
235 dev_err(dev, "IMSIC group index shift big for APLIC HHXS\n"); in aplic_msi_setup()
258 * IMSIC and the IMSIC MSI domains are created later through in aplic_msi_setup()
H A Dirq-riscv-imsic-state.h10 #include <linux/irqchip/riscv-imsic.h>
65 extern struct imsic_priv *imsic;
H A Dirq-riscv-rpmi-sysmsi.c13 #include <linux/irqchip/riscv-imsic.h>
H A Dirq-riscv-aplic-main.c10 #include <linux/irqchip/riscv-imsic.h>
/linux/arch/riscv/mm/
H A Dcacheflush.c35 * S-IMSIC, so the fence ensures previous data writes "happen before" in flush_icache_all()
/linux/drivers/mailbox/
H A Driscv-sbi-mpxy-mbox.c12 #include <linux/irqchip/riscv-imsic.h>
/linux/
H A DMAINTAINERS23456 F: drivers/irqchip/irq-riscv-imsic-*.c
23457 F: drivers/irqchip/irq-riscv-imsic-*.h
23460 F: include/linux/irqchip/riscv-imsic.h