diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2008-08-26 21:37:06 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-09-03 10:08:13 -0400 |
commit | 4662e82b2cb41c60826e50474dd86dd5c6372b0c (patch) | |
tree | 75a99d62d28ad8ff5d9557f4665bae177218bb2a /drivers/net/e1000e/e1000.h | |
parent | f4187b56e1f8a05dd110875d5094b21b51ebd79b (diff) |
e1000e: add support for new 82574L part
This new part has the same feature set as previous parts with the addition
of MSI-X support.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/e1000e/e1000.h')
-rw-r--r-- | drivers/net/e1000e/e1000.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h index ef66dc44fae6..0a1916b0419d 100644 --- a/drivers/net/e1000e/e1000.h +++ b/drivers/net/e1000e/e1000.h | |||
@@ -62,6 +62,11 @@ struct e1000_info; | |||
62 | e_printk(KERN_NOTICE, adapter, format, ## arg) | 62 | e_printk(KERN_NOTICE, adapter, format, ## arg) |
63 | 63 | ||
64 | 64 | ||
65 | /* Interrupt modes, as used by the IntMode paramter */ | ||
66 | #define E1000E_INT_MODE_LEGACY 0 | ||
67 | #define E1000E_INT_MODE_MSI 1 | ||
68 | #define E1000E_INT_MODE_MSIX 2 | ||
69 | |||
65 | /* Tx/Rx descriptor defines */ | 70 | /* Tx/Rx descriptor defines */ |
66 | #define E1000_DEFAULT_TXD 256 | 71 | #define E1000_DEFAULT_TXD 256 |
67 | #define E1000_MAX_TXD 4096 | 72 | #define E1000_MAX_TXD 4096 |
@@ -95,6 +100,7 @@ enum e1000_boards { | |||
95 | board_82571, | 100 | board_82571, |
96 | board_82572, | 101 | board_82572, |
97 | board_82573, | 102 | board_82573, |
103 | board_82574, | ||
98 | board_80003es2lan, | 104 | board_80003es2lan, |
99 | board_ich8lan, | 105 | board_ich8lan, |
100 | board_ich9lan, | 106 | board_ich9lan, |
@@ -147,6 +153,12 @@ struct e1000_ring { | |||
147 | /* array of buffer information structs */ | 153 | /* array of buffer information structs */ |
148 | struct e1000_buffer *buffer_info; | 154 | struct e1000_buffer *buffer_info; |
149 | 155 | ||
156 | char name[IFNAMSIZ + 5]; | ||
157 | u32 ims_val; | ||
158 | u32 itr_val; | ||
159 | u16 itr_register; | ||
160 | int set_itr; | ||
161 | |||
150 | struct sk_buff *rx_skb_top; | 162 | struct sk_buff *rx_skb_top; |
151 | 163 | ||
152 | struct e1000_queue_stats stats; | 164 | struct e1000_queue_stats stats; |
@@ -275,6 +287,9 @@ struct e1000_adapter { | |||
275 | u32 test_icr; | 287 | u32 test_icr; |
276 | 288 | ||
277 | u32 msg_enable; | 289 | u32 msg_enable; |
290 | struct msix_entry *msix_entries; | ||
291 | int int_mode; | ||
292 | u32 eiac_mask; | ||
278 | 293 | ||
279 | u32 eeprom_wol; | 294 | u32 eeprom_wol; |
280 | u32 wol; | 295 | u32 wol; |
@@ -307,6 +322,7 @@ struct e1000_info { | |||
307 | #define FLAG_HAS_SWSM_ON_LOAD (1 << 6) | 322 | #define FLAG_HAS_SWSM_ON_LOAD (1 << 6) |
308 | #define FLAG_HAS_JUMBO_FRAMES (1 << 7) | 323 | #define FLAG_HAS_JUMBO_FRAMES (1 << 7) |
309 | #define FLAG_IS_ICH (1 << 9) | 324 | #define FLAG_IS_ICH (1 << 9) |
325 | #define FLAG_HAS_MSIX (1 << 10) | ||
310 | #define FLAG_HAS_SMART_POWER_DOWN (1 << 11) | 326 | #define FLAG_HAS_SMART_POWER_DOWN (1 << 11) |
311 | #define FLAG_IS_QUAD_PORT_A (1 << 12) | 327 | #define FLAG_IS_QUAD_PORT_A (1 << 12) |
312 | #define FLAG_IS_QUAD_PORT (1 << 13) | 328 | #define FLAG_IS_QUAD_PORT (1 << 13) |
@@ -365,6 +381,8 @@ extern int e1000e_setup_tx_resources(struct e1000_adapter *adapter); | |||
365 | extern void e1000e_free_rx_resources(struct e1000_adapter *adapter); | 381 | extern void e1000e_free_rx_resources(struct e1000_adapter *adapter); |
366 | extern void e1000e_free_tx_resources(struct e1000_adapter *adapter); | 382 | extern void e1000e_free_tx_resources(struct e1000_adapter *adapter); |
367 | extern void e1000e_update_stats(struct e1000_adapter *adapter); | 383 | extern void e1000e_update_stats(struct e1000_adapter *adapter); |
384 | extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); | ||
385 | extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); | ||
368 | 386 | ||
369 | extern unsigned int copybreak; | 387 | extern unsigned int copybreak; |
370 | 388 | ||
@@ -373,6 +391,7 @@ extern char *e1000e_get_hw_dev_name(struct e1000_hw *hw); | |||
373 | extern struct e1000_info e1000_82571_info; | 391 | extern struct e1000_info e1000_82571_info; |
374 | extern struct e1000_info e1000_82572_info; | 392 | extern struct e1000_info e1000_82572_info; |
375 | extern struct e1000_info e1000_82573_info; | 393 | extern struct e1000_info e1000_82573_info; |
394 | extern struct e1000_info e1000_82574_info; | ||
376 | extern struct e1000_info e1000_ich8_info; | 395 | extern struct e1000_info e1000_ich8_info; |
377 | extern struct e1000_info e1000_ich9_info; | 396 | extern struct e1000_info e1000_ich9_info; |
378 | extern struct e1000_info e1000_ich10_info; | 397 | extern struct e1000_info e1000_ich10_info; |
@@ -453,6 +472,8 @@ extern enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id); | |||
453 | extern s32 e1000e_determine_phy_address(struct e1000_hw *hw); | 472 | extern s32 e1000e_determine_phy_address(struct e1000_hw *hw); |
454 | extern s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data); | 473 | extern s32 e1000e_write_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 data); |
455 | extern s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data); | 474 | extern s32 e1000e_read_phy_reg_bm(struct e1000_hw *hw, u32 offset, u16 *data); |
475 | extern s32 e1000e_read_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 *data); | ||
476 | extern s32 e1000e_write_phy_reg_bm2(struct e1000_hw *hw, u32 offset, u16 data); | ||
456 | extern void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl); | 477 | extern void e1000e_phy_force_speed_duplex_setup(struct e1000_hw *hw, u16 *phy_ctrl); |
457 | extern s32 e1000e_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data); | 478 | extern s32 e1000e_write_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 data); |
458 | extern s32 e1000e_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data); | 479 | extern s32 e1000e_read_kmrn_reg(struct e1000_hw *hw, u32 offset, u16 *data); |
@@ -523,7 +544,12 @@ static inline s32 e1000_get_phy_info(struct e1000_hw *hw) | |||
523 | return hw->phy.ops.get_phy_info(hw); | 544 | return hw->phy.ops.get_phy_info(hw); |
524 | } | 545 | } |
525 | 546 | ||
526 | extern bool e1000e_check_mng_mode(struct e1000_hw *hw); | 547 | static inline s32 e1000e_check_mng_mode(struct e1000_hw *hw) |
548 | { | ||
549 | return hw->mac.ops.check_mng_mode(hw); | ||
550 | } | ||
551 | |||
552 | extern bool e1000e_check_mng_mode_generic(struct e1000_hw *hw); | ||
527 | extern bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw); | 553 | extern bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw); |
528 | extern s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, u8 *buffer, u16 length); | 554 | extern s32 e1000e_mng_write_dhcp_info(struct e1000_hw *hw, u8 *buffer, u16 length); |
529 | 555 | ||