diff options
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_phy.c')
| -rw-r--r-- | drivers/net/ixgbe/ixgbe_phy.c | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/net/ixgbe/ixgbe_phy.c b/drivers/net/ixgbe/ixgbe_phy.c index df5b8aa4795..735f686c3b3 100644 --- a/drivers/net/ixgbe/ixgbe_phy.c +++ b/drivers/net/ixgbe/ixgbe_phy.c @@ -449,7 +449,8 @@ s32 ixgbe_setup_phy_link_generic(struct ixgbe_hw *hw)  				     MDIO_MMD_AN,  				     &autoneg_reg); -		autoneg_reg &= ~ADVERTISE_100FULL; +		autoneg_reg &= ~(ADVERTISE_100FULL | +				 ADVERTISE_100HALF);  		if (hw->phy.autoneg_advertised & IXGBE_LINK_SPEED_100_FULL)  			autoneg_reg |= ADVERTISE_100FULL; @@ -656,7 +657,8 @@ s32 ixgbe_setup_phy_link_tnx(struct ixgbe_hw *hw)  				     MDIO_MMD_AN,  				     &autoneg_reg); -		autoneg_reg &= ~ADVERTISE_100FULL; +		autoneg_reg &= ~(ADVERTISE_100FULL | +				 ADVERTISE_100HALF);  		if (hw->phy.autoneg_advertised & IXGBE_LINK_SPEED_100_FULL)  			autoneg_reg |= ADVERTISE_100FULL; @@ -753,7 +755,7 @@ s32 ixgbe_reset_phy_nl(struct ixgbe_hw *hw)  		                     &phy_data);  		if ((phy_data & MDIO_CTRL1_RESET) == 0)  			break; -		msleep(10); +		usleep_range(10000, 20000);  	}  	if ((phy_data & MDIO_CTRL1_RESET) != 0) { @@ -782,7 +784,7 @@ s32 ixgbe_reset_phy_nl(struct ixgbe_hw *hw)  		case IXGBE_DELAY_NL:  			data_offset++;  			hw_dbg(hw, "DELAY: %d MS\n", edata); -			msleep(edata); +			usleep_range(edata * 1000, edata * 2000);  			break;  		case IXGBE_DATA_NL:  			hw_dbg(hw, "DATA:\n"); @@ -1220,7 +1222,7 @@ s32 ixgbe_read_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset,  		swfw_mask = IXGBE_GSSR_PHY0_SM;  	do { -		if (ixgbe_acquire_swfw_sync(hw, swfw_mask) != 0) { +		if (hw->mac.ops.acquire_swfw_sync(hw, swfw_mask) != 0) {  			status = IXGBE_ERR_SWFW_SYNC;  			goto read_byte_out;  		} @@ -1267,7 +1269,7 @@ s32 ixgbe_read_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset,  		break;  fail: -		ixgbe_release_swfw_sync(hw, swfw_mask); +		hw->mac.ops.release_swfw_sync(hw, swfw_mask);  		msleep(100);  		ixgbe_i2c_bus_clear(hw);  		retry++; @@ -1278,7 +1280,7 @@ fail:  	} while (retry < max_retry); -	ixgbe_release_swfw_sync(hw, swfw_mask); +	hw->mac.ops.release_swfw_sync(hw, swfw_mask);  read_byte_out:  	return status; @@ -1306,7 +1308,7 @@ s32 ixgbe_write_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset,  	else  		swfw_mask = IXGBE_GSSR_PHY0_SM; -	if (ixgbe_acquire_swfw_sync(hw, swfw_mask) != 0) { +	if (hw->mac.ops.acquire_swfw_sync(hw, swfw_mask) != 0) {  		status = IXGBE_ERR_SWFW_SYNC;  		goto write_byte_out;  	} @@ -1350,7 +1352,7 @@ fail:  			hw_dbg(hw, "I2C byte write error.\n");  	} while (retry < max_retry); -	ixgbe_release_swfw_sync(hw, swfw_mask); +	hw->mac.ops.release_swfw_sync(hw, swfw_mask);  write_byte_out:  	return status;  |