@@ -171,6 +171,8 @@ static int loongson_gmac_config(struct pci_dev *pdev,
break;
}
+ plat->flags |= FIELD_PREP(STMMAC_FLAG_DISABLE_FLOW_CONTROL, 1);
+
return ret;
}
@@ -1235,9 +1235,9 @@ static int stmmac_phy_setup(struct stmmac_priv *priv)
xpcs_get_interfaces(priv->hw->xpcs,
priv->phylink_config.supported_interfaces);
- priv->phylink_config.mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
- MAC_10FD | MAC_100FD |
- MAC_1000FD;
+ priv->phylink_config.mac_capabilities = MAC_10FD | MAC_100FD | MAC_1000FD;
+ if (!FIELD_GET(STMMAC_FLAG_DISABLE_FLOW_CONTROL, priv->plat->flags))
+ priv->phylink_config.mac_capabilities |= MAC_ASYM_PAUSE | MAC_SYM_PAUSE;
stmmac_set_half_duplex(priv);
@@ -222,6 +222,7 @@ struct dwmac4_addrs {
#define STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY BIT(12)
#define STMMAC_FLAG_DISABLE_HALF_DUPLEX BIT(13)
#define STMMAC_FLAG_DISABLE_FORCE_1000 BIT(14)
+#define STMMAC_FLAG_DISABLE_FLOW_CONTROL BIT(15)
struct plat_stmmacenet_data {
int bus_id;