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