|
@@ -79,13 +79,22 @@ bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
|
|
|
|
|
|
switch (hw->phy.media_type) {
|
|
switch (hw->phy.media_type) {
|
|
case ixgbe_media_type_fiber:
|
|
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;
|
|
true : false;
|
|
- else
|
|
|
|
- supported = true;
|
|
|
|
|
|
+ else
|
|
|
|
+ supported = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
break;
|
|
break;
|
|
case ixgbe_media_type_backplane:
|
|
case ixgbe_media_type_backplane:
|
|
supported = true;
|
|
supported = true;
|
|
@@ -111,6 +120,10 @@ bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (!supported)
|
|
|
|
+ hw_dbg(hw, "Device %x does not support flow control autoneg\n",
|
|
|
|
+ hw->device_id);
|
|
|
|
+
|
|
return supported;
|
|
return supported;
|
|
}
|
|
}
|
|
|
|
|