Searched full:imsic (Results 1 – 9 of 9) sorted by relevance
| /linux/drivers/irqchip/ |
| H A D | irq-riscv-imsic-platform.c | 7 #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 D | irq-riscv-imsic-early.c | 7 #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 D | irq-riscv-aplic-msi.c | 13 #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 D | irq-riscv-imsic-state.h | 10 #include <linux/irqchip/riscv-imsic.h> 65 extern struct imsic_priv *imsic;
|
| H A D | irq-riscv-rpmi-sysmsi.c | 13 #include <linux/irqchip/riscv-imsic.h>
|
| H A D | irq-riscv-aplic-main.c | 10 #include <linux/irqchip/riscv-imsic.h>
|
| /linux/arch/riscv/mm/ |
| H A D | cacheflush.c | 35 * S-IMSIC, so the fence ensures previous data writes "happen before" in flush_icache_all()
|
| /linux/drivers/mailbox/ |
| H A D | riscv-sbi-mpxy-mbox.c | 12 #include <linux/irqchip/riscv-imsic.h>
|
| /linux/ |
| H A D | MAINTAINERS | 23456 F: drivers/irqchip/irq-riscv-imsic-*.c 23457 F: drivers/irqchip/irq-riscv-imsic-*.h 23460 F: include/linux/irqchip/riscv-imsic.h
|