diff options
-rw-r--r-- | drivers/net/e1000e/82571.c | 4 | ||||
-rw-r--r-- | drivers/net/e1000e/defines.h | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c index 7236f1a53ba0..235856375ff3 100644 --- a/drivers/net/e1000e/82571.c +++ b/drivers/net/e1000e/82571.c | |||
@@ -1431,8 +1431,10 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw) | |||
1431 | * auto-negotiation in the TXCW register and disable | 1431 | * auto-negotiation in the TXCW register and disable |
1432 | * forced link in the Device Control register in an | 1432 | * forced link in the Device Control register in an |
1433 | * attempt to auto-negotiate with our link partner. | 1433 | * attempt to auto-negotiate with our link partner. |
1434 | * If the partner code word is null, stop forcing | ||
1435 | * and restart auto negotiation. | ||
1434 | */ | 1436 | */ |
1435 | if (rxcw & E1000_RXCW_C) { | 1437 | if ((rxcw & E1000_RXCW_C) || !(rxcw & E1000_RXCW_CW)) { |
1436 | /* Enable autoneg, and unforce link up */ | 1438 | /* Enable autoneg, and unforce link up */ |
1437 | ew32(TXCW, mac->txcw); | 1439 | ew32(TXCW, mac->txcw); |
1438 | ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); | 1440 | ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); |
diff --git a/drivers/net/e1000e/defines.h b/drivers/net/e1000e/defines.h index d3f7a9c3f973..016ea383145a 100644 --- a/drivers/net/e1000e/defines.h +++ b/drivers/net/e1000e/defines.h | |||
@@ -516,6 +516,7 @@ | |||
516 | #define E1000_TXCW_ANE 0x80000000 /* Auto-neg enable */ | 516 | #define E1000_TXCW_ANE 0x80000000 /* Auto-neg enable */ |
517 | 517 | ||
518 | /* Receive Configuration Word */ | 518 | /* Receive Configuration Word */ |
519 | #define E1000_RXCW_CW 0x0000ffff /* RxConfigWord mask */ | ||
519 | #define E1000_RXCW_IV 0x08000000 /* Receive config invalid */ | 520 | #define E1000_RXCW_IV 0x08000000 /* Receive config invalid */ |
520 | #define E1000_RXCW_C 0x20000000 /* Receive config */ | 521 | #define E1000_RXCW_C 0x20000000 /* Receive config */ |
521 | #define E1000_RXCW_SYNCH 0x40000000 /* Receive config synch */ | 522 | #define E1000_RXCW_SYNCH 0x40000000 /* Receive config synch */ |