Commit 82453b1c authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: connac: fix UC entry is being overwritten

Fix UC entry is being overwritten by BC entry
Tested-by: default avatarDeren Wu <deren.wu@mediatek.com>
Co-developed-by: default avatarDeren Wu <deren.wu@mediatek.com>
Signed-off-by: default avatarDeren Wu <deren.wu@mediatek.com>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 435d68f9
...@@ -1148,12 +1148,14 @@ mt7615_mcu_sta_rx_ba(struct mt7615_dev *dev, ...@@ -1148,12 +1148,14 @@ mt7615_mcu_sta_rx_ba(struct mt7615_dev *dev,
static int static int
__mt7615_mcu_add_sta(struct mt76_phy *phy, struct ieee80211_vif *vif, __mt7615_mcu_add_sta(struct mt76_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable, int cmd) struct ieee80211_sta *sta, bool enable, int cmd,
bool offload_fw)
{ {
struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv; struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
struct mt76_sta_cmd_info info = { struct mt76_sta_cmd_info info = {
.sta = sta, .sta = sta,
.vif = vif, .vif = vif,
.offload_fw = offload_fw,
.enable = enable, .enable = enable,
.cmd = cmd, .cmd = cmd,
}; };
...@@ -1167,7 +1169,7 @@ mt7615_mcu_add_sta(struct mt7615_phy *phy, struct ieee80211_vif *vif, ...@@ -1167,7 +1169,7 @@ mt7615_mcu_add_sta(struct mt7615_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable) struct ieee80211_sta *sta, bool enable)
{ {
return __mt7615_mcu_add_sta(phy->mt76, vif, sta, enable, return __mt7615_mcu_add_sta(phy->mt76, vif, sta, enable,
MCU_EXT_CMD_STA_REC_UPDATE); MCU_EXT_CMD_STA_REC_UPDATE, false);
} }
static int static int
...@@ -1302,7 +1304,7 @@ mt7615_mcu_uni_add_sta(struct mt7615_phy *phy, struct ieee80211_vif *vif, ...@@ -1302,7 +1304,7 @@ mt7615_mcu_uni_add_sta(struct mt7615_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable) struct ieee80211_sta *sta, bool enable)
{ {
return __mt7615_mcu_add_sta(phy->mt76, vif, sta, enable, return __mt7615_mcu_add_sta(phy->mt76, vif, sta, enable,
MCU_UNI_CMD_STA_REC_UPDATE); MCU_UNI_CMD_STA_REC_UPDATE, true);
} }
static int static int
......
...@@ -879,10 +879,12 @@ int mt76_connac_mcu_add_sta_cmd(struct mt76_phy *phy, ...@@ -879,10 +879,12 @@ int mt76_connac_mcu_add_sta_cmd(struct mt76_phy *phy,
if (IS_ERR(skb)) if (IS_ERR(skb))
return PTR_ERR(skb); return PTR_ERR(skb);
mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta, info->enable); if (info->sta || !info->offload_fw)
if (info->enable && info->sta) mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta,
mt76_connac_mcu_sta_tlv(phy, skb, info->sta, info->vif, info->enable);
info->rcpi); if (info->sta && info->enable)
mt76_connac_mcu_sta_tlv(phy, skb, info->sta,
info->vif, info->rcpi);
sta_wtbl = mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL, sta_wtbl = mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL,
sizeof(struct tlv)); sizeof(struct tlv));
......
...@@ -910,6 +910,7 @@ struct mt76_sta_cmd_info { ...@@ -910,6 +910,7 @@ struct mt76_sta_cmd_info {
struct ieee80211_vif *vif; struct ieee80211_vif *vif;
bool offload_fw;
bool enable; bool enable;
int cmd; int cmd;
u8 rcpi; u8 rcpi;
......
...@@ -1277,6 +1277,7 @@ int mt7921_mcu_sta_add(struct mt7921_dev *dev, struct ieee80211_sta *sta, ...@@ -1277,6 +1277,7 @@ int mt7921_mcu_sta_add(struct mt7921_dev *dev, struct ieee80211_sta *sta,
.vif = vif, .vif = vif,
.enable = enable, .enable = enable,
.cmd = MCU_UNI_CMD_STA_REC_UPDATE, .cmd = MCU_UNI_CMD_STA_REC_UPDATE,
.offload_fw = true,
.rcpi = to_rcpi(rssi), .rcpi = to_rcpi(rssi),
}; };
struct mt7921_sta *msta; struct mt7921_sta *msta;
......
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