mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 10:20:17 -04:00
wifi: mt76: mt7996: fix monitor mode
Enable sniffer mode via MCU command in order to properly enable promiscuous mode on the device. Link: https://patch.msgid.link/20250102163508.52945-24-nbd@nbd.name Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
@@ -368,6 +368,7 @@ static void mt7996_set_monitor(struct mt7996_phy *phy, bool enabled)
|
||||
mt76_rmw_field(dev, MT_DMA_DCR0(phy->mt76->band_idx),
|
||||
MT_DMA_DCR0_RXD_G5_EN, enabled);
|
||||
mt7996_phy_set_rxfilter(phy);
|
||||
mt7996_mcu_set_sniffer_mode(phy, enabled);
|
||||
}
|
||||
|
||||
static int mt7996_add_interface(struct ieee80211_hw *hw,
|
||||
|
||||
@@ -4496,6 +4496,27 @@ int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id)
|
||||
sizeof(req), true);
|
||||
}
|
||||
|
||||
int mt7996_mcu_set_sniffer_mode(struct mt7996_phy *phy, bool enabled)
|
||||
{
|
||||
struct mt7996_dev *dev = phy->dev;
|
||||
struct {
|
||||
u8 band_idx;
|
||||
u8 _rsv[3];
|
||||
__le16 tag;
|
||||
__le16 len;
|
||||
u8 enable;
|
||||
u8 _pad[3];
|
||||
} __packed req = {
|
||||
.band_idx = phy->mt76->band_idx,
|
||||
.tag = 0,
|
||||
.len = cpu_to_le16(sizeof(req) - 4),
|
||||
.enable = enabled,
|
||||
};
|
||||
|
||||
return mt76_mcu_send_msg(&dev->mt76, MCU_WM_UNI_CMD(SNIFFER), &req,
|
||||
sizeof(req), true);
|
||||
}
|
||||
|
||||
int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
|
||||
{
|
||||
#define TX_POWER_LIMIT_TABLE_RATE 0
|
||||
|
||||
@@ -621,6 +621,7 @@ void mt7996_mcu_rx_event(struct mt7996_dev *dev, struct sk_buff *skb);
|
||||
void mt7996_mcu_exit(struct mt7996_dev *dev);
|
||||
int mt7996_mcu_get_all_sta_info(struct mt7996_phy *phy, u16 tag);
|
||||
int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id);
|
||||
int mt7996_mcu_set_sniffer_mode(struct mt7996_phy *phy, bool enabled);
|
||||
|
||||
static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user