Lines Matching refs:msi

146 	struct			rcar_msi msi;  member
404 &rcar_pcie_ops, pcie, &res, &pcie->msi.chip); in rcar_pcie_enable()
583 int msi; in rcar_msi_alloc() local
587 msi = find_first_zero_bit(chip->used, INT_PCI_MSI_NR); in rcar_msi_alloc()
588 if (msi < INT_PCI_MSI_NR) in rcar_msi_alloc()
589 set_bit(msi, chip->used); in rcar_msi_alloc()
591 msi = -ENOSPC; in rcar_msi_alloc()
595 return msi; in rcar_msi_alloc()
608 struct rcar_msi *msi = &pcie->msi; in rcar_pcie_msi_irq() local
624 irq = irq_find_mapping(msi->domain, index); in rcar_pcie_msi_irq()
626 if (test_bit(index, msi->used)) in rcar_pcie_msi_irq()
645 struct rcar_msi *msi = to_rcar_msi(chip); in rcar_msi_setup_irq() local
646 struct rcar_pcie *pcie = container_of(chip, struct rcar_pcie, msi.chip); in rcar_msi_setup_irq()
651 hwirq = rcar_msi_alloc(msi); in rcar_msi_setup_irq()
655 irq = irq_create_mapping(msi->domain, hwirq); in rcar_msi_setup_irq()
657 rcar_msi_free(msi, hwirq); in rcar_msi_setup_irq()
674 struct rcar_msi *msi = to_rcar_msi(chip); in rcar_msi_teardown_irq() local
677 rcar_msi_free(msi, d->hwirq); in rcar_msi_teardown_irq()
704 struct rcar_msi *msi = &pcie->msi; in rcar_pcie_enable_msi() local
708 mutex_init(&msi->lock); in rcar_pcie_enable_msi()
710 msi->chip.dev = pcie->dev; in rcar_pcie_enable_msi()
711 msi->chip.setup_irq = rcar_msi_setup_irq; in rcar_pcie_enable_msi()
712 msi->chip.teardown_irq = rcar_msi_teardown_irq; in rcar_pcie_enable_msi()
714 msi->domain = irq_domain_add_linear(pcie->dev->of_node, INT_PCI_MSI_NR, in rcar_pcie_enable_msi()
715 &msi_domain_ops, &msi->chip); in rcar_pcie_enable_msi()
716 if (!msi->domain) { in rcar_pcie_enable_msi()
722 err = devm_request_irq(&pdev->dev, msi->irq1, rcar_pcie_msi_irq, in rcar_pcie_enable_msi()
730 err = devm_request_irq(&pdev->dev, msi->irq2, rcar_pcie_msi_irq, in rcar_pcie_enable_msi()
739 msi->pages = __get_free_pages(GFP_KERNEL, 0); in rcar_pcie_enable_msi()
740 base = virt_to_phys((void *)msi->pages); in rcar_pcie_enable_msi()
751 irq_domain_remove(msi->domain); in rcar_pcie_enable_msi()
790 pcie->msi.irq1 = i; in rcar_pcie_get_resources()
798 pcie->msi.irq2 = i; in rcar_pcie_get_resources()