Home
last modified time | relevance | path

Searched refs:imsic (Results 1 – 5 of 5) sorted by relevance

/linux/arch/riscv/kvm/
H A Daia_imsic.c34 struct imsic { struct
589 static void imsic_vsfile_cleanup(struct imsic *imsic) in imsic_vsfile_cleanup() argument
600 write_lock_irqsave(&imsic->vsfile_lock, flags); in imsic_vsfile_cleanup()
601 old_vsfile_hgei = imsic->vsfile_hgei; in imsic_vsfile_cleanup()
602 old_vsfile_cpu = imsic->vsfile_cpu; in imsic_vsfile_cleanup()
603 imsic->vsfile_cpu = imsic->vsfile_hgei = -1; in imsic_vsfile_cleanup()
604 imsic->vsfile_va = NULL; in imsic_vsfile_cleanup()
605 imsic->vsfile_pa = 0; in imsic_vsfile_cleanup()
606 write_unlock_irqrestore(&imsic->vsfile_lock, flags); in imsic_vsfile_cleanup()
608 memset(imsic->swfile, 0, sizeof(*imsic->swfile)); in imsic_vsfile_cleanup()
[all …]
/linux/drivers/irqchip/
H A Dirq-riscv-imsic-state.c59 struct imsic_priv *imsic; variable
63 return imsic ? &imsic->global : NULL; in imsic_get_global_config()
136 for_each_set_bit(i, lpriv->dirty_bitmap, imsic->global.nr_ids + 1) { in __imsic_local_sync()
186 tlocal = per_cpu_ptr(imsic->global.local, tvec->cpu); in __imsic_local_sync()
190 mlocal = per_cpu_ptr(imsic->global.local, mvec->cpu); in __imsic_local_sync()
195 mlocal = per_cpu_ptr(imsic->global.local, mvec->cpu); in __imsic_local_sync()
228 struct imsic_local_priv *lpriv = this_cpu_ptr(imsic->lpriv); in imsic_local_sync_all()
234 bitmap_fill(lpriv->dirty_bitmap, imsic->global.nr_ids + 1); in imsic_local_sync_all()
296 lpriv = per_cpu_ptr(imsic->lpriv, vec->cpu); in imsic_vector_mask()
318 lpriv = per_cpu_ptr(imsic->lpriv, vec->cpu); in imsic_vector_unmask()
[all …]
H A Dirq-riscv-imsic-platform.c32 global = &imsic->global; in imsic_cpu_page_phys()
62 local = per_cpu_ptr(imsic->global.local, vec->cpu); in imsic_irq_retrigger()
312 .host_data = imsic, in imsic_irqdomain_init()
316 if (!imsic || !imsic->fwnode) { in imsic_irqdomain_init()
321 if (imsic->base_domain) { in imsic_irqdomain_init()
322 pr_err("%pfwP: irq domain already created\n", imsic->fwnode); in imsic_irqdomain_init()
327 info.fwnode = imsic->fwnode, in imsic_irqdomain_init()
328 imsic->base_domain = msi_create_parent_irq_domain(&info, &imsic_msi_parent_ops); in imsic_irqdomain_init()
329 if (!imsic->base_domain) { in imsic_irqdomain_init()
330 pr_err("%pfwP: failed to create IMSIC base domain\n", imsic->fwnode); in imsic_irqdomain_init()
[all …]
H A Dirq-riscv-imsic-state.h65 extern struct imsic_priv *imsic;
/linux/
H A DMAINTAINERS22421 F: drivers/irqchip/irq-riscv-imsic-*.c
22422 F: drivers/irqchip/irq-riscv-imsic-*.h
22425 F: include/linux/irqchip/riscv-imsic.h