if (ret)
                return ret;
 
+       if (phydev->autoneg != AUTONEG_ENABLE) {
+               /* When autonegotation is disabled, we need to manually force
+                * the link state. If we don't do this, the PHY will keep
+                * sending Fast Link Pulses (FLPs) which are part of the
+                * autonegotiation process. This is not desired when
+                * autonegotiation is off.
+                */
+               ret = phy_set_bits(phydev, MII_KSZPHY_CTRL,
+                                  KSZ886X_CTRL_FORCE_LINK);
+               if (ret)
+                       return ret;
+       } else {
+               /* If we had previously forced the link state, we need to
+                * clear KSZ886X_CTRL_FORCE_LINK bit now. Otherwise, the PHY
+                * will not perform autonegotiation.
+                */
+               ret = phy_clear_bits(phydev, MII_KSZPHY_CTRL,
+                                    KSZ886X_CTRL_FORCE_LINK);
+               if (ret)
+                       return ret;
+       }
+
        /* The MDI-X configuration is automatically changed by the PHY after
         * switching from autoneg off to on. So, take MDI-X configuration under
         * own control and set it after autoneg configuration was done.