diff options
author | Felix Fietkau <nbd@nbd.name> | 2017-12-14 10:39:17 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2018-01-08 12:25:55 -0500 |
commit | e8be626d794bfcb898b582c11b447becc7c78d00 (patch) | |
tree | 6081cb548fb5fac38a5e875f88b041242583c1f2 | |
parent | eb46e5b7be0da1eee353998b27ae852f49e8e2a3 (diff) |
mt76x2: configure rx filter based on monitor mode setting
Due to an unrelated issue, the MT_RX_FILTR_CFG_PROMISC flag is currently
unset, which means that monitor mode is unconditionally enabled.
Toggle this flag based on the mac80211 monitor mode setting instead
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76x2_main.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c index f74b8195421a..963aea9e8801 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c | |||
@@ -152,6 +152,15 @@ mt76x2_config(struct ieee80211_hw *hw, u32 changed) | |||
152 | 152 | ||
153 | mutex_lock(&dev->mutex); | 153 | mutex_lock(&dev->mutex); |
154 | 154 | ||
155 | if (changed & IEEE80211_CONF_CHANGE_MONITOR) { | ||
156 | if (!(hw->conf.flags & IEEE80211_CONF_MONITOR)) | ||
157 | dev->rxfilter |= MT_RX_FILTR_CFG_PROMISC; | ||
158 | else | ||
159 | dev->rxfilter &= ~MT_RX_FILTR_CFG_PROMISC; | ||
160 | |||
161 | mt76_wr(dev, MT_RX_FILTR_CFG, dev->rxfilter); | ||
162 | } | ||
163 | |||
155 | if (changed & IEEE80211_CONF_CHANGE_POWER) { | 164 | if (changed & IEEE80211_CONF_CHANGE_POWER) { |
156 | dev->txpower_conf = hw->conf.power_level * 2; | 165 | dev->txpower_conf = hw->conf.power_level * 2; |
157 | 166 | ||