From 288e7443e35c217b35553d70379d9d921a3aaaec Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 29 Dec 2021 12:21:00 +0100 Subject: [PATCH] mt76: mt7615: update bss_info with cipher after setting the group key In some cases, the WA firmware needs to know if encryption is used, in order to set the protection bit of packets Signed-off-by: Felix Fietkau --- mt7615/main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mt7615/main.c b/mt7615/main.c index 82d625a1..9f7ac78f 100644 --- a/mt7615/main.c +++ b/mt7615/main.c @@ -365,6 +365,7 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, struct ieee80211_key_conf *key) { struct mt7615_dev *dev = mt7615_hw_dev(hw); + struct mt7615_phy *phy = mt7615_hw_phy(hw); struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv; struct mt7615_sta *msta = sta ? (struct mt7615_sta *)sta->drv_priv : &mvif->sta; @@ -403,6 +404,11 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, mt7615_mutex_acquire(dev); + if (cmd == SET_KEY && !sta && !mvif->mt76.cipher) { + mvif->mt76.cipher = mt76_connac_mcu_get_cipher(key->cipher); + mt7615_mcu_add_bss_info(phy, vif, NULL, true); + } + if (cmd == SET_KEY) *wcid_keyidx = idx; else if (idx == *wcid_keyidx)