e1000e: Restrict MDIO Slow Mode workaround to relevant parts
It has been determined that the workaround of putting the PHY into MDIO slow mode to access the PHY id is not necessary with Lynx Point and newer parts. The issue that necessitated the workaround has been fixed on the newer hardware. We will maintains, as a last ditch attempt, the conversion to MDIO Slow Mode in the failure branch when attempting to access the PHY id so as to cover all contingencies. Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
7142a55c3c
commit
2c9826243b
@ -186,7 +186,7 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
|
||||
{
|
||||
u16 phy_reg = 0;
|
||||
u32 phy_id = 0;
|
||||
s32 ret_val;
|
||||
s32 ret_val = 0;
|
||||
u16 retry_count;
|
||||
u32 mac_reg = 0;
|
||||
|
||||
@ -217,11 +217,13 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
|
||||
/* In case the PHY needs to be in mdio slow mode,
|
||||
* set slow mode and try to get the PHY id again.
|
||||
*/
|
||||
hw->phy.ops.release(hw);
|
||||
ret_val = e1000_set_mdio_slow_mode_hv(hw);
|
||||
if (!ret_val)
|
||||
ret_val = e1000e_get_phy_id(hw);
|
||||
hw->phy.ops.acquire(hw);
|
||||
if (hw->mac.type < e1000_pch_lpt) {
|
||||
hw->phy.ops.release(hw);
|
||||
ret_val = e1000_set_mdio_slow_mode_hv(hw);
|
||||
if (!ret_val)
|
||||
ret_val = e1000e_get_phy_id(hw);
|
||||
hw->phy.ops.acquire(hw);
|
||||
}
|
||||
|
||||
if (ret_val)
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user