xref: /wlan-driver/fw-api/hw/qcn6432/pdg_response.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 _PDG_RESPONSE_H_
18*5113495bSYour Name #define _PDG_RESPONSE_H_
19*5113495bSYour Name #if !defined(__ASSEMBLER__)
20*5113495bSYour Name #endif
21*5113495bSYour Name 
22*5113495bSYour Name #include "pdg_response_rate_setting.h"
23*5113495bSYour Name #define NUM_OF_DWORDS_PDG_RESPONSE 12
24*5113495bSYour Name 
25*5113495bSYour Name #define NUM_OF_QWORDS_PDG_RESPONSE 6
26*5113495bSYour Name 
27*5113495bSYour Name 
28*5113495bSYour Name struct pdg_response {
29*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
30*5113495bSYour Name              struct   pdg_response_rate_setting                                 hw_response_rate_info;
31*5113495bSYour Name              uint32_t hw_response_tx_duration                                 : 16, // [15:0]
32*5113495bSYour Name                       rx_duration_field                                       : 16; // [31:16]
33*5113495bSYour Name              uint32_t punctured_response_transmission                         :  1, // [0:0]
34*5113495bSYour Name                       cca_subband_channel_bonding_mask                        : 16, // [16:1]
35*5113495bSYour Name                       scrambler_seed_override                                 :  2, // [18:17]
36*5113495bSYour Name                       response_density_valid                                  :  1, // [19:19]
37*5113495bSYour Name                       response_density                                        :  5, // [24:20]
38*5113495bSYour Name                       more_data                                               :  1, // [25:25]
39*5113495bSYour Name                       duration_indication                                     :  1, // [26:26]
40*5113495bSYour Name                       relayed_frame                                           :  1, // [27:27]
41*5113495bSYour Name                       address_indicator                                       :  1, // [28:28]
42*5113495bSYour Name                       bandwidth                                               :  3; // [31:29]
43*5113495bSYour Name              uint32_t ack_id                                                  : 16, // [15:0]
44*5113495bSYour Name                       block_ack_bitmap                                        : 16; // [31:16]
45*5113495bSYour Name              uint32_t response_frame_type                                     :  4, // [3:0]
46*5113495bSYour Name                       ack_id_ext                                              : 10, // [13:4]
47*5113495bSYour Name                       ftm_en                                                  :  1, // [14:14]
48*5113495bSYour Name                       group_id                                                :  6, // [20:15]
49*5113495bSYour Name                       sta_partial_aid                                         : 11; // [31:21]
50*5113495bSYour Name              uint32_t ndp_ba_start_seq_ctrl                                   : 12, // [11:0]
51*5113495bSYour Name                       active_channel                                          :  3, // [14:12]
52*5113495bSYour Name                       txop_duration_all_ones                                  :  1, // [15:15]
53*5113495bSYour Name                       frame_length                                            : 16; // [31:16]
54*5113495bSYour Name #else
55*5113495bSYour Name              struct   pdg_response_rate_setting                                 hw_response_rate_info;
56*5113495bSYour Name              uint32_t rx_duration_field                                       : 16, // [31:16]
57*5113495bSYour Name                       hw_response_tx_duration                                 : 16; // [15:0]
58*5113495bSYour Name              uint32_t bandwidth                                               :  3, // [31:29]
59*5113495bSYour Name                       address_indicator                                       :  1, // [28:28]
60*5113495bSYour Name                       relayed_frame                                           :  1, // [27:27]
61*5113495bSYour Name                       duration_indication                                     :  1, // [26:26]
62*5113495bSYour Name                       more_data                                               :  1, // [25:25]
63*5113495bSYour Name                       response_density                                        :  5, // [24:20]
64*5113495bSYour Name                       response_density_valid                                  :  1, // [19:19]
65*5113495bSYour Name                       scrambler_seed_override                                 :  2, // [18:17]
66*5113495bSYour Name                       cca_subband_channel_bonding_mask                        : 16, // [16:1]
67*5113495bSYour Name                       punctured_response_transmission                         :  1; // [0:0]
68*5113495bSYour Name              uint32_t block_ack_bitmap                                        : 16, // [31:16]
69*5113495bSYour Name                       ack_id                                                  : 16; // [15:0]
70*5113495bSYour Name              uint32_t sta_partial_aid                                         : 11, // [31:21]
71*5113495bSYour Name                       group_id                                                :  6, // [20:15]
72*5113495bSYour Name                       ftm_en                                                  :  1, // [14:14]
73*5113495bSYour Name                       ack_id_ext                                              : 10, // [13:4]
74*5113495bSYour Name                       response_frame_type                                     :  4; // [3:0]
75*5113495bSYour Name              uint32_t frame_length                                            : 16, // [31:16]
76*5113495bSYour Name                       txop_duration_all_ones                                  :  1, // [15:15]
77*5113495bSYour Name                       active_channel                                          :  3, // [14:12]
78*5113495bSYour Name                       ndp_ba_start_seq_ctrl                                   : 12; // [11:0]
79*5113495bSYour Name #endif
80*5113495bSYour Name };
81*5113495bSYour Name 
82*5113495bSYour Name 
83*5113495bSYour Name /* Description		HW_RESPONSE_RATE_INFO
84*5113495bSYour Name 
85*5113495bSYour Name 			All transmit rate related parameters
86*5113495bSYour Name */
87*5113495bSYour Name 
88*5113495bSYour Name 
89*5113495bSYour Name /* Description		RESERVED_0A
90*5113495bSYour Name 
91*5113495bSYour Name 
92*5113495bSYour Name 			<legal 0>
93*5113495bSYour Name */
94*5113495bSYour Name 
95*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_OFFSET                       0x0000000000000000
96*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_LSB                          0
97*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MSB                          0
98*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MASK                         0x0000000000000001
99*5113495bSYour Name 
100*5113495bSYour Name 
101*5113495bSYour Name /* Description		TX_ANTENNA_SECTOR_CTRL
102*5113495bSYour Name 
103*5113495bSYour Name 			Sectored transmit antenna
104*5113495bSYour Name 			<legal all>
105*5113495bSYour Name */
106*5113495bSYour Name 
107*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_OFFSET            0x0000000000000000
108*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_LSB               1
109*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MSB               24
110*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MASK              0x0000000001fffffe
111*5113495bSYour Name 
112*5113495bSYour Name 
113*5113495bSYour Name /* Description		PKT_TYPE
114*5113495bSYour Name 
115*5113495bSYour Name 			Packet type:
116*5113495bSYour Name 			<enum 0 dot11a>802.11a PPDU type
117*5113495bSYour Name 			<enum 1 dot11b>802.11b PPDU type
118*5113495bSYour Name 			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
119*5113495bSYour Name 			<enum 3 dot11ac>802.11ac PPDU type
120*5113495bSYour Name 			<enum 4 dot11ax>802.11ax PPDU type
121*5113495bSYour Name 			<enum 5 dot11ba>802.11ba (WUR) PPDU type
122*5113495bSYour Name 			<enum 6 dot11be>802.11be PPDU type
123*5113495bSYour Name 			<enum 7 dot11az>802.11az (ranging) PPDU type
124*5113495bSYour Name 			<enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
125*5113495bSYour Name 			 & aborted)
126*5113495bSYour Name */
127*5113495bSYour Name 
128*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_OFFSET                          0x0000000000000000
129*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_LSB                             25
130*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MSB                             28
131*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MASK                            0x000000001e000000
132*5113495bSYour Name 
133*5113495bSYour Name 
134*5113495bSYour Name /* Description		SMOOTHING
135*5113495bSYour Name 
136*5113495bSYour Name 			This field is used by PDG to populate the SMOOTHING filed
137*5113495bSYour Name 			 in the SIG Preamble of the PPDU
138*5113495bSYour Name 			<legal 0-1>
139*5113495bSYour Name */
140*5113495bSYour Name 
141*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_OFFSET                         0x0000000000000000
142*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_LSB                            29
143*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MSB                            29
144*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MASK                           0x0000000020000000
145*5113495bSYour Name 
146*5113495bSYour Name 
147*5113495bSYour Name /* Description		LDPC
148*5113495bSYour Name 
149*5113495bSYour Name 			When set, use LDPC transmission rates
150*5113495bSYour Name */
151*5113495bSYour Name 
152*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_OFFSET                              0x0000000000000000
153*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_LSB                                 30
154*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MSB                                 30
155*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MASK                                0x0000000040000000
156*5113495bSYour Name 
157*5113495bSYour Name 
158*5113495bSYour Name /* Description		STBC
159*5113495bSYour Name 
160*5113495bSYour Name 			When set, use STBC transmission rates
161*5113495bSYour Name */
162*5113495bSYour Name 
163*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_OFFSET                              0x0000000000000000
164*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_LSB                                 31
165*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MSB                                 31
166*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MASK                                0x0000000080000000
167*5113495bSYour Name 
168*5113495bSYour Name 
169*5113495bSYour Name /* Description		ALT_TX_PWR
170*5113495bSYour Name 
171*5113495bSYour Name 			Coex related AlternativeTransmit parameter
172*5113495bSYour Name 
173*5113495bSYour Name 			Transmit Power in s6.2 format.
174*5113495bSYour Name 			In units of 0.25 dBm
175*5113495bSYour Name 			<legal all>
176*5113495bSYour Name */
177*5113495bSYour Name 
178*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_OFFSET                        0x0000000000000000
179*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_LSB                           32
180*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MSB                           39
181*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MASK                          0x000000ff00000000
182*5113495bSYour Name 
183*5113495bSYour Name 
184*5113495bSYour Name /* Description		ALT_MIN_TX_PWR
185*5113495bSYour Name 
186*5113495bSYour Name 			Coex related Alternative Transmit parameter
187*5113495bSYour Name 
188*5113495bSYour Name 			Minimum allowed Transmit Power in s6.2 format.
189*5113495bSYour Name 			In units of 0.25 dBm
190*5113495bSYour Name 			<legal all>
191*5113495bSYour Name */
192*5113495bSYour Name 
193*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_OFFSET                    0x0000000000000000
194*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_LSB                       40
195*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MSB                       47
196*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MASK                      0x0000ff0000000000
197*5113495bSYour Name 
198*5113495bSYour Name 
199*5113495bSYour Name /* Description		ALT_NSS
200*5113495bSYour Name 
201*5113495bSYour Name 			Coex related Alternative Transmit parameter
202*5113495bSYour Name 
203*5113495bSYour Name 			Number of spatial streams.
204*5113495bSYour Name 
205*5113495bSYour Name 			<enum 0 1_spatial_stream>Single spatial stream
206*5113495bSYour Name 			<enum 1 2_spatial_streams>2 spatial streams
207*5113495bSYour Name 			<enum 2 3_spatial_streams>3 spatial streams
208*5113495bSYour Name 			<enum 3 4_spatial_streams>4 spatial streams
209*5113495bSYour Name 			<enum 4 5_spatial_streams>5 spatial streams
210*5113495bSYour Name 			<enum 5 6_spatial_streams>6 spatial streams
211*5113495bSYour Name 			<enum 6 7_spatial_streams>7 spatial streams
212*5113495bSYour Name 			<enum 7 8_spatial_streams>8 spatial streams
213*5113495bSYour Name */
214*5113495bSYour Name 
215*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_OFFSET                           0x0000000000000000
216*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_LSB                              48
217*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MSB                              50
218*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MASK                             0x0007000000000000
219*5113495bSYour Name 
220*5113495bSYour Name 
221*5113495bSYour Name /* Description		ALT_TX_CHAIN_MASK
222*5113495bSYour Name 
223*5113495bSYour Name 			Coex related Alternative Transmit parameter
224*5113495bSYour Name 
225*5113495bSYour Name 			Chain mask to support up to 8 antennas.
226*5113495bSYour Name 			<legal 1-255>
227*5113495bSYour Name */
228*5113495bSYour Name 
229*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_OFFSET                 0x0000000000000000
230*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_LSB                    51
231*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MSB                    58
232*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MASK                   0x07f8000000000000
233*5113495bSYour Name 
234*5113495bSYour Name 
235*5113495bSYour Name /* Description		ALT_BW
236*5113495bSYour Name 
237*5113495bSYour Name 			Coex related Alternative Transmit parameter
238*5113495bSYour Name 
239*5113495bSYour Name 			The BW of the upcoming transmission.
240*5113495bSYour Name 
241*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
242*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
243*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
244*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
245*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
246*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
247*5113495bSYour Name */
248*5113495bSYour Name 
249*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_OFFSET                            0x0000000000000000
250*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_LSB                               59
251*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MSB                               61
252*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MASK                              0x3800000000000000
253*5113495bSYour Name 
254*5113495bSYour Name 
255*5113495bSYour Name /* Description		STF_LTF_3DB_BOOST
256*5113495bSYour Name 
257*5113495bSYour Name 			Boost the STF and LTF power by 3dB in 11a/n/ac packets.
258*5113495bSYour Name 			This includes both the legacy preambles and the HT/VHT preambles.0:
259*5113495bSYour Name 			disable power boost1: enable power boost
260*5113495bSYour Name 			<legal all>
261*5113495bSYour Name */
262*5113495bSYour Name 
263*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_OFFSET                 0x0000000000000000
264*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_LSB                    62
265*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MSB                    62
266*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MASK                   0x4000000000000000
267*5113495bSYour Name 
268*5113495bSYour Name 
269*5113495bSYour Name /* Description		FORCE_EXTRA_SYMBOL
270*5113495bSYour Name 
271*5113495bSYour Name 			Set to 1 to force an extra OFDM symbol (or symbols) even
272*5113495bSYour Name 			 if the PPDU encoding process does not result in an extra
273*5113495bSYour Name 			 OFDM symbol (or symbols)
274*5113495bSYour Name */
275*5113495bSYour Name 
276*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_OFFSET                0x0000000000000000
277*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_LSB                   63
278*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MSB                   63
279*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MASK                  0x8000000000000000
280*5113495bSYour Name 
281*5113495bSYour Name 
282*5113495bSYour Name /* Description		ALT_RATE_MCS
283*5113495bSYour Name 
284*5113495bSYour Name 			Coex related Alternative Transmit parameter
285*5113495bSYour Name 
286*5113495bSYour Name 			For details, refer to  MCS_TYPE
287*5113495bSYour Name 			Note: This is "rate" in case of 11a/11b
288*5113495bSYour Name 			description
289*5113495bSYour Name 			<legal all>
290*5113495bSYour Name */
291*5113495bSYour Name 
292*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_OFFSET                      0x0000000000000008
293*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_LSB                         0
294*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MSB                         3
295*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MASK                        0x000000000000000f
296*5113495bSYour Name 
297*5113495bSYour Name 
298*5113495bSYour Name /* Description		NSS
299*5113495bSYour Name 
300*5113495bSYour Name 			Number of spatial streams.
301*5113495bSYour Name 
302*5113495bSYour Name 			<enum 0 1_spatial_stream>Single spatial stream
303*5113495bSYour Name 			<enum 1 2_spatial_streams>2 spatial streams
304*5113495bSYour Name 			<enum 2 3_spatial_streams>3 spatial streams
305*5113495bSYour Name 			<enum 3 4_spatial_streams>4 spatial streams
306*5113495bSYour Name 			<enum 4 5_spatial_streams>5 spatial streams
307*5113495bSYour Name 			<enum 5 6_spatial_streams>6 spatial streams
308*5113495bSYour Name 			<enum 6 7_spatial_streams>7 spatial streams
309*5113495bSYour Name 			<enum 7 8_spatial_streams>8 spatial streams
310*5113495bSYour Name */
311*5113495bSYour Name 
312*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_OFFSET                               0x0000000000000008
313*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_LSB                                  4
314*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MSB                                  6
315*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MASK                                 0x0000000000000070
316*5113495bSYour Name 
317*5113495bSYour Name 
318*5113495bSYour Name /* Description		DPD_ENABLE
319*5113495bSYour Name 
320*5113495bSYour Name 			DPD enable control
321*5113495bSYour Name 
322*5113495bSYour Name 			This is needed on a per packet basis
323*5113495bSYour Name 			<enum 0     dpd_off> DPD profile not applied to current
324*5113495bSYour Name 			packet
325*5113495bSYour Name 			<enum 1     dpd_on> DPD profile applied to current packet
326*5113495bSYour Name 			 if available
327*5113495bSYour Name 			<legal 0-1>
328*5113495bSYour Name 
329*5113495bSYour Name 			This field is not applicable in11ah mode of operation and
330*5113495bSYour Name 			 is ignored by the HW
331*5113495bSYour Name */
332*5113495bSYour Name 
333*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_OFFSET                        0x0000000000000008
334*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_LSB                           7
335*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MSB                           7
336*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MASK                          0x0000000000000080
337*5113495bSYour Name 
338*5113495bSYour Name 
339*5113495bSYour Name /* Description		TX_PWR
340*5113495bSYour Name 
341*5113495bSYour Name 			Transmit Power in s6.2 format.
342*5113495bSYour Name 			In units of 0.25 dBm
343*5113495bSYour Name 			<legal all>
344*5113495bSYour Name */
345*5113495bSYour Name 
346*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_OFFSET                            0x0000000000000008
347*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_LSB                               8
348*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MSB                               15
349*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MASK                              0x000000000000ff00
350*5113495bSYour Name 
351*5113495bSYour Name 
352*5113495bSYour Name /* Description		MIN_TX_PWR
353*5113495bSYour Name 
354*5113495bSYour Name 			Coex related field:
355*5113495bSYour Name 
356*5113495bSYour Name 			Minimum allowed Transmit Power in s6.2 format.
357*5113495bSYour Name 			In units of 0.25 dBm
358*5113495bSYour Name 			<legal all>
359*5113495bSYour Name */
360*5113495bSYour Name 
361*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_OFFSET                        0x0000000000000008
362*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_LSB                           16
363*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MSB                           23
364*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MASK                          0x0000000000ff0000
365*5113495bSYour Name 
366*5113495bSYour Name 
367*5113495bSYour Name /* Description		TX_CHAIN_MASK
368*5113495bSYour Name 
369*5113495bSYour Name 			Chain mask to support up to 8 antennas.
370*5113495bSYour Name 			<legal 1-255>
371*5113495bSYour Name */
372*5113495bSYour Name 
373*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_OFFSET                     0x0000000000000008
374*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_LSB                        24
375*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MSB                        31
376*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MASK                       0x00000000ff000000
377*5113495bSYour Name 
378*5113495bSYour Name 
379*5113495bSYour Name /* Description		RESERVED_3A
380*5113495bSYour Name 
381*5113495bSYour Name 			 <legal 0>
382*5113495bSYour Name */
383*5113495bSYour Name 
384*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_OFFSET                       0x0000000000000008
385*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_LSB                          32
386*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MSB                          39
387*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MASK                         0x000000ff00000000
388*5113495bSYour Name 
389*5113495bSYour Name 
390*5113495bSYour Name /* Description		SGI
391*5113495bSYour Name 
392*5113495bSYour Name 			Field only valid when pkt type is HT or VHT.For 11ax see
393*5113495bSYour Name 			 field Dot11ax_CP_LTF_size
394*5113495bSYour Name 
395*5113495bSYour Name 			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be used
396*5113495bSYour Name 			 for HE
397*5113495bSYour Name 			<enum 1     0_4_us_sgi > Legacy short GI. Can also be used
398*5113495bSYour Name 			 for HE
399*5113495bSYour Name 			<enum 2     1_6_us_sgi > Not used for pre 11ax pkt_types.
400*5113495bSYour Name 
401*5113495bSYour Name 			<enum 3     3_2_us_sgi > Not used for pre 11ax pkt_types
402*5113495bSYour Name 
403*5113495bSYour Name 
404*5113495bSYour Name 			<legal 0 - 3>
405*5113495bSYour Name */
406*5113495bSYour Name 
407*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_OFFSET                               0x0000000000000008
408*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_LSB                                  40
409*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MSB                                  41
410*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MASK                                 0x0000030000000000
411*5113495bSYour Name 
412*5113495bSYour Name 
413*5113495bSYour Name /* Description		RATE_MCS
414*5113495bSYour Name 
415*5113495bSYour Name 			For details, refer to  MCS_TYPE description
416*5113495bSYour Name 			Note: This is "rate" in case of 11a/11b
417*5113495bSYour Name 
418*5113495bSYour Name 			<legal all>
419*5113495bSYour Name */
420*5113495bSYour Name 
421*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_OFFSET                          0x0000000000000008
422*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_LSB                             42
423*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MSB                             45
424*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MASK                            0x00003c0000000000
425*5113495bSYour Name 
426*5113495bSYour Name 
427*5113495bSYour Name /* Description		RESERVED_3B
428*5113495bSYour Name 
429*5113495bSYour Name 			 <legal 0>
430*5113495bSYour Name */
431*5113495bSYour Name 
432*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_OFFSET                       0x0000000000000008
433*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_LSB                          46
434*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MSB                          47
435*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MASK                         0x0000c00000000000
436*5113495bSYour Name 
437*5113495bSYour Name 
438*5113495bSYour Name /* Description		TX_PWR_1
439*5113495bSYour Name 
440*5113495bSYour Name 			Default (desired) transmit parameter for the second chain
441*5113495bSYour Name 
442*5113495bSYour Name 
443*5113495bSYour Name 			Transmit Power in s6.2 format.
444*5113495bSYour Name 			In units of 0.25 dBm
445*5113495bSYour Name 
446*5113495bSYour Name 			Note that there is no Min value for this
447*5113495bSYour Name 			<legal all>
448*5113495bSYour Name */
449*5113495bSYour Name 
450*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_OFFSET                          0x0000000000000008
451*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_LSB                             48
452*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MSB                             55
453*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MASK                            0x00ff000000000000
454*5113495bSYour Name 
455*5113495bSYour Name 
456*5113495bSYour Name /* Description		ALT_TX_PWR_1
457*5113495bSYour Name 
458*5113495bSYour Name 			Alternate (desired) transmit parameter for the second chain
459*5113495bSYour Name 
460*5113495bSYour Name 
461*5113495bSYour Name 			Transmit Power in s6.2 format.
462*5113495bSYour Name 			In units of 0.25 dBm
463*5113495bSYour Name 
464*5113495bSYour Name 			Note that there is no Min value for this
465*5113495bSYour Name 			<legal all>
466*5113495bSYour Name */
467*5113495bSYour Name 
468*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_OFFSET                      0x0000000000000008
469*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_LSB                         56
470*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MSB                         63
471*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MASK                        0xff00000000000000
472*5113495bSYour Name 
473*5113495bSYour Name 
474*5113495bSYour Name /* Description		AGGREGATION
475*5113495bSYour Name 
476*5113495bSYour Name 			Field only valid in case of pkt_type == 11n
477*5113495bSYour Name 
478*5113495bSYour Name 			<enum 0     mpdu> Indicates MPDU format. TXPCU will select
479*5113495bSYour Name 			 this setting if the CBF response only contains a single
480*5113495bSYour Name 			 segment
481*5113495bSYour Name 			<enum 1     a_mpdu> Indicates A-MPDU format. TXPCU will
482*5113495bSYour Name 			select this setting if the CBF response will contain two
483*5113495bSYour Name 			 or more segments
484*5113495bSYour Name 			<legal 0-1>
485*5113495bSYour Name */
486*5113495bSYour Name 
487*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_OFFSET                       0x0000000000000010
488*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_LSB                          0
489*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MSB                          0
490*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MASK                         0x0000000000000001
491*5113495bSYour Name 
492*5113495bSYour Name 
493*5113495bSYour Name /* Description		DOT11AX_BSS_COLOR_ID
494*5113495bSYour Name 
495*5113495bSYour Name 			BSS color of the nextwork to which this STA belongs.
496*5113495bSYour Name 			When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
497*5113495bSYour Name 
498*5113495bSYour Name 
499*5113495bSYour Name 			<legal all>
500*5113495bSYour Name */
501*5113495bSYour Name 
502*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_OFFSET              0x0000000000000010
503*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_LSB                 1
504*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MSB                 6
505*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MASK                0x000000000000007e
506*5113495bSYour Name 
507*5113495bSYour Name 
508*5113495bSYour Name /* Description		DOT11AX_SPATIAL_REUSE
509*5113495bSYour Name 
510*5113495bSYour Name 			This field is only valid for pkt_type == 11ax
511*5113495bSYour Name 
512*5113495bSYour Name 			Spatial re-use
513*5113495bSYour Name 			<legal all>
514*5113495bSYour Name */
515*5113495bSYour Name 
516*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_OFFSET             0x0000000000000010
517*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_LSB                7
518*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MSB                10
519*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MASK               0x0000000000000780
520*5113495bSYour Name 
521*5113495bSYour Name 
522*5113495bSYour Name /* Description		DOT11AX_CP_LTF_SIZE
523*5113495bSYour Name 
524*5113495bSYour Name 			field is only valid for pkt_type == 11ax
525*5113495bSYour Name 
526*5113495bSYour Name 			Indicates the CP and HE-LTF type
527*5113495bSYour Name 
528*5113495bSYour Name 			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
529*5113495bSYour Name 			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
530*5113495bSYour Name 			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
531*5113495bSYour Name 			<enum 3 FourX_LTF_0_8CP_3_2CP>
532*5113495bSYour Name 			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
533*5113495bSYour Name 			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
534*5113495bSYour Name 			In this scenario, Neither DCM nor STBC is applied to HE
535*5113495bSYour Name 			data field.
536*5113495bSYour Name 
537*5113495bSYour Name 			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
538*5113495bSYour Name 			0      = 1xLTF + 0.4 usec
539*5113495bSYour Name 			1      = 2xLTF + 0.4 usec
540*5113495bSYour Name 			2~3 = Reserved
541*5113495bSYour Name 
542*5113495bSYour Name 			<legal all>
543*5113495bSYour Name */
544*5113495bSYour Name 
545*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_OFFSET               0x0000000000000010
546*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_LSB                  11
547*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MSB                  12
548*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MASK                 0x0000000000001800
549*5113495bSYour Name 
550*5113495bSYour Name 
551*5113495bSYour Name /* Description		DOT11AX_DCM
552*5113495bSYour Name 
553*5113495bSYour Name 			field is only valid for pkt_type == 11ax
554*5113495bSYour Name 
555*5113495bSYour Name 			Indicates whether dual sub-carrier modulation is applied
556*5113495bSYour Name 
557*5113495bSYour Name 			0: No DCM
558*5113495bSYour Name 			1:DCM
559*5113495bSYour Name 			<legal all>
560*5113495bSYour Name */
561*5113495bSYour Name 
562*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_OFFSET                       0x0000000000000010
563*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_LSB                          13
564*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MSB                          13
565*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MASK                         0x0000000000002000
566*5113495bSYour Name 
567*5113495bSYour Name 
568*5113495bSYour Name /* Description		DOT11AX_DOPPLER_INDICATION
569*5113495bSYour Name 
570*5113495bSYour Name 			field is only valid for pkt_type == 11ax
571*5113495bSYour Name 
572*5113495bSYour Name 			0: No Doppler support
573*5113495bSYour Name 			1: Doppler support
574*5113495bSYour Name 			<legal all>
575*5113495bSYour Name */
576*5113495bSYour Name 
577*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_OFFSET        0x0000000000000010
578*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_LSB           14
579*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MSB           14
580*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MASK          0x0000000000004000
581*5113495bSYour Name 
582*5113495bSYour Name 
583*5113495bSYour Name /* Description		DOT11AX_SU_EXTENDED
584*5113495bSYour Name 
585*5113495bSYour Name 			field is only valid for pkt_type == 11ax OR pkt_type ==
586*5113495bSYour Name 			11be
587*5113495bSYour Name 
588*5113495bSYour Name 			When set, the 11ax or 11be frame is of the extended range
589*5113495bSYour Name 			 format
590*5113495bSYour Name 			<legal all>
591*5113495bSYour Name */
592*5113495bSYour Name 
593*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_OFFSET               0x0000000000000010
594*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_LSB                  15
595*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MSB                  15
596*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MASK                 0x0000000000008000
597*5113495bSYour Name 
598*5113495bSYour Name 
599*5113495bSYour Name /* Description		DOT11AX_MIN_PACKET_EXTENSION
600*5113495bSYour Name 
601*5113495bSYour Name 			field is only valid for pkt_type == 11ax OR pkt_type ==
602*5113495bSYour Name 			11be
603*5113495bSYour Name 
604*5113495bSYour Name 			The min packet extension duration for this user.
605*5113495bSYour Name 			0: no extension
606*5113495bSYour Name 			1: 8us
607*5113495bSYour Name 			2: 16 us
608*5113495bSYour Name 			3: 20 us (only for .11be)
609*5113495bSYour Name 			<legal 0-3>
610*5113495bSYour Name */
611*5113495bSYour Name 
612*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_OFFSET      0x0000000000000010
613*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_LSB         16
614*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MSB         17
615*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MASK        0x0000000000030000
616*5113495bSYour Name 
617*5113495bSYour Name 
618*5113495bSYour Name /* Description		DOT11AX_PE_NSS
619*5113495bSYour Name 
620*5113495bSYour Name 			Number of active spatial streams during packet extension.
621*5113495bSYour Name 
622*5113495bSYour Name 
623*5113495bSYour Name 			<enum 0 1_spatial_stream>Single spatial stream
624*5113495bSYour Name 			<enum 1 2_spatial_streams>2 spatial streams
625*5113495bSYour Name 			<enum 2 3_spatial_streams>3 spatial streams
626*5113495bSYour Name 			<enum 3 4_spatial_streams>4 spatial streams
627*5113495bSYour Name 			<enum 4 5_spatial_streams>5 spatial streams
628*5113495bSYour Name 			<enum 5 6_spatial_streams>6 spatial streams
629*5113495bSYour Name 			<enum 6 7_spatial_streams>7 spatial streams
630*5113495bSYour Name 			<enum 7 8_spatial_streams>8 spatial streams
631*5113495bSYour Name */
632*5113495bSYour Name 
633*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_OFFSET                    0x0000000000000010
634*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_LSB                       18
635*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MSB                       20
636*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MASK                      0x00000000001c0000
637*5113495bSYour Name 
638*5113495bSYour Name 
639*5113495bSYour Name /* Description		DOT11AX_PE_CONTENT
640*5113495bSYour Name 
641*5113495bSYour Name 			Content of packet extension. Valid for all 11ax packets
642*5113495bSYour Name 			having packet extension
643*5113495bSYour Name 
644*5113495bSYour Name 			0-he_ltf, 1-last_data_symbol
645*5113495bSYour Name 			<legal all>
646*5113495bSYour Name */
647*5113495bSYour Name 
648*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_OFFSET                0x0000000000000010
649*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_LSB                   21
650*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MSB                   21
651*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MASK                  0x0000000000200000
652*5113495bSYour Name 
653*5113495bSYour Name 
654*5113495bSYour Name /* Description		DOT11AX_PE_LTF_SIZE
655*5113495bSYour Name 
656*5113495bSYour Name 			LTF size to be used during packet extention. . This field
657*5113495bSYour Name 			 is valid for both FTM and non-FTM packets.
658*5113495bSYour Name 			0-1x
659*5113495bSYour Name 			1-2x (unsupported un HWK-1)
660*5113495bSYour Name 			2-4x (unsupported un HWK-1)
661*5113495bSYour Name 			<legal all>
662*5113495bSYour Name */
663*5113495bSYour Name 
664*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_OFFSET               0x0000000000000010
665*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_LSB                  22
666*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MSB                  23
667*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MASK                 0x0000000000c00000
668*5113495bSYour Name 
669*5113495bSYour Name 
670*5113495bSYour Name /* Description		DOT11AX_CHAIN_CSD_EN
671*5113495bSYour Name 
672*5113495bSYour Name 			This field denotes whether to apply CSD on the preamble
673*5113495bSYour Name 			and data portion of the packet. This field is valid for
674*5113495bSYour Name 			all transmit packets
675*5113495bSYour Name 			0: disable per-chain csd
676*5113495bSYour Name 			1: enable per-chain csd
677*5113495bSYour Name 			<legal all>
678*5113495bSYour Name */
679*5113495bSYour Name 
680*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_OFFSET              0x0000000000000010
681*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_LSB                 24
682*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MSB                 24
683*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MASK                0x0000000001000000
684*5113495bSYour Name 
685*5113495bSYour Name 
686*5113495bSYour Name /* Description		DOT11AX_PE_CHAIN_CSD_EN
687*5113495bSYour Name 
688*5113495bSYour Name 			This field denotes whether to apply CSD on the packet extension
689*5113495bSYour Name 			 portion of the packet. This field is valid for all 11ax
690*5113495bSYour Name 			 packets.
691*5113495bSYour Name 			0: disable per-chain csd
692*5113495bSYour Name 			1: enable per-chain csd
693*5113495bSYour Name 			<legal all>
694*5113495bSYour Name */
695*5113495bSYour Name 
696*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_OFFSET           0x0000000000000010
697*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_LSB              25
698*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MSB              25
699*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MASK             0x0000000002000000
700*5113495bSYour Name 
701*5113495bSYour Name 
702*5113495bSYour Name /* Description		DOT11AX_DL_UL_FLAG
703*5113495bSYour Name 
704*5113495bSYour Name 			field is only valid for pkt_type == 11ax
705*5113495bSYour Name 
706*5113495bSYour Name 			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
707*5113495bSYour Name 			<enum 1 DL_UL_FLAG_IS_UL>
708*5113495bSYour Name 
709*5113495bSYour Name 			<legal all>
710*5113495bSYour Name */
711*5113495bSYour Name 
712*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_OFFSET                0x0000000000000010
713*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_LSB                   26
714*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MSB                   26
715*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MASK                  0x0000000004000000
716*5113495bSYour Name 
717*5113495bSYour Name 
718*5113495bSYour Name /* Description		RESERVED_4A
719*5113495bSYour Name 
720*5113495bSYour Name 			 <legal 0>
721*5113495bSYour Name */
722*5113495bSYour Name 
723*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_OFFSET                       0x0000000000000010
724*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_LSB                          27
725*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MSB                          31
726*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MASK                         0x00000000f8000000
727*5113495bSYour Name 
728*5113495bSYour Name 
729*5113495bSYour Name /* Description		DOT11AX_EXT_RU_START_INDEX
730*5113495bSYour Name 
731*5113495bSYour Name 			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
732*5113495bSYour Name 			 == 1
733*5113495bSYour Name 
734*5113495bSYour Name 			RU Number to which User is assigned
735*5113495bSYour Name 
736*5113495bSYour Name 			The RU numbering bitwidth  is only enough to cover the 20MHz
737*5113495bSYour Name 			 BW that extended range allows
738*5113495bSYour Name 			<legal 0-8>
739*5113495bSYour Name */
740*5113495bSYour Name 
741*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_OFFSET        0x0000000000000010
742*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_LSB           32
743*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MSB           35
744*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MASK          0x0000000f00000000
745*5113495bSYour Name 
746*5113495bSYour Name 
747*5113495bSYour Name /* Description		DOT11AX_EXT_RU_SIZE
748*5113495bSYour Name 
749*5113495bSYour Name 			field is only valid for pkt_type == 11ax and  Dot11ax_su_extended
750*5113495bSYour Name 			 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
751*5113495bSYour Name 
752*5113495bSYour Name 			The size of the RU for this user.
753*5113495bSYour Name 
754*5113495bSYour Name 			In case of EHT duplicate transmissions, this field indicates
755*5113495bSYour Name 			 the width of the actual content before duplication, e.g.
756*5113495bSYour Name 			a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
757*5113495bSYour Name 			 fields indicating 160 MHz and this field set to e-num 4
758*5113495bSYour Name 			 (RU_484).
759*5113495bSYour Name 
760*5113495bSYour Name 			<enum 0 RU_26>
761*5113495bSYour Name 			<enum 1 RU_52>
762*5113495bSYour Name 			<enum 2 RU_106>
763*5113495bSYour Name 			<enum 3 RU_242>
764*5113495bSYour Name 			<enum 4 RU_484>
765*5113495bSYour Name 			<enum 5 RU_996>
766*5113495bSYour Name 			<enum 6 RU_1992>
767*5113495bSYour Name 			<enum 7 RU_FULLBW> Set when the RU occupies the full packet
768*5113495bSYour Name 			 bandwidth
769*5113495bSYour Name 			<enum 8 RU_FULLBW_240> Set when the RU occupies the full
770*5113495bSYour Name 			 packet bandwidth
771*5113495bSYour Name 			<enum 9 RU_FULLBW_320> Set when the RU occupies the full
772*5113495bSYour Name 			 packet bandwidth
773*5113495bSYour Name 			<enum 10 RU_MULTI_LARGE> DO NOT USE
774*5113495bSYour Name 			<enum 11 RU_78> DO NOT USE
775*5113495bSYour Name 			<enum 12 RU_132> DO NOT USE
776*5113495bSYour Name 			<legal 0-12>
777*5113495bSYour Name */
778*5113495bSYour Name 
779*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_OFFSET               0x0000000000000010
780*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_LSB                  36
781*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MSB                  39
782*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MASK                 0x000000f000000000
783*5113495bSYour Name 
784*5113495bSYour Name 
785*5113495bSYour Name /* Description		EHT_DUPLICATE_MODE
786*5113495bSYour Name 
787*5113495bSYour Name 			Field only valid for pkt_type == 11be
788*5113495bSYour Name 
789*5113495bSYour Name 			Indicates EHT duplicate modulation
790*5113495bSYour Name 
791*5113495bSYour Name 			<enum 0 eht_no_duplicate>
792*5113495bSYour Name 			<enum 1 eht_2x_duplicate>
793*5113495bSYour Name 			<enum 2 eht_4x_duplicate>
794*5113495bSYour Name 
795*5113495bSYour Name 			<legal 0-2>
796*5113495bSYour Name */
797*5113495bSYour Name 
798*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_OFFSET                0x0000000000000010
799*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_LSB                   40
800*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MSB                   41
801*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MASK                  0x0000030000000000
802*5113495bSYour Name 
803*5113495bSYour Name 
804*5113495bSYour Name /* Description		HE_SIGB_DCM
805*5113495bSYour Name 
806*5113495bSYour Name 			Indicates whether dual sub-carrier modulation is applied
807*5113495bSYour Name 			 to EHT-SIG
808*5113495bSYour Name 			<legal all>
809*5113495bSYour Name */
810*5113495bSYour Name 
811*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_OFFSET                       0x0000000000000010
812*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_LSB                          42
813*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MSB                          42
814*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MASK                         0x0000040000000000
815*5113495bSYour Name 
816*5113495bSYour Name 
817*5113495bSYour Name /* Description		HE_SIGB_0_MCS
818*5113495bSYour Name 
819*5113495bSYour Name 			Indicates the MCS of EHT-SIG
820*5113495bSYour Name 
821*5113495bSYour Name 			For details, refer to  MCS_TYPE description
822*5113495bSYour Name 			<legal all>
823*5113495bSYour Name */
824*5113495bSYour Name 
825*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_OFFSET                     0x0000000000000010
826*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_LSB                        43
827*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MSB                        45
828*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MASK                       0x0000380000000000
829*5113495bSYour Name 
830*5113495bSYour Name 
831*5113495bSYour Name /* Description		NUM_HE_SIGB_SYM
832*5113495bSYour Name 
833*5113495bSYour Name 			Indicates the number of EHT-SIG symbols
834*5113495bSYour Name 
835*5113495bSYour Name 			This field is 0-based with 0 indicating that 1 eht_sig symbol
836*5113495bSYour Name 			 needs to be transmitted.
837*5113495bSYour Name 			<legal all>
838*5113495bSYour Name */
839*5113495bSYour Name 
840*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_OFFSET                   0x0000000000000010
841*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_LSB                      46
842*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MSB                      50
843*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MASK                     0x0007c00000000000
844*5113495bSYour Name 
845*5113495bSYour Name 
846*5113495bSYour Name /* Description		REQUIRED_RESPONSE_TIME_SOURCE
847*5113495bSYour Name 
848*5113495bSYour Name 			<enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
849*5113495bSYour Name 			 HT Control for sync MLO response
850*5113495bSYour Name 			<enum 1 reqd_resp_time_src_is_FW>
851*5113495bSYour Name 			Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
852*5113495bSYour Name 			 to response
853*5113495bSYour Name 			<legal all>
854*5113495bSYour Name */
855*5113495bSYour Name 
856*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET     0x0000000000000010
857*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_LSB        51
858*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MSB        51
859*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MASK       0x0008000000000000
860*5113495bSYour Name 
861*5113495bSYour Name 
862*5113495bSYour Name /* Description		RESERVED_5A
863*5113495bSYour Name 
864*5113495bSYour Name 			 <legal 0>
865*5113495bSYour Name */
866*5113495bSYour Name 
867*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_OFFSET                       0x0000000000000010
868*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_LSB                          52
869*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MSB                          57
870*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MASK                         0x03f0000000000000
871*5113495bSYour Name 
872*5113495bSYour Name 
873*5113495bSYour Name /* Description		U_SIG_PUNCTURE_PATTERN_ENCODING
874*5113495bSYour Name 
875*5113495bSYour Name 			6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO'
876*5113495bSYour Name 			to pass on to PDG
877*5113495bSYour Name 			<legal 0-29>
878*5113495bSYour Name */
879*5113495bSYour Name 
880*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET   0x0000000000000010
881*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB      58
882*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB      63
883*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK     0xfc00000000000000
884*5113495bSYour Name 
885*5113495bSYour Name 
886*5113495bSYour Name /* Description		MLO_STA_ID_DETAILS_RX
887*5113495bSYour Name 
888*5113495bSYour Name 			16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
889*5113495bSYour Name 			 on to PDG
890*5113495bSYour Name 
891*5113495bSYour Name 			Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID'
892*5113495bSYour Name 			from address search.
893*5113495bSYour Name 
894*5113495bSYour Name 			See definition of mlo_sta_id_details.
895*5113495bSYour Name */
896*5113495bSYour Name 
897*5113495bSYour Name 
898*5113495bSYour Name /* Description		NSTR_MLO_STA_ID
899*5113495bSYour Name 
900*5113495bSYour Name 			ID of peer participating in non-STR MLO
901*5113495bSYour Name */
902*5113495bSYour Name 
903*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000018
904*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
905*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
906*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff
907*5113495bSYour Name 
908*5113495bSYour Name 
909*5113495bSYour Name /* Description		BLOCK_SELF_ML_SYNC
910*5113495bSYour Name 
911*5113495bSYour Name 			Only valid for TX
912*5113495bSYour Name 
913*5113495bSYour Name 			When set, this provides an indication to block the peer
914*5113495bSYour Name 			for self-link.
915*5113495bSYour Name */
916*5113495bSYour Name 
917*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000018
918*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
919*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
920*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400
921*5113495bSYour Name 
922*5113495bSYour Name 
923*5113495bSYour Name /* Description		BLOCK_PARTNER_ML_SYNC
924*5113495bSYour Name 
925*5113495bSYour Name 			Only valid for TX
926*5113495bSYour Name 
927*5113495bSYour Name 			When set, this provides an indication to block the peer
928*5113495bSYour Name 			for partner links.
929*5113495bSYour Name */
930*5113495bSYour Name 
931*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000018
932*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
933*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
934*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800
935*5113495bSYour Name 
936*5113495bSYour Name 
937*5113495bSYour Name /* Description		NSTR_MLO_STA_ID_VALID
938*5113495bSYour Name 
939*5113495bSYour Name 			All the fields in this TLV are valid only if this bit is
940*5113495bSYour Name 			 set.
941*5113495bSYour Name */
942*5113495bSYour Name 
943*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000018
944*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
945*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
946*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000
947*5113495bSYour Name 
948*5113495bSYour Name 
949*5113495bSYour Name /* Description		RESERVED_0A
950*5113495bSYour Name 
951*5113495bSYour Name 			<legal 0>
952*5113495bSYour Name */
953*5113495bSYour Name 
954*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000018
955*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB    13
956*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB    15
957*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK   0x000000000000e000
958*5113495bSYour Name 
959*5113495bSYour Name 
960*5113495bSYour Name /* Description		REQUIRED_RESPONSE_TIME
961*5113495bSYour Name 
962*5113495bSYour Name 			When non-zero, indicates that PDG shall pad the response
963*5113495bSYour Name 			 transmission to the indicated duration (in us)
964*5113495bSYour Name */
965*5113495bSYour Name 
966*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_OFFSET            0x0000000000000018
967*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_LSB               16
968*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MSB               27
969*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MASK              0x000000000fff0000
970*5113495bSYour Name 
971*5113495bSYour Name 
972*5113495bSYour Name /* Description		DOT11BE_PARAMS_PLACEHOLDER
973*5113495bSYour Name 
974*5113495bSYour Name 			4 bytes for use as placeholders for 'Dot11be_*' parameters
975*5113495bSYour Name 
976*5113495bSYour Name */
977*5113495bSYour Name 
978*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_OFFSET        0x0000000000000018
979*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_LSB           28
980*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MSB           31
981*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MASK          0x00000000f0000000
982*5113495bSYour Name 
983*5113495bSYour Name 
984*5113495bSYour Name /* Description		HW_RESPONSE_TX_DURATION
985*5113495bSYour Name 
986*5113495bSYour Name 			The amount of time the transmission of the HW response will
987*5113495bSYour Name 			 take (in us)
988*5113495bSYour Name 
989*5113495bSYour Name 			Used for coex.....
990*5113495bSYour Name 
991*5113495bSYour Name 			This field also represents the 'alt_hw_response_tx_duration'.
992*5113495bSYour Name 			Note that this implies that no different duration can be
993*5113495bSYour Name 			 programmed for the default and alt setting. SW should program
994*5113495bSYour Name 			 the worst case value in the RXPCU table in case they are
995*5113495bSYour Name 			 different.
996*5113495bSYour Name 			<legal all>
997*5113495bSYour Name */
998*5113495bSYour Name 
999*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_OFFSET                                 0x0000000000000018
1000*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_LSB                                    32
1001*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MSB                                    47
1002*5113495bSYour Name #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MASK                                   0x0000ffff00000000
1003*5113495bSYour Name 
1004*5113495bSYour Name 
1005*5113495bSYour Name /* Description		RX_DURATION_FIELD
1006*5113495bSYour Name 
1007*5113495bSYour Name 			The duration field in the received frame.
1008*5113495bSYour Name 			PDG uses this field to calculate what the duration field
1009*5113495bSYour Name 			 value should be in the response frame.
1010*5113495bSYour Name 			This is returned to the TX PCU
1011*5113495bSYour Name 
1012*5113495bSYour Name 			This field is used in 11ah mode as well
1013*5113495bSYour Name 			<legal all>
1014*5113495bSYour Name */
1015*5113495bSYour Name 
1016*5113495bSYour Name #define PDG_RESPONSE_RX_DURATION_FIELD_OFFSET                                       0x0000000000000018
1017*5113495bSYour Name #define PDG_RESPONSE_RX_DURATION_FIELD_LSB                                          48
1018*5113495bSYour Name #define PDG_RESPONSE_RX_DURATION_FIELD_MSB                                          63
1019*5113495bSYour Name #define PDG_RESPONSE_RX_DURATION_FIELD_MASK                                         0xffff000000000000
1020*5113495bSYour Name 
1021*5113495bSYour Name 
1022*5113495bSYour Name /* Description		PUNCTURED_RESPONSE_TRANSMISSION
1023*5113495bSYour Name 
1024*5113495bSYour Name 			When set, this response frame will be transmitted using
1025*5113495bSYour Name 			a puncture transmit pattern that is indicated in the cca_subband_channel_bonding_mask
1026*5113495bSYour Name 			 field.
1027*5113495bSYour Name 
1028*5113495bSYour Name 			Typically used in the Response to response transmissions.
1029*5113495bSYour Name 
1030*5113495bSYour Name 			<legal all>
1031*5113495bSYour Name */
1032*5113495bSYour Name 
1033*5113495bSYour Name #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_OFFSET                         0x0000000000000020
1034*5113495bSYour Name #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_LSB                            0
1035*5113495bSYour Name #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MSB                            0
1036*5113495bSYour Name #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MASK                           0x0000000000000001
1037*5113495bSYour Name 
1038*5113495bSYour Name 
1039*5113495bSYour Name /* Description		CCA_SUBBAND_CHANNEL_BONDING_MASK
1040*5113495bSYour Name 
1041*5113495bSYour Name 			Field only valid when 'Punctured_response_transmission'
1042*5113495bSYour Name 			is set
1043*5113495bSYour Name 
1044*5113495bSYour Name 			Indicates which 20 Mhz channels will be used for the transmission.
1045*5113495bSYour Name 
1046*5113495bSYour Name 
1047*5113495bSYour Name 			Bit 0: primary 20 Mhz
1048*5113495bSYour Name 			Bit 1: secondary 20 MHz.
1049*5113495bSYour Name 			Etc.
1050*5113495bSYour Name 
1051*5113495bSYour Name 			<legal 1-65535>
1052*5113495bSYour Name */
1053*5113495bSYour Name 
1054*5113495bSYour Name #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_OFFSET                        0x0000000000000020
1055*5113495bSYour Name #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_LSB                           1
1056*5113495bSYour Name #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MSB                           16
1057*5113495bSYour Name #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MASK                          0x000000000001fffe
1058*5113495bSYour Name 
1059*5113495bSYour Name 
1060*5113495bSYour Name /* Description		SCRAMBLER_SEED_OVERRIDE
1061*5113495bSYour Name 
1062*5113495bSYour Name 			Used in dynamic BW RTS-CTS, BAR -BA, etc. kind of exchanges.
1063*5113495bSYour Name 
1064*5113495bSYour Name 
1065*5113495bSYour Name 			0: PDG will use all 7 bits of the scrambler seed.
1066*5113495bSYour Name 			1: PDG will override bits [6:5] of the  scrambler_seed
1067*5113495bSYour Name 			with BW information.
1068*5113495bSYour Name 			2: PDG will override bits [6:5] and bit [3] of the  scrambler_seed
1069*5113495bSYour Name 			  with BW information for .11be dynamic BW procedure.
1070*5113495bSYour Name 
1071*5113495bSYour Name 			<legal 0-2>
1072*5113495bSYour Name */
1073*5113495bSYour Name 
1074*5113495bSYour Name #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_OFFSET                                 0x0000000000000020
1075*5113495bSYour Name #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_LSB                                    17
1076*5113495bSYour Name #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MSB                                    18
1077*5113495bSYour Name #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MASK                                   0x0000000000060000
1078*5113495bSYour Name 
1079*5113495bSYour Name 
1080*5113495bSYour Name /* Description		RESPONSE_DENSITY_VALID
1081*5113495bSYour Name 
1082*5113495bSYour Name 			When set, field Response_density has valid info. TXPCU sets
1083*5113495bSYour Name 			 this for multi segment CBF response generation.
1084*5113495bSYour Name 			<legal all>
1085*5113495bSYour Name */
1086*5113495bSYour Name 
1087*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_OFFSET                                  0x0000000000000020
1088*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_LSB                                     19
1089*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MSB                                     19
1090*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MASK                                    0x0000000000080000
1091*5113495bSYour Name 
1092*5113495bSYour Name 
1093*5113495bSYour Name /* Description		RESPONSE_DENSITY
1094*5113495bSYour Name 
1095*5113495bSYour Name 			Field only valid when Response_density_valid is set.
1096*5113495bSYour Name 			When Response_density_valid is NOT set, this field is set
1097*5113495bSYour Name 			 to 0
1098*5113495bSYour Name 
1099*5113495bSYour Name 			The MPDU density is required for the response frame (in
1100*5113495bSYour Name 			us). PDG will translate this value into minimum number of
1101*5113495bSYour Name 			 words per MPDU and give this back to TXPCU in TLV PCU_PPDU_SETUP_USER
1102*5113495bSYour Name 			 field min_mpdu_spacing
1103*5113495bSYour Name 
1104*5113495bSYour Name 			TXPCU gets this value from a register.
1105*5113495bSYour Name 			<legal all>
1106*5113495bSYour Name */
1107*5113495bSYour Name 
1108*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_OFFSET                                        0x0000000000000020
1109*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_LSB                                           20
1110*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_MSB                                           24
1111*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_DENSITY_MASK                                          0x0000000001f00000
1112*5113495bSYour Name 
1113*5113495bSYour Name 
1114*5113495bSYour Name /* Description		MORE_DATA
1115*5113495bSYour Name 
1116*5113495bSYour Name 			This setting is used for
1117*5113495bSYour Name 			NDP ACK response frames
1118*5113495bSYour Name 			NDP Modified ACK response frames
1119*5113495bSYour Name 			The value of this field comes from a register programming.
1120*5113495bSYour Name 			The register resides in TxPCU and is programmed by SW within
1121*5113495bSYour Name 			 SIFS response time when responding with NDP ACK or NDP
1122*5113495bSYour Name 			Modified ACK.
1123*5113495bSYour Name 			<legal all>
1124*5113495bSYour Name */
1125*5113495bSYour Name 
1126*5113495bSYour Name #define PDG_RESPONSE_MORE_DATA_OFFSET                                               0x0000000000000020
1127*5113495bSYour Name #define PDG_RESPONSE_MORE_DATA_LSB                                                  25
1128*5113495bSYour Name #define PDG_RESPONSE_MORE_DATA_MSB                                                  25
1129*5113495bSYour Name #define PDG_RESPONSE_MORE_DATA_MASK                                                 0x0000000002000000
1130*5113495bSYour Name 
1131*5113495bSYour Name 
1132*5113495bSYour Name /* Description		DURATION_INDICATION
1133*5113495bSYour Name 
1134*5113495bSYour Name 			This setting is used for
1135*5113495bSYour Name 			NDP ACK response frames
1136*5113495bSYour Name 			NDP Modified ACK response frames
1137*5113495bSYour Name 			The value of this field comes from a register programming.
1138*5113495bSYour Name 			The register resides in TxPCU and is programmed by SW within
1139*5113495bSYour Name 			 SIFS response time when responding with NDP ACK or NDP
1140*5113495bSYour Name 			Modified ACK.
1141*5113495bSYour Name 			<legal all>
1142*5113495bSYour Name */
1143*5113495bSYour Name 
1144*5113495bSYour Name #define PDG_RESPONSE_DURATION_INDICATION_OFFSET                                     0x0000000000000020
1145*5113495bSYour Name #define PDG_RESPONSE_DURATION_INDICATION_LSB                                        26
1146*5113495bSYour Name #define PDG_RESPONSE_DURATION_INDICATION_MSB                                        26
1147*5113495bSYour Name #define PDG_RESPONSE_DURATION_INDICATION_MASK                                       0x0000000004000000
1148*5113495bSYour Name 
1149*5113495bSYour Name 
1150*5113495bSYour Name /* Description		RELAYED_FRAME
1151*5113495bSYour Name 
1152*5113495bSYour Name 			This setting is used to fill the field in the SIG preamble
1153*5113495bSYour Name 			 for
1154*5113495bSYour Name 			NDP ACK response frame
1155*5113495bSYour Name 			This feature is not supported and TxPCU should program this
1156*5113495bSYour Name 			 field to Zero. PDG will ignore this field.
1157*5113495bSYour Name 			<legal all>
1158*5113495bSYour Name */
1159*5113495bSYour Name 
1160*5113495bSYour Name #define PDG_RESPONSE_RELAYED_FRAME_OFFSET                                           0x0000000000000020
1161*5113495bSYour Name #define PDG_RESPONSE_RELAYED_FRAME_LSB                                              27
1162*5113495bSYour Name #define PDG_RESPONSE_RELAYED_FRAME_MSB                                              27
1163*5113495bSYour Name #define PDG_RESPONSE_RELAYED_FRAME_MASK                                             0x0000000008000000
1164*5113495bSYour Name 
1165*5113495bSYour Name 
1166*5113495bSYour Name /* Description		ADDRESS_INDICATOR
1167*5113495bSYour Name 
1168*5113495bSYour Name 			This bit is used to fill the address_indicator field in
1169*5113495bSYour Name 			the SIG preamble of NDP CTS response frame.
1170*5113495bSYour Name 
1171*5113495bSYour Name 			This feature is not supported and TxPCU should program this
1172*5113495bSYour Name 			 field to Zero. PDG will use this field to populate the
1173*5113495bSYour Name 			NDP response frame
1174*5113495bSYour Name 			<legal all>
1175*5113495bSYour Name */
1176*5113495bSYour Name 
1177*5113495bSYour Name #define PDG_RESPONSE_ADDRESS_INDICATOR_OFFSET                                       0x0000000000000020
1178*5113495bSYour Name #define PDG_RESPONSE_ADDRESS_INDICATOR_LSB                                          28
1179*5113495bSYour Name #define PDG_RESPONSE_ADDRESS_INDICATOR_MSB                                          28
1180*5113495bSYour Name #define PDG_RESPONSE_ADDRESS_INDICATOR_MASK                                         0x0000000010000000
1181*5113495bSYour Name 
1182*5113495bSYour Name 
1183*5113495bSYour Name /* Description		BANDWIDTH
1184*5113495bSYour Name 
1185*5113495bSYour Name 			Packet bandwidth:
1186*5113495bSYour Name 
1187*5113495bSYour Name 			<enum 0 20_mhz>20 Mhz BW
1188*5113495bSYour Name 			<enum 1 40_mhz>40 Mhz BW
1189*5113495bSYour Name 			<enum 2 80_mhz>80 Mhz BW
1190*5113495bSYour Name 			<enum 3 160_mhz>160 Mhz BW
1191*5113495bSYour Name 			<enum 4 320_mhz>320 Mhz BW
1192*5113495bSYour Name 			<enum 5 240_mhz>240 Mhz BW
1193*5113495bSYour Name */
1194*5113495bSYour Name 
1195*5113495bSYour Name #define PDG_RESPONSE_BANDWIDTH_OFFSET                                               0x0000000000000020
1196*5113495bSYour Name #define PDG_RESPONSE_BANDWIDTH_LSB                                                  29
1197*5113495bSYour Name #define PDG_RESPONSE_BANDWIDTH_MSB                                                  31
1198*5113495bSYour Name #define PDG_RESPONSE_BANDWIDTH_MASK                                                 0x00000000e0000000
1199*5113495bSYour Name 
1200*5113495bSYour Name 
1201*5113495bSYour Name /* Description		ACK_ID
1202*5113495bSYour Name 
1203*5113495bSYour Name 			ACK_ID in NDP_ACK frames, NDP Modified ACK frames
1204*5113495bSYour Name 
1205*5113495bSYour Name 			For BW > 1MHz
1206*5113495bSYour Name 			      [15:0] = ack_id
1207*5113495bSYour Name 
1208*5113495bSYour Name 			For BW = 1MHz
1209*5113495bSYour Name 
1210*5113495bSYour Name 			     [8:0] = ack_id
1211*5113495bSYour Name 			     [15:9] = Reserved
1212*5113495bSYour Name 			For NDP BA
1213*5113495bSYour Name 			If BW=1MHz
1214*5113495bSYour Name 			     [1:0] = Block ACK ID
1215*5113495bSYour Name 			     [15:2] = Reserved
1216*5113495bSYour Name 
1217*5113495bSYour Name 			If BW>1MHz
1218*5113495bSYour Name 			     [5:0] = Block ACK ID
1219*5113495bSYour Name 			     [15:2] = Reserved
1220*5113495bSYour Name 			<legal all>
1221*5113495bSYour Name */
1222*5113495bSYour Name 
1223*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_OFFSET                                                  0x0000000000000020
1224*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_LSB                                                     32
1225*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_MSB                                                     47
1226*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_MASK                                                    0x0000ffff00000000
1227*5113495bSYour Name 
1228*5113495bSYour Name 
1229*5113495bSYour Name /* Description		BLOCK_ACK_BITMAP
1230*5113495bSYour Name 
1231*5113495bSYour Name 			Block Ack bitmap field for generating the NDP BA frames
1232*5113495bSYour Name 			in 1MHz and >= 2MHz
1233*5113495bSYour Name 			<legal all>
1234*5113495bSYour Name */
1235*5113495bSYour Name 
1236*5113495bSYour Name #define PDG_RESPONSE_BLOCK_ACK_BITMAP_OFFSET                                        0x0000000000000020
1237*5113495bSYour Name #define PDG_RESPONSE_BLOCK_ACK_BITMAP_LSB                                           48
1238*5113495bSYour Name #define PDG_RESPONSE_BLOCK_ACK_BITMAP_MSB                                           63
1239*5113495bSYour Name #define PDG_RESPONSE_BLOCK_ACK_BITMAP_MASK                                          0xffff000000000000
1240*5113495bSYour Name 
1241*5113495bSYour Name 
1242*5113495bSYour Name /* Description		RESPONSE_FRAME_TYPE
1243*5113495bSYour Name 
1244*5113495bSYour Name 			Coex related field
1245*5113495bSYour Name 			<enum 0 Non_11ah_ACK >
1246*5113495bSYour Name 			<enum 1 Non_11ah_BA >  also used for M-BA
1247*5113495bSYour Name 			<enum 2 Non_11ah_CTS >
1248*5113495bSYour Name 			<enum 3 AH_NDP_CTS>
1249*5113495bSYour Name 			<enum 4 AH_NDP_ACK>
1250*5113495bSYour Name 			<enum 5 AH_NDP_BA>
1251*5113495bSYour Name 			<enum 6 AH_NDP_MOD_ACK>
1252*5113495bSYour Name 			<enum 7 AH_Normal_ACK>
1253*5113495bSYour Name 			<enum 8 AH_Normal_BA>
1254*5113495bSYour Name 			<enum 9  RTT_ACK>
1255*5113495bSYour Name 			<enum 10 CBF_RESPONSE>
1256*5113495bSYour Name 			<enum 11 MBA> This can be a multi STA BA or multi TID BA
1257*5113495bSYour Name 
1258*5113495bSYour Name 			<enum 12 Ranging_NDP>
1259*5113495bSYour Name 			<enum 13 LMR_RESPONSE> Ranging NDP response followed by
1260*5113495bSYour Name 			LMR response for Rx ranging NDPA followed by NDP
1261*5113495bSYour Name 
1262*5113495bSYour Name 			<legal 0-13>
1263*5113495bSYour Name */
1264*5113495bSYour Name 
1265*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_OFFSET                                     0x0000000000000028
1266*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_LSB                                        0
1267*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MSB                                        3
1268*5113495bSYour Name #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MASK                                       0x000000000000000f
1269*5113495bSYour Name 
1270*5113495bSYour Name 
1271*5113495bSYour Name /* Description		ACK_ID_EXT
1272*5113495bSYour Name 
1273*5113495bSYour Name 			This is populated by TxPCU from the RX_RESPONSE_REQUIRED_INFO.ack_id_ext.
1274*5113495bSYour Name 
1275*5113495bSYour Name */
1276*5113495bSYour Name 
1277*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_EXT_OFFSET                                              0x0000000000000028
1278*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_EXT_LSB                                                 4
1279*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_EXT_MSB                                                 13
1280*5113495bSYour Name #define PDG_RESPONSE_ACK_ID_EXT_MASK                                                0x0000000000003ff0
1281*5113495bSYour Name 
1282*5113495bSYour Name 
1283*5113495bSYour Name /* Description		FTM_EN
1284*5113495bSYour Name 
1285*5113495bSYour Name 			This field is set to 1 if the response packet is either
1286*5113495bSYour Name 			an FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az).
1287*5113495bSYour Name 
1288*5113495bSYour Name 
1289*5113495bSYour Name 			0: non-FTM frame
1290*5113495bSYour Name 			1: FTM or HE-Randing NDP Frame
1291*5113495bSYour Name 			<legal all>
1292*5113495bSYour Name */
1293*5113495bSYour Name 
1294*5113495bSYour Name #define PDG_RESPONSE_FTM_EN_OFFSET                                                  0x0000000000000028
1295*5113495bSYour Name #define PDG_RESPONSE_FTM_EN_LSB                                                     14
1296*5113495bSYour Name #define PDG_RESPONSE_FTM_EN_MSB                                                     14
1297*5113495bSYour Name #define PDG_RESPONSE_FTM_EN_MASK                                                    0x0000000000004000
1298*5113495bSYour Name 
1299*5113495bSYour Name 
1300*5113495bSYour Name /* Description		GROUP_ID
1301*5113495bSYour Name 
1302*5113495bSYour Name 			Specifies the Group ID of response frames transmitted at
1303*5113495bSYour Name 			 VHT rates for MU transmissions. This filed applies to both
1304*5113495bSYour Name 			 non-11ah and 11ah modes.
1305*5113495bSYour Name */
1306*5113495bSYour Name 
1307*5113495bSYour Name #define PDG_RESPONSE_GROUP_ID_OFFSET                                                0x0000000000000028
1308*5113495bSYour Name #define PDG_RESPONSE_GROUP_ID_LSB                                                   15
1309*5113495bSYour Name #define PDG_RESPONSE_GROUP_ID_MSB                                                   20
1310*5113495bSYour Name #define PDG_RESPONSE_GROUP_ID_MASK                                                  0x00000000001f8000
1311*5113495bSYour Name 
1312*5113495bSYour Name 
1313*5113495bSYour Name /* Description		STA_PARTIAL_AID
1314*5113495bSYour Name 
1315*5113495bSYour Name 			In 11AH mode of Operation:
1316*5113495bSYour Name 
1317*5113495bSYour Name 			This field is used to populate the ID field in the SIG PPDUs
1318*5113495bSYour Name 			 of BW>1MHz and non-NDP frames.  For example, the use case
1319*5113495bSYour Name 			 would be in a Speed Frame Exchange, we may be generating
1320*5113495bSYour Name 			 the SIG PPDU in response and this field is needed to populate
1321*5113495bSYour Name 			 the ID field in the SIGA preamble . This value is based
1322*5113495bSYour Name 			 on the Table provided by 9.17b section of the Draft P802.11ah_D1.1
1323*5113495bSYour Name 			 Specification
1324*5113495bSYour Name 
1325*5113495bSYour Name 			In 11AH mode of Operation:
1326*5113495bSYour Name 
1327*5113495bSYour Name 			This field is also used to populate the field of RA/Parial_BSSID
1328*5113495bSYour Name 			 in the NDP CTS response frames In non-11AH mode:
1329*5113495bSYour Name 
1330*5113495bSYour Name 			In non-11AH mode of Operation:
1331*5113495bSYour Name 
1332*5113495bSYour Name 			Specifies the partial AID of response frames transmitted
1333*5113495bSYour Name 			 at VHT rates.
1334*5113495bSYour Name 			<legal all>
1335*5113495bSYour Name */
1336*5113495bSYour Name 
1337*5113495bSYour Name #define PDG_RESPONSE_STA_PARTIAL_AID_OFFSET                                         0x0000000000000028
1338*5113495bSYour Name #define PDG_RESPONSE_STA_PARTIAL_AID_LSB                                            21
1339*5113495bSYour Name #define PDG_RESPONSE_STA_PARTIAL_AID_MSB                                            31
1340*5113495bSYour Name #define PDG_RESPONSE_STA_PARTIAL_AID_MASK                                           0x00000000ffe00000
1341*5113495bSYour Name 
1342*5113495bSYour Name 
1343*5113495bSYour Name /* Description		NDP_BA_START_SEQ_CTRL
1344*5113495bSYour Name 
1345*5113495bSYour Name 			Starting Sequence Control  - Sequence number of the first
1346*5113495bSYour Name 			 MPDU in the frame soliciting the Block Ack.
1347*5113495bSYour Name */
1348*5113495bSYour Name 
1349*5113495bSYour Name #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_OFFSET                                   0x0000000000000028
1350*5113495bSYour Name #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_LSB                                      32
1351*5113495bSYour Name #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MSB                                      43
1352*5113495bSYour Name #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MASK                                     0x00000fff00000000
1353*5113495bSYour Name 
1354*5113495bSYour Name 
1355*5113495bSYour Name /* Description		ACTIVE_CHANNEL
1356*5113495bSYour Name 
1357*5113495bSYour Name 			This field indicates the active frequency band when the
1358*5113495bSYour Name 			packet bandwidth is less than the channel bandwidth. For
1359*5113495bSYour Name 			 non 11ax packets this is same as the primary channel
1360*5113495bSYour Name 			<legal all>
1361*5113495bSYour Name */
1362*5113495bSYour Name 
1363*5113495bSYour Name #define PDG_RESPONSE_ACTIVE_CHANNEL_OFFSET                                          0x0000000000000028
1364*5113495bSYour Name #define PDG_RESPONSE_ACTIVE_CHANNEL_LSB                                             44
1365*5113495bSYour Name #define PDG_RESPONSE_ACTIVE_CHANNEL_MSB                                             46
1366*5113495bSYour Name #define PDG_RESPONSE_ACTIVE_CHANNEL_MASK                                            0x0000700000000000
1367*5113495bSYour Name 
1368*5113495bSYour Name 
1369*5113495bSYour Name /* Description		TXOP_DURATION_ALL_ONES
1370*5113495bSYour Name 
1371*5113495bSYour Name 			When set, either the TXOP_DURATION of the received frame
1372*5113495bSYour Name 			 was set to all 1s or there is a BSS color collision. The
1373*5113495bSYour Name 			 TXOP_DURATION of the transmit response should be forced
1374*5113495bSYour Name 			 to all 1s.
1375*5113495bSYour Name 
1376*5113495bSYour Name 			<legal all>
1377*5113495bSYour Name */
1378*5113495bSYour Name 
1379*5113495bSYour Name #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_OFFSET                                  0x0000000000000028
1380*5113495bSYour Name #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_LSB                                     47
1381*5113495bSYour Name #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MSB                                     47
1382*5113495bSYour Name #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MASK                                    0x0000800000000000
1383*5113495bSYour Name 
1384*5113495bSYour Name 
1385*5113495bSYour Name /* Description		FRAME_LENGTH
1386*5113495bSYour Name 
1387*5113495bSYour Name 			The response frame length in bytes
1388*5113495bSYour Name 			(This includes the FCS field)
1389*5113495bSYour Name 			<legal all>
1390*5113495bSYour Name */
1391*5113495bSYour Name 
1392*5113495bSYour Name #define PDG_RESPONSE_FRAME_LENGTH_OFFSET                                            0x0000000000000028
1393*5113495bSYour Name #define PDG_RESPONSE_FRAME_LENGTH_LSB                                               48
1394*5113495bSYour Name #define PDG_RESPONSE_FRAME_LENGTH_MSB                                               63
1395*5113495bSYour Name #define PDG_RESPONSE_FRAME_LENGTH_MASK                                              0xffff000000000000
1396*5113495bSYour Name 
1397*5113495bSYour Name 
1398*5113495bSYour Name 
1399*5113495bSYour Name #endif   // PDG_RESPONSE
1400