xref: /wlan-driver/fw-api/hw/qcn6432/tx_fes_status_start_prot.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
5*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
6*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
7*5113495bSYour Name  *
8*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*5113495bSYour Name  */
16*5113495bSYour Name 
17*5113495bSYour Name #ifndef _TX_FES_STATUS_START_PROT_H_
18*5113495bSYour Name #define _TX_FES_STATUS_START_PROT_H_
19*5113495bSYour Name #if !defined(__ASSEMBLER__)
20*5113495bSYour Name #endif
21*5113495bSYour Name 
22*5113495bSYour Name #define NUM_OF_DWORDS_TX_FES_STATUS_START_PROT 4
23*5113495bSYour Name 
24*5113495bSYour Name #define NUM_OF_QWORDS_TX_FES_STATUS_START_PROT 2
25*5113495bSYour Name 
26*5113495bSYour Name 
27*5113495bSYour Name struct tx_fes_status_start_prot {
28*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
29*5113495bSYour Name              uint32_t prot_timestamp_lower_32                                 : 32; // [31:0]
30*5113495bSYour Name              uint32_t prot_timestamp_upper_32                                 : 32; // [31:0]
31*5113495bSYour Name              uint32_t subband_mask                                            : 16, // [15:0]
32*5113495bSYour Name                       reserved_2b                                             :  4, // [19:16]
33*5113495bSYour Name                       prot_coex_based_tx_bw                                   :  3, // [22:20]
34*5113495bSYour Name                       prot_coex_based_ant_mask                                :  8, // [30:23]
35*5113495bSYour Name                       prot_coex_result_alt_based                              :  1; // [31:31]
36*5113495bSYour Name              uint32_t prot_coex_tx_pwr_shared_ant                             :  8, // [7:0]
37*5113495bSYour Name                       prot_coex_tx_pwr_ant                                    :  8, // [15:8]
38*5113495bSYour Name                       prot_concurrent_bt_tx                                   :  1, // [16:16]
39*5113495bSYour Name                       prot_concurrent_wlan_tx                                 :  1, // [17:17]
40*5113495bSYour Name                       prot_concurrent_wan_tx                                  :  1, // [18:18]
41*5113495bSYour Name                       prot_concurrent_wan_rx                                  :  1, // [19:19]
42*5113495bSYour Name                       prot_coex_pwr_reduction_bt                              :  1, // [20:20]
43*5113495bSYour Name                       prot_coex_pwr_reduction_wlan                            :  1, // [21:21]
44*5113495bSYour Name                       prot_coex_pwr_reduction_wan                             :  1, // [22:22]
45*5113495bSYour Name                       prot_request_packet_bw                                  :  3, // [25:23]
46*5113495bSYour Name                       response_type                                           :  5, // [30:26]
47*5113495bSYour Name                       reserved_3a                                             :  1; // [31:31]
48*5113495bSYour Name #else
49*5113495bSYour Name              uint32_t prot_timestamp_lower_32                                 : 32; // [31:0]
50*5113495bSYour Name              uint32_t prot_timestamp_upper_32                                 : 32; // [31:0]
51*5113495bSYour Name              uint32_t prot_coex_result_alt_based                              :  1, // [31:31]
52*5113495bSYour Name                       prot_coex_based_ant_mask                                :  8, // [30:23]
53*5113495bSYour Name                       prot_coex_based_tx_bw                                   :  3, // [22:20]
54*5113495bSYour Name                       reserved_2b                                             :  4, // [19:16]
55*5113495bSYour Name                       subband_mask                                            : 16; // [15:0]
56*5113495bSYour Name              uint32_t reserved_3a                                             :  1, // [31:31]
57*5113495bSYour Name                       response_type                                           :  5, // [30:26]
58*5113495bSYour Name                       prot_request_packet_bw                                  :  3, // [25:23]
59*5113495bSYour Name                       prot_coex_pwr_reduction_wan                             :  1, // [22:22]
60*5113495bSYour Name                       prot_coex_pwr_reduction_wlan                            :  1, // [21:21]
61*5113495bSYour Name                       prot_coex_pwr_reduction_bt                              :  1, // [20:20]
62*5113495bSYour Name                       prot_concurrent_wan_rx                                  :  1, // [19:19]
63*5113495bSYour Name                       prot_concurrent_wan_tx                                  :  1, // [18:18]
64*5113495bSYour Name                       prot_concurrent_wlan_tx                                 :  1, // [17:17]
65*5113495bSYour Name                       prot_concurrent_bt_tx                                   :  1, // [16:16]
66*5113495bSYour Name                       prot_coex_tx_pwr_ant                                    :  8, // [15:8]
67*5113495bSYour Name                       prot_coex_tx_pwr_shared_ant                             :  8; // [7:0]
68*5113495bSYour Name #endif
69*5113495bSYour Name };
70*5113495bSYour Name 
71*5113495bSYour Name 
72*5113495bSYour Name /* Description		PROT_TIMESTAMP_LOWER_32
73*5113495bSYour Name 
74*5113495bSYour Name 			Global timer value at start of Protection transmission
75*5113495bSYour Name */
76*5113495bSYour Name 
77*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_OFFSET                     0x0000000000000000
78*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_LSB                        0
79*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MSB                        31
80*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MASK                       0x00000000ffffffff
81*5113495bSYour Name 
82*5113495bSYour Name 
83*5113495bSYour Name /* Description		PROT_TIMESTAMP_UPPER_32
84*5113495bSYour Name 
85*5113495bSYour Name 			Global timer value at start of Protection transmission
86*5113495bSYour Name */
87*5113495bSYour Name 
88*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_OFFSET                     0x0000000000000000
89*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_LSB                        32
90*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MSB                        63
91*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MASK                       0xffffffff00000000
92*5113495bSYour Name 
93*5113495bSYour Name 
94*5113495bSYour Name /* Description		SUBBAND_MASK
95*5113495bSYour Name 
96*5113495bSYour Name 			This mask indicates which 20 Mhz channels are actively used
97*5113495bSYour Name 			 in the BW or puncture pattern selected for transmit.
98*5113495bSYour Name 
99*5113495bSYour Name 			Bit 0: primary 20 Mhz
100*5113495bSYour Name 			Bit 1: secondary 20 MHz
101*5113495bSYour Name 			Etc.
102*5113495bSYour Name 
103*5113495bSYour Name 			<legal all>
104*5113495bSYour Name */
105*5113495bSYour Name 
106*5113495bSYour Name #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_OFFSET                                0x0000000000000008
107*5113495bSYour Name #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_LSB                                   0
108*5113495bSYour Name #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MSB                                   15
109*5113495bSYour Name #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MASK                                  0x000000000000ffff
110*5113495bSYour Name 
111*5113495bSYour Name 
112*5113495bSYour Name /* Description		RESERVED_2B
113*5113495bSYour Name 
114*5113495bSYour Name 			<legal 0>
115*5113495bSYour Name */
116*5113495bSYour Name 
117*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_2B_OFFSET                                 0x0000000000000008
118*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_2B_LSB                                    16
119*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_2B_MSB                                    19
120*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_2B_MASK                                   0x00000000000f0000
121*5113495bSYour Name 
122*5113495bSYour Name 
123*5113495bSYour Name /* Description		PROT_COEX_BASED_TX_BW
124*5113495bSYour Name 
125*5113495bSYour Name 			Field valid for Protection frame transmission
126*5113495bSYour Name 
127*5113495bSYour Name 			This is the transmit bandwidth value
128*5113495bSYour Name 			that is granted by Coex.
129*5113495bSYour Name 
130*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
131*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
132*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
133*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
134*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
135*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
136*5113495bSYour Name */
137*5113495bSYour Name 
138*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_OFFSET                       0x0000000000000008
139*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_LSB                          20
140*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MSB                          22
141*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MASK                         0x0000000000700000
142*5113495bSYour Name 
143*5113495bSYour Name 
144*5113495bSYour Name /* Description		PROT_COEX_BASED_ANT_MASK
145*5113495bSYour Name 
146*5113495bSYour Name 			Field valid for Protection frame transmission
147*5113495bSYour Name 
148*5113495bSYour Name 			The antennas allowed to be used for this transmission.
149*5113495bSYour Name 			(Coex is allowed to reduce the number of antennas to be
150*5113495bSYour Name 			used, but not the number of SS)
151*5113495bSYour Name 			<legal all>
152*5113495bSYour Name */
153*5113495bSYour Name 
154*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_OFFSET                    0x0000000000000008
155*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_LSB                       23
156*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MSB                       30
157*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MASK                      0x000000007f800000
158*5113495bSYour Name 
159*5113495bSYour Name 
160*5113495bSYour Name /* Description		PROT_COEX_RESULT_ALT_BASED
161*5113495bSYour Name 
162*5113495bSYour Name 			Field valid for Protection frame transmission
163*5113495bSYour Name 
164*5113495bSYour Name 			When set, the resulting Coex transmit parameters are based
165*5113495bSYour Name 			 alternate transmit settings in the TX_RATE_SETTING STRUCT
166*5113495bSYour Name 			 of the original selected BW
167*5113495bSYour Name 
168*5113495bSYour Name 			When not set, the resulting Coex parameters are based on
169*5113495bSYour Name 			 the default transmit settings in the TX_RATE_SETTING STRUCT
170*5113495bSYour Name 
171*5113495bSYour Name 
172*5113495bSYour Name 			<legal all>
173*5113495bSYour Name */
174*5113495bSYour Name 
175*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_OFFSET                  0x0000000000000008
176*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_LSB                     31
177*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MSB                     31
178*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MASK                    0x0000000080000000
179*5113495bSYour Name 
180*5113495bSYour Name 
181*5113495bSYour Name /* Description		PROT_COEX_TX_PWR_SHARED_ANT
182*5113495bSYour Name 
183*5113495bSYour Name 			Field valid for Protection frame transmission
184*5113495bSYour Name 
185*5113495bSYour Name 			Transmit Power in s6.2 format.
186*5113495bSYour Name 			In units of 0.25 dBm
187*5113495bSYour Name 			<legal all>
188*5113495bSYour Name */
189*5113495bSYour Name 
190*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_OFFSET                 0x0000000000000008
191*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_LSB                    32
192*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MSB                    39
193*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MASK                   0x000000ff00000000
194*5113495bSYour Name 
195*5113495bSYour Name 
196*5113495bSYour Name /* Description		PROT_COEX_TX_PWR_ANT
197*5113495bSYour Name 
198*5113495bSYour Name 			Field valid for Protection frame transmission
199*5113495bSYour Name 
200*5113495bSYour Name 			Transmit Power in s6.2 format.
201*5113495bSYour Name 			In units of 0.25 dBm
202*5113495bSYour Name 			<legal all>
203*5113495bSYour Name */
204*5113495bSYour Name 
205*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_OFFSET                        0x0000000000000008
206*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_LSB                           40
207*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MSB                           47
208*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MASK                          0x0000ff0000000000
209*5113495bSYour Name 
210*5113495bSYour Name 
211*5113495bSYour Name /* Description		PROT_CONCURRENT_BT_TX
212*5113495bSYour Name 
213*5113495bSYour Name 			Field valid for Protection frame transmission
214*5113495bSYour Name 
215*5113495bSYour Name 			Indicate the current TX is concurrent with a BT transmission.
216*5113495bSYour Name 			This bit is to be copied over into the FES status info.
217*5113495bSYour Name 
218*5113495bSYour Name 			<legal all>
219*5113495bSYour Name */
220*5113495bSYour Name 
221*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_OFFSET                       0x0000000000000008
222*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_LSB                          48
223*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MSB                          48
224*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MASK                         0x0001000000000000
225*5113495bSYour Name 
226*5113495bSYour Name 
227*5113495bSYour Name /* Description		PROT_CONCURRENT_WLAN_TX
228*5113495bSYour Name 
229*5113495bSYour Name 			Field valid for Protection frame transmission
230*5113495bSYour Name 
231*5113495bSYour Name 			Indicate the current TX is concurrent with other WLAN transmission.
232*5113495bSYour Name 			This bit is to be copied over into FES status info. <legal
233*5113495bSYour Name 			 all>
234*5113495bSYour Name */
235*5113495bSYour Name 
236*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_OFFSET                     0x0000000000000008
237*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_LSB                        49
238*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MSB                        49
239*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MASK                       0x0002000000000000
240*5113495bSYour Name 
241*5113495bSYour Name 
242*5113495bSYour Name /* Description		PROT_CONCURRENT_WAN_TX
243*5113495bSYour Name 
244*5113495bSYour Name 			Field valid for Protection frame transmission
245*5113495bSYour Name 
246*5113495bSYour Name 			Indicate the current TX is concurrent with WAN transmission.
247*5113495bSYour Name 			This bit is to be copied over into FES status info.
248*5113495bSYour Name 			<legal all>
249*5113495bSYour Name */
250*5113495bSYour Name 
251*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_OFFSET                      0x0000000000000008
252*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_LSB                         50
253*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MSB                         50
254*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MASK                        0x0004000000000000
255*5113495bSYour Name 
256*5113495bSYour Name 
257*5113495bSYour Name /* Description		PROT_CONCURRENT_WAN_RX
258*5113495bSYour Name 
259*5113495bSYour Name 			Field valid for Protection frame transmission
260*5113495bSYour Name 
261*5113495bSYour Name 			Indicate the current TX is concurrent with WAN reception.
262*5113495bSYour Name 			This bit is to be copied over into FES status info.
263*5113495bSYour Name 			<legal all>
264*5113495bSYour Name */
265*5113495bSYour Name 
266*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_OFFSET                      0x0000000000000008
267*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_LSB                         51
268*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MSB                         51
269*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MASK                        0x0008000000000000
270*5113495bSYour Name 
271*5113495bSYour Name 
272*5113495bSYour Name /* Description		PROT_COEX_PWR_REDUCTION_BT
273*5113495bSYour Name 
274*5113495bSYour Name 			When set, transmit power for the protection frame is reduced
275*5113495bSYour Name 			 due to BT coex reason
276*5113495bSYour Name 			<legal all>
277*5113495bSYour Name */
278*5113495bSYour Name 
279*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_OFFSET                  0x0000000000000008
280*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_LSB                     52
281*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MSB                     52
282*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MASK                    0x0010000000000000
283*5113495bSYour Name 
284*5113495bSYour Name 
285*5113495bSYour Name /* Description		PROT_COEX_PWR_REDUCTION_WLAN
286*5113495bSYour Name 
287*5113495bSYour Name 			When set, transmit power  for the protection frame is reduced
288*5113495bSYour Name 			 due to wlan coex reason
289*5113495bSYour Name 			<legal all>
290*5113495bSYour Name */
291*5113495bSYour Name 
292*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_OFFSET                0x0000000000000008
293*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_LSB                   53
294*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MSB                   53
295*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MASK                  0x0020000000000000
296*5113495bSYour Name 
297*5113495bSYour Name 
298*5113495bSYour Name /* Description		PROT_COEX_PWR_REDUCTION_WAN
299*5113495bSYour Name 
300*5113495bSYour Name 			When set, transmit power for the protection frame is reduced
301*5113495bSYour Name 			 due to wan coex reason
302*5113495bSYour Name 			<legal all>
303*5113495bSYour Name */
304*5113495bSYour Name 
305*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_OFFSET                 0x0000000000000008
306*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_LSB                    54
307*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MSB                    54
308*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MASK                   0x0040000000000000
309*5113495bSYour Name 
310*5113495bSYour Name 
311*5113495bSYour Name /* Description		PROT_REQUEST_PACKET_BW
312*5113495bSYour Name 
313*5113495bSYour Name 			The requested transmit BW to PDG
314*5113495bSYour Name 			Note that Coex can have changed the actual allowed transmit
315*5113495bSYour Name 			 bandwidth.
316*5113495bSYour Name 
317*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
318*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
319*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
320*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
321*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
322*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
323*5113495bSYour Name */
324*5113495bSYour Name 
325*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_OFFSET                      0x0000000000000008
326*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_LSB                         55
327*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MSB                         57
328*5113495bSYour Name #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MASK                        0x0380000000000000
329*5113495bSYour Name 
330*5113495bSYour Name 
331*5113495bSYour Name /* Description		RESPONSE_TYPE
332*5113495bSYour Name 
333*5113495bSYour Name 			PPDU transmission Response type expected
334*5113495bSYour Name 
335*5113495bSYour Name 			<enum 0 no_response_expected>After transmission of this
336*5113495bSYour Name 			frame, no response in SIFS time is expected
337*5113495bSYour Name 
338*5113495bSYour Name 			When TXPCU sees this setting, it shall not generated the
339*5113495bSYour Name 			 EXPECTED_RESPONSE TLV.
340*5113495bSYour Name 
341*5113495bSYour Name 			RXPCU should never see this setting
342*5113495bSYour Name 			<enum 1 ack_expected>An ACK frame is expected as response
343*5113495bSYour Name 
344*5113495bSYour Name 
345*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
346*5113495bSYour Name 			 that the right response was received.
347*5113495bSYour Name 			<enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
348*5113495bSYour Name 
349*5113495bSYour Name 
350*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
351*5113495bSYour Name 			The length of the response will have to be programmed by
352*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
353*5113495bSYour Name 
354*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
355*5113495bSYour Name 			 received BA size is not important
356*5113495bSYour Name 
357*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
358*5113495bSYour Name 			 that the right response was received.
359*5113495bSYour Name 			<enum 3 ba_256_expected>BA with 256 bitmap is expected.
360*5113495bSYour Name 
361*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
362*5113495bSYour Name 			The length of the response will have to be programmed by
363*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
364*5113495bSYour Name 
365*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
366*5113495bSYour Name 			 received BA size is not important
367*5113495bSYour Name 
368*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
369*5113495bSYour Name 			 that the right response was received.
370*5113495bSYour Name 			<enum 4 actionnoack_expected>SW sets this after sending
371*5113495bSYour Name 			NDP or BR-Poll.
372*5113495bSYour Name 
373*5113495bSYour Name 			As PDG has no idea on how long the reception is going to
374*5113495bSYour Name 			 be, the reception time of the response will have to be
375*5113495bSYour Name 			programmed by SW in the 'Extend_duration_value_bw...' field
376*5113495bSYour Name 
377*5113495bSYour Name 
378*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
379*5113495bSYour Name 			 that the right response was received.
380*5113495bSYour Name 			<enum 5 ack_ba_expected>PDG uses the size info and assumes
381*5113495bSYour Name 			 single BA format with ACK and 64 bitmap embedded.
382*5113495bSYour Name 			If SW expects more bitmaps in case of multi-TID, is shall
383*5113495bSYour Name 			 program the 'Extend_duration_value_bw...' field for additional
384*5113495bSYour Name 			 duration time.
385*5113495bSYour Name 			For TXPCU only the fact that an ACK and/or BA is received
386*5113495bSYour Name 			 is important. Reception of only ACK or BA is also considered
387*5113495bSYour Name 			 a success.
388*5113495bSYour Name 			SW also typically sets this when sending VHT single MPDU.
389*5113495bSYour Name 			Some chip vendors might send BA rather than ACK in response
390*5113495bSYour Name 			 to VHT single MPDU but still we want to accept BA as well.
391*5113495bSYour Name 
392*5113495bSYour Name 
393*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
394*5113495bSYour Name 			 that the right response was received.
395*5113495bSYour Name 			<enum 6 cts_expected>SW sets this after queuing RTS frame
396*5113495bSYour Name 			 as standalone packet and sending it.
397*5113495bSYour Name 
398*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
399*5113495bSYour Name 			 that the right response was received.
400*5113495bSYour Name 			<enum 7 ack_data_expected>SW sets this after sending PS-Poll.
401*5113495bSYour Name 
402*5113495bSYour Name 
403*5113495bSYour Name 			For TXPCU either ACK and/or data reception is considered
404*5113495bSYour Name 			 success.
405*5113495bSYour Name 			PDG basis it's response duration calculation on an ACK.
406*5113495bSYour Name 			For the data portion, SW shall program the 'Extend_duration_value_bw...'
407*5113495bSYour Name 			field
408*5113495bSYour Name 			<enum 8 ndp_ack_expected>Reserved for 11ah usage.
409*5113495bSYour Name 			<enum 9 ndp_modified_ack>Reserved for 11ah usage
410*5113495bSYour Name 			<enum 10 ndp_ba_expected>Reserved for 11ah usage.
411*5113495bSYour Name 			<enum 11 ndp_cts_expected>Reserved for 11ah usage
412*5113495bSYour Name 			<enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
413*5113495bSYour Name 			 11ah usage
414*5113495bSYour Name 
415*5113495bSYour Name 			TXPCU expects UL MU OFDMA or UL MU MIMO reception.
416*5113495bSYour Name 			As PDG does not know how RUs are assigned for the uplink
417*5113495bSYour Name 			 portion, PDG can not calculate the uplink duration. Therefor
418*5113495bSYour Name 			 SW shall program the 'Extend_duration_value_bw...' field
419*5113495bSYour Name 
420*5113495bSYour Name 
421*5113495bSYour Name 			RXPCU will report any frame received, irrespective of it
422*5113495bSYour Name 			 having been UL MU or SU It is TXPCUs responsibility to
423*5113495bSYour Name 			distinguish between the UL MU or SU
424*5113495bSYour Name 
425*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
426*5113495bSYour Name 			 if indeed BA was received
427*5113495bSYour Name 
428*5113495bSYour Name 			TXPCU expects UL MU OFDMA or UL MU MIMO reception.
429*5113495bSYour Name 			As PDG does not know how RUs are assigned for the uplink
430*5113495bSYour Name 			 portion, PDG can not calculate the uplink duration. Therefor
431*5113495bSYour Name 			 SW shall program the 'Extend_duration_value_bw...' field
432*5113495bSYour Name 
433*5113495bSYour Name 
434*5113495bSYour Name 			RXPCU will report any frame received, irrespective of it
435*5113495bSYour Name 			 having been UL MU or SU It is TXPCUs responsibility to
436*5113495bSYour Name 			distinguish between the UL MU or SU
437*5113495bSYour Name 
438*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
439*5113495bSYour Name 			 and MU_Response_BA_bitmap if indeed BA and data was received
440*5113495bSYour Name 
441*5113495bSYour Name 			When selected, CBF frames are expected to be received in
442*5113495bSYour Name 			 MU reception (uplink OFDMA or uplink MIMO)
443*5113495bSYour Name 
444*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
445*5113495bSYour Name 			 that the right response was received
446*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
447*5113495bSYour Name 			 if indeed CBF frames were received.
448*5113495bSYour Name 			<enum 16 ul_mu_frames_expected>When selected, MPDU frames
449*5113495bSYour Name 			 are expected in the MU reception (uplink OFDMA or uplink
450*5113495bSYour Name 			 MIMO)
451*5113495bSYour Name 
452*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
453*5113495bSYour Name 			 that the right response was received
454*5113495bSYour Name 
455*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
456*5113495bSYour Name 			 if indeed frames were received.
457*5113495bSYour Name 			<enum 17 any_response_to_this_device>Any response expected
458*5113495bSYour Name 			 to be send to this device in SIFS time is acceptable.
459*5113495bSYour Name 
460*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
461*5113495bSYour Name 			 that the right response was received
462*5113495bSYour Name 
463*5113495bSYour Name 			For TXPCU, UL MU or SU is both acceptable.
464*5113495bSYour Name 
465*5113495bSYour Name 			Can be used for complex OFDMA scenarios. PDG can not calculate
466*5113495bSYour Name 			 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
467*5113495bSYour Name 			field
468*5113495bSYour Name 			<enum 18 any_response_accepted>Any frame in the medium to
469*5113495bSYour Name 			 this or any other device, is acceptable as response.
470*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
471*5113495bSYour Name 			 that the right response was received
472*5113495bSYour Name 
473*5113495bSYour Name 			For TXPCU, UL MU or SU is both acceptable.
474*5113495bSYour Name 
475*5113495bSYour Name 			Can be used for complex OFDMA scenarios. PDG can not calculate
476*5113495bSYour Name 			 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
477*5113495bSYour Name 			field
478*5113495bSYour Name 			<enum 19 frameless_phyrx_response_accepted>Any MU frameless
479*5113495bSYour Name 			 reception generated by the PHY is acceptable.
480*5113495bSYour Name 
481*5113495bSYour Name 			PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
482*5113495bSYour Name 			field Reception_type == reception_is_frameless
483*5113495bSYour Name 
484*5113495bSYour Name 			RXPCU will report any frame received, irrespective of it
485*5113495bSYour Name 			 having been UL MU or SU.
486*5113495bSYour Name 
487*5113495bSYour Name 			This can be used for complex MU-MIMO or OFDMA scenarios,
488*5113495bSYour Name 			like receiving MU-CTS.
489*5113495bSYour Name 
490*5113495bSYour Name 			PDG can not calculate the uplink duration. Therefor SW shall
491*5113495bSYour Name 			 program the 'Extend_duration_value_bw...' field
492*5113495bSYour Name 			<enum 20 ranging_ndp_and_lmr_expected>SW sets this after
493*5113495bSYour Name 			 sending ranging NDPA followed by NDP as an ISTA and NDP
494*5113495bSYour Name 			 and LMR (Action No Ack) are expected as back-to-back reception
495*5113495bSYour Name 			 in SIFS.
496*5113495bSYour Name 
497*5113495bSYour Name 			As PDG has no idea on how long the reception is going to
498*5113495bSYour Name 			 be, the reception time of the response will have to be
499*5113495bSYour Name 			programmed by SW in the 'Extend_duration_value_bw...' field
500*5113495bSYour Name 
501*5113495bSYour Name 
502*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
503*5113495bSYour Name 			 that the right response was received.
504*5113495bSYour Name 			<enum 21 ba_512_expected>BA with 512 bitmap is expected.
505*5113495bSYour Name 
506*5113495bSYour Name 
507*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
508*5113495bSYour Name 			The length of the response will have to be programmed by
509*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
510*5113495bSYour Name 
511*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
512*5113495bSYour Name 			 received BA size is not important
513*5113495bSYour Name 
514*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
515*5113495bSYour Name 			 that the right response was received.
516*5113495bSYour Name 			<enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
517*5113495bSYour Name 
518*5113495bSYour Name 
519*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
520*5113495bSYour Name 			The length of the response will have to be programmed by
521*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
522*5113495bSYour Name 
523*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
524*5113495bSYour Name 			 received BA size is not important
525*5113495bSYour Name 
526*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
527*5113495bSYour Name 			 that the right response was received.
528*5113495bSYour Name 			<enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
529*5113495bSYour Name 			 frames are expected to be received in MU reception (uplink
530*5113495bSYour Name 			 OFDMA)
531*5113495bSYour Name 
532*5113495bSYour Name 			RXPCU shall check each response for CTS2S and report to
533*5113495bSYour Name 			TXPCU.
534*5113495bSYour Name 
535*5113495bSYour Name 			TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
536*5113495bSYour Name 			 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
537*5113495bSYour Name 			 frames were received.
538*5113495bSYour Name 			<enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
539*5113495bSYour Name 			 frames are expected to be received in MU reception (uplink
540*5113495bSYour Name 			 spatial multiplexing)
541*5113495bSYour Name 
542*5113495bSYour Name 			RXPCU shall check each response for NDP and report to TXPCU.
543*5113495bSYour Name 
544*5113495bSYour Name 
545*5113495bSYour Name 			TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
546*5113495bSYour Name 			 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
547*5113495bSYour Name 			 frames were received.
548*5113495bSYour Name 			<enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
549*5113495bSYour Name 			 are expected to be received in MU reception (uplink OFDMA
550*5113495bSYour Name 			 or uplink MIMO)
551*5113495bSYour Name 
552*5113495bSYour Name 			RXPCU shall check each response for LMR and report to TXPCU.
553*5113495bSYour Name 
554*5113495bSYour Name 
555*5113495bSYour Name 			TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
556*5113495bSYour Name 			 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
557*5113495bSYour Name 			 frames were received.
558*5113495bSYour Name */
559*5113495bSYour Name 
560*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_OFFSET                               0x0000000000000008
561*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_LSB                                  58
562*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MSB                                  62
563*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MASK                                 0x7c00000000000000
564*5113495bSYour Name 
565*5113495bSYour Name 
566*5113495bSYour Name /* Description		RESERVED_3A
567*5113495bSYour Name 
568*5113495bSYour Name */
569*5113495bSYour Name 
570*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_3A_OFFSET                                 0x0000000000000008
571*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_3A_LSB                                    63
572*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_3A_MSB                                    63
573*5113495bSYour Name #define TX_FES_STATUS_START_PROT_RESERVED_3A_MASK                                   0x8000000000000000
574*5113495bSYour Name 
575*5113495bSYour Name 
576*5113495bSYour Name 
577*5113495bSYour Name #endif   // TX_FES_STATUS_START_PROT
578