summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 163ab3f0ad2b..04ffac733947 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -8805,7 +8805,10 @@ static int __stmmac_dvr_probe(struct device *device,
ndev->features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX;
ndev->hw_features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX;
- if (priv->dma_cap.vlhash || priv->dma_cap.nrvf_num) {
+ /* VLAN filtering is implemented for modern IP-cores only */
+ if ((priv->plat->core_type == DWMAC_CORE_GMAC &&
+ priv->synopsys_id >= DWMAC_CORE_3_70) ||
+ dwmac_is_xmac(priv->plat->core_type)) {
ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER |
NETIF_F_HW_VLAN_STAG_FILTER;
ndev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER |