mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-06 21:14:18 +00:00
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>
This commit is contained in:
parent
c313794277
commit
d1369e515e
@ -1219,6 +1219,16 @@ void mt76_connac_mcu_sta_ba_tlv(struct sk_buff *skb,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba_tlv);
|
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba_tlv);
|
||||||
|
|
||||||
|
int mt76_connac_mcu_sta_wed_update(struct mt76_dev *dev, struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
if (!mtk_wed_device_active(&dev->mmio.wed))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return mtk_wed_device_update_msg(&dev->mmio.wed, WED_WO_STA_REC,
|
||||||
|
skb->data, skb->len);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_wed_update);
|
||||||
|
|
||||||
int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
|
int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
|
||||||
struct ieee80211_ampdu_params *params,
|
struct ieee80211_ampdu_params *params,
|
||||||
int cmd, bool enable, bool tx)
|
int cmd, bool enable, bool tx)
|
||||||
@ -1244,6 +1254,10 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
|
|||||||
mt76_connac_mcu_wtbl_ba_tlv(dev, skb, params, enable, tx, sta_wtbl,
|
mt76_connac_mcu_wtbl_ba_tlv(dev, skb, params, enable, tx, sta_wtbl,
|
||||||
wtbl_hdr);
|
wtbl_hdr);
|
||||||
|
|
||||||
|
ret = mt76_connac_mcu_sta_wed_update(dev, skb);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
ret = mt76_mcu_skb_send_msg(dev, skb, cmd, true);
|
ret = mt76_mcu_skb_send_msg(dev, skb, cmd, true);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@ -1254,6 +1268,10 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
|
|||||||
|
|
||||||
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, tx);
|
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, tx);
|
||||||
|
|
||||||
|
ret = mt76_connac_mcu_sta_wed_update(dev, skb);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
return mt76_mcu_skb_send_msg(dev, skb, cmd, true);
|
return mt76_mcu_skb_send_msg(dev, skb, cmd, true);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba);
|
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,
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
ret = mt76_connac_mcu_sta_wed_update(dev, skb);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
return mt76_mcu_skb_send_msg(dev, skb, mcu_cmd, true);
|
return mt76_mcu_skb_send_msg(dev, skb, mcu_cmd, true);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mt76_connac_mcu_add_key);
|
EXPORT_SYMBOL_GPL(mt76_connac_mcu_add_key);
|
||||||
|
@ -1891,6 +1891,7 @@ int mt76_connac_mcu_set_pm(struct mt76_dev *dev, int band, int enter);
|
|||||||
int mt76_connac_mcu_restart(struct mt76_dev *dev);
|
int mt76_connac_mcu_restart(struct mt76_dev *dev);
|
||||||
int mt76_connac_mcu_rdd_cmd(struct mt76_dev *dev, int cmd, u8 index,
|
int mt76_connac_mcu_rdd_cmd(struct mt76_dev *dev, int cmd, u8 index,
|
||||||
u8 rx_sel, u8 val);
|
u8 rx_sel, u8 val);
|
||||||
|
int mt76_connac_mcu_sta_wed_update(struct mt76_dev *dev, struct sk_buff *skb);
|
||||||
int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
|
int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
|
||||||
const char *fw_wa);
|
const char *fw_wa);
|
||||||
int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name);
|
int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user