+ if (phydev->mdio.addr == 0)
+ ar40xx_priv->phy = phydev;
+
-+ phydev->supported |= SUPPORTED_1000baseT_Full;
-+ phydev->advertising |= ADVERTISED_1000baseT_Full;
++ linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, phydev->supported);
++ linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, phydev->advertising);
+ return 0;
+}
+
+ .phy_id = 0x004d0000,
+ .name = "QCA Malibu",
+ .phy_id_mask = 0xffff0000,
-+ .features = PHY_BASIC_FEATURES,
++ .features = PHY_GBIT_FEATURES,
+ .probe = ar40xx_phy_probe,
+ .remove = ar40xx_phy_remove,
+ .config_init = ar40xx_phy_config_init,
--- a/drivers/net/phy/ar40xx.c
+++ b/drivers/net/phy/ar40xx.c
-@@ -1808,8 +1808,8 @@ ar40xx_phy_probe(struct phy_device *phyd
- if (phydev->mdio.addr == 0)
- ar40xx_priv->phy = phydev;
-
-- phydev->supported |= SUPPORTED_1000baseT_Full;
-- phydev->advertising |= ADVERTISED_1000baseT_Full;
-+ phy_set_max_speed(phydev, SPEED_1000);
-+ linkmode_copy(phydev->advertising, phydev->supported);
- return 0;
- }
-
@@ -2021,6 +2021,12 @@ static int ar40xx_probe(struct platform_
/* register switch */
swdev = &priv->dev;