ixgbe: fix issues with failing to detect insert of unsupported module
Several small fixes around negative test case of the insertion of a IXGBE_ERR_NOT_SUPPORTED module. - mdio45_probe call was always failing due to mdio.prtad not being set. The function set to mdio.mdio_read was still working as we just happen to always be at prtad == 0. This will allow us to set the phy_id and phy.type correctly now. - There was timing issue with i2c calls when initiated from a tasklet. A small delay was added to allow the electrical oscillation to calm down. - Logic change in ixgbe_sfp_task that allows NOT_SUPPORTED condition to be recognized. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e332471c03
commit
63d6e1d80a
@@ -60,6 +60,7 @@ s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw)
|
||||
|
||||
if (hw->phy.type == ixgbe_phy_unknown) {
|
||||
for (phy_addr = 0; phy_addr < IXGBE_MAX_PHY_ADDR; phy_addr++) {
|
||||
hw->phy.mdio.prtad = phy_addr;
|
||||
if (mdio45_probe(&hw->phy.mdio, phy_addr) == 0) {
|
||||
ixgbe_get_phy_id(hw);
|
||||
hw->phy.type =
|
||||
@@ -68,6 +69,8 @@ s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw)
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* clear value if nothing found */
|
||||
hw->phy.mdio.prtad = 0;
|
||||
} else {
|
||||
status = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user