Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 482fed85 authored by Bruce Allan's avatar Bruce Allan Committed by David S. Miller
Browse files

e1000e: convert calls of ops.[read|write]_reg to e1e_[r|w]phy



Cleans up the code a bit by using the driver-specific e1e_rphy and
e1e_wphy macros instead of the full function pointer variants.  Fix
a couple whitespace issue with two already existing calls to e1e_wphy.

Signed-off-by: default avatarBruce Allan <bruce.w.allan@intel.com>
Tested-by: default avatarJeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dd93f95e
Loading
Loading
Loading
Loading
+25 −29
Original line number Original line Diff line number Diff line
@@ -3118,7 +3118,7 @@ static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw)
	 * Reset the phy after disabling host wakeup to reset the Rx buffer.
	 * Reset the phy after disabling host wakeup to reset the Rx buffer.
	 */
	 */
	if (hw->phy.type == e1000_phy_82578) {
	if (hw->phy.type == e1000_phy_82578) {
		hw->phy.ops.read_reg(hw, BM_WUC, &i);
		e1e_rphy(hw, BM_WUC, &i);
		ret_val = e1000_phy_hw_reset_ich8lan(hw);
		ret_val = e1000_phy_hw_reset_ich8lan(hw);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;
@@ -3276,8 +3276,7 @@ static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw)
	    (hw->phy.type == e1000_phy_82577)) {
	    (hw->phy.type == e1000_phy_82577)) {
		ew32(FCRTV_PCH, hw->fc.refresh_time);
		ew32(FCRTV_PCH, hw->fc.refresh_time);


		ret_val = hw->phy.ops.write_reg(hw,
		ret_val = e1e_wphy(hw, PHY_REG(BM_PORT_CTRL_PAGE, 27),
		                             PHY_REG(BM_PORT_CTRL_PAGE, 27),
				   hw->fc.pause_time);
				   hw->fc.pause_time);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;
@@ -3342,8 +3341,7 @@ static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw)
			return ret_val;
			return ret_val;
		break;
		break;
	case e1000_phy_ife:
	case e1000_phy_ife:
		ret_val = hw->phy.ops.read_reg(hw, IFE_PHY_MDIX_CONTROL,
		ret_val = e1e_rphy(hw, IFE_PHY_MDIX_CONTROL, &reg_data);
		                               &reg_data);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;


@@ -3361,8 +3359,7 @@ static s32 e1000_setup_copper_link_ich8lan(struct e1000_hw *hw)
			reg_data |= IFE_PMC_AUTO_MDIX;
			reg_data |= IFE_PMC_AUTO_MDIX;
			break;
			break;
		}
		}
		ret_val = hw->phy.ops.write_reg(hw, IFE_PHY_MDIX_CONTROL,
		ret_val = e1e_wphy(hw, IFE_PHY_MDIX_CONTROL, reg_data);
		                                reg_data);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;
		break;
		break;
@@ -3646,7 +3643,8 @@ static s32 e1000_led_off_ich8lan(struct e1000_hw *hw)
{
{
	if (hw->phy.type == e1000_phy_ife)
	if (hw->phy.type == e1000_phy_ife)
		return e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED,
		return e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED,
			       (IFE_PSCL_PROBE_MODE | IFE_PSCL_PROBE_LEDS_OFF));
				(IFE_PSCL_PROBE_MODE |
				 IFE_PSCL_PROBE_LEDS_OFF));


	ew32(LEDCTL, hw->mac.ledctl_mode1);
	ew32(LEDCTL, hw->mac.ledctl_mode1);
	return 0;
	return 0;
@@ -3660,8 +3658,7 @@ static s32 e1000_led_off_ich8lan(struct e1000_hw *hw)
 **/
 **/
static s32 e1000_setup_led_pchlan(struct e1000_hw *hw)
static s32 e1000_setup_led_pchlan(struct e1000_hw *hw)
{
{
	return hw->phy.ops.write_reg(hw, HV_LED_CONFIG,
	return e1e_wphy(hw, HV_LED_CONFIG, (u16)hw->mac.ledctl_mode1);
					(u16)hw->mac.ledctl_mode1);
}
}


/**
/**
@@ -3672,8 +3669,7 @@ static s32 e1000_setup_led_pchlan(struct e1000_hw *hw)
 **/
 **/
static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw)
static s32 e1000_cleanup_led_pchlan(struct e1000_hw *hw)
{
{
	return hw->phy.ops.write_reg(hw, HV_LED_CONFIG,
	return e1e_wphy(hw, HV_LED_CONFIG, (u16)hw->mac.ledctl_default);
					(u16)hw->mac.ledctl_default);
}
}


