pci_alloc_irq_vectors_affinity — allocate multiple IRQs for a device


int pci_alloc_irq_vectors_affinity (struct pci_dev * dev,
 unsigned int min_vecs,
 unsigned int max_vecs,
 unsigned int flags,
 const struct irq_affinity * affd);


struct pci_dev * dev

PCI device to operate on

unsigned int min_vecs

minimum number of vectors required (must be >= 1)

unsigned int max_vecs

maximum (desired) number of vectors

unsigned int flags

flags or quirks for the allocation

const struct irq_affinity * affd

optional description of the affinity requirements


Allocate up to max_vecs interrupt vectors for dev, using MSI-X or MSI vectors if available, and fall back to a single legacy vector if neither is available. Return the number of vectors allocated, (which might be smaller than max_vecs) if successful, or a negative error code on error. If less than min_vecs interrupt vectors are available for dev the function will fail with -ENOSPC.

To get the Linux IRQ number used for a vector that can be passed to request_irq use the pci_irq_vector helper.