xref: /wlan-driver/fw-api/hw/qca5332/tx_fes_status_start_ppdu.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /* Copyright (c) 2022, 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 
18*5113495bSYour Name 
19*5113495bSYour Name 
20*5113495bSYour Name 
21*5113495bSYour Name 
22*5113495bSYour Name 
23*5113495bSYour Name 
24*5113495bSYour Name 
25*5113495bSYour Name 
26*5113495bSYour Name #ifndef _TX_FES_STATUS_START_PPDU_H_
27*5113495bSYour Name #define _TX_FES_STATUS_START_PPDU_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #define NUM_OF_DWORDS_TX_FES_STATUS_START_PPDU 4
32*5113495bSYour Name 
33*5113495bSYour Name #define NUM_OF_QWORDS_TX_FES_STATUS_START_PPDU 2
34*5113495bSYour Name 
35*5113495bSYour Name 
36*5113495bSYour Name struct tx_fes_status_start_ppdu {
37*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
38*5113495bSYour Name              uint32_t ppdu_timestamp_lower_32                                 : 32; // [31:0]
39*5113495bSYour Name              uint32_t ppdu_timestamp_upper_32                                 : 32; // [31:0]
40*5113495bSYour Name              uint32_t subband_mask                                            : 16, // [15:0]
41*5113495bSYour Name                       ndp_frame                                               :  2, // [17:16]
42*5113495bSYour Name                       reserved_2b                                             :  2, // [19:18]
43*5113495bSYour Name                       coex_based_tx_bw                                        :  3, // [22:20]
44*5113495bSYour Name                       coex_based_ant_mask                                     :  8, // [30:23]
45*5113495bSYour Name                       reserved_2c                                             :  1; // [31:31]
46*5113495bSYour Name              uint32_t coex_based_tx_pwr_shared_ant                            :  8, // [7:0]
47*5113495bSYour Name                       coex_based_tx_pwr_ant                                   :  8, // [15:8]
48*5113495bSYour Name                       concurrent_bt_tx                                        :  1, // [16:16]
49*5113495bSYour Name                       concurrent_wlan_tx                                      :  1, // [17:17]
50*5113495bSYour Name                       concurrent_wan_tx                                       :  1, // [18:18]
51*5113495bSYour Name                       concurrent_wan_rx                                       :  1, // [19:19]
52*5113495bSYour Name                       coex_pwr_reduction_bt                                   :  1, // [20:20]
53*5113495bSYour Name                       coex_pwr_reduction_wlan                                 :  1, // [21:21]
54*5113495bSYour Name                       coex_pwr_reduction_wan                                  :  1, // [22:22]
55*5113495bSYour Name                       coex_result_alt_based                                   :  1, // [23:23]
56*5113495bSYour Name                       request_packet_bw                                       :  3, // [26:24]
57*5113495bSYour Name                       response_type                                           :  5; // [31:27]
58*5113495bSYour Name #else
59*5113495bSYour Name              uint32_t ppdu_timestamp_lower_32                                 : 32; // [31:0]
60*5113495bSYour Name              uint32_t ppdu_timestamp_upper_32                                 : 32; // [31:0]
61*5113495bSYour Name              uint32_t reserved_2c                                             :  1, // [31:31]
62*5113495bSYour Name                       coex_based_ant_mask                                     :  8, // [30:23]
63*5113495bSYour Name                       coex_based_tx_bw                                        :  3, // [22:20]
64*5113495bSYour Name                       reserved_2b                                             :  2, // [19:18]
65*5113495bSYour Name                       ndp_frame                                               :  2, // [17:16]
66*5113495bSYour Name                       subband_mask                                            : 16; // [15:0]
67*5113495bSYour Name              uint32_t response_type                                           :  5, // [31:27]
68*5113495bSYour Name                       request_packet_bw                                       :  3, // [26:24]
69*5113495bSYour Name                       coex_result_alt_based                                   :  1, // [23:23]
70*5113495bSYour Name                       coex_pwr_reduction_wan                                  :  1, // [22:22]
71*5113495bSYour Name                       coex_pwr_reduction_wlan                                 :  1, // [21:21]
72*5113495bSYour Name                       coex_pwr_reduction_bt                                   :  1, // [20:20]
73*5113495bSYour Name                       concurrent_wan_rx                                       :  1, // [19:19]
74*5113495bSYour Name                       concurrent_wan_tx                                       :  1, // [18:18]
75*5113495bSYour Name                       concurrent_wlan_tx                                      :  1, // [17:17]
76*5113495bSYour Name                       concurrent_bt_tx                                        :  1, // [16:16]
77*5113495bSYour Name                       coex_based_tx_pwr_ant                                   :  8, // [15:8]
78*5113495bSYour Name                       coex_based_tx_pwr_shared_ant                            :  8; // [7:0]
79*5113495bSYour Name #endif
80*5113495bSYour Name };
81*5113495bSYour Name 
82*5113495bSYour Name 
83*5113495bSYour Name /* Description		PPDU_TIMESTAMP_LOWER_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_PPDU_PPDU_TIMESTAMP_LOWER_32_OFFSET                     0x0000000000000000
89*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_LSB                        0
90*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MSB                        31
91*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MASK                       0x00000000ffffffff
92*5113495bSYour Name 
93*5113495bSYour Name 
94*5113495bSYour Name /* Description		PPDU_TIMESTAMP_UPPER_32
95*5113495bSYour Name 
96*5113495bSYour Name 			Global timer value at start of Protection transmission
97*5113495bSYour Name */
98*5113495bSYour Name 
99*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_OFFSET                     0x0000000000000000
100*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_LSB                        32
101*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MSB                        63
102*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MASK                       0xffffffff00000000
103*5113495bSYour Name 
104*5113495bSYour Name 
105*5113495bSYour Name /* Description		SUBBAND_MASK
106*5113495bSYour Name 
107*5113495bSYour Name 			This mask indicates which 20 Mhz channels are actively used
108*5113495bSYour Name 			 in the BW or puncture pattern selected for transmit.
109*5113495bSYour Name 
110*5113495bSYour Name 			Bit 0: primary 20 Mhz
111*5113495bSYour Name 			Bit 1: secondary 20 MHz
112*5113495bSYour Name 			Etc.
113*5113495bSYour Name 
114*5113495bSYour Name 			Hamilton v1 used bits [8:4] for the 'Response_type' expected
115*5113495bSYour Name 			 and bits [10:9] for the 'ndp_frame' field from 'TX_FES_SETUP.'
116*5113495bSYour Name 
117*5113495bSYour Name 			<legal all>
118*5113495bSYour Name */
119*5113495bSYour Name 
120*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_OFFSET                                0x0000000000000008
121*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_LSB                                   0
122*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MSB                                   15
123*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MASK                                  0x000000000000ffff
124*5113495bSYour Name 
125*5113495bSYour Name 
126*5113495bSYour Name /* Description		NDP_FRAME
127*5113495bSYour Name 
128*5113495bSYour Name 			Bit copied from the TX_FES_SETUP TLV
129*5113495bSYour Name 
130*5113495bSYour Name 			<enum 0 no_ndp>No NDP transmission
131*5113495bSYour Name 			<enum 1 beamforming_ndp>Beamforming NDP
132*5113495bSYour Name 			<enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
133*5113495bSYour Name 			<enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
134*5113495bSYour Name */
135*5113495bSYour Name 
136*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_NDP_FRAME_OFFSET                                   0x0000000000000008
137*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_NDP_FRAME_LSB                                      16
138*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MSB                                      17
139*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MASK                                     0x0000000000030000
140*5113495bSYour Name 
141*5113495bSYour Name 
142*5113495bSYour Name /* Description		RESERVED_2B
143*5113495bSYour Name 
144*5113495bSYour Name 			<legal 0>
145*5113495bSYour Name */
146*5113495bSYour Name 
147*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2B_OFFSET                                 0x0000000000000008
148*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2B_LSB                                    18
149*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MSB                                    19
150*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MASK                                   0x00000000000c0000
151*5113495bSYour Name 
152*5113495bSYour Name 
153*5113495bSYour Name /* Description		COEX_BASED_TX_BW
154*5113495bSYour Name 
155*5113495bSYour Name 			Field valid for regular PPDU frame transmission
156*5113495bSYour Name 
157*5113495bSYour Name 			This is the transmit bandwidth value
158*5113495bSYour Name 			that is granted by Coex.
159*5113495bSYour Name 
160*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
161*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
162*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
163*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
164*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
165*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
166*5113495bSYour Name */
167*5113495bSYour Name 
168*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_OFFSET                            0x0000000000000008
169*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_LSB                               20
170*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MSB                               22
171*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MASK                              0x0000000000700000
172*5113495bSYour Name 
173*5113495bSYour Name 
174*5113495bSYour Name /* Description		COEX_BASED_ANT_MASK
175*5113495bSYour Name 
176*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
177*5113495bSYour Name 
178*5113495bSYour Name 
179*5113495bSYour Name 			The antennas allowed to be used for this transmission.
180*5113495bSYour Name 			(Coex is allowed to reduce the number of antennas to be
181*5113495bSYour Name 			used, but not the number of SS)
182*5113495bSYour Name 			<legal all>
183*5113495bSYour Name */
184*5113495bSYour Name 
185*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_OFFSET                         0x0000000000000008
186*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_LSB                            23
187*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MSB                            30
188*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MASK                           0x000000007f800000
189*5113495bSYour Name 
190*5113495bSYour Name 
191*5113495bSYour Name /* Description		RESERVED_2C
192*5113495bSYour Name 
193*5113495bSYour Name 			<legal 0>
194*5113495bSYour Name */
195*5113495bSYour Name 
196*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2C_OFFSET                                 0x0000000000000008
197*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2C_LSB                                    31
198*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MSB                                    31
199*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MASK                                   0x0000000080000000
200*5113495bSYour Name 
201*5113495bSYour Name 
202*5113495bSYour Name /* Description		COEX_BASED_TX_PWR_SHARED_ANT
203*5113495bSYour Name 
204*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
205*5113495bSYour Name 
206*5113495bSYour Name 
207*5113495bSYour Name 			Granted tx power for the shared antenna.
208*5113495bSYour Name 
209*5113495bSYour Name 			Transmit Power in s6.2 format.
210*5113495bSYour Name 			In units of 0.25 dBm
211*5113495bSYour Name 			<legal all>
212*5113495bSYour Name */
213*5113495bSYour Name 
214*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_OFFSET                0x0000000000000008
215*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_LSB                   32
216*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MSB                   39
217*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MASK                  0x000000ff00000000
218*5113495bSYour Name 
219*5113495bSYour Name 
220*5113495bSYour Name /* Description		COEX_BASED_TX_PWR_ANT
221*5113495bSYour Name 
222*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
223*5113495bSYour Name 
224*5113495bSYour Name 
225*5113495bSYour Name 			Granted tx power for the unshared antenna
226*5113495bSYour Name 			Transmit Power in s6.2 format.
227*5113495bSYour Name 			In units of 0.25 dBm
228*5113495bSYour Name 			<legal all>
229*5113495bSYour Name */
230*5113495bSYour Name 
231*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_OFFSET                       0x0000000000000008
232*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_LSB                          40
233*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MSB                          47
234*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MASK                         0x0000ff0000000000
235*5113495bSYour Name 
236*5113495bSYour Name 
237*5113495bSYour Name /* Description		CONCURRENT_BT_TX
238*5113495bSYour Name 
239*5113495bSYour Name 			Indicate the current TX is concurrent with a BT transmission.
240*5113495bSYour Name 			This bit is to be copied over into the FES status info.
241*5113495bSYour Name 
242*5113495bSYour Name 			<legal all>
243*5113495bSYour Name */
244*5113495bSYour Name 
245*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_OFFSET                            0x0000000000000008
246*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_LSB                               48
247*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MSB                               48
248*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MASK                              0x0001000000000000
249*5113495bSYour Name 
250*5113495bSYour Name 
251*5113495bSYour Name /* Description		CONCURRENT_WLAN_TX
252*5113495bSYour Name 
253*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
254*5113495bSYour Name 
255*5113495bSYour Name 
256*5113495bSYour Name 			Indicate the current TX is concurrent with other WLAN transmission.
257*5113495bSYour Name 			This bit is to be copied over into FES status info.
258*5113495bSYour Name 			<legal all>
259*5113495bSYour Name */
260*5113495bSYour Name 
261*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_OFFSET                          0x0000000000000008
262*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_LSB                             49
263*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MSB                             49
264*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MASK                            0x0002000000000000
265*5113495bSYour Name 
266*5113495bSYour Name 
267*5113495bSYour Name /* Description		CONCURRENT_WAN_TX
268*5113495bSYour Name 
269*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
270*5113495bSYour Name 
271*5113495bSYour Name 
272*5113495bSYour Name 			Indicate the current TX is concurrent with WAN transmission.
273*5113495bSYour Name 			This bit is to be copied over into FES status info.
274*5113495bSYour Name 			<legal all>
275*5113495bSYour Name */
276*5113495bSYour Name 
277*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_OFFSET                           0x0000000000000008
278*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_LSB                              50
279*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MSB                              50
280*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MASK                             0x0004000000000000
281*5113495bSYour Name 
282*5113495bSYour Name 
283*5113495bSYour Name /* Description		CONCURRENT_WAN_RX
284*5113495bSYour Name 
285*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
286*5113495bSYour Name 
287*5113495bSYour Name 
288*5113495bSYour Name 			Indicate the current TX is concurrent with WAN reception.
289*5113495bSYour Name 			This bit is to be copied over into FES status info.
290*5113495bSYour Name 			<legal all>
291*5113495bSYour Name */
292*5113495bSYour Name 
293*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_OFFSET                           0x0000000000000008
294*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_LSB                              51
295*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MSB                              51
296*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MASK                             0x0008000000000000
297*5113495bSYour Name 
298*5113495bSYour Name 
299*5113495bSYour Name /* Description		COEX_PWR_REDUCTION_BT
300*5113495bSYour Name 
301*5113495bSYour Name 			Field valid for regular or response frame transmission.
302*5113495bSYour Name 			When set, transmit power is reduced due to BT coex reason
303*5113495bSYour Name 
304*5113495bSYour Name 			<legal all>
305*5113495bSYour Name */
306*5113495bSYour Name 
307*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_OFFSET                       0x0000000000000008
308*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_LSB                          52
309*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MSB                          52
310*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MASK                         0x0010000000000000
311*5113495bSYour Name 
312*5113495bSYour Name 
313*5113495bSYour Name /* Description		COEX_PWR_REDUCTION_WLAN
314*5113495bSYour Name 
315*5113495bSYour Name 			Field valid for regular or response frame transmission.
316*5113495bSYour Name 			When set, transmit power is reduced due to wlan coex reason
317*5113495bSYour Name 
318*5113495bSYour Name 			<legal all>
319*5113495bSYour Name */
320*5113495bSYour Name 
321*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_OFFSET                     0x0000000000000008
322*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_LSB                        53
323*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MSB                        53
324*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MASK                       0x0020000000000000
325*5113495bSYour Name 
326*5113495bSYour Name 
327*5113495bSYour Name /* Description		COEX_PWR_REDUCTION_WAN
328*5113495bSYour Name 
329*5113495bSYour Name 			Field valid for regular or response frame transmission.
330*5113495bSYour Name 			When set, transmit power is reduced due to wan coex reason
331*5113495bSYour Name 
332*5113495bSYour Name 			<legal all>
333*5113495bSYour Name */
334*5113495bSYour Name 
335*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_OFFSET                      0x0000000000000008
336*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_LSB                         54
337*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MSB                         54
338*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MASK                        0x0040000000000000
339*5113495bSYour Name 
340*5113495bSYour Name 
341*5113495bSYour Name /* Description		COEX_RESULT_ALT_BASED
342*5113495bSYour Name 
343*5113495bSYour Name 			Field valid for regular PPDU or Response frame transmission
344*5113495bSYour Name 
345*5113495bSYour Name 
346*5113495bSYour Name 			When set, the resulting Coex transmit parameters are based
347*5113495bSYour Name 			 alternate transmit settings in the TX_RATE_SETTING STRUCT
348*5113495bSYour Name 			 of the original selected BW
349*5113495bSYour Name 
350*5113495bSYour Name 			When not set, the resulting Coex parameters are based on
351*5113495bSYour Name 			 the default transmit settings in the TX_RATE_SETTING STRUCT
352*5113495bSYour Name 
353*5113495bSYour Name 
354*5113495bSYour Name 			<legal all>
355*5113495bSYour Name */
356*5113495bSYour Name 
357*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_OFFSET                       0x0000000000000008
358*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_LSB                          55
359*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MSB                          55
360*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MASK                         0x0080000000000000
361*5113495bSYour Name 
362*5113495bSYour Name 
363*5113495bSYour Name /* Description		REQUEST_PACKET_BW
364*5113495bSYour Name 
365*5113495bSYour Name 			The requested transmit BW to PDG
366*5113495bSYour Name 			Note that Coex can have changed the actual allowed transmit
367*5113495bSYour Name 			 bandwidth.
368*5113495bSYour Name 
369*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
370*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
371*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
372*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
373*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
374*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
375*5113495bSYour Name */
376*5113495bSYour Name 
377*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_OFFSET                           0x0000000000000008
378*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_LSB                              56
379*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MSB                              58
380*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MASK                             0x0700000000000000
381*5113495bSYour Name 
382*5113495bSYour Name 
383*5113495bSYour Name /* Description		RESPONSE_TYPE
384*5113495bSYour Name 
385*5113495bSYour Name 			PPDU transmission Response type expected
386*5113495bSYour Name 
387*5113495bSYour Name 			<enum 0 no_response_expected>After transmission of this
388*5113495bSYour Name 			frame, no response in SIFS time is expected
389*5113495bSYour Name 
390*5113495bSYour Name 			When TXPCU sees this setting, it shall not generated the
391*5113495bSYour Name 			 EXPECTED_RESPONSE TLV.
392*5113495bSYour Name 
393*5113495bSYour Name 			RXPCU should never see this setting
394*5113495bSYour Name 			<enum 1 ack_expected>An ACK frame is expected as response
395*5113495bSYour Name 
396*5113495bSYour Name 
397*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
398*5113495bSYour Name 			 that the right response was received.
399*5113495bSYour Name 			<enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
400*5113495bSYour Name 
401*5113495bSYour Name 
402*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
403*5113495bSYour Name 			The length of the response will have to be programmed by
404*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
405*5113495bSYour Name 
406*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
407*5113495bSYour Name 			 received BA size is not important
408*5113495bSYour Name 
409*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
410*5113495bSYour Name 			 that the right response was received.
411*5113495bSYour Name 			<enum 3 ba_256_expected>BA with 256 bitmap is expected.
412*5113495bSYour Name 
413*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
414*5113495bSYour Name 			The length of the response will have to be programmed by
415*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
416*5113495bSYour Name 
417*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
418*5113495bSYour Name 			 received BA size is not important
419*5113495bSYour Name 
420*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
421*5113495bSYour Name 			 that the right response was received.
422*5113495bSYour Name 			<enum 4 actionnoack_expected>SW sets this after sending
423*5113495bSYour Name 			NDP or BR-Poll.
424*5113495bSYour Name 
425*5113495bSYour Name 			As PDG has no idea on how long the reception is going to
426*5113495bSYour Name 			 be, the reception time of the response will have to be
427*5113495bSYour Name 			programmed by SW in the 'Extend_duration_value_bw...' field
428*5113495bSYour Name 
429*5113495bSYour Name 
430*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
431*5113495bSYour Name 			 that the right response was received.
432*5113495bSYour Name 			<enum 5 ack_ba_expected>PDG uses the size info and assumes
433*5113495bSYour Name 			 single BA format with ACK and 64 bitmap embedded.
434*5113495bSYour Name 			If SW expects more bitmaps in case of multi-TID, is shall
435*5113495bSYour Name 			 program the 'Extend_duration_value_bw...' field for additional
436*5113495bSYour Name 			 duration time.
437*5113495bSYour Name 			For TXPCU only the fact that an ACK and/or BA is received
438*5113495bSYour Name 			 is important. Reception of only ACK or BA is also considered
439*5113495bSYour Name 			 a success.
440*5113495bSYour Name 			SW also typically sets this when sending VHT single MPDU.
441*5113495bSYour Name 			Some chip vendors might send BA rather than ACK in response
442*5113495bSYour Name 			 to VHT single MPDU but still we want to accept BA as well.
443*5113495bSYour Name 
444*5113495bSYour Name 
445*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
446*5113495bSYour Name 			 that the right response was received.
447*5113495bSYour Name 			<enum 6 cts_expected>SW sets this after queuing RTS frame
448*5113495bSYour Name 			 as standalone packet and sending it.
449*5113495bSYour Name 
450*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
451*5113495bSYour Name 			 that the right response was received.
452*5113495bSYour Name 			<enum 7 ack_data_expected>SW sets this after sending PS-Poll.
453*5113495bSYour Name 
454*5113495bSYour Name 
455*5113495bSYour Name 			For TXPCU either ACK and/or data reception is considered
456*5113495bSYour Name 			 success.
457*5113495bSYour Name 			PDG basis it's response duration calculation on an ACK.
458*5113495bSYour Name 			For the data portion, SW shall program the 'Extend_duration_value_bw...'
459*5113495bSYour Name 			field
460*5113495bSYour Name 			<enum 8 ndp_ack_expected>Reserved for 11ah usage.
461*5113495bSYour Name 			<enum 9 ndp_modified_ack>Reserved for 11ah usage
462*5113495bSYour Name 			<enum 10 ndp_ba_expected>Reserved for 11ah usage.
463*5113495bSYour Name 			<enum 11 ndp_cts_expected>Reserved for 11ah usage
464*5113495bSYour Name 			<enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
465*5113495bSYour Name 			 11ah usage
466*5113495bSYour Name 			<enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND
467*5113495bSYour Name 			 HASTINGS
468*5113495bSYour Name 
469*5113495bSYour Name 			TXPCU expects UL MU OFDMA or UL MU MIMO reception.
470*5113495bSYour Name 			As PDG does not know how RUs are assigned for the uplink
471*5113495bSYour Name 			 portion, PDG can not calculate the uplink duration. Therefor
472*5113495bSYour Name 			 SW shall program the 'Extend_duration_value_bw...' field
473*5113495bSYour Name 
474*5113495bSYour Name 
475*5113495bSYour Name 			RXPCU will report any frame received, irrespective of it
476*5113495bSYour Name 			 having been UL MU or SU It is TXPCUs responsibility to
477*5113495bSYour Name 			distinguish between the UL MU or SU
478*5113495bSYour Name 
479*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
480*5113495bSYour Name 			 if indeed BA was received
481*5113495bSYour Name 			<enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER
482*5113495bSYour Name 			 AX AND HASTINGS
483*5113495bSYour Name 
484*5113495bSYour Name 			TXPCU expects UL MU OFDMA or UL MU MIMO reception.
485*5113495bSYour Name 			As PDG does not know how RUs are assigned for the uplink
486*5113495bSYour Name 			 portion, PDG can not calculate the uplink duration. Therefor
487*5113495bSYour Name 			 SW shall program the 'Extend_duration_value_bw...' field
488*5113495bSYour Name 
489*5113495bSYour Name 
490*5113495bSYour Name 			RXPCU will report any frame received, irrespective of it
491*5113495bSYour Name 			 having been UL MU or SU It is TXPCUs responsibility to
492*5113495bSYour Name 			distinguish between the UL MU or SU
493*5113495bSYour Name 
494*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
495*5113495bSYour Name 			 and MU_Response_BA_bitmap if indeed BA and data was received
496*5113495bSYour Name 
497*5113495bSYour Name 			<enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND
498*5113495bSYour Name 			 HASTINGS
499*5113495bSYour Name 
500*5113495bSYour Name 			When selected, CBF frames are expected to be received in
501*5113495bSYour Name 			 MU reception (uplink OFDMA or uplink MIMO)
502*5113495bSYour Name 
503*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
504*5113495bSYour Name 			 that the right response was received
505*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
506*5113495bSYour Name 			 if indeed CBF frames were received.
507*5113495bSYour Name 			<enum 16 ul_mu_frames_expected>When selected, MPDU frames
508*5113495bSYour Name 			 are expected in the MU reception (uplink OFDMA or uplink
509*5113495bSYour Name 			 MIMO)
510*5113495bSYour Name 
511*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
512*5113495bSYour Name 			 that the right response was received
513*5113495bSYour Name 
514*5113495bSYour Name 			TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
515*5113495bSYour Name 			 if indeed frames were received.
516*5113495bSYour Name 			<enum 17 any_response_to_this_device>Any response expected
517*5113495bSYour Name 			 to be send to this device in SIFS time is acceptable.
518*5113495bSYour Name 
519*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
520*5113495bSYour Name 			 that the right response was received
521*5113495bSYour Name 
522*5113495bSYour Name 			For TXPCU, UL MU or SU is both acceptable.
523*5113495bSYour Name 
524*5113495bSYour Name 			Can be used for complex OFDMA scenarios. PDG can not calculate
525*5113495bSYour Name 			 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
526*5113495bSYour Name 			field
527*5113495bSYour Name 			<enum 18 any_response_accepted>Any frame in the medium to
528*5113495bSYour Name 			 this or any other device, is acceptable as response.
529*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
530*5113495bSYour Name 			 that the right response was received
531*5113495bSYour Name 
532*5113495bSYour Name 			For TXPCU, UL MU or SU is both acceptable.
533*5113495bSYour Name 
534*5113495bSYour Name 			Can be used for complex OFDMA scenarios. PDG can not calculate
535*5113495bSYour Name 			 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
536*5113495bSYour Name 			field
537*5113495bSYour Name 			<enum 19 frameless_phyrx_response_accepted>Any MU frameless
538*5113495bSYour Name 			 reception generated by the PHY is acceptable.
539*5113495bSYour Name 
540*5113495bSYour Name 			PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
541*5113495bSYour Name 			field Reception_type == reception_is_frameless
542*5113495bSYour Name 
543*5113495bSYour Name 			RXPCU will report any frame received, irrespective of it
544*5113495bSYour Name 			 having been UL MU or SU.
545*5113495bSYour Name 
546*5113495bSYour Name 			This can be used for complex MU-MIMO or OFDMA scenarios,
547*5113495bSYour Name 			like receiving MU-CTS.
548*5113495bSYour Name 
549*5113495bSYour Name 			PDG can not calculate the uplink duration. Therefor SW shall
550*5113495bSYour Name 			 program the 'Extend_duration_value_bw...' field
551*5113495bSYour Name 			<enum 20 ranging_ndp_and_lmr_expected>SW sets this after
552*5113495bSYour Name 			 sending ranging NDPA followed by NDP as an ISTA and NDP
553*5113495bSYour Name 			 and LMR (Action No Ack) are expected as back-to-back reception
554*5113495bSYour Name 			 in SIFS.
555*5113495bSYour Name 
556*5113495bSYour Name 			As PDG has no idea on how long the reception is going to
557*5113495bSYour Name 			 be, the reception time of the response will have to be
558*5113495bSYour Name 			programmed by SW in the 'Extend_duration_value_bw...' field
559*5113495bSYour Name 
560*5113495bSYour Name 
561*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
562*5113495bSYour Name 			 that the right response was received.
563*5113495bSYour Name 			<enum 21 ba_512_expected>BA with 512 bitmap is expected.
564*5113495bSYour Name 
565*5113495bSYour Name 
566*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
567*5113495bSYour Name 			The length of the response will have to be programmed by
568*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
569*5113495bSYour Name 
570*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
571*5113495bSYour Name 			 received BA size is not important
572*5113495bSYour Name 
573*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
574*5113495bSYour Name 			 that the right response was received.
575*5113495bSYour Name 			<enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
576*5113495bSYour Name 
577*5113495bSYour Name 
578*5113495bSYour Name 			PDG DOES NOT use the size info to calculated response duration.
579*5113495bSYour Name 			The length of the response will have to be programmed by
580*5113495bSYour Name 			 SW in the per-BW 'Expected_ppdu_resp_length' field.
581*5113495bSYour Name 
582*5113495bSYour Name 			For TXPCU only the fact that it is a BA is important. Actual
583*5113495bSYour Name 			 received BA size is not important
584*5113495bSYour Name 
585*5113495bSYour Name 			RXPCU is just expecting any response. It is TXPCU who checks
586*5113495bSYour Name 			 that the right response was received.
587*5113495bSYour Name 			<enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
588*5113495bSYour Name 			 frames are expected to be received in MU reception (uplink
589*5113495bSYour Name 			 OFDMA)
590*5113495bSYour Name 
591*5113495bSYour Name 			RXPCU shall check each response for CTS2S and report to
592*5113495bSYour Name 			TXPCU.
593*5113495bSYour Name 
594*5113495bSYour Name 			TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
595*5113495bSYour Name 			 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
596*5113495bSYour Name 			 frames were received.
597*5113495bSYour Name 			<enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
598*5113495bSYour Name 			 frames are expected to be received in MU reception (uplink
599*5113495bSYour Name 			 spatial multiplexing)
600*5113495bSYour Name 
601*5113495bSYour Name 			RXPCU shall check each response for NDP and report to TXPCU.
602*5113495bSYour Name 
603*5113495bSYour Name 
604*5113495bSYour Name 			TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
605*5113495bSYour Name 			 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
606*5113495bSYour Name 			 frames were received.
607*5113495bSYour Name 			<enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
608*5113495bSYour Name 			 are expected to be received in MU reception (uplink OFDMA
609*5113495bSYour Name 			 or uplink MIMO)
610*5113495bSYour Name 
611*5113495bSYour Name 			RXPCU shall check each response for LMR and report to TXPCU.
612*5113495bSYour Name 
613*5113495bSYour Name 
614*5113495bSYour Name 			TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
615*5113495bSYour Name 			 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
616*5113495bSYour Name 			 frames were received.
617*5113495bSYour Name */
618*5113495bSYour Name 
619*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_OFFSET                               0x0000000000000008
620*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_LSB                                  59
621*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MSB                                  63
622*5113495bSYour Name #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MASK                                 0xf800000000000000
623*5113495bSYour Name 
624*5113495bSYour Name 
625*5113495bSYour Name 
626*5113495bSYour Name #endif   // TX_FES_STATUS_START_PPDU
627