Lines Matching full:msi

15 #include <linux/msi.h>
36 struct plda_msi *msi = &port->msi; in plda_handle_msi() local
49 for_each_set_bit(bit, &status, msi->num_vectors) { in plda_handle_msi()
50 ret = generic_handle_domain_irq(msi->dev_domain, bit); in plda_handle_msi()
52 dev_err_ratelimited(dev, "bad MSI IRQ %d\n", in plda_handle_msi()
72 phys_addr_t addr = port->msi.vector_phy; in plda_compose_msi_msg()
78 dev_dbg(port->dev, "msi#%x address_hi %#x address_lo %#x\n", in plda_compose_msi_msg()
83 .name = "PLDA MSI",
94 struct plda_msi *msi = &port->msi; in plda_irq_msi_domain_alloc() local
97 mutex_lock(&msi->lock); in plda_irq_msi_domain_alloc()
98 bit = find_first_zero_bit(msi->used, msi->num_vectors); in plda_irq_msi_domain_alloc()
99 if (bit >= msi->num_vectors) { in plda_irq_msi_domain_alloc()
100 mutex_unlock(&msi->lock); in plda_irq_msi_domain_alloc()
104 set_bit(bit, msi->used); in plda_irq_msi_domain_alloc()
109 mutex_unlock(&msi->lock); in plda_irq_msi_domain_alloc()
120 struct plda_msi *msi = &port->msi; in plda_irq_msi_domain_free() local
122 mutex_lock(&msi->lock); in plda_irq_msi_domain_free()
124 if (test_bit(d->hwirq, msi->used)) in plda_irq_msi_domain_free()
125 __clear_bit(d->hwirq, msi->used); in plda_irq_msi_domain_free()
127 dev_err(port->dev, "trying to free unused MSI%lu\n", d->hwirq); in plda_irq_msi_domain_free()
129 mutex_unlock(&msi->lock); in plda_irq_msi_domain_free()
138 .name = "PLDA PCIe MSI",
154 struct plda_msi *msi = &port->msi; in plda_allocate_msi_domains() local
156 mutex_init(&port->msi.lock); in plda_allocate_msi_domains()
158 msi->dev_domain = irq_domain_add_linear(NULL, msi->num_vectors, in plda_allocate_msi_domains()
160 if (!msi->dev_domain) { in plda_allocate_msi_domains()
165 msi->msi_domain = pci_msi_create_irq_domain(fwnode, in plda_allocate_msi_domains()
167 msi->dev_domain); in plda_allocate_msi_domains()
168 if (!msi->msi_domain) { in plda_allocate_msi_domains()
169 dev_err(dev, "failed to create MSI domain\n"); in plda_allocate_msi_domains()
170 irq_domain_remove(msi->dev_domain); in plda_allocate_msi_domains()
269 /* MSI event and sys events */ in plda_get_events()
483 /* Plug the MSI chained handler */ in plda_init_interrupts()
568 irq_domain_remove(pcie->msi.msi_domain); in plda_pcie_irq_domain_deinit()
569 irq_domain_remove(pcie->msi.dev_domain); in plda_pcie_irq_domain_deinit()
618 plda_set_default_msi(&port->msi); in plda_pcie_host_init()