In order for hash filter to work we need to set the HPF bit.

Fout out while running stmmac selftests

Signed-off-by: Jose Abreu <joab...@synopsys.com>
Cc: Joao Pinto <jpi...@synopsys.com>
Cc: David S. Miller <da...@davemloft.net>
Cc: Giuseppe Cavallaro <peppe.cavall...@st.com>
Cc: Alexandre Torgue <alexandre.tor...@st.com>
Cc: Corentin Labbe <clabbe.montj...@gmail.com>
---
 drivers/net/ethernet/stmicro/stmmac/dwmac4.h      | 1 +
 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h 
b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h
index c3cbca804bcd..01c10893b7a5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h
@@ -65,6 +65,7 @@
 #define GMAC_PACKET_FILTER_HMC         BIT(2)
 #define GMAC_PACKET_FILTER_PM          BIT(4)
 #define GMAC_PACKET_FILTER_PCF         BIT(7)
+#define GMAC_PACKET_FILTER_HPF         BIT(10)
 
 #define GMAC_MAX_PERFECT_ADDRESSES     128
 
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 
b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
index 02a3a7e2db6e..094bd069c093 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
@@ -438,6 +438,8 @@ static void dwmac4_set_filter(struct mac_device_info *hw,
                writel(mc_filter[1], ioaddr + GMAC_HASH_TAB_32_63);
        }
 
+       value |= GMAC_PACKET_FILTER_HPF;
+
        /* Handle multiple unicast addresses */
        if (netdev_uc_count(dev) > GMAC_MAX_PERFECT_ADDRESSES) {
                /* Switch to promiscuous mode if more than 128 addrs
-- 
2.7.4

Reply via email to