mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 17:04:50 -04:00
drivers/net/ethernet/e1000e: check return value of e1e_rphy()
e1e_rphy() could return error value when reading PHY register, which needs to be checked. Signed-off-by: Li Zhong <floridsleeves@gmail.com> Acked-by: Sasha Neftin <sasha.neftin@intel.com> Tested-by: Naama Meir <naamax.meir@linux.intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
@@ -2697,9 +2697,14 @@ static s32 e1000_access_phy_wakeup_reg_bm(struct e1000_hw *hw, u32 offset,
|
||||
void e1000_power_up_phy_copper(struct e1000_hw *hw)
|
||||
{
|
||||
u16 mii_reg = 0;
|
||||
int ret;
|
||||
|
||||
/* The PHY will retain its settings across a power down/up cycle */
|
||||
e1e_rphy(hw, MII_BMCR, &mii_reg);
|
||||
ret = e1e_rphy(hw, MII_BMCR, &mii_reg);
|
||||
if (ret) {
|
||||
e_dbg("Error reading PHY register\n");
|
||||
return;
|
||||
}
|
||||
mii_reg &= ~BMCR_PDOWN;
|
||||
e1e_wphy(hw, MII_BMCR, mii_reg);
|
||||
}
|
||||
@@ -2715,9 +2720,14 @@ void e1000_power_up_phy_copper(struct e1000_hw *hw)
|
||||
void e1000_power_down_phy_copper(struct e1000_hw *hw)
|
||||
{
|
||||
u16 mii_reg = 0;
|
||||
int ret;
|
||||
|
||||
/* The PHY will retain its settings across a power down/up cycle */
|
||||
e1e_rphy(hw, MII_BMCR, &mii_reg);
|
||||
ret = e1e_rphy(hw, MII_BMCR, &mii_reg);
|
||||
if (ret) {
|
||||
e_dbg("Error reading PHY register\n");
|
||||
return;
|
||||
}
|
||||
mii_reg |= BMCR_PDOWN;
|
||||
e1e_wphy(hw, MII_BMCR, mii_reg);
|
||||
usleep_range(1000, 2000);
|
||||
@@ -3037,7 +3047,11 @@ s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw)
|
||||
return 0;
|
||||
|
||||
/* Do not apply workaround if in PHY loopback bit 14 set */
|
||||
e1e_rphy(hw, MII_BMCR, &data);
|
||||
ret_val = e1e_rphy(hw, MII_BMCR, &data);
|
||||
if (ret_val) {
|
||||
e_dbg("Error reading PHY register\n");
|
||||
return ret_val;
|
||||
}
|
||||
if (data & BMCR_LOOPBACK)
|
||||
return 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user