/**
/**
@@ -3704,7 +3700,7 @@ static s32 e1000_led_on_pchlan(struct e1000_hw *hw)
		}
		}
	}
	}


	return hw->phy.ops.write_reg(hw, HV_LED_CONFIG, data);
	return e1e_wphy(hw, HV_LED_CONFIG, data);
}
}


/**
/**
@@ -3735,7 +3731,7 @@ static s32 e1000_led_off_pchlan(struct e1000_hw *hw)
		}
		}
	}
	}


	return hw->phy.ops.write_reg(hw, HV_LED_CONFIG, data);
	return e1e_wphy(hw, HV_LED_CONFIG, data);
}
}


/**
/**
@@ -3844,20 +3840,20 @@ static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw)
	if ((hw->phy.type == e1000_phy_82578) ||
	if ((hw->phy.type == e1000_phy_82578) ||
	    (hw->phy.type == e1000_phy_82579) ||
	    (hw->phy.type == e1000_phy_82579) ||
	    (hw->phy.type == e1000_phy_82577)) {
	    (hw->phy.type == e1000_phy_82577)) {
		hw->phy.ops.read_reg(hw, HV_SCC_UPPER, &phy_data);
		e1e_rphy(hw, HV_SCC_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_SCC_LOWER, &phy_data);
		e1e_rphy(hw, HV_SCC_LOWER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_ECOL_UPPER, &phy_data);
		e1e_rphy(hw, HV_ECOL_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_ECOL_LOWER, &phy_data);
		e1e_rphy(hw, HV_ECOL_LOWER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_MCC_UPPER, &phy_data);
		e1e_rphy(hw, HV_MCC_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_MCC_LOWER, &phy_data);
		e1e_rphy(hw, HV_MCC_LOWER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_LATECOL_UPPER, &phy_data);
		e1e_rphy(hw, HV_LATECOL_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_LATECOL_LOWER, &phy_data);
		e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_COLC_UPPER, &phy_data);
		e1e_rphy(hw, HV_COLC_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_COLC_LOWER, &phy_data);
		e1e_rphy(hw, HV_COLC_LOWER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_DC_UPPER, &phy_data);
		e1e_rphy(hw, HV_DC_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_DC_LOWER, &phy_data);
		e1e_rphy(hw, HV_DC_LOWER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_TNCRS_UPPER, &phy_data);
		e1e_rphy(hw, HV_TNCRS_UPPER, &phy_data);
		hw->phy.ops.read_reg(hw, HV_TNCRS_LOWER, &phy_data);
		e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data);
	}
	}
}
}


+2 −1
Original line number Original line Diff line number Diff line
@@ -1135,7 +1135,8 @@ s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw)
		ret_val = e1e_rphy(hw, PHY_AUTONEG_ADV, &mii_nway_adv_reg);
		ret_val = e1e_rphy(hw, PHY_AUTONEG_ADV, &mii_nway_adv_reg);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;
		ret_val = e1e_rphy(hw, PHY_LP_ABILITY, &mii_nway_lp_ability_reg);
		ret_val =
		    e1e_rphy(hw, PHY_LP_ABILITY, &mii_nway_lp_ability_reg);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;


+17 −23
Original line number Original line Diff line number Diff line
@@ -637,12 +637,11 @@ s32 e1000e_write_kmrn_reg_locked(struct e1000_hw *hw, u32 offset, u16 data)
 **/
 **/
s32 e1000_copper_link_setup_82577(struct e1000_hw *hw)
s32 e1000_copper_link_setup_82577(struct e1000_hw *hw)
{
{
	struct e1000_phy_info *phy = &hw->phy;
	s32 ret_val;
	s32 ret_val;
	u16 phy_data;
	u16 phy_data;


	/* Enable CRS on TX. This must be set for half-duplex operation. */
	/* Enable CRS on TX. This must be set for half-duplex operation. */
	ret_val = phy->ops.read_reg(hw, I82577_CFG_REG, &phy_data);
	ret_val = e1e_rphy(hw, I82577_CFG_REG, &phy_data);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


@@ -651,7 +650,7 @@ s32 e1000_copper_link_setup_82577(struct e1000_hw *hw)
	/* Enable downshift */
	/* Enable downshift */
	phy_data |= I82577_CFG_ENABLE_DOWNSHIFT;
	phy_data |= I82577_CFG_ENABLE_DOWNSHIFT;


	ret_val = phy->ops.write_reg(hw, I82577_CFG_REG, phy_data);
	ret_val = e1e_wphy(hw, I82577_CFG_REG, phy_data);


out:
out:
	return ret_val;
	return ret_val;
@@ -774,16 +773,14 @@ s32 e1000e_copper_link_setup_m88(struct e1000_hw *hw)
	}
	}


	if (phy->type == e1000_phy_82578) {
	if (phy->type == e1000_phy_82578) {
		ret_val = phy->ops.read_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL,
		ret_val = e1e_rphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_data);
		                            &phy_data);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;


		/* 82578 PHY - set the downshift count to 1x. */
		/* 82578 PHY - set the downshift count to 1x. */
		phy_data |= I82578_EPSCR_DOWNSHIFT_ENABLE;
		phy_data |= I82578_EPSCR_DOWNSHIFT_ENABLE;
		phy_data &= ~I82578_EPSCR_DOWNSHIFT_COUNTER_MASK;
		phy_data &= ~I82578_EPSCR_DOWNSHIFT_COUNTER_MASK;
		ret_val = phy->ops.write_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL,
		ret_val = e1e_wphy(hw, M88E1000_EXT_PHY_SPEC_CTRL, phy_data);
		                             phy_data);
		if (ret_val)
		if (ret_val)
			return ret_val;
			return ret_val;
	}
	}
