Lines Matching refs:msi

49 	struct			rcar_msi msi;  member
89 static struct rcar_pcie_host *msi_to_host(struct rcar_msi *msi) in msi_to_host() argument
91 return container_of(msi, struct rcar_pcie_host, msi); in msi_to_host()
567 struct rcar_msi *msi = &host->msi; in rcar_pcie_msi_irq() local
581 ret = generic_handle_domain_irq(msi->domain->parent, index); in rcar_pcie_msi_irq()
621 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_ack() local
622 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_ack()
630 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_mask() local
631 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_mask()
635 spin_lock_irqsave(&msi->mask_lock, flags); in rcar_msi_irq_mask()
639 spin_unlock_irqrestore(&msi->mask_lock, flags); in rcar_msi_irq_mask()
644 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_unmask() local
645 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_unmask()
649 spin_lock_irqsave(&msi->mask_lock, flags); in rcar_msi_irq_unmask()
653 spin_unlock_irqrestore(&msi->mask_lock, flags); in rcar_msi_irq_unmask()
663 struct rcar_msi *msi = irq_data_get_irq_chip_data(data); in rcar_compose_msi_msg() local
664 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_compose_msi_msg()
683 struct rcar_msi *msi = domain->host_data; in rcar_msi_domain_alloc() local
687 mutex_lock(&msi->map_lock); in rcar_msi_domain_alloc()
689 hwirq = bitmap_find_free_region(msi->used, INT_PCI_MSI_NR, order_base_2(nr_irqs)); in rcar_msi_domain_alloc()
691 mutex_unlock(&msi->map_lock); in rcar_msi_domain_alloc()
708 struct rcar_msi *msi = domain->host_data; in rcar_msi_domain_free() local
710 mutex_lock(&msi->map_lock); in rcar_msi_domain_free()
712 bitmap_release_region(msi->used, d->hwirq, order_base_2(nr_irqs)); in rcar_msi_domain_free()
714 mutex_unlock(&msi->map_lock); in rcar_msi_domain_free()
728 static int rcar_allocate_domains(struct rcar_msi *msi) in rcar_allocate_domains() argument
730 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_allocate_domains()
735 &rcar_msi_domain_ops, msi); in rcar_allocate_domains()
742 msi->domain = pci_msi_create_irq_domain(fwnode, &rcar_msi_info, parent); in rcar_allocate_domains()
743 if (!msi->domain) { in rcar_allocate_domains()
752 static void rcar_free_domains(struct rcar_msi *msi) in rcar_free_domains() argument
754 struct irq_domain *parent = msi->domain->parent; in rcar_free_domains()
756 irq_domain_remove(msi->domain); in rcar_free_domains()
764 struct rcar_msi *msi = &host->msi; in rcar_pcie_enable_msi() local
768 mutex_init(&msi->map_lock); in rcar_pcie_enable_msi()
769 spin_lock_init(&msi->mask_lock); in rcar_pcie_enable_msi()
775 err = rcar_allocate_domains(msi); in rcar_pcie_enable_msi()
780 err = devm_request_irq(dev, msi->irq1, rcar_pcie_msi_irq, in rcar_pcie_enable_msi()
788 err = devm_request_irq(dev, msi->irq2, rcar_pcie_msi_irq, in rcar_pcie_enable_msi()
809 rcar_free_domains(msi); in rcar_pcie_enable_msi()
823 rcar_free_domains(&host->msi); in rcar_pcie_teardown_msi()
857 host->msi.irq1 = i; in rcar_pcie_get_resources()
865 host->msi.irq2 = i; in rcar_pcie_get_resources()
870 irq_dispose_mapping(host->msi.irq1); in rcar_pcie_get_resources()
1044 irq_dispose_mapping(host->msi.irq2); in rcar_pcie_probe()
1045 irq_dispose_mapping(host->msi.irq1); in rcar_pcie_probe()
1084 bitmap_to_arr32(&val, host->msi.used, INT_PCI_MSI_NR); in rcar_pcie_resume()