PCI MSI: Add support for multiple MSI
Add the new API pci_enable_msi_block() to allow drivers to request multiple MSI and reimplement pci_enable_msi in terms of pci_enable_msi_block. Ensure that the architecture back ends don't have to know about multiple MSI. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
committed by
Jesse Barnes
parent
f2440d9acb
commit
1c8d7b0a56
@@ -789,7 +789,7 @@ struct msix_entry {
|
||||
|
||||
|
||||
#ifndef CONFIG_PCI_MSI
|
||||
static inline int pci_enable_msi(struct pci_dev *dev)
|
||||
static inline int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
@@ -824,7 +824,7 @@ static inline int pci_msi_enabled(void)
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
extern int pci_enable_msi(struct pci_dev *dev);
|
||||
extern int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec);
|
||||
extern void pci_msi_shutdown(struct pci_dev *dev);
|
||||
extern void pci_disable_msi(struct pci_dev *dev);
|
||||
extern int pci_msix_table_size(struct pci_dev *dev);
|
||||
@@ -846,6 +846,8 @@ static inline int pcie_aspm_enabled(void)
|
||||
extern int pcie_aspm_enabled(void);
|
||||
#endif
|
||||
|
||||
#define pci_enable_msi(pdev) pci_enable_msi_block(pdev, 1)
|
||||
|
||||
#ifdef CONFIG_HT_IRQ
|
||||
/* The functions a driver should call */
|
||||
int ht_create_irq(struct pci_dev *dev, int idx);
|
||||
|
Reference in New Issue
Block a user