Skip to content

Commit d1369e5

Browse files
Sujuan Chennbd168
Sujuan Chen
authored andcommitted
wifi: mt76: connac: introduce mt76_connac_mcu_sta_wed_update utility routine
This is a preliminary patch to introduce WED RX support for mt7915. Tested-by: Daniel Golle <daniel@makrotopia.org> Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
1 parent c313794 commit d1369e5

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c

+22
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,16 @@ void mt76_connac_mcu_sta_ba_tlv(struct sk_buff *skb,
12191219
}
12201220
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba_tlv);
12211221

1222+
int mt76_connac_mcu_sta_wed_update(struct mt76_dev *dev, struct sk_buff *skb)
1223+
{
1224+
if (!mtk_wed_device_active(&dev->mmio.wed))
1225+
return 0;
1226+
1227+
return mtk_wed_device_update_msg(&dev->mmio.wed, WED_WO_STA_REC,
1228+
skb->data, skb->len);
1229+
}
1230+
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_wed_update);
1231+
12221232
int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
12231233
struct ieee80211_ampdu_params *params,
12241234
int cmd, bool enable, bool tx)
@@ -1244,6 +1254,10 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
12441254
mt76_connac_mcu_wtbl_ba_tlv(dev, skb, params, enable, tx, sta_wtbl,
12451255
wtbl_hdr);
12461256

1257+
ret = mt76_connac_mcu_sta_wed_update(dev, skb);
1258+
if (ret)
1259+
return ret;
1260+
12471261
ret = mt76_mcu_skb_send_msg(dev, skb, cmd, true);
12481262
if (ret)
12491263
return ret;
@@ -1254,6 +1268,10 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
12541268

12551269
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, tx);
12561270

1271+
ret = mt76_connac_mcu_sta_wed_update(dev, skb);
1272+
if (ret)
1273+
return ret;
1274+
12571275
return mt76_mcu_skb_send_msg(dev, skb, cmd, true);
12581276
}
12591277
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba);
@@ -2696,6 +2714,10 @@ int mt76_connac_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif,
26962714
if (ret)
26972715
return ret;
26982716

2717+
ret = mt76_connac_mcu_sta_wed_update(dev, skb);
2718+
if (ret)
2719+
return ret;
2720+
26992721
return mt76_mcu_skb_send_msg(dev, skb, mcu_cmd, true);
27002722
}
27012723
EXPORT_SYMBOL_GPL(mt76_connac_mcu_add_key);

drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h

+1
Original file line numberDiff line numberDiff line change
@@ -1891,6 +1891,7 @@ int mt76_connac_mcu_set_pm(struct mt76_dev *dev, int band, int enter);
18911891
int mt76_connac_mcu_restart(struct mt76_dev *dev);
18921892
int mt76_connac_mcu_rdd_cmd(struct mt76_dev *dev, int cmd, u8 index,
18931893
u8 rx_sel, u8 val);
1894+
int mt76_connac_mcu_sta_wed_update(struct mt76_dev *dev, struct sk_buff *skb);
18941895
int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
18951896
const char *fw_wa);
18961897
int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name);

0 commit comments

Comments
 (0)