rtl83xx: dsa: Clear duplex bit correctly
[openwrt/staging/jow.git] / target / linux / realtek / files-5.15 / drivers / net / dsa / rtl83xx / dsa.c
index 3b5af72dd6a78154e954631708503cdb3a3c72a3..0e1d64ae691284a6cd0bb888e849dde40ec09e33 100644 (file)
@@ -870,6 +870,8 @@ static void rtl93xx_phylink_mac_config(struct dsa_switch *ds, int port,
 
        if (state->duplex == DUPLEX_FULL)
                reg |= RTL930X_DUPLEX_MODE;
+       else
+               reg &= ~RTL930X_DUPLEX_MODE; /* Clear duplex bit otherwise */
 
        if (priv->ports[port].phy_is_integrated)
                reg &= ~RTL930X_FORCE_EN; /* Clear MAC_FORCE_EN to allow SDS-MAC link */