|
@@ -1444,8 +1444,14 @@ s32 igb_phy_has_link(struct e1000_hw *hw, u32 iterations,
|
|
|
* it across the board.
|
|
|
*/
|
|
|
ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status);
|
|
|
- if (ret_val)
|
|
|
- break;
|
|
|
+ if (ret_val) {
|
|
|
+ /*
|
|
|
+ * If the first read fails, another entity may have
|
|
|
+ * ownership of the resources, wait and try again to
|
|
|
+ * see if they have relinquished the resources yet.
|
|
|
+ */
|
|
|
+ udelay(usec_interval);
|
|
|
+ }
|
|
|
ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status);
|
|
|
if (ret_val)
|
|
|
break;
|