diff options
author | Christoph Hellwig <hch@lst.de> | 2016-09-05 17:21:45 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2016-09-06 12:38:17 -0400 |
commit | 0b9e2988ab2261fd6d4a0039edf81ed1e3662be8 (patch) | |
tree | 75dbefd4076fca402d2c62b4e62bd0e4469439e0 /mm/internal.h | |
parent | 2536524a91fe5c5a9fddd282fd4e79ee0976aefe (diff) |
ahci: use pci_alloc_irq_vectors
Use the new pci_alloc_irq_vectors API to allocate MSI-X and MSI vectors.
The big advantage over the old code is that we can use the same API for
MSI and MSI-X, and that we don't need to store the MSI-X vector mapping
in driver-private data structures.
This first conversion keeps the probe order as-is: MSI-X multi vector,
MSI multi vector, MSI single vector, MSI-X single vector and last a
single least legacy interrupt line. There is one small change of
behavior: we now check the "MSI Revert to Single Message" flag for
MSI-X in addition to MSI.
Because the API to find the Linux IRQ number for a MSI/MSI-X vector
is PCI specific, but libahaci is bus-agnostic I had to a
get_irq_vector function pointer to struct ahci_host_priv. The
alternative would be to move the multi-vector case of ahci_host_activate
to ahci.c and just call ata_host_activate directly from the others
users of ahci_host_activate.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'mm/internal.h')
0 files changed, 0 insertions, 0 deletions