pdg_response_rate_setting.h 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042
  1. /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  2. *
  3. * Permission to use, copy, modify, and/or distribute this software for any
  4. * purpose with or without fee is hereby granted, provided that the above
  5. * copyright notice and this permission notice appear in all copies.
  6. *
  7. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  8. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  9. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. */
  15. #ifndef _PDG_RESPONSE_RATE_SETTING_H_
  16. #define _PDG_RESPONSE_RATE_SETTING_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "mlo_sta_id_details.h"
  20. #define NUM_OF_DWORDS_PDG_RESPONSE_RATE_SETTING 7
  21. struct pdg_response_rate_setting {
  22. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  23. uint32_t reserved_0a : 1, // [0:0]
  24. tx_antenna_sector_ctrl : 24, // [24:1]
  25. pkt_type : 4, // [28:25]
  26. smoothing : 1, // [29:29]
  27. ldpc : 1, // [30:30]
  28. stbc : 1; // [31:31]
  29. uint32_t alt_tx_pwr : 8, // [7:0]
  30. alt_min_tx_pwr : 8, // [15:8]
  31. alt_nss : 3, // [18:16]
  32. alt_tx_chain_mask : 8, // [26:19]
  33. alt_bw : 3, // [29:27]
  34. stf_ltf_3db_boost : 1, // [30:30]
  35. force_extra_symbol : 1; // [31:31]
  36. uint32_t alt_rate_mcs : 4, // [3:0]
  37. nss : 3, // [6:4]
  38. dpd_enable : 1, // [7:7]
  39. tx_pwr : 8, // [15:8]
  40. min_tx_pwr : 8, // [23:16]
  41. tx_chain_mask : 8; // [31:24]
  42. uint32_t reserved_3a : 8, // [7:0]
  43. sgi : 2, // [9:8]
  44. rate_mcs : 4, // [13:10]
  45. reserved_3b : 2, // [15:14]
  46. tx_pwr_1 : 8, // [23:16]
  47. alt_tx_pwr_1 : 8; // [31:24]
  48. uint32_t aggregation : 1, // [0:0]
  49. dot11ax_bss_color_id : 6, // [6:1]
  50. dot11ax_spatial_reuse : 4, // [10:7]
  51. dot11ax_cp_ltf_size : 2, // [12:11]
  52. dot11ax_dcm : 1, // [13:13]
  53. dot11ax_doppler_indication : 1, // [14:14]
  54. dot11ax_su_extended : 1, // [15:15]
  55. dot11ax_min_packet_extension : 2, // [17:16]
  56. dot11ax_pe_nss : 3, // [20:18]
  57. dot11ax_pe_content : 1, // [21:21]
  58. dot11ax_pe_ltf_size : 2, // [23:22]
  59. dot11ax_chain_csd_en : 1, // [24:24]
  60. dot11ax_pe_chain_csd_en : 1, // [25:25]
  61. dot11ax_dl_ul_flag : 1, // [26:26]
  62. reserved_4a : 5; // [31:27]
  63. uint32_t dot11ax_ext_ru_start_index : 4, // [3:0]
  64. dot11ax_ext_ru_size : 4, // [7:4]
  65. eht_duplicate_mode : 2, // [9:8]
  66. he_sigb_dcm : 1, // [10:10]
  67. he_sigb_0_mcs : 3, // [13:11]
  68. num_he_sigb_sym : 5, // [18:14]
  69. required_response_time_source : 1, // [19:19]
  70. reserved_5a : 6, // [25:20]
  71. u_sig_puncture_pattern_encoding : 6; // [31:26]
  72. struct mlo_sta_id_details mlo_sta_id_details_rx;
  73. uint16_t required_response_time : 12, // [27:16]
  74. dot11be_params_placeholder : 4; // [31:28]
  75. #else
  76. uint32_t stbc : 1, // [31:31]
  77. ldpc : 1, // [30:30]
  78. smoothing : 1, // [29:29]
  79. pkt_type : 4, // [28:25]
  80. tx_antenna_sector_ctrl : 24, // [24:1]
  81. reserved_0a : 1; // [0:0]
  82. uint32_t force_extra_symbol : 1, // [31:31]
  83. stf_ltf_3db_boost : 1, // [30:30]
  84. alt_bw : 3, // [29:27]
  85. alt_tx_chain_mask : 8, // [26:19]
  86. alt_nss : 3, // [18:16]
  87. alt_min_tx_pwr : 8, // [15:8]
  88. alt_tx_pwr : 8; // [7:0]
  89. uint32_t tx_chain_mask : 8, // [31:24]
  90. min_tx_pwr : 8, // [23:16]
  91. tx_pwr : 8, // [15:8]
  92. dpd_enable : 1, // [7:7]
  93. nss : 3, // [6:4]
  94. alt_rate_mcs : 4; // [3:0]
  95. uint32_t alt_tx_pwr_1 : 8, // [31:24]
  96. tx_pwr_1 : 8, // [23:16]
  97. reserved_3b : 2, // [15:14]
  98. rate_mcs : 4, // [13:10]
  99. sgi : 2, // [9:8]
  100. reserved_3a : 8; // [7:0]
  101. uint32_t reserved_4a : 5, // [31:27]
  102. dot11ax_dl_ul_flag : 1, // [26:26]
  103. dot11ax_pe_chain_csd_en : 1, // [25:25]
  104. dot11ax_chain_csd_en : 1, // [24:24]
  105. dot11ax_pe_ltf_size : 2, // [23:22]
  106. dot11ax_pe_content : 1, // [21:21]
  107. dot11ax_pe_nss : 3, // [20:18]
  108. dot11ax_min_packet_extension : 2, // [17:16]
  109. dot11ax_su_extended : 1, // [15:15]
  110. dot11ax_doppler_indication : 1, // [14:14]
  111. dot11ax_dcm : 1, // [13:13]
  112. dot11ax_cp_ltf_size : 2, // [12:11]
  113. dot11ax_spatial_reuse : 4, // [10:7]
  114. dot11ax_bss_color_id : 6, // [6:1]
  115. aggregation : 1; // [0:0]
  116. uint32_t u_sig_puncture_pattern_encoding : 6, // [31:26]
  117. reserved_5a : 6, // [25:20]
  118. required_response_time_source : 1, // [19:19]
  119. num_he_sigb_sym : 5, // [18:14]
  120. he_sigb_0_mcs : 3, // [13:11]
  121. he_sigb_dcm : 1, // [10:10]
  122. eht_duplicate_mode : 2, // [9:8]
  123. dot11ax_ext_ru_size : 4, // [7:4]
  124. dot11ax_ext_ru_start_index : 4; // [3:0]
  125. uint32_t dot11be_params_placeholder : 4, // [31:28]
  126. required_response_time : 12; // [27:16]
  127. struct mlo_sta_id_details mlo_sta_id_details_rx;
  128. #endif
  129. };
  130. /* Description RESERVED_0A
  131. <legal 0>
  132. */
  133. #define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_OFFSET 0x00000000
  134. #define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_LSB 0
  135. #define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_MSB 0
  136. #define PDG_RESPONSE_RATE_SETTING_RESERVED_0A_MASK 0x00000001
  137. /* Description TX_ANTENNA_SECTOR_CTRL
  138. Sectored transmit antenna
  139. <legal all>
  140. */
  141. #define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x00000000
  142. #define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_LSB 1
  143. #define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_MSB 24
  144. #define PDG_RESPONSE_RATE_SETTING_TX_ANTENNA_SECTOR_CTRL_MASK 0x01fffffe
  145. /* Description PKT_TYPE
  146. Packet type:
  147. <enum 0 dot11a>802.11a PPDU type
  148. <enum 1 dot11b>802.11b PPDU type
  149. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  150. <enum 3 dot11ac>802.11ac PPDU type
  151. <enum 4 dot11ax>802.11ax PPDU type
  152. <enum 5 dot11ba>802.11ba (WUR) PPDU type
  153. <enum 6 dot11be>802.11be PPDU type
  154. <enum 7 dot11az>802.11az (ranging) PPDU type
  155. <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported
  156. & aborted)
  157. */
  158. #define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_OFFSET 0x00000000
  159. #define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_LSB 25
  160. #define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_MSB 28
  161. #define PDG_RESPONSE_RATE_SETTING_PKT_TYPE_MASK 0x1e000000
  162. /* Description SMOOTHING
  163. This field is used by PDG to populate the SMOOTHING filed
  164. in the SIG Preamble of the PPDU
  165. <legal 0-1>
  166. */
  167. #define PDG_RESPONSE_RATE_SETTING_SMOOTHING_OFFSET 0x00000000
  168. #define PDG_RESPONSE_RATE_SETTING_SMOOTHING_LSB 29
  169. #define PDG_RESPONSE_RATE_SETTING_SMOOTHING_MSB 29
  170. #define PDG_RESPONSE_RATE_SETTING_SMOOTHING_MASK 0x20000000
  171. /* Description LDPC
  172. When set, use LDPC transmission rates
  173. */
  174. #define PDG_RESPONSE_RATE_SETTING_LDPC_OFFSET 0x00000000
  175. #define PDG_RESPONSE_RATE_SETTING_LDPC_LSB 30
  176. #define PDG_RESPONSE_RATE_SETTING_LDPC_MSB 30
  177. #define PDG_RESPONSE_RATE_SETTING_LDPC_MASK 0x40000000
  178. /* Description STBC
  179. When set, use STBC transmission rates
  180. */
  181. #define PDG_RESPONSE_RATE_SETTING_STBC_OFFSET 0x00000000
  182. #define PDG_RESPONSE_RATE_SETTING_STBC_LSB 31
  183. #define PDG_RESPONSE_RATE_SETTING_STBC_MSB 31
  184. #define PDG_RESPONSE_RATE_SETTING_STBC_MASK 0x80000000
  185. /* Description ALT_TX_PWR
  186. Coex related AlternativeTransmit parameter
  187. Transmit Power in s6.2 format.
  188. In units of 0.25 dBm
  189. <legal all>
  190. */
  191. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_OFFSET 0x00000004
  192. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_LSB 0
  193. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_MSB 7
  194. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_MASK 0x000000ff
  195. /* Description ALT_MIN_TX_PWR
  196. Coex related Alternative Transmit parameter
  197. Minimum allowed Transmit Power in s6.2 format.
  198. In units of 0.25 dBm
  199. <legal all>
  200. */
  201. #define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_OFFSET 0x00000004
  202. #define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_LSB 8
  203. #define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_MSB 15
  204. #define PDG_RESPONSE_RATE_SETTING_ALT_MIN_TX_PWR_MASK 0x0000ff00
  205. /* Description ALT_NSS
  206. Coex related Alternative Transmit parameter
  207. Number of spatial streams.
  208. <enum 0 1_spatial_stream>Single spatial stream
  209. <enum 1 2_spatial_streams>2 spatial streams
  210. <enum 2 3_spatial_streams>3 spatial streams
  211. <enum 3 4_spatial_streams>4 spatial streams
  212. <enum 4 5_spatial_streams>5 spatial streams
  213. <enum 5 6_spatial_streams>6 spatial streams
  214. <enum 6 7_spatial_streams>7 spatial streams
  215. <enum 7 8_spatial_streams>8 spatial streams
  216. */
  217. #define PDG_RESPONSE_RATE_SETTING_ALT_NSS_OFFSET 0x00000004
  218. #define PDG_RESPONSE_RATE_SETTING_ALT_NSS_LSB 16
  219. #define PDG_RESPONSE_RATE_SETTING_ALT_NSS_MSB 18
  220. #define PDG_RESPONSE_RATE_SETTING_ALT_NSS_MASK 0x00070000
  221. /* Description ALT_TX_CHAIN_MASK
  222. Coex related Alternative Transmit parameter
  223. Chain mask to support up to 8 antennas.
  224. <legal 1-255>
  225. */
  226. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_OFFSET 0x00000004
  227. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_LSB 19
  228. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_MSB 26
  229. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_CHAIN_MASK_MASK 0x07f80000
  230. /* Description ALT_BW
  231. Coex related Alternative Transmit parameter
  232. The BW of the upcoming transmission.
  233. <enum 0 20_mhz>20 Mhz BW
  234. <enum 1 40_mhz>40 Mhz BW
  235. <enum 2 80_mhz>80 Mhz BW
  236. <enum 3 160_mhz>160 Mhz BW
  237. <enum 4 320_mhz>320 Mhz BW
  238. <enum 5 240_mhz>240 Mhz BW
  239. */
  240. #define PDG_RESPONSE_RATE_SETTING_ALT_BW_OFFSET 0x00000004
  241. #define PDG_RESPONSE_RATE_SETTING_ALT_BW_LSB 27
  242. #define PDG_RESPONSE_RATE_SETTING_ALT_BW_MSB 29
  243. #define PDG_RESPONSE_RATE_SETTING_ALT_BW_MASK 0x38000000
  244. /* Description STF_LTF_3DB_BOOST
  245. Boost the STF and LTF power by 3dB in 11a/n/ac packets.
  246. This includes both the legacy preambles and the HT/VHT preambles.0:
  247. disable power boost1: enable power boost
  248. <legal all>
  249. */
  250. #define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_OFFSET 0x00000004
  251. #define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_LSB 30
  252. #define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_MSB 30
  253. #define PDG_RESPONSE_RATE_SETTING_STF_LTF_3DB_BOOST_MASK 0x40000000
  254. /* Description FORCE_EXTRA_SYMBOL
  255. Set to 1 to force an extra OFDM symbol (or symbols) even
  256. if the PPDU encoding process does not result in an extra
  257. OFDM symbol (or symbols)
  258. */
  259. #define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_OFFSET 0x00000004
  260. #define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_LSB 31
  261. #define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_MSB 31
  262. #define PDG_RESPONSE_RATE_SETTING_FORCE_EXTRA_SYMBOL_MASK 0x80000000
  263. /* Description ALT_RATE_MCS
  264. Coex related Alternative Transmit parameter
  265. For details, refer to MCS_TYPE
  266. Note: This is "rate" in case of 11a/11b
  267. description
  268. <legal all>
  269. */
  270. #define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_OFFSET 0x00000008
  271. #define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_LSB 0
  272. #define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_MSB 3
  273. #define PDG_RESPONSE_RATE_SETTING_ALT_RATE_MCS_MASK 0x0000000f
  274. /* Description NSS
  275. Number of spatial streams.
  276. <enum 0 1_spatial_stream>Single spatial stream
  277. <enum 1 2_spatial_streams>2 spatial streams
  278. <enum 2 3_spatial_streams>3 spatial streams
  279. <enum 3 4_spatial_streams>4 spatial streams
  280. <enum 4 5_spatial_streams>5 spatial streams
  281. <enum 5 6_spatial_streams>6 spatial streams
  282. <enum 6 7_spatial_streams>7 spatial streams
  283. <enum 7 8_spatial_streams>8 spatial streams
  284. */
  285. #define PDG_RESPONSE_RATE_SETTING_NSS_OFFSET 0x00000008
  286. #define PDG_RESPONSE_RATE_SETTING_NSS_LSB 4
  287. #define PDG_RESPONSE_RATE_SETTING_NSS_MSB 6
  288. #define PDG_RESPONSE_RATE_SETTING_NSS_MASK 0x00000070
  289. /* Description DPD_ENABLE
  290. DPD enable control
  291. This is needed on a per packet basis
  292. <enum 0 dpd_off> DPD profile not applied to current
  293. packet
  294. <enum 1 dpd_on> DPD profile applied to current packet
  295. if available
  296. <legal 0-1>
  297. This field is not applicable in11ah mode of operation and
  298. is ignored by the HW
  299. */
  300. #define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_OFFSET 0x00000008
  301. #define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_LSB 7
  302. #define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_MSB 7
  303. #define PDG_RESPONSE_RATE_SETTING_DPD_ENABLE_MASK 0x00000080
  304. /* Description TX_PWR
  305. Transmit Power in s6.2 format.
  306. In units of 0.25 dBm
  307. <legal all>
  308. */
  309. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_OFFSET 0x00000008
  310. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_LSB 8
  311. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_MSB 15
  312. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_MASK 0x0000ff00
  313. /* Description MIN_TX_PWR
  314. Coex related field:
  315. Minimum allowed Transmit Power in s6.2 format.
  316. In units of 0.25 dBm
  317. <legal all>
  318. */
  319. #define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_OFFSET 0x00000008
  320. #define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_LSB 16
  321. #define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_MSB 23
  322. #define PDG_RESPONSE_RATE_SETTING_MIN_TX_PWR_MASK 0x00ff0000
  323. /* Description TX_CHAIN_MASK
  324. Chain mask to support up to 8 antennas.
  325. <legal 1-255>
  326. */
  327. #define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_OFFSET 0x00000008
  328. #define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_LSB 24
  329. #define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_MSB 31
  330. #define PDG_RESPONSE_RATE_SETTING_TX_CHAIN_MASK_MASK 0xff000000
  331. /* Description RESERVED_3A
  332. <legal 0>
  333. */
  334. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_OFFSET 0x0000000c
  335. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_LSB 0
  336. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_MSB 7
  337. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3A_MASK 0x000000ff
  338. /* Description SGI
  339. Field only valid when pkt type is HT or VHT.For 11ax see
  340. field Dot11ax_CP_LTF_size
  341. <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used
  342. for HE
  343. <enum 1 0_4_us_sgi > Legacy short GI. Can also be used
  344. for HE
  345. <enum 2 1_6_us_sgi > Not used for pre 11ax pkt_types.
  346. <enum 3 3_2_us_sgi > Not used for pre 11ax pkt_types
  347. <legal 0 - 3>
  348. */
  349. #define PDG_RESPONSE_RATE_SETTING_SGI_OFFSET 0x0000000c
  350. #define PDG_RESPONSE_RATE_SETTING_SGI_LSB 8
  351. #define PDG_RESPONSE_RATE_SETTING_SGI_MSB 9
  352. #define PDG_RESPONSE_RATE_SETTING_SGI_MASK 0x00000300
  353. /* Description RATE_MCS
  354. For details, refer to MCS_TYPE description
  355. Note: This is "rate" in case of 11a/11b
  356. <legal all>
  357. */
  358. #define PDG_RESPONSE_RATE_SETTING_RATE_MCS_OFFSET 0x0000000c
  359. #define PDG_RESPONSE_RATE_SETTING_RATE_MCS_LSB 10
  360. #define PDG_RESPONSE_RATE_SETTING_RATE_MCS_MSB 13
  361. #define PDG_RESPONSE_RATE_SETTING_RATE_MCS_MASK 0x00003c00
  362. /* Description RESERVED_3B
  363. <legal 0>
  364. */
  365. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_OFFSET 0x0000000c
  366. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_LSB 14
  367. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_MSB 15
  368. #define PDG_RESPONSE_RATE_SETTING_RESERVED_3B_MASK 0x0000c000
  369. /* Description TX_PWR_1
  370. Default (desired) transmit parameter for the second chain
  371. Transmit Power in s6.2 format.
  372. In units of 0.25 dBm
  373. Note that there is no Min value for this
  374. <legal all>
  375. */
  376. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_OFFSET 0x0000000c
  377. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_LSB 16
  378. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_MSB 23
  379. #define PDG_RESPONSE_RATE_SETTING_TX_PWR_1_MASK 0x00ff0000
  380. /* Description ALT_TX_PWR_1
  381. Alternate (desired) transmit parameter for the second chain
  382. Transmit Power in s6.2 format.
  383. In units of 0.25 dBm
  384. Note that there is no Min value for this
  385. <legal all>
  386. */
  387. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_OFFSET 0x0000000c
  388. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_LSB 24
  389. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_MSB 31
  390. #define PDG_RESPONSE_RATE_SETTING_ALT_TX_PWR_1_MASK 0xff000000
  391. /* Description AGGREGATION
  392. Field only valid in case of pkt_type == 11n
  393. <enum 0 mpdu> Indicates MPDU format. TXPCU will select
  394. this setting if the CBF response only contains a single
  395. segment
  396. <enum 1 a_mpdu> Indicates A-MPDU format. TXPCU will
  397. select this setting if the CBF response will contain two
  398. or more segments
  399. <legal 0-1>
  400. */
  401. #define PDG_RESPONSE_RATE_SETTING_AGGREGATION_OFFSET 0x00000010
  402. #define PDG_RESPONSE_RATE_SETTING_AGGREGATION_LSB 0
  403. #define PDG_RESPONSE_RATE_SETTING_AGGREGATION_MSB 0
  404. #define PDG_RESPONSE_RATE_SETTING_AGGREGATION_MASK 0x00000001
  405. /* Description DOT11AX_BSS_COLOR_ID
  406. BSS color of the nextwork to which this STA belongs.
  407. When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id
  408. <legal all>
  409. */
  410. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_OFFSET 0x00000010
  411. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_LSB 1
  412. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_MSB 6
  413. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_BSS_COLOR_ID_MASK 0x0000007e
  414. /* Description DOT11AX_SPATIAL_REUSE
  415. This field is only valid for pkt_type == 11ax
  416. Spatial re-use
  417. <legal all>
  418. */
  419. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_OFFSET 0x00000010
  420. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_LSB 7
  421. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_MSB 10
  422. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SPATIAL_REUSE_MASK 0x00000780
  423. /* Description DOT11AX_CP_LTF_SIZE
  424. field is only valid for pkt_type == 11ax
  425. Indicates the CP and HE-LTF type
  426. <enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
  427. <enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
  428. <enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
  429. <enum 3 FourX_LTF_0_8CP_3_2CP>
  430. When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
  431. When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
  432. In this scenario, Neither DCM nor STBC is applied to HE
  433. data field.
  434. If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
  435. 0 = 1xLTF + 0.4 usec
  436. 1 = 2xLTF + 0.4 usec
  437. 2~3 = Reserved
  438. <legal all>
  439. */
  440. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_OFFSET 0x00000010
  441. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_LSB 11
  442. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_MSB 12
  443. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CP_LTF_SIZE_MASK 0x00001800
  444. /* Description DOT11AX_DCM
  445. field is only valid for pkt_type == 11ax
  446. Indicates whether dual sub-carrier modulation is applied
  447. 0: No DCM
  448. 1:DCM
  449. <legal all>
  450. */
  451. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_OFFSET 0x00000010
  452. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_LSB 13
  453. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_MSB 13
  454. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DCM_MASK 0x00002000
  455. /* Description DOT11AX_DOPPLER_INDICATION
  456. field is only valid for pkt_type == 11ax
  457. 0: No Doppler support
  458. 1: Doppler support
  459. <legal all>
  460. */
  461. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_OFFSET 0x00000010
  462. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_LSB 14
  463. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_MSB 14
  464. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DOPPLER_INDICATION_MASK 0x00004000
  465. /* Description DOT11AX_SU_EXTENDED
  466. field is only valid for pkt_type == 11ax OR pkt_type ==
  467. 11be
  468. When set, the 11ax or 11be frame is of the extended range
  469. format
  470. <legal all>
  471. */
  472. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_OFFSET 0x00000010
  473. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_LSB 15
  474. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_MSB 15
  475. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_SU_EXTENDED_MASK 0x00008000
  476. /* Description DOT11AX_MIN_PACKET_EXTENSION
  477. field is only valid for pkt_type == 11ax OR pkt_type ==
  478. 11be
  479. The min packet extension duration for this user.
  480. 0: no extension
  481. 1: 8us
  482. 2: 16 us
  483. 3: 20 us (only for .11be)
  484. <legal 0-3>
  485. */
  486. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x00000010
  487. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_LSB 16
  488. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_MSB 17
  489. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x00030000
  490. /* Description DOT11AX_PE_NSS
  491. Number of active spatial streams during packet extension.
  492. <enum 0 1_spatial_stream>Single spatial stream
  493. <enum 1 2_spatial_streams>2 spatial streams
  494. <enum 2 3_spatial_streams>3 spatial streams
  495. <enum 3 4_spatial_streams>4 spatial streams
  496. <enum 4 5_spatial_streams>5 spatial streams
  497. <enum 5 6_spatial_streams>6 spatial streams
  498. <enum 6 7_spatial_streams>7 spatial streams
  499. <enum 7 8_spatial_streams>8 spatial streams
  500. */
  501. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_OFFSET 0x00000010
  502. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_LSB 18
  503. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_MSB 20
  504. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_NSS_MASK 0x001c0000
  505. /* Description DOT11AX_PE_CONTENT
  506. Content of packet extension. Valid for all 11ax packets
  507. having packet extension
  508. 0-he_ltf, 1-last_data_symbol
  509. <legal all>
  510. */
  511. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_OFFSET 0x00000010
  512. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_LSB 21
  513. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_MSB 21
  514. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CONTENT_MASK 0x00200000
  515. /* Description DOT11AX_PE_LTF_SIZE
  516. LTF size to be used during packet extention. . This field
  517. is valid for both FTM and non-FTM packets.
  518. 0-1x
  519. 1-2x (unsupported un HWK-1)
  520. 2-4x (unsupported un HWK-1)
  521. <legal all>
  522. */
  523. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_OFFSET 0x00000010
  524. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_LSB 22
  525. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_MSB 23
  526. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_LTF_SIZE_MASK 0x00c00000
  527. /* Description DOT11AX_CHAIN_CSD_EN
  528. This field denotes whether to apply CSD on the preamble
  529. and data portion of the packet. This field is valid for
  530. all transmit packets
  531. 0: disable per-chain csd
  532. 1: enable per-chain csd
  533. <legal all>
  534. */
  535. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_OFFSET 0x00000010
  536. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_LSB 24
  537. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_MSB 24
  538. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_CHAIN_CSD_EN_MASK 0x01000000
  539. /* Description DOT11AX_PE_CHAIN_CSD_EN
  540. This field denotes whether to apply CSD on the packet extension
  541. portion of the packet. This field is valid for all 11ax
  542. packets.
  543. 0: disable per-chain csd
  544. 1: enable per-chain csd
  545. <legal all>
  546. */
  547. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x00000010
  548. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_LSB 25
  549. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_MSB 25
  550. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x02000000
  551. /* Description DOT11AX_DL_UL_FLAG
  552. field is only valid for pkt_type == 11ax
  553. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  554. <enum 1 DL_UL_FLAG_IS_UL>
  555. <legal all>
  556. */
  557. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_OFFSET 0x00000010
  558. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_LSB 26
  559. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_MSB 26
  560. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_DL_UL_FLAG_MASK 0x04000000
  561. /* Description RESERVED_4A
  562. <legal 0>
  563. */
  564. #define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_OFFSET 0x00000010
  565. #define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_LSB 27
  566. #define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_MSB 31
  567. #define PDG_RESPONSE_RATE_SETTING_RESERVED_4A_MASK 0xf8000000
  568. /* Description DOT11AX_EXT_RU_START_INDEX
  569. field is only valid for pkt_type == 11ax and Dot11ax_su_extended
  570. == 1
  571. RU Number to which User is assigned
  572. The RU numbering bitwidth is only enough to cover the 20MHz
  573. BW that extended range allows
  574. <legal 0-8>
  575. */
  576. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x00000014
  577. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_LSB 0
  578. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_MSB 3
  579. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f
  580. /* Description DOT11AX_EXT_RU_SIZE
  581. field is only valid for pkt_type == 11ax and Dot11ax_su_extended
  582. == 1 or pkt_type == 11be and EHT_duplicate_mode == 1
  583. The size of the RU for this user.
  584. In case of EHT duplicate transmissions, this field indicates
  585. the width of the actual content before duplication, e.g.
  586. a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth
  587. fields indicating 160 MHz and this field set to e-num 4
  588. (RU_484).
  589. <enum 0 RU_26>
  590. <enum 1 RU_52>
  591. <enum 2 RU_106>
  592. <enum 3 RU_242>
  593. <enum 4 RU_484>
  594. <enum 5 RU_996>
  595. <enum 6 RU_1992>
  596. <enum 7 RU_FULLBW> Set when the RU occupies the full packet
  597. bandwidth
  598. <enum 8 RU_FULLBW_240> Set when the RU occupies the full
  599. packet bandwidth
  600. <enum 9 RU_FULLBW_320> Set when the RU occupies the full
  601. packet bandwidth
  602. <enum 10 RU_MULTI_LARGE> DO NOT USE
  603. <enum 11 RU_78> DO NOT USE
  604. <enum 12 RU_132> DO NOT USE
  605. <legal 0-12>
  606. */
  607. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_OFFSET 0x00000014
  608. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_LSB 4
  609. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_MSB 7
  610. #define PDG_RESPONSE_RATE_SETTING_DOT11AX_EXT_RU_SIZE_MASK 0x000000f0
  611. /* Description EHT_DUPLICATE_MODE
  612. Field only valid for pkt_type == 11be
  613. Indicates EHT duplicate modulation
  614. <enum 0 eht_no_duplicate>
  615. <enum 1 eht_2x_duplicate>
  616. <enum 2 eht_4x_duplicate>
  617. <legal 0-2>
  618. */
  619. #define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_OFFSET 0x00000014
  620. #define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_LSB 8
  621. #define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_MSB 9
  622. #define PDG_RESPONSE_RATE_SETTING_EHT_DUPLICATE_MODE_MASK 0x00000300
  623. /* Description HE_SIGB_DCM
  624. Indicates whether dual sub-carrier modulation is applied
  625. to EHT-SIG
  626. <legal all>
  627. */
  628. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_OFFSET 0x00000014
  629. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_LSB 10
  630. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_MSB 10
  631. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_DCM_MASK 0x00000400
  632. /* Description HE_SIGB_0_MCS
  633. Indicates the MCS of EHT-SIG
  634. For details, refer to MCS_TYPE description
  635. <legal all>
  636. */
  637. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_OFFSET 0x00000014
  638. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_LSB 11
  639. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_MSB 13
  640. #define PDG_RESPONSE_RATE_SETTING_HE_SIGB_0_MCS_MASK 0x00003800
  641. /* Description NUM_HE_SIGB_SYM
  642. Indicates the number of EHT-SIG symbols
  643. This field is 0-based with 0 indicating that 1 eht_sig symbol
  644. needs to be transmitted.
  645. <legal all>
  646. */
  647. #define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_OFFSET 0x00000014
  648. #define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_LSB 14
  649. #define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_MSB 18
  650. #define PDG_RESPONSE_RATE_SETTING_NUM_HE_SIGB_SYM_MASK 0x0007c000
  651. /* Description REQUIRED_RESPONSE_TIME_SOURCE
  652. <enum 0 reqd_resp_time_src_is_RXPCU> Typically from received
  653. HT Control for sync MLO response
  654. <enum 1 reqd_resp_time_src_is_FW>
  655. Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response
  656. to response
  657. <legal all>
  658. */
  659. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x00000014
  660. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_LSB 19
  661. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_MSB 19
  662. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x00080000
  663. /* Description RESERVED_5A
  664. <legal 0>
  665. */
  666. #define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_OFFSET 0x00000014
  667. #define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_LSB 20
  668. #define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_MSB 25
  669. #define PDG_RESPONSE_RATE_SETTING_RESERVED_5A_MASK 0x03f00000
  670. /* Description U_SIG_PUNCTURE_PATTERN_ENCODING
  671. 6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO'
  672. to pass on to PDG
  673. <legal 0-29>
  674. */
  675. #define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x00000014
  676. #define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 26
  677. #define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 31
  678. #define PDG_RESPONSE_RATE_SETTING_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc000000
  679. /* Description MLO_STA_ID_DETAILS_RX
  680. 16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass
  681. on to PDG
  682. Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID'
  683. from address search.
  684. See definition of mlo_sta_id_details.
  685. */
  686. /* Description NSTR_MLO_STA_ID
  687. ID of peer participating in non-STR MLO
  688. */
  689. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x00000018
  690. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0
  691. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9
  692. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x000003ff
  693. /* Description BLOCK_SELF_ML_SYNC
  694. Only valid for TX
  695. When set, this provides an indication to block the peer
  696. for self-link.
  697. */
  698. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x00000018
  699. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10
  700. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10
  701. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x00000400
  702. /* Description BLOCK_PARTNER_ML_SYNC
  703. Only valid for TX
  704. When set, this provides an indication to block the peer
  705. for partner links.
  706. */
  707. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x00000018
  708. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11
  709. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11
  710. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x00000800
  711. /* Description NSTR_MLO_STA_ID_VALID
  712. All the fields in this TLV are valid only if this bit is
  713. set.
  714. */
  715. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x00000018
  716. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12
  717. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12
  718. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x00001000
  719. /* Description RESERVED_0A
  720. <legal 0>
  721. */
  722. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x00000018
  723. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13
  724. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15
  725. #define PDG_RESPONSE_RATE_SETTING_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x0000e000
  726. /* Description REQUIRED_RESPONSE_TIME
  727. When non-zero, indicates that PDG shall pad the response
  728. transmission to the indicated duration (in us)
  729. */
  730. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_OFFSET 0x00000018
  731. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_LSB 16
  732. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_MSB 27
  733. #define PDG_RESPONSE_RATE_SETTING_REQUIRED_RESPONSE_TIME_MASK 0x0fff0000
  734. /* Description DOT11BE_PARAMS_PLACEHOLDER
  735. 4 bytes for use as placeholders for 'Dot11be_*' parameters
  736. */
  737. #define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x00000018
  738. #define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_LSB 28
  739. #define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_MSB 31
  740. #define PDG_RESPONSE_RATE_SETTING_DOT11BE_PARAMS_PLACEHOLDER_MASK 0xf0000000
  741. #endif // PDG_RESPONSE_RATE_SETTING