| From 50f7d72067bee8a8db45f8546e3345d250e47470 Mon Sep 17 00:00:00 2001 |
| From: Howard Hsu <howard-yh.hsu@mediatek.com> |
| Date: Wed, 3 Jan 2024 15:21:44 +0800 |
| Subject: [PATCH 006/120] mtk: wifi: mt76: connac: enable HW CSO module for |
| mt7996 |
| |
| For mt7996 chipsets, the HW CSO module can help to identify TCP traffic, |
| which assists the firmware in adjusting algorithms to improve overall |
| performance. |
| |
| CR-Id: WCNCR00362693 |
| Change-Id: I50300949e303c885a8091834d7e1b4107a42a813 |
| Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com> |
| Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> |
| --- |
| mt76_connac_mcu.h | 7 +++++++ |
| mt7996/mcu.c | 14 ++++++++++++++ |
| 2 files changed, 21 insertions(+) |
| |
| diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h |
| index 2a4aa7969..f1cd2e505 100644 |
| --- a/mt76_connac_mcu.h |
| +++ b/mt76_connac_mcu.h |
| @@ -610,6 +610,12 @@ struct sta_rec_ra_fixed { |
| u8 mmps_mode; |
| } __packed; |
| |
| +struct sta_rec_tx_proc { |
| + __le16 tag; |
| + __le16 len; |
| + __le32 flag; |
| +} __packed; |
| + |
| /* wtbl_rec */ |
| |
| struct wtbl_req_hdr { |
| @@ -777,6 +783,7 @@ struct wtbl_raw { |
| sizeof(struct sta_rec_ra_fixed) + \ |
| sizeof(struct sta_rec_he_6g_capa) + \ |
| sizeof(struct sta_rec_pn_info) + \ |
| + sizeof(struct sta_rec_tx_proc) + \ |
| sizeof(struct tlv) + \ |
| MT76_CONNAC_WTBL_UPDATE_MAX_SIZE) |
| |
| diff --git a/mt7996/mcu.c b/mt7996/mcu.c |
| index ddd93ec1d..744156655 100644 |
| --- a/mt7996/mcu.c |
| +++ b/mt7996/mcu.c |
| @@ -1748,6 +1748,18 @@ mt7996_mcu_sta_bfee_tlv(struct mt7996_dev *dev, struct sk_buff *skb, |
| bfee->fb_identity_matrix = (nrow == 1 && tx_ant == 2); |
| } |
| |
| +static void |
| +mt7996_mcu_sta_tx_proc_tlv(struct sk_buff *skb) |
| +{ |
| + struct sta_rec_tx_proc *tx_proc; |
| + struct tlv *tlv; |
| + |
| + tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_TX_PROC, sizeof(*tx_proc)); |
| + |
| + tx_proc = (struct sta_rec_tx_proc *)tlv; |
| + tx_proc->flag = cpu_to_le32(0); |
| +} |
| + |
| static void |
| mt7996_mcu_sta_hdrt_tlv(struct mt7996_dev *dev, struct sk_buff *skb) |
| { |
| @@ -2159,6 +2171,8 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif, |
| |
| /* starec hdr trans */ |
| mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta); |
| + /* starec tx proc */ |
| + mt7996_mcu_sta_tx_proc_tlv(skb); |
| |
| /* tag order is in accordance with firmware dependency. */ |
| if (sta) { |
| -- |
| 2.39.2 |
| |