diff options
author | PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com> | 2009-02-27 10:45:05 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-01 03:24:36 -0500 |
commit | e8e26350f114fa212e277ea02332d9347c59865d (patch) | |
tree | e5356ae1e62587c5fd128800c361fb1bf873772c /drivers/net/ixgbe/ixgbe.h | |
parent | 235ea828a1640ed493562a5fe08aa666ff84fbc4 (diff) |
ixgbe: Add 82599 device id's, hook it up into the main driver.
With the hardware-specific code in place, add all supported device id's,
along with base driver changes to enable 82599 devices. The devices
being enabled are:
8086:10f7: 82599EB 10 Gigabit KX4 Network Connection
8086:10fb: 82599EB 10 Gigabit Network Connection
The device 8086:10fb is a fully-pluggable SFP+ NIC.
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 | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h index 2d877da143cf..0b54717f707d 100644 --- a/drivers/net/ixgbe/ixgbe.h +++ b/drivers/net/ixgbe/ixgbe.h | |||
@@ -140,9 +140,9 @@ struct ixgbe_ring { | |||
140 | int cpu; | 140 | int cpu; |
141 | #endif | 141 | #endif |
142 | struct ixgbe_queue_stats stats; | 142 | struct ixgbe_queue_stats stats; |
143 | u16 v_idx; /* maps directly to the index for this ring in the hardware | 143 | u64 v_idx; /* maps directly to the index for this ring in the hardware |
144 | * vector array, can also be used for finding the bit in EICR | 144 | * vector array, can also be used for finding the bit in EICR |
145 | * and friends that represents the vector for this ring */ | 145 | * and friends that represents the vector for this ring */ |
146 | 146 | ||
147 | 147 | ||
148 | u16 work_limit; /* max work per interrupt */ | 148 | u16 work_limit; /* max work per interrupt */ |
@@ -166,8 +166,8 @@ struct ixgbe_ring_feature { | |||
166 | int mask; | 166 | int mask; |
167 | }; | 167 | }; |
168 | 168 | ||
169 | #define MAX_RX_QUEUES 64 | 169 | #define MAX_RX_QUEUES 128 |
170 | #define MAX_TX_QUEUES 32 | 170 | #define MAX_TX_QUEUES 128 |
171 | 171 | ||
172 | #define MAX_RX_PACKET_BUFFERS ((adapter->flags & IXGBE_FLAG_DCB_ENABLED) \ | 172 | #define MAX_RX_PACKET_BUFFERS ((adapter->flags & IXGBE_FLAG_DCB_ENABLED) \ |
173 | ? 8 : 1) | 173 | ? 8 : 1) |
@@ -211,11 +211,13 @@ struct ixgbe_q_vector { | |||
211 | #define OTHER_VECTOR 1 | 211 | #define OTHER_VECTOR 1 |
212 | #define NON_Q_VECTORS (OTHER_VECTOR) | 212 | #define NON_Q_VECTORS (OTHER_VECTOR) |
213 | 213 | ||
214 | #define MAX_MSIX_VECTORS_82599 64 | ||
215 | #define MAX_MSIX_Q_VECTORS_82599 64 | ||
214 | #define MAX_MSIX_VECTORS_82598 18 | 216 | #define MAX_MSIX_VECTORS_82598 18 |
215 | #define MAX_MSIX_Q_VECTORS_82598 16 | 217 | #define MAX_MSIX_Q_VECTORS_82598 16 |
216 | 218 | ||
217 | #define MAX_MSIX_Q_VECTORS MAX_MSIX_Q_VECTORS_82598 | 219 | #define MAX_MSIX_Q_VECTORS MAX_MSIX_Q_VECTORS_82599 |
218 | #define MAX_MSIX_COUNT MAX_MSIX_VECTORS_82598 | 220 | #define MAX_MSIX_COUNT MAX_MSIX_VECTORS_82599 |
219 | 221 | ||
220 | #define MIN_MSIX_Q_VECTORS 2 | 222 | #define MIN_MSIX_Q_VECTORS 2 |
221 | #define MIN_MSIX_COUNT (MIN_MSIX_Q_VECTORS + NON_Q_VECTORS) | 223 | #define MIN_MSIX_COUNT (MIN_MSIX_Q_VECTORS + NON_Q_VECTORS) |
@@ -227,7 +229,7 @@ struct ixgbe_adapter { | |||
227 | u16 bd_number; | 229 | u16 bd_number; |
228 | struct work_struct reset_task; | 230 | struct work_struct reset_task; |
229 | struct ixgbe_q_vector q_vector[MAX_MSIX_Q_VECTORS]; | 231 | struct ixgbe_q_vector q_vector[MAX_MSIX_Q_VECTORS]; |
230 | char name[MAX_MSIX_COUNT][IFNAMSIZ + 5]; | 232 | char name[MAX_MSIX_COUNT][IFNAMSIZ + 9]; |
231 | struct ixgbe_dcb_config dcb_cfg; | 233 | struct ixgbe_dcb_config dcb_cfg; |
232 | struct ixgbe_dcb_config temp_dcb_cfg; | 234 | struct ixgbe_dcb_config temp_dcb_cfg; |
233 | u8 dcb_set_bitmap; | 235 | u8 dcb_set_bitmap; |
@@ -252,6 +254,7 @@ struct ixgbe_adapter { | |||
252 | struct ixgbe_ring *rx_ring; /* One per active queue */ | 254 | struct ixgbe_ring *rx_ring; /* One per active queue */ |
253 | int num_rx_queues; | 255 | int num_rx_queues; |
254 | u64 hw_csum_rx_error; | 256 | u64 hw_csum_rx_error; |
257 | u64 hw_rx_no_dma_resources; | ||
255 | u64 hw_csum_rx_good; | 258 | u64 hw_csum_rx_good; |
256 | u64 non_eop_descs; | 259 | u64 non_eop_descs; |
257 | int num_msix_vectors; | 260 | int num_msix_vectors; |
@@ -280,6 +283,7 @@ struct ixgbe_adapter { | |||
280 | #define IXGBE_FLAG_DCA_CAPABLE (u32)(1 << 11) | 283 | #define IXGBE_FLAG_DCA_CAPABLE (u32)(1 << 11) |
281 | #define IXGBE_FLAG_IMIR_ENABLED (u32)(1 << 12) | 284 | #define IXGBE_FLAG_IMIR_ENABLED (u32)(1 << 12) |
282 | #define IXGBE_FLAG_MQ_CAPABLE (u32)(1 << 13) | 285 | #define IXGBE_FLAG_MQ_CAPABLE (u32)(1 << 13) |
286 | #define IXGBE_FLAG_DCB_ENABLED (u32)(1 << 14) | ||
283 | #define IXGBE_FLAG_RSS_ENABLED (u32)(1 << 16) | 287 | #define IXGBE_FLAG_RSS_ENABLED (u32)(1 << 16) |
284 | #define IXGBE_FLAG_RSS_CAPABLE (u32)(1 << 17) | 288 | #define IXGBE_FLAG_RSS_CAPABLE (u32)(1 << 17) |
285 | #define IXGBE_FLAG_VMDQ_CAPABLE (u32)(1 << 18) | 289 | #define IXGBE_FLAG_VMDQ_CAPABLE (u32)(1 << 18) |
@@ -287,7 +291,8 @@ struct ixgbe_adapter { | |||
287 | #define IXGBE_FLAG_FAN_FAIL_CAPABLE (u32)(1 << 20) | 291 | #define IXGBE_FLAG_FAN_FAIL_CAPABLE (u32)(1 << 20) |
288 | #define IXGBE_FLAG_NEED_LINK_UPDATE (u32)(1 << 22) | 292 | #define IXGBE_FLAG_NEED_LINK_UPDATE (u32)(1 << 22) |
289 | #define IXGBE_FLAG_IN_WATCHDOG_TASK (u32)(1 << 23) | 293 | #define IXGBE_FLAG_IN_WATCHDOG_TASK (u32)(1 << 23) |
290 | #define IXGBE_FLAG_DCB_ENABLED (u32)(1 << 24) | 294 | #define IXGBE_FLAG_IN_SFP_LINK_TASK (u32)(1 << 24) |
295 | #define IXGBE_FLAG_IN_SFP_MOD_TASK (u32)(1 << 25) | ||
291 | 296 | ||
292 | /* default to trying for four seconds */ | 297 | /* default to trying for four seconds */ |
293 | #define IXGBE_TRY_LINK_TIMEOUT (4 * HZ) | 298 | #define IXGBE_TRY_LINK_TIMEOUT (4 * HZ) |
@@ -317,7 +322,9 @@ struct ixgbe_adapter { | |||
317 | struct work_struct watchdog_task; | 322 | struct work_struct watchdog_task; |
318 | struct work_struct sfp_task; | 323 | struct work_struct sfp_task; |
319 | struct timer_list sfp_timer; | 324 | struct timer_list sfp_timer; |
320 | 325 | struct work_struct multispeed_fiber_task; | |
326 | struct work_struct sfp_config_module_task; | ||
327 | u32 wol; | ||
321 | u16 eeprom_version; | 328 | u16 eeprom_version; |
322 | }; | 329 | }; |
323 | 330 | ||
@@ -330,9 +337,11 @@ enum ixbge_state_t { | |||
330 | 337 | ||
331 | enum ixgbe_boards { | 338 | enum ixgbe_boards { |
332 | board_82598, | 339 | board_82598, |
340 | board_82599, | ||
333 | }; | 341 | }; |
334 | 342 | ||
335 | extern struct ixgbe_info ixgbe_82598_info; | 343 | extern struct ixgbe_info ixgbe_82598_info; |
344 | extern struct ixgbe_info ixgbe_82599_info; | ||
336 | #ifdef CONFIG_IXGBE_DCB | 345 | #ifdef CONFIG_IXGBE_DCB |
337 | extern struct dcbnl_rtnl_ops dcbnl_ops; | 346 | extern struct dcbnl_rtnl_ops dcbnl_ops; |
338 | extern int ixgbe_copy_dcb_cfg(struct ixgbe_dcb_config *src_dcb_cfg, | 347 | extern int ixgbe_copy_dcb_cfg(struct ixgbe_dcb_config *src_dcb_cfg, |