pdg_response.h 54 KB

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