diff options
author | dave graham <david.graham@intel.com> | 2009-02-10 07:52:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-10 20:00:28 -0500 |
commit | c9523379d6000f379a84b6b970efb8782c128071 (patch) | |
tree | 9674789cf9d452391bbafe9cd00bb9734e394554 /drivers/net/e1000e/hw.h | |
parent | 573cca8c6fdbf6bd2dae8f9e9b66931990849c83 (diff) |
e1000e: Serdes - attempt autoneg when link restored.
This patch addresses an issue where we did not restart auto-negotiation on
serdes links when the link partner was disabled and re-enabled. It includes
reworking the serdes link detect mechanism to be a state machine for
82571 and 82572 parts only.
Signed-off-by: dave graham <david.graham@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@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/e1000e/hw.h')
-rw-r--r-- | drivers/net/e1000e/hw.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h index 2d4ce0492df0..5cb428c2811d 100644 --- a/drivers/net/e1000e/hw.h +++ b/drivers/net/e1000e/hw.h | |||
@@ -459,6 +459,13 @@ enum e1000_smart_speed { | |||
459 | e1000_smart_speed_off | 459 | e1000_smart_speed_off |
460 | }; | 460 | }; |
461 | 461 | ||
462 | enum e1000_serdes_link_state { | ||
463 | e1000_serdes_link_down = 0, | ||
464 | e1000_serdes_link_autoneg_progress, | ||
465 | e1000_serdes_link_autoneg_complete, | ||
466 | e1000_serdes_link_forced_up | ||
467 | }; | ||
468 | |||
462 | /* Receive Descriptor */ | 469 | /* Receive Descriptor */ |
463 | struct e1000_rx_desc { | 470 | struct e1000_rx_desc { |
464 | __le64 buffer_addr; /* Address of the descriptor's data buffer */ | 471 | __le64 buffer_addr; /* Address of the descriptor's data buffer */ |
@@ -787,6 +794,7 @@ struct e1000_mac_info { | |||
787 | bool in_ifs_mode; | 794 | bool in_ifs_mode; |
788 | bool serdes_has_link; | 795 | bool serdes_has_link; |
789 | bool tx_pkt_filtering; | 796 | bool tx_pkt_filtering; |
797 | enum e1000_serdes_link_state serdes_link_state; | ||
790 | }; | 798 | }; |
791 | 799 | ||
792 | struct e1000_phy_info { | 800 | struct e1000_phy_info { |