diff options
author | Logan Gunthorpe <logang@deltatee.com> | 2019-05-23 16:30:51 -0600 |
---|---|---|
committer | Jon Mason <jdmason@kudzu.us> | 2019-06-13 08:59:34 -0400 |
commit | d7cc609fb679e11dc2b00cbe6c50cbd37ec4bfa2 (patch) | |
tree | d8c7682961efed1e6b99045510c5b2cf935c64a6 /include/linux/pci.h | |
parent | a944ccc3b0aedb7f3a24b8c90624fe182e8a8851 (diff) | |
download | linux-d7cc609fb679e11dc2b00cbe6c50cbd37ec4bfa2.tar.gz linux-d7cc609fb679e11dc2b00cbe6c50cbd37ec4bfa2.tar.bz2 linux-d7cc609fb679e11dc2b00cbe6c50cbd37ec4bfa2.zip |
PCI/MSI: Support allocating virtual MSI interrupts
For NTB devices, we want to be able to trigger MSI interrupts
through a memory window. In these cases we may want to use
more interrupts than the NTB PCI device has available in its MSI-X
table.
We allow for this by creating a new 'virtual' interrupt. These
interrupts are allocated as usual but are not programmed into the
MSI-X table (as there may not be space for them).
The MSI address and data will then handled through an NTB MSI library
introduced later in this series.
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r-- | include/linux/pci.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h index 4a5a84d7bdd4..19b5c27c6f63 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1362,6 +1362,15 @@ int pci_set_vga_state(struct pci_dev *pdev, bool decode, #define PCI_IRQ_MSI (1 << 1) /* Allow MSI interrupts */ #define PCI_IRQ_MSIX (1 << 2) /* Allow MSI-X interrupts */ #define PCI_IRQ_AFFINITY (1 << 3) /* Auto-assign affinity */ + +/* + * Virtual interrupts allow for more interrupts to be allocated + * than the device has interrupts for. These are not programmed + * into the device's MSI-X table and must be handled by some + * other driver means. + */ +#define PCI_IRQ_VIRTUAL (1 << 4) + #define PCI_IRQ_ALL_TYPES \ (PCI_IRQ_LEGACY | PCI_IRQ_MSI | PCI_IRQ_MSIX) |