mac_dev->adjust_link(mac_dev);
 }
 
+/* The Aquantia PHYs are capable of performing rate adaptation */
+#define PHY_VEND_AQUANTIA      0x03a1b400
+
 static int dpaa_phy_init(struct net_device *net_dev)
 {
        __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
                return -ENODEV;
        }
 
-       /* Remove any features not supported by the controller */
-       ethtool_convert_legacy_u32_to_link_mode(mask, mac_dev->if_support);
-       linkmode_and(phy_dev->supported, phy_dev->supported, mask);
+       /* Unless the PHY is capable of rate adaptation */
+       if (mac_dev->phy_if != PHY_INTERFACE_MODE_XGMII ||
+           ((phy_dev->drv->phy_id & GENMASK(31, 10)) != PHY_VEND_AQUANTIA)) {
+               /* remove any features not supported by the controller */
+               ethtool_convert_legacy_u32_to_link_mode(mask,
+                                                       mac_dev->if_support);
+               linkmode_and(phy_dev->supported, phy_dev->supported, mask);
+       }
 
        phy_support_asym_pause(phy_dev);