Christoph Hellwig 0b9e2988ab 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>
2016-09-06 12:38:17 -04:00
..
2016-09-06 12:38:17 -04:00
2016-08-01 18:36:01 -04:00
2016-09-03 08:27:37 +10:00
2016-07-30 21:01:36 -07:00
2016-08-26 17:39:35 -07:00
2016-09-03 11:38:43 -07:00
2016-07-30 21:01:36 -07:00
2016-08-04 09:59:37 -04:00
2016-08-02 17:05:11 -04:00
2016-08-01 18:36:01 -04:00
2016-09-03 11:38:43 -07:00
2016-07-20 23:39:36 -07:00
2016-09-03 11:38:43 -07:00
2016-08-12 14:59:10 +05:30
2016-08-06 00:01:33 -04:00
2016-08-06 00:01:33 -04:00
2016-08-05 09:48:22 -04:00
2016-08-01 18:36:01 -04:00
2016-08-01 18:37:45 -04:00
2016-08-02 19:35:40 -04:00
2016-08-06 09:20:13 -04:00