|
@@ -1431,8 +1431,10 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
|
|
|
* auto-negotiation in the TXCW register and disable
|
|
|
* forced link in the Device Control register in an
|
|
|
* attempt to auto-negotiate with our link partner.
|
|
|
+ * If the partner code word is null, stop forcing
|
|
|
+ * and restart auto negotiation.
|
|
|
*/
|
|
|
- if (rxcw & E1000_RXCW_C) {
|
|
|
+ if ((rxcw & E1000_RXCW_C) || !(rxcw & E1000_RXCW_CW)) {
|
|
|
/* Enable autoneg, and unforce link up */
|
|
|
ew32(TXCW, mac->txcw);
|
|
|
ew32(CTRL, (ctrl & ~E1000_CTRL_SLU));
|