Commit af44ce4f authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: mt7615: introduce set_bmc and st_sta for uni commands

Introduce mt7615_mcu_uni_set_bmc and mt7615_mcu_uni_set_sta routines for
mt7663e commands.
Co-developed-by: default avatarSean Wang <sean.wang@mediatek.com>
Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 323d7daa
...@@ -1062,8 +1062,8 @@ mt7615_mcu_sta_rx_ba(struct mt7615_dev *dev, ...@@ -1062,8 +1062,8 @@ mt7615_mcu_sta_rx_ba(struct mt7615_dev *dev,
} }
static int static int
mt7615_mcu_add_sta(struct mt7615_dev *dev, struct ieee80211_vif *vif, mt7615_mcu_add_sta_cmd(struct mt7615_dev *dev, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable) struct ieee80211_sta *sta, bool enable, int cmd)
{ {
struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv; struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
struct wtbl_req_hdr *wtbl_hdr; struct wtbl_req_hdr *wtbl_hdr;
...@@ -1092,8 +1092,15 @@ mt7615_mcu_add_sta(struct mt7615_dev *dev, struct ieee80211_vif *vif, ...@@ -1092,8 +1092,15 @@ mt7615_mcu_add_sta(struct mt7615_dev *dev, struct ieee80211_vif *vif,
mt7615_mcu_wtbl_ht_tlv(skb, sta, sta_wtbl, wtbl_hdr); mt7615_mcu_wtbl_ht_tlv(skb, sta, sta_wtbl, wtbl_hdr);
} }
return __mt76_mcu_skb_send_msg(&dev->mt76, skb, return __mt76_mcu_skb_send_msg(&dev->mt76, skb, cmd, true);
MCU_EXT_CMD_STA_REC_UPDATE, true); }
static int
mt7615_mcu_add_sta(struct mt7615_dev *dev, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable)
{
return mt7615_mcu_add_sta_cmd(dev, vif, sta, enable,
MCU_EXT_CMD_STA_REC_UPDATE);
} }
static const struct mt7615_mcu_ops sta_update_ops = { static const struct mt7615_mcu_ops sta_update_ops = {
...@@ -1106,6 +1113,18 @@ static const struct mt7615_mcu_ops sta_update_ops = { ...@@ -1106,6 +1113,18 @@ static const struct mt7615_mcu_ops sta_update_ops = {
.sta_add = mt7615_mcu_add_sta, .sta_add = mt7615_mcu_add_sta,
}; };
static int
mt7615_mcu_uni_add_sta(struct mt7615_dev *dev, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable)
{
return mt7615_mcu_add_sta_cmd(dev, vif, sta, enable,
MCU_UNI_CMD_STA_REC_UPDATE);
}
static const struct mt7615_mcu_ops uni_update_ops = {
.sta_add = mt7615_mcu_uni_add_sta,
};
static int mt7615_mcu_send_firmware(struct mt7615_dev *dev, const void *data, static int mt7615_mcu_send_firmware(struct mt7615_dev *dev, const void *data,
int len) int len)
{ {
......
...@@ -269,6 +269,10 @@ enum { ...@@ -269,6 +269,10 @@ enum {
MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d, MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
}; };
enum {
MCU_UNI_CMD_STA_REC_UPDATE = MCU_UNI_PREFIX | 0x03,
};
#define MCU_CMD_ACK BIT(0) #define MCU_CMD_ACK BIT(0)
#define MCU_CMD_UNI BIT(1) #define MCU_CMD_UNI BIT(1)
#define MCU_CMD_QUERY BIT(2) #define MCU_CMD_QUERY BIT(2)
...@@ -607,6 +611,15 @@ struct sta_req_hdr { ...@@ -607,6 +611,15 @@ struct sta_req_hdr {
u8 rsv[2]; u8 rsv[2];
} __packed; } __packed;
struct sta_rec_state {
__le16 tag;
__le16 len;
u8 state;
__le32 flags;
u8 vhtop;
u8 pad[2];
} __packed;
struct sta_rec_basic { struct sta_rec_basic {
__le16 tag; __le16 tag;
__le16 len; __le16 len;
...@@ -659,7 +672,7 @@ enum { ...@@ -659,7 +672,7 @@ enum {
STA_REC_BF, STA_REC_BF,
STA_REC_AMSDU, /* for CR4 */ STA_REC_AMSDU, /* for CR4 */
STA_REC_BA, STA_REC_BA,
STA_REC_RED, /* not used */ STA_REC_STATE,
STA_REC_TX_PROC, /* for hdr trans and CSO in CR4 */ STA_REC_TX_PROC, /* for hdr trans and CSO in CR4 */
STA_REC_HT, STA_REC_HT,
STA_REC_VHT, STA_REC_VHT,
......
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