Lines Matching refs:msi
271 struct mc_msi msi; member
387 struct mc_msi *msi = &port->msi; in mc_pcie_enable_msi() local
400 writel_relaxed(lower_32_bits(msi->vector_phy), in mc_pcie_enable_msi()
402 writel_relaxed(upper_32_bits(msi->vector_phy), in mc_pcie_enable_msi()
411 struct mc_msi *msi = &port->msi; in mc_handle_msi() local
424 for_each_set_bit(bit, &status, msi->num_vectors) { in mc_handle_msi()
425 ret = generic_handle_domain_irq(msi->dev_domain, bit); in mc_handle_msi()
448 phys_addr_t addr = port->msi.vector_phy; in mc_compose_msi_msg()
475 struct mc_msi *msi = &port->msi; in mc_irq_msi_domain_alloc() local
481 mutex_lock(&msi->lock); in mc_irq_msi_domain_alloc()
482 bit = find_first_zero_bit(msi->used, msi->num_vectors); in mc_irq_msi_domain_alloc()
483 if (bit >= msi->num_vectors) { in mc_irq_msi_domain_alloc()
484 mutex_unlock(&msi->lock); in mc_irq_msi_domain_alloc()
488 set_bit(bit, msi->used); in mc_irq_msi_domain_alloc()
498 mutex_unlock(&msi->lock); in mc_irq_msi_domain_alloc()
508 struct mc_msi *msi = &port->msi; in mc_irq_msi_domain_free() local
510 mutex_lock(&msi->lock); in mc_irq_msi_domain_free()
512 if (test_bit(d->hwirq, msi->used)) in mc_irq_msi_domain_free()
513 __clear_bit(d->hwirq, msi->used); in mc_irq_msi_domain_free()
517 mutex_unlock(&msi->lock); in mc_irq_msi_domain_free()
542 struct mc_msi *msi = &port->msi; in mc_allocate_msi_domains() local
544 mutex_init(&port->msi.lock); in mc_allocate_msi_domains()
546 msi->dev_domain = irq_domain_add_linear(NULL, msi->num_vectors, in mc_allocate_msi_domains()
548 if (!msi->dev_domain) { in mc_allocate_msi_domains()
553 msi->msi_domain = pci_msi_create_irq_domain(fwnode, &mc_msi_domain_info, in mc_allocate_msi_domains()
554 msi->dev_domain); in mc_allocate_msi_domains()
555 if (!msi->msi_domain) { in mc_allocate_msi_domains()
557 irq_domain_remove(msi->dev_domain); in mc_allocate_msi_domains()
1021 port->msi.vector_phy = MSI_ADDR; in mc_platform_init()
1022 port->msi.num_vectors = MC_NUM_MSI_IRQS; in mc_platform_init()