ixgbe: always call setup_mac_link for multispeed fiber
Remove the logic which would previously skip the link configuration in the case where we are already at the requested speed in ixgbe_setup_mac_link_multispeed_fiber(). By exiting early we are skipping the link configuration and as such the driver may not always configure the PHY correctly for SFP+. 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:

committed by
Jeff Kirsher

parent
410a494902
commit
08ed48e182
@@ -4121,15 +4121,6 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
|
|||||||
speedcnt++;
|
speedcnt++;
|
||||||
highest_link_speed = IXGBE_LINK_SPEED_10GB_FULL;
|
highest_link_speed = IXGBE_LINK_SPEED_10GB_FULL;
|
||||||
|
|
||||||
/* If we already have link at this speed, just jump out */
|
|
||||||
status = hw->mac.ops.check_link(hw, &link_speed, &link_up,
|
|
||||||
false);
|
|
||||||
if (status)
|
|
||||||
return status;
|
|
||||||
|
|
||||||
if (link_speed == IXGBE_LINK_SPEED_10GB_FULL && link_up)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Set the module link speed */
|
/* Set the module link speed */
|
||||||
switch (hw->phy.media_type) {
|
switch (hw->phy.media_type) {
|
||||||
case ixgbe_media_type_fiber:
|
case ixgbe_media_type_fiber:
|
||||||
@@ -4181,15 +4172,6 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
|
|||||||
if (highest_link_speed == IXGBE_LINK_SPEED_UNKNOWN)
|
if (highest_link_speed == IXGBE_LINK_SPEED_UNKNOWN)
|
||||||
highest_link_speed = IXGBE_LINK_SPEED_1GB_FULL;
|
highest_link_speed = IXGBE_LINK_SPEED_1GB_FULL;
|
||||||
|
|
||||||
/* If we already have link at this speed, just jump out */
|
|
||||||
status = hw->mac.ops.check_link(hw, &link_speed, &link_up,
|
|
||||||
false);
|
|
||||||
if (status)
|
|
||||||
return status;
|
|
||||||
|
|
||||||
if (link_speed == IXGBE_LINK_SPEED_1GB_FULL && link_up)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Set the module link speed */
|
/* Set the module link speed */
|
||||||
switch (hw->phy.media_type) {
|
switch (hw->phy.media_type) {
|
||||||
case ixgbe_media_type_fiber:
|
case ixgbe_media_type_fiber:
|
||||||
|
Reference in New Issue
Block a user