Lines Matching full:imsic

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()
197 * The best we can do is force cleanup the old IMSIC vector. in imsic_irq_force_complete_move()
212 .name = "IMSIC",
312 if (!imsic || !imsic->fwnode) { in imsic_irqdomain_init()
317 if (imsic->base_domain) { in imsic_irqdomain_init()
318 pr_err("%pfwP: irq domain already created\n", imsic->fwnode); in imsic_irqdomain_init()
323 imsic->base_domain = irq_domain_create_tree(imsic->fwnode, in imsic_irqdomain_init()
324 &imsic_base_domain_ops, imsic); in imsic_irqdomain_init()
325 if (!imsic->base_domain) { in imsic_irqdomain_init()
326 pr_err("%pfwP: failed to create IMSIC base domain\n", imsic->fwnode); in imsic_irqdomain_init()
329 imsic->base_domain->flags |= IRQ_DOMAIN_FLAG_MSI_PARENT; in imsic_irqdomain_init()
330 imsic->base_domain->msi_parent_ops = &imsic_msi_parent_ops; in imsic_irqdomain_init()
332 irq_domain_update_bus_token(imsic->base_domain, DOMAIN_BUS_NEXUS); in imsic_irqdomain_init()
334 global = &imsic->global; in imsic_irqdomain_init()
336 imsic->fwnode, global->hart_index_bits, global->guest_index_bits); in imsic_irqdomain_init()
338 imsic->fwnode, global->group_index_bits, global->group_index_shift); in imsic_irqdomain_init()
340 imsic->fwnode, global->nr_ids, &global->base_addr); in imsic_irqdomain_init()
342 imsic->fwnode, num_possible_cpus() * (global->nr_ids - 1)); in imsic_irqdomain_init()
349 if (imsic && imsic->fwnode != fwnode) { in imsic_platform_probe_common()
368 * imsic-platform drive probe happens late during boot, ACPI based
385 .name = "riscv-imsic",