mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
ixgbe: Fix check for ixgbe_phy_x550em_ext_t reset
The generic PHY reset check we had previously is not sufficient for the ixgbe_phy_x550em_ext_t PHY type. Check 1.CC02.0 instead - same as ixgbe_init_ext_t_x550(). Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
cb8e051446
commit
5c092749e3
|
|
@ -452,10 +452,27 @@ s32 ixgbe_reset_phy_generic(struct ixgbe_hw *hw)
|
|||
*/
|
||||
for (i = 0; i < 30; i++) {
|
||||
msleep(100);
|
||||
hw->phy.ops.read_reg(hw, MDIO_CTRL1, MDIO_MMD_PHYXS, &ctrl);
|
||||
if (!(ctrl & MDIO_CTRL1_RESET)) {
|
||||
udelay(2);
|
||||
break;
|
||||
if (hw->phy.type == ixgbe_phy_x550em_ext_t) {
|
||||
status = hw->phy.ops.read_reg(hw,
|
||||
IXGBE_MDIO_TX_VENDOR_ALARMS_3,
|
||||
MDIO_MMD_PMAPMD, &ctrl);
|
||||
if (status)
|
||||
return status;
|
||||
|
||||
if (ctrl & IXGBE_MDIO_TX_VENDOR_ALARMS_3_RST_MASK) {
|
||||
udelay(2);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
status = hw->phy.ops.read_reg(hw, MDIO_CTRL1,
|
||||
MDIO_MMD_PHYXS, &ctrl);
|
||||
if (status)
|
||||
return status;
|
||||
|
||||
if (!(ctrl & MDIO_CTRL1_RESET)) {
|
||||
udelay(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user