Lines Matching full:msi

13 #include <linux/msi.h>
46 IMR(MSI) | \
76 /* Number of MSI IRQs */
112 * @msi: MSI information
127 struct xilinx_msi msi; member
272 struct xilinx_msi *msi; in xilinx_pl_dma_pcie_msi_handler_high() local
277 msi = &port->msi; in xilinx_pl_dma_pcie_msi_handler_high()
283 virq = irq_find_mapping(msi->dev_domain, bit); in xilinx_pl_dma_pcie_msi_handler_high()
295 struct xilinx_msi *msi; in xilinx_pl_dma_pcie_msi_handler_low() local
299 msi = &port->msi; in xilinx_pl_dma_pcie_msi_handler_low()
304 virq = irq_find_mapping(msi->dev_domain, bit); in xilinx_pl_dma_pcie_msi_handler_low()
377 .name = "pl_dma:PCIe MSI",
401 .name = "pl_dma:MSI",
409 struct xilinx_msi *msi = &pcie->msi; in xilinx_irq_domain_alloc() local
412 mutex_lock(&msi->lock); in xilinx_irq_domain_alloc()
413 bit = bitmap_find_free_region(msi->bitmap, XILINX_NUM_MSI_IRQS, in xilinx_irq_domain_alloc()
416 mutex_unlock(&msi->lock); in xilinx_irq_domain_alloc()
425 mutex_unlock(&msi->lock); in xilinx_irq_domain_alloc()
435 struct xilinx_msi *msi = &pcie->msi; in xilinx_irq_domain_free() local
437 mutex_lock(&msi->lock); in xilinx_irq_domain_free()
438 bitmap_release_region(msi->bitmap, data->hwirq, in xilinx_irq_domain_free()
440 mutex_unlock(&msi->lock); in xilinx_irq_domain_free()
450 struct xilinx_msi *msi = &port->msi; in xilinx_pl_dma_pcie_free_irq_domains() local
457 if (msi->dev_domain) { in xilinx_pl_dma_pcie_free_irq_domains()
458 irq_domain_remove(msi->dev_domain); in xilinx_pl_dma_pcie_free_irq_domains()
459 msi->dev_domain = NULL; in xilinx_pl_dma_pcie_free_irq_domains()
462 if (msi->msi_domain) { in xilinx_pl_dma_pcie_free_irq_domains()
463 irq_domain_remove(msi->msi_domain); in xilinx_pl_dma_pcie_free_irq_domains()
464 msi->msi_domain = NULL; in xilinx_pl_dma_pcie_free_irq_domains()
471 struct xilinx_msi *msi = &port->msi; in xilinx_pl_dma_pcie_init_msi_irq_domain() local
475 msi->dev_domain = irq_domain_add_linear(NULL, XILINX_NUM_MSI_IRQS, in xilinx_pl_dma_pcie_init_msi_irq_domain()
477 if (!msi->dev_domain) in xilinx_pl_dma_pcie_init_msi_irq_domain()
480 msi->msi_domain = pci_msi_create_irq_domain(fwnode, in xilinx_pl_dma_pcie_init_msi_irq_domain()
482 msi->dev_domain); in xilinx_pl_dma_pcie_init_msi_irq_domain()
483 if (!msi->msi_domain) in xilinx_pl_dma_pcie_init_msi_irq_domain()
486 mutex_init(&msi->lock); in xilinx_pl_dma_pcie_init_msi_irq_domain()
487 msi->bitmap = kzalloc(size, GFP_KERNEL); in xilinx_pl_dma_pcie_init_msi_irq_domain()
488 if (!msi->bitmap) in xilinx_pl_dma_pcie_init_msi_irq_domain()
498 dev_err(dev, "Failed to allocate MSI IRQ domains\n"); in xilinx_pl_dma_pcie_init_msi_irq_domain()
688 /* Needed for MSI DECODE MODE */ in xilinx_pl_dma_pcie_init_port()
706 port->msi.irq_msi0 = platform_get_irq_byname(pdev, "msi0"); in xilinx_request_msi_irq()
707 if (port->msi.irq_msi0 <= 0) in xilinx_request_msi_irq()
708 return port->msi.irq_msi0; in xilinx_request_msi_irq()
710 ret = devm_request_irq(dev, port->msi.irq_msi0, xilinx_pl_dma_pcie_msi_handler_low, in xilinx_request_msi_irq()
718 port->msi.irq_msi1 = platform_get_irq_byname(pdev, "msi1"); in xilinx_request_msi_irq()
719 if (port->msi.irq_msi1 <= 0) in xilinx_request_msi_irq()
720 return port->msi.irq_msi1; in xilinx_request_msi_irq()
722 ret = devm_request_irq(dev, port->msi.irq_msi1, xilinx_pl_dma_pcie_msi_handler_high, in xilinx_request_msi_irq()