Lines Matching refs:msi
135 struct rcar_msi msi; member
397 rcar_pci.msi_ctrl = &pcie->msi.chip; in rcar_pcie_enable()
557 int msi; in rcar_msi_alloc() local
561 msi = find_first_zero_bit(chip->used, INT_PCI_MSI_NR); in rcar_msi_alloc()
562 if (msi < INT_PCI_MSI_NR) in rcar_msi_alloc()
563 set_bit(msi, chip->used); in rcar_msi_alloc()
565 msi = -ENOSPC; in rcar_msi_alloc()
569 return msi; in rcar_msi_alloc()
582 struct rcar_msi *msi = &pcie->msi; in rcar_pcie_msi_irq() local
598 irq = irq_find_mapping(msi->domain, index); in rcar_pcie_msi_irq()
600 if (test_bit(index, msi->used)) in rcar_pcie_msi_irq()
619 struct rcar_msi *msi = to_rcar_msi(chip); in rcar_msi_setup_irq() local
620 struct rcar_pcie *pcie = container_of(chip, struct rcar_pcie, msi.chip); in rcar_msi_setup_irq()
625 hwirq = rcar_msi_alloc(msi); in rcar_msi_setup_irq()
629 irq = irq_create_mapping(msi->domain, hwirq); in rcar_msi_setup_irq()
631 rcar_msi_free(msi, hwirq); in rcar_msi_setup_irq()
648 struct rcar_msi *msi = to_rcar_msi(chip); in rcar_msi_teardown_irq() local
651 rcar_msi_free(msi, d->hwirq); in rcar_msi_teardown_irq()
679 struct rcar_msi *msi = &pcie->msi; in rcar_pcie_enable_msi() local
683 mutex_init(&msi->lock); in rcar_pcie_enable_msi()
685 msi->chip.dev = pcie->dev; in rcar_pcie_enable_msi()
686 msi->chip.setup_irq = rcar_msi_setup_irq; in rcar_pcie_enable_msi()
687 msi->chip.teardown_irq = rcar_msi_teardown_irq; in rcar_pcie_enable_msi()
689 msi->domain = irq_domain_add_linear(pcie->dev->of_node, INT_PCI_MSI_NR, in rcar_pcie_enable_msi()
690 &msi_domain_ops, &msi->chip); in rcar_pcie_enable_msi()
691 if (!msi->domain) { in rcar_pcie_enable_msi()
697 err = devm_request_irq(&pdev->dev, msi->irq1, rcar_pcie_msi_irq, in rcar_pcie_enable_msi()
705 err = devm_request_irq(&pdev->dev, msi->irq2, rcar_pcie_msi_irq, in rcar_pcie_enable_msi()
714 msi->pages = __get_free_pages(GFP_KERNEL, 0); in rcar_pcie_enable_msi()
715 base = virt_to_phys((void *)msi->pages); in rcar_pcie_enable_msi()
726 irq_domain_remove(msi->domain); in rcar_pcie_enable_msi()
765 pcie->msi.irq1 = i; in rcar_pcie_get_resources()
773 pcie->msi.irq2 = i; in rcar_pcie_get_resources()