mirror of
https://github.com/torvalds/linux.git
synced 2024-12-07 19:41:31 +00:00
PCI/MSI: Move pci_enable_msi() API to api.c
To disentangle the maze in msi.c all exported device-driver MSI APIs are now to be grouped in one file, api.c. Move pci_enable_msi() and make its kernel-doc comprehensive. Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://lore.kernel.org/r/20221111122014.755178149@linutronix.de
This commit is contained in:
parent
b12d0bec38
commit
bbda340798
@ -12,6 +12,29 @@
|
||||
|
||||
#include "msi.h"
|
||||
|
||||
/**
|
||||
* pci_enable_msi() - Enable MSI interrupt mode on device
|
||||
* @dev: the PCI device to operate on
|
||||
*
|
||||
* Legacy device driver API to enable MSI interrupts mode on device and
|
||||
* allocate a single interrupt vector. On success, the allocated vector
|
||||
* Linux IRQ will be saved at @dev->irq. The driver must invoke
|
||||
* pci_disable_msi() on cleanup.
|
||||
*
|
||||
* NOTE: The newer pci_alloc_irq_vectors() / pci_free_irq_vectors() API
|
||||
* pair should, in general, be used instead.
|
||||
*
|
||||
* Return: 0 on success, errno otherwise
|
||||
*/
|
||||
int pci_enable_msi(struct pci_dev *dev)
|
||||
{
|
||||
int rc = __pci_enable_msi_range(dev, 1, 1, NULL);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(pci_enable_msi);
|
||||
|
||||
/**
|
||||
* pci_disable_msi() - Disable MSI interrupt mode on device
|
||||
* @dev: the PCI device to operate on
|
||||
|
@ -790,7 +790,7 @@ void pci_disable_msix(struct pci_dev *dev)
|
||||
}
|
||||
EXPORT_SYMBOL(pci_disable_msix);
|
||||
|
||||
static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
|
||||
int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
|
||||
struct irq_affinity *affd)
|
||||
{
|
||||
int nvec;
|
||||
@ -844,16 +844,6 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
|
||||
}
|
||||
}
|
||||
|
||||
/* deprecated, don't use */
|
||||
int pci_enable_msi(struct pci_dev *dev)
|
||||
{
|
||||
int rc = __pci_enable_msi_range(dev, 1, 1, NULL);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(pci_enable_msi);
|
||||
|
||||
static int __pci_enable_msix_range(struct pci_dev *dev,
|
||||
struct msix_entry *entries, int minvec,
|
||||
int maxvec, struct irq_affinity *affd,
|
||||
|
@ -87,6 +87,7 @@ static inline __attribute_const__ u32 msi_multi_mask(struct msi_desc *desc)
|
||||
/* MSI internal functions invoked from the public APIs */
|
||||
void pci_msi_shutdown(struct pci_dev *dev);
|
||||
void pci_free_msi_irqs(struct pci_dev *dev);
|
||||
int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec, struct irq_affinity *affd);
|
||||
|
||||
/* Legacy (!IRQDOMAIN) fallbacks */
|
||||
#ifdef CONFIG_PCI_MSI_ARCH_FALLBACKS
|
||||
|
Loading…
Reference in New Issue
Block a user