Commit 940a0c63 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: mt7615: wake device before configuring hw keys

Make sure the device is in full-power before uploading keys to the hw
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent ea4906c4
...@@ -336,7 +336,7 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, ...@@ -336,7 +336,7 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
struct mt7615_sta *msta = sta ? (struct mt7615_sta *)sta->drv_priv : struct mt7615_sta *msta = sta ? (struct mt7615_sta *)sta->drv_priv :
&mvif->sta; &mvif->sta;
struct mt76_wcid *wcid = &msta->wcid; struct mt76_wcid *wcid = &msta->wcid;
int idx = key->keyidx; int idx = key->keyidx, err;
/* The hardware does not support per-STA RX GTK, fallback /* The hardware does not support per-STA RX GTK, fallback
* to software mode for these. * to software mode for these.
...@@ -366,6 +366,8 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, ...@@ -366,6 +366,8 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
mt7615_mutex_acquire(dev);
if (cmd == SET_KEY) { if (cmd == SET_KEY) {
key->hw_key_idx = wcid->idx; key->hw_key_idx = wcid->idx;
wcid->hw_key_idx = idx; wcid->hw_key_idx = idx;
...@@ -376,9 +378,13 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, ...@@ -376,9 +378,13 @@ static int mt7615_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
cmd == SET_KEY ? key : NULL); cmd == SET_KEY ? key : NULL);
if (mt76_is_usb(&dev->mt76)) if (mt76_is_usb(&dev->mt76))
return mt7615_queue_key_update(dev, cmd, msta, key); err = mt7615_queue_key_update(dev, cmd, msta, key);
else
err = mt7615_mac_wtbl_set_key(dev, wcid, key, cmd);
return mt7615_mac_wtbl_set_key(dev, wcid, key, cmd); mt7615_mutex_release(dev);
return err;
} }
static int mt7615_config(struct ieee80211_hw *hw, u32 changed) static int mt7615_config(struct ieee80211_hw *hw, u32 changed)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment