ixgbe: Do not support flow control autonegotiation for X553
Flow control autonegotiation is not supported for fiber on X553. Add device ID checks in ixgbe_device_supports_autoneg_fc() to return the appropriate value. Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Signed-off-by: Emil Tantilov <emil.s.tantilov@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
48301cf22f
commit
ae84dbf7ff
1 changed files with 19 additions and 6 deletions
|
@ -79,13 +79,22 @@ bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
|
|||
|
||||
switch (hw->phy.media_type) {
|
||||
case ixgbe_media_type_fiber:
|
||||
hw->mac.ops.check_link(hw, &speed, &link_up, false);
|
||||
/* if link is down, assume supported */
|
||||
if (link_up)
|
||||
supported = speed == IXGBE_LINK_SPEED_1GB_FULL ?
|
||||
/* flow control autoneg black list */
|
||||
switch (hw->device_id) {
|
||||
case IXGBE_DEV_ID_X550EM_A_SFP:
|
||||
case IXGBE_DEV_ID_X550EM_A_SFP_N:
|
||||
supported = false;
|
||||
break;
|
||||
default:
|
||||
hw->mac.ops.check_link(hw, &speed, &link_up, false);
|
||||
/* if link is down, assume supported */
|
||||
if (link_up)
|
||||
supported = speed == IXGBE_LINK_SPEED_1GB_FULL ?
|
||||
true : false;
|
||||
else
|
||||
supported = true;
|
||||
else
|
||||
supported = true;
|
||||
}
|
||||
|
||||
break;
|
||||
case ixgbe_media_type_backplane:
|
||||
supported = true;
|
||||
|
@ -111,6 +120,10 @@ bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
|
|||
break;
|
||||
}
|
||||
|
||||
if (!supported)
|
||||
hw_dbg(hw, "Device %x does not support flow control autoneg\n",
|
||||
hw->device_id);
|
||||
|
||||
return supported;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue