diff options
author | Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> | 2009-02-01 04:18:58 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-01 04:18:58 -0500 |
commit | eb7f139ce523bfe03b1628c66d3e1d50f3c07196 (patch) | |
tree | d41b641e1a94911aaddc22b63d3d470f6cfd3ef1 /drivers/net/ixgbe/ixgbe.h | |
parent | 2f21bdd3542838dc5513a585a32aa13f01b019e7 (diff) |
ixgbe: Refactor MSI-X allocation mechanism
Our current MSI-X allocation mechanism does not support new hardware
at all. It also isn't getting the actual number of supported MSI-X vectors
from the device.
This patch allows the number of MSI-X vectors to be specific to a device,
plus it gets the number of MSI-X vectors available from PCIe configuration
space.
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe.h')
-rw-r--r-- | drivers/net/ixgbe/ixgbe.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h index 6ac361a4b8ad..341d8b555f17 100644 --- a/drivers/net/ixgbe/ixgbe.h +++ b/drivers/net/ixgbe/ixgbe.h | |||
@@ -204,9 +204,13 @@ struct ixgbe_q_vector { | |||
204 | #define OTHER_VECTOR 1 | 204 | #define OTHER_VECTOR 1 |
205 | #define NON_Q_VECTORS (OTHER_VECTOR) | 205 | #define NON_Q_VECTORS (OTHER_VECTOR) |
206 | 206 | ||
207 | #define MAX_MSIX_Q_VECTORS 16 | 207 | #define MAX_MSIX_VECTORS_82598 18 |
208 | #define MAX_MSIX_Q_VECTORS_82598 16 | ||
209 | |||
210 | #define MAX_MSIX_Q_VECTORS MAX_MSIX_Q_VECTORS_82598 | ||
211 | #define MAX_MSIX_COUNT MAX_MSIX_VECTORS_82598 | ||
212 | |||
208 | #define MIN_MSIX_Q_VECTORS 2 | 213 | #define MIN_MSIX_Q_VECTORS 2 |
209 | #define MAX_MSIX_COUNT (MAX_MSIX_Q_VECTORS + NON_Q_VECTORS) | ||
210 | #define MIN_MSIX_COUNT (MIN_MSIX_Q_VECTORS + NON_Q_VECTORS) | 214 | #define MIN_MSIX_COUNT (MIN_MSIX_Q_VECTORS + NON_Q_VECTORS) |
211 | 215 | ||
212 | /* board specific private data structure */ | 216 | /* board specific private data structure */ |
@@ -244,6 +248,7 @@ struct ixgbe_adapter { | |||
244 | u64 hw_csum_rx_good; | 248 | u64 hw_csum_rx_good; |
245 | u64 non_eop_descs; | 249 | u64 non_eop_descs; |
246 | int num_msix_vectors; | 250 | int num_msix_vectors; |
251 | int max_msix_q_vectors; /* true count of q_vectors for device */ | ||
247 | struct ixgbe_ring_feature ring_feature[3]; | 252 | struct ixgbe_ring_feature ring_feature[3]; |
248 | struct msix_entry *msix_entries; | 253 | struct msix_entry *msix_entries; |
249 | 254 | ||