diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/phy.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000e/phy.c | 58 | 
1 files changed, 28 insertions, 30 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c index da2be59505c..b2005e13fb0 100644 --- a/drivers/net/ethernet/intel/e1000e/phy.c +++ b/drivers/net/ethernet/intel/e1000e/phy.c @@ -1,30 +1,23 @@ -/******************************************************************************* - -  Intel PRO/1000 Linux driver -  Copyright(c) 1999 - 2013 Intel Corporation. - -  This program is free software; you can redistribute it and/or modify it -  under the terms and conditions of the GNU General Public License, -  version 2, as published by the Free Software Foundation. - -  This program is distributed in the hope it will be useful, but WITHOUT -  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for -  more details. - -  You should have received a copy of the GNU General Public License along with -  this program; if not, write to the Free Software Foundation, Inc., -  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - -  The full GNU General Public License is included in this distribution in -  the file called "COPYING". - -  Contact Information: -  Linux NICS <linux.nics@intel.com> -  e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> -  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 - -*******************************************************************************/ +/* Intel PRO/1000 Linux driver + * Copyright(c) 1999 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Linux NICS <linux.nics@intel.com> + * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + */  #include "e1000.h" @@ -1757,19 +1750,23 @@ s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations,  		 * it across the board.  		 */  		ret_val = e1e_rphy(hw, MII_BMSR, &phy_status); -		if (ret_val) +		if (ret_val) {  			/* If the first read fails, another entity may have  			 * ownership of the resources, wait and try again to  			 * see if they have relinquished the resources yet.  			 */ -			udelay(usec_interval); +			if (usec_interval >= 1000) +				msleep(usec_interval / 1000); +			else +				udelay(usec_interval); +		}  		ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);  		if (ret_val)  			break;  		if (phy_status & BMSR_LSTATUS)  			break;  		if (usec_interval >= 1000) -			mdelay(usec_interval / 1000); +			msleep(usec_interval / 1000);  		else  			udelay(usec_interval);  	} @@ -2899,6 +2896,7 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data,  		    (hw->phy.addr == 2) &&  		    !(MAX_PHY_REG_ADDRESS & reg) && (data & (1 << 11))) {  			u16 data2 = 0x7EFF; +  			ret_val = e1000_access_phy_debug_regs_hv(hw,  								 (1 << 6) | 0x3,  								 &data2, false);  | 
