blob: 1b1396134c4e7da0d33de253c07895307e466ec0 [file] [log] [blame]
developer05f3b2b2024-08-19 19:17:34 +08001From 8b4350b46fa5bc77a6e4314261b540b0ebd99f43 Mon Sep 17 00:00:00 2001
developer66e89bc2024-04-23 14:50:01 +08002From: "sujuan.chen" <sujuan.chen@mediatek.com>
3Date: Thu, 18 May 2023 15:01:47 +0800
developer05f3b2b2024-08-19 19:17:34 +08004Subject: [PATCH 065/199] mtk: mt76: mt7996: reset addr_elem when delete ba
developer66e89bc2024-04-23 14:50:01 +08005
6The old addr element info may be used when the signature is not equel to
70xff, and sta will find error SDP cause the SDP/SDL=0 issue.
8
developer66e89bc2024-04-23 14:50:01 +080091. without this patch will delete wrong session id when delete ba.
10Due to fw change the cmd format.
11https://gerrit.mediatek.inc/c/neptune/firmware/bora/wifi/custom/+/7969193
12
13Signed-off-by: mtk27745 <rex.lu@mediatek.com>
developer05f3b2b2024-08-19 19:17:34 +080014Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
developer66e89bc2024-04-23 14:50:01 +080015---
16 mt76.h | 1 +
17 mt7996/mcu.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++
18 2 files changed, 47 insertions(+)
19
20diff --git a/mt76.h b/mt76.h
developer05f3b2b2024-08-19 19:17:34 +080021index 92b59dd6..f2052cf7 100644
developer66e89bc2024-04-23 14:50:01 +080022--- a/mt76.h
23+++ b/mt76.h
developer05f3b2b2024-08-19 19:17:34 +080024@@ -447,6 +447,7 @@ struct mt76_rx_tid {
developer66e89bc2024-04-23 14:50:01 +080025 u16 nframes;
26
27 u8 num;
28+ u16 session_id;
29
30 u8 started:1, stopped:1, timer_pending:1;
31
32diff --git a/mt7996/mcu.h b/mt7996/mcu.h
developer05f3b2b2024-08-19 19:17:34 +080033index 23db3b33..7077a664 100644
developer66e89bc2024-04-23 14:50:01 +080034--- a/mt7996/mcu.h
35+++ b/mt7996/mcu.h
36@@ -298,6 +298,52 @@ struct mt7996_mcu_thermal_notify {
37 u8 __rsv2[4];
38 } __packed;
39
40+struct mt7996_mcu_rro_event {
41+ struct mt7996_mcu_rxd rxd;
42+
43+ u8 __rsv1[4];
44+
45+ __le16 tag;
46+ __le16 len;
47+} __packed;
48+
49+struct mt7996_mcu_rro_ba {
50+ __le16 tag;
51+ __le16 len;
52+
53+ __le16 wlan_id;
54+ u8 tid;
55+ u8 __rsv1;
56+ __le32 status;
57+ __le16 session_id;
58+ u8 __rsv2[2];
59+} __packed;
60+
61+struct mt7996_mcu_rro_ba_del_chk_done {
62+ __le16 tag;
63+ __le16 len;
64+
65+ __le16 session_id;
66+ __le16 mld_id;
67+ u8 tid;
68+ u8 __rsv[3];
69+} __packed;
70+
71+enum {
72+ UNI_RRO_BA_SESSION_STATUS = 0,
73+ UNI_RRO_BA_SESSION_TBL = 1,
74+ UNI_RRO_BA_SESSION_DEL_CHK_DONE = 2,
75+ UNI_RRO_BA_SESSION_MAX_NUM
76+};
77+
78+struct mt7996_mcu_rro_del_ba {
79+ struct mt7996_mcu_rro_event event;
80+
81+ u8 wlan_idx;
82+ u8 tid;
83+ u8 __rsv2[2];
84+};
85+
86 enum mt7996_chan_mib_offs {
87 UNI_MIB_OBSS_AIRTIME = 26,
88 UNI_MIB_NON_WIFI_TIME = 27,
89--
developer9237f442024-06-14 17:13:04 +0800902.18.0
developer66e89bc2024-04-23 14:50:01 +080091