case IXGBE_LINK_SPEED_10GB_FULL:
                        ethtool_cmd_speed_set(ecmd, SPEED_10000);
                        break;
+               case IXGBE_LINK_SPEED_5GB_FULL:
+                       ethtool_cmd_speed_set(ecmd, SPEED_5000);
+                       break;
                case IXGBE_LINK_SPEED_2_5GB_FULL:
                        ethtool_cmd_speed_set(ecmd, SPEED_2500);
                        break;
 
                                       ixgbe_link_speed speed,
                                       bool autoneg_wait_to_complete)
 {
-
-       /*
-        * Clear autoneg_advertised and set new values based on input link
+       /* Clear autoneg_advertised and set new values based on input link
         * speed.
         */
        hw->phy.autoneg_advertised = 0;
        if (speed & IXGBE_LINK_SPEED_10GB_FULL)
                hw->phy.autoneg_advertised |= IXGBE_LINK_SPEED_10GB_FULL;
 
+       if (speed & IXGBE_LINK_SPEED_5GB_FULL)
+               hw->phy.autoneg_advertised |= IXGBE_LINK_SPEED_5GB_FULL;
+
+       if (speed & IXGBE_LINK_SPEED_2_5GB_FULL)
+               hw->phy.autoneg_advertised |= IXGBE_LINK_SPEED_2_5GB_FULL;
+
        if (speed & IXGBE_LINK_SPEED_1GB_FULL)
                hw->phy.autoneg_advertised |= IXGBE_LINK_SPEED_1GB_FULL;