e1000/base: fix link detect flow
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Fri, 16 Oct 2015 02:51:06 +0000 (10:51 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 27 Oct 2015 15:12:56 +0000 (16:12 +0100)
In case that auto-negotiate is not enabled, call
e1000_setup_copper_link_generic instead of e1000_phy_setup_autoneg.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/e1000/base/e1000_ich8lan.c

index ba22f52..37f6195 100644 (file)
@@ -1252,10 +1252,15 @@ s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force)
                        /* Restore link speed advertisements and restart
                         * Auto-negotiation
                         */
-                       ret_val = e1000_phy_setup_autoneg(hw);
-                       if (ret_val)
-                               goto out;
-
+                       if (hw->mac.autoneg) {
+                               ret_val = e1000_phy_setup_autoneg(hw);
+                               if (ret_val)
+                                       goto out;
+                       } else {
+                               ret_val = e1000_setup_copper_link_generic(hw);
+                               if (ret_val)
+                                       goto out;
+                       }
                        ret_val = e1000_oem_bits_config_ich8lan(hw, true);
                }