@@ -1319,8 +1316,7 @@ s32 e1000e_phy_force_speed_duplex_m88(struct e1000_hw *hw)
				 * We didn't get link.
				 * We didn't get link.
				 * Reset the DSP and cross our fingers.
				 * Reset the DSP and cross our fingers.
				 */
				 */
				ret_val = e1e_wphy(hw,
				ret_val = e1e_wphy(hw, M88E1000_PHY_PAGE_SELECT,
						M88E1000_PHY_PAGE_SELECT,
						   0x001d);
						   0x001d);
				if (ret_val)
				if (ret_val)
					return ret_val;
					return ret_val;
@@ -3071,12 +3067,12 @@ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw)
		goto out;
		goto out;


	/* Do not apply workaround if in PHY loopback bit 14 set */
	/* Do not apply workaround if in PHY loopback bit 14 set */
	hw->phy.ops.read_reg(hw, PHY_CONTROL, &data);
	e1e_rphy(hw, PHY_CONTROL, &data);
	if (data & PHY_CONTROL_LB)
	if (data & PHY_CONTROL_LB)
		goto out;
		goto out;


	/* check if link is up and at 1Gbps */
	/* check if link is up and at 1Gbps */
	ret_val = hw->phy.ops.read_reg(hw, BM_CS_STATUS, &data);
	ret_val = e1e_rphy(hw, BM_CS_STATUS, &data);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


@@ -3092,14 +3088,12 @@ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw)
	mdelay(200);
	mdelay(200);


	/* flush the packets in the fifo buffer */
	/* flush the packets in the fifo buffer */
	ret_val = hw->phy.ops.write_reg(hw, HV_MUX_DATA_CTRL,
	ret_val = e1e_wphy(hw, HV_MUX_DATA_CTRL, HV_MUX_DATA_CTRL_GEN_TO_MAC |
	                                HV_MUX_DATA_CTRL_GEN_TO_MAC |
			   HV_MUX_DATA_CTRL_FORCE_SPEED);
			   HV_MUX_DATA_CTRL_FORCE_SPEED);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


	ret_val = hw->phy.ops.write_reg(hw, HV_MUX_DATA_CTRL,
	ret_val = e1e_wphy(hw, HV_MUX_DATA_CTRL, HV_MUX_DATA_CTRL_GEN_TO_MAC);
	                                HV_MUX_DATA_CTRL_GEN_TO_MAC);


out:
out:
	return ret_val;
	return ret_val;
@@ -3119,7 +3113,7 @@ s32 e1000_check_polarity_82577(struct e1000_hw *hw)
	s32 ret_val;
	s32 ret_val;
	u16 data;
	u16 data;


	ret_val = phy->ops.read_reg(hw, I82577_PHY_STATUS_2, &data);
	ret_val = e1e_rphy(hw, I82577_PHY_STATUS_2, &data);


	if (!ret_val)
	if (!ret_val)
		phy->cable_polarity = (data & I82577_PHY_STATUS2_REV_POLARITY)
		phy->cable_polarity = (data & I82577_PHY_STATUS2_REV_POLARITY)
@@ -3142,13 +3136,13 @@ s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw)
	u16 phy_data;
	u16 phy_data;
	bool link;
	bool link;


	ret_val = phy->ops.read_reg(hw, PHY_CONTROL, &phy_data);
	ret_val = e1e_rphy(hw, PHY_CONTROL, &phy_data);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


	e1000e_phy_force_speed_duplex_setup(hw, &phy_data);
	e1000e_phy_force_speed_duplex_setup(hw, &phy_data);


	ret_val = phy->ops.write_reg(hw, PHY_CONTROL, phy_data);
	ret_val = e1e_wphy(hw, PHY_CONTROL, phy_data);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


@@ -3212,7 +3206,7 @@ s32 e1000_get_phy_info_82577(struct e1000_hw *hw)
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


	ret_val = phy->ops.read_reg(hw, I82577_PHY_STATUS_2, &data);
	ret_val = e1e_rphy(hw, I82577_PHY_STATUS_2, &data);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;


@@ -3224,7 +3218,7 @@ s32 e1000_get_phy_info_82577(struct e1000_hw *hw)
		if (ret_val)
		if (ret_val)
			goto out;
			goto out;


		ret_val = phy->ops.read_reg(hw, PHY_1000T_STATUS, &data);
		ret_val = e1e_rphy(hw, PHY_1000T_STATUS, &data);
		if (ret_val)
		if (ret_val)
			goto out;
			goto out;


@@ -3258,7 +3252,7 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw)
	s32 ret_val;
	s32 ret_val;
	u16 phy_data, length;
	u16 phy_data, length;


	ret_val = phy->ops.read_reg(hw, I82577_PHY_DIAG_STATUS, &phy_data);
	ret_val = e1e_rphy(hw, I82577_PHY_DIAG_STATUS, &phy_data);
	if (ret_val)
	if (ret_val)
		goto out;
		goto out;