blob: 7f6406ff036fe57f3c4d332da0087e990191302f [file] [log] [blame]
From b241c6831557c3141801dc2f87e839269ef7bad1 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Fri, 19 Apr 2024 15:43:23 +0800
Subject: [PATCH] wifi: mt76: mt7915: adjust rx filter
Adjust rx filter setting to drop the packet that we do not need to
receive.
Fixes: e57b7901469f ("mt76: add mac80211 driver for MT7915 PCIe-based chipsets")
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
---
mt7915/main.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/mt7915/main.c b/mt7915/main.c
index 26f9a5a..137e09a 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -489,7 +489,8 @@ static int mt7915_config(struct ieee80211_hw *hw, u32 changed)
rxfilter |= MT_WF_RFCR_DROP_OTHER_UC;
dev->monitor_mask &= ~BIT(band);
} else {
- rxfilter &= ~MT_WF_RFCR_DROP_OTHER_UC;
+ rxfilter &= ~(MT_WF_RFCR_DROP_A2_BSSID |
+ MT_WF_RFCR_DROP_OTHER_UC);
dev->monitor_mask |= BIT(band);
}
@@ -552,13 +553,14 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw,
MT_WF_RFCR_DROP_MCAST |
MT_WF_RFCR_DROP_BCAST |
MT_WF_RFCR_DROP_DUPLICATE |
- MT_WF_RFCR_DROP_A2_BSSID |
MT_WF_RFCR_DROP_UNWANTED_CTL |
MT_WF_RFCR_DROP_STBC_MULTI);
+ phy->rxfilter |= MT_WF_RFCR_DROP_VERSION;
MT76_FILTER(OTHER_BSS, MT_WF_RFCR_DROP_OTHER_TIM |
MT_WF_RFCR_DROP_A3_MAC |
- MT_WF_RFCR_DROP_A3_BSSID);
+ MT_WF_RFCR_DROP_A3_BSSID |
+ MT_WF_RFCR_DROP_A2_BSSID);
MT76_FILTER(FCSFAIL, MT_WF_RFCR_DROP_FCSFAIL);
@@ -569,7 +571,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw,
*total_flags = flags;
rxfilter = phy->rxfilter;
if (hw->conf.flags & IEEE80211_CONF_MONITOR)
- rxfilter &= ~MT_WF_RFCR_DROP_OTHER_UC;
+ rxfilter &= ~(MT_WF_RFCR_DROP_A2_BSSID |
+ MT_WF_RFCR_DROP_OTHER_UC);
else
rxfilter |= MT_WF_RFCR_DROP_OTHER_UC;
mt76_wr(dev, MT_WF_RFCR(band), rxfilter);
--
2.18.0