pdg_response.h 54 KB

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