]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/e1000e/82571.c
e1000e: 82571 SerDes link handle null code word from partner
[net-next-2.6.git] / drivers / net / e1000e / 82571.c
index 7236f1a53ba0997da7ba66a218db4b56091faedf..235856375ff3f825acefb11b3a56ad208b2132d8 100644 (file)
@@ -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));