mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
wifi: mt76: mt7921: use driver flags rather than mac80211 flags to mcu
FIF_* flags from mac80211 is not ABI. mt7921 should not pass it into mcu
directly. Remap FIF_* to driver defined flags as mcu command input.
Fixes: c222f77fd4 ("wifi: mt76: mt7921: fix rx filter incorrect by drv/fw inconsistent")
Signed-off-by: Neil Chen <yn.chen@mediatek.com>
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
a1ec7e6237
commit
a5af1481a8
|
|
@ -703,10 +703,25 @@ static void mt7921_configure_filter(struct ieee80211_hw *hw,
|
|||
unsigned int *total_flags,
|
||||
u64 multicast)
|
||||
{
|
||||
#define MT7921_FILTER_FCSFAIL BIT(2)
|
||||
#define MT7921_FILTER_CONTROL BIT(5)
|
||||
#define MT7921_FILTER_OTHER_BSS BIT(6)
|
||||
#define MT7921_FILTER_ENABLE BIT(31)
|
||||
|
||||
struct mt7921_dev *dev = mt7921_hw_dev(hw);
|
||||
u32 flags = MT7921_FILTER_ENABLE;
|
||||
|
||||
#define MT7921_FILTER(_fif, _type) do { \
|
||||
if (*total_flags & (_fif)) \
|
||||
flags |= MT7921_FILTER_##_type; \
|
||||
} while (0)
|
||||
|
||||
MT7921_FILTER(FIF_FCSFAIL, FCSFAIL);
|
||||
MT7921_FILTER(FIF_CONTROL, CONTROL);
|
||||
MT7921_FILTER(FIF_OTHER_BSS, OTHER_BSS);
|
||||
|
||||
mt7921_mutex_acquire(dev);
|
||||
mt7921_mcu_set_rxfilter(dev, *total_flags, 0, 0);
|
||||
mt7921_mcu_set_rxfilter(dev, flags, 0, 0);
|
||||
mt7921_mutex_release(dev);
|
||||
|
||||
*total_flags &= (FIF_OTHER_BSS | FIF_FCSFAIL | FIF_CONTROL);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user