From: Akeem G. Abodunrin Date: Tue, 17 Jul 2012 04:51:18 +0000 (+0000) Subject: igb: reset PHY in the link_up process to recover PHY setting after power down. X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=76886596921dd0e058f7f0a16de6151629390d15;p=openwrt%2Fstaging%2Fblogic.git igb: reset PHY in the link_up process to recover PHY setting after power down. There was a previous patch to resolve issue with 82576 losing PHY setting after PHY power down. However that previous implementation triggered speed mismatch and occasional link lost. Now, this patch resolves both initial PHY setting and speed mismatch issues. Signed-off-by: Akeem G. Abodunrin Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher --- diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 8adeca9787ca..1050411e7ca3 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -1500,11 +1500,12 @@ static void igb_configure(struct igb_adapter *adapter) **/ void igb_power_up_link(struct igb_adapter *adapter) { + igb_reset_phy(&adapter->hw); + if (adapter->hw.phy.media_type == e1000_media_type_copper) igb_power_up_phy_copper(&adapter->hw); else igb_power_up_serdes_link_82575(&adapter->hw); - igb_reset_phy(&adapter->hw); } /**