Skip to content

Commit

Permalink
e1000e: 82571 check for link fix on 82571 serdes
Browse files Browse the repository at this point in the history
Check for link test does not work properly for 82571 parts in a blade
environment with an unterminated serdes link partner.  Make the test more
robust by checking the invalid bit.

Signed-off-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>
  • Loading branch information
Bruce Allan authored and David S. Miller committed Nov 22, 2008
1 parent 5aa49c8 commit 63dcf3d
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions drivers/net/e1000e/lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -575,20 +575,42 @@ s32 e1000e_check_for_serdes_link(struct e1000_hw *hw)
*/
/* SYNCH bit and IV bit are sticky. */
udelay(10);
if (E1000_RXCW_SYNCH & er32(RXCW)) {
rxcw = er32(RXCW);
if (rxcw & E1000_RXCW_SYNCH) {
if (!(rxcw & E1000_RXCW_IV)) {
mac->serdes_has_link = 1;
hw_dbg(hw, "SERDES: Link is up.\n");
mac->serdes_has_link = true;
hw_dbg(hw, "SERDES: Link up - forced.\n");
}
} else {
mac->serdes_has_link = 0;
hw_dbg(hw, "SERDES: Link is down.\n");
mac->serdes_has_link = false;
hw_dbg(hw, "SERDES: Link down - force failed.\n");
}
}

if (E1000_TXCW_ANE & er32(TXCW)) {
status = er32(STATUS);
mac->serdes_has_link = (status & E1000_STATUS_LU);
if (status & E1000_STATUS_LU) {
/* SYNCH bit and IV bit are sticky, so reread rxcw. */
udelay(10);
rxcw = er32(RXCW);
if (rxcw & E1000_RXCW_SYNCH) {
if (!(rxcw & E1000_RXCW_IV)) {
mac->serdes_has_link = true;
hw_dbg(hw, "SERDES: Link up - autoneg "
"completed sucessfully.\n");
} else {
mac->serdes_has_link = false;
hw_dbg(hw, "SERDES: Link down - invalid"
"codewords detected in autoneg.\n");
}
} else {
mac->serdes_has_link = false;
hw_dbg(hw, "SERDES: Link down - no sync.\n");
}
} else {
mac->serdes_has_link = false;
hw_dbg(hw, "SERDES: Link down - autoneg failed\n");
}
}

return 0;
Expand Down

0 comments on commit 63dcf3d

Please sign in to comment.