diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/82571.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000e/82571.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c index 0b3bade957f..080c89093fe 100644 --- a/drivers/net/ethernet/intel/e1000e/82571.c +++ b/drivers/net/ethernet/intel/e1000e/82571.c @@ -999,7 +999,7 @@ static s32 e1000_set_d0_lplu_state_82571(struct e1000_hw *hw, bool active)   **/  static s32 e1000_reset_hw_82571(struct e1000_hw *hw)  { -	u32 ctrl, ctrl_ext, eecd; +	u32 ctrl, ctrl_ext, eecd, tctl;  	s32 ret_val;  	/* @@ -1014,7 +1014,9 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw)  	ew32(IMC, 0xffffffff);  	ew32(RCTL, 0); -	ew32(TCTL, E1000_TCTL_PSP); +	tctl = er32(TCTL); +	tctl &= ~E1000_TCTL_EN; +	ew32(TCTL, tctl);  	e1e_flush();  	usleep_range(10000, 20000); @@ -1601,10 +1603,8 @@ 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) || !(rxcw & E1000_RXCW_CW))  { +			if (rxcw & E1000_RXCW_C) {  				/* Enable autoneg, and unforce link up */  				ew32(TXCW, mac->txcw);  				ew32(CTRL, (ctrl & ~E1000_CTRL_SLU));  |