Lines Matching defs:msi
19 #include <linux/msi.h>
88 struct mobiveil_msi *msi = &rp->msi;
154 generic_handle_domain_irq(msi->dev_domain, msi_data);
202 struct mobiveil_msi *msi = &pcie->rp.msi;
204 msi->num_of_vectors = PCI_NUM_MSI;
205 msi->msi_pages_phys = (phys_addr_t)msg_addr;
377 dev_dbg(&pcie->pdev->dev, "msi#%d address_hi %#x address_lo %#x\n",
398 struct mobiveil_msi *msi = &pcie->rp.msi;
402 mutex_lock(&msi->lock);
404 bit = find_first_zero_bit(msi->msi_irq_in_use, msi->num_of_vectors);
405 if (bit >= msi->num_of_vectors) {
406 mutex_unlock(&msi->lock);
410 set_bit(bit, msi->msi_irq_in_use);
412 mutex_unlock(&msi->lock);
425 struct mobiveil_msi *msi = &pcie->rp.msi;
427 mutex_lock(&msi->lock);
429 if (!test_bit(d->hwirq, msi->msi_irq_in_use))
433 __clear_bit(d->hwirq, msi->msi_irq_in_use);
435 mutex_unlock(&msi->lock);
446 struct mobiveil_msi *msi = &pcie->rp.msi;
448 mutex_init(&msi->lock);
449 msi->dev_domain = irq_domain_add_linear(NULL, msi->num_of_vectors,
451 if (!msi->dev_domain) {
456 msi->msi_domain = pci_msi_create_irq_domain(fwnode,
458 msi->dev_domain);
459 if (!msi->msi_domain) {
461 irq_domain_remove(msi->dev_domain);