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