tx_fes_status_start_ppdu.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  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 _TX_FES_STATUS_START_PPDU_H_
  16. #define _TX_FES_STATUS_START_PPDU_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #define NUM_OF_DWORDS_TX_FES_STATUS_START_PPDU 4
  20. #define NUM_OF_QWORDS_TX_FES_STATUS_START_PPDU 2
  21. struct tx_fes_status_start_ppdu {
  22. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  23. uint32_t ppdu_timestamp_lower_32 : 32; // [31:0]
  24. uint32_t ppdu_timestamp_upper_32 : 32; // [31:0]
  25. uint32_t subband_mask : 16, // [15:0]
  26. ndp_frame : 2, // [17:16]
  27. reserved_2b : 2, // [19:18]
  28. coex_based_tx_bw : 3, // [22:20]
  29. coex_based_ant_mask : 8, // [30:23]
  30. reserved_2c : 1; // [31:31]
  31. uint32_t coex_based_tx_pwr_shared_ant : 8, // [7:0]
  32. coex_based_tx_pwr_ant : 8, // [15:8]
  33. concurrent_bt_tx : 1, // [16:16]
  34. concurrent_wlan_tx : 1, // [17:17]
  35. concurrent_wan_tx : 1, // [18:18]
  36. concurrent_wan_rx : 1, // [19:19]
  37. coex_pwr_reduction_bt : 1, // [20:20]
  38. coex_pwr_reduction_wlan : 1, // [21:21]
  39. coex_pwr_reduction_wan : 1, // [22:22]
  40. coex_result_alt_based : 1, // [23:23]
  41. request_packet_bw : 3, // [26:24]
  42. response_type : 5; // [31:27]
  43. #else
  44. uint32_t ppdu_timestamp_lower_32 : 32; // [31:0]
  45. uint32_t ppdu_timestamp_upper_32 : 32; // [31:0]
  46. uint32_t reserved_2c : 1, // [31:31]
  47. coex_based_ant_mask : 8, // [30:23]
  48. coex_based_tx_bw : 3, // [22:20]
  49. reserved_2b : 2, // [19:18]
  50. ndp_frame : 2, // [17:16]
  51. subband_mask : 16; // [15:0]
  52. uint32_t response_type : 5, // [31:27]
  53. request_packet_bw : 3, // [26:24]
  54. coex_result_alt_based : 1, // [23:23]
  55. coex_pwr_reduction_wan : 1, // [22:22]
  56. coex_pwr_reduction_wlan : 1, // [21:21]
  57. coex_pwr_reduction_bt : 1, // [20:20]
  58. concurrent_wan_rx : 1, // [19:19]
  59. concurrent_wan_tx : 1, // [18:18]
  60. concurrent_wlan_tx : 1, // [17:17]
  61. concurrent_bt_tx : 1, // [16:16]
  62. coex_based_tx_pwr_ant : 8, // [15:8]
  63. coex_based_tx_pwr_shared_ant : 8; // [7:0]
  64. #endif
  65. };
  66. /* Description PPDU_TIMESTAMP_LOWER_32
  67. Global timer value at start of Protection transmission
  68. */
  69. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000
  70. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_LSB 0
  71. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MSB 31
  72. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff
  73. /* Description PPDU_TIMESTAMP_UPPER_32
  74. Global timer value at start of Protection transmission
  75. */
  76. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000
  77. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_LSB 32
  78. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MSB 63
  79. #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000
  80. /* Description SUBBAND_MASK
  81. This mask indicates which 20 Mhz channels are actively used
  82. in the BW or puncture pattern selected for transmit.
  83. Bit 0: primary 20 Mhz
  84. Bit 1: secondary 20 MHz
  85. Etc.
  86. Hamilton v1 used bits [8:4] for the 'Response_type' expected
  87. and bits [10:9] for the 'ndp_frame' field from 'TX_FES_SETUP.'
  88. <legal all>
  89. */
  90. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_OFFSET 0x0000000000000008
  91. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_LSB 0
  92. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MSB 15
  93. #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MASK 0x000000000000ffff
  94. /* Description NDP_FRAME
  95. Bit copied from the TX_FES_SETUP TLV
  96. <enum 0 no_ndp>No NDP transmission
  97. <enum 1 beamforming_ndp>Beamforming NDP
  98. <enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
  99. <enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
  100. */
  101. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_OFFSET 0x0000000000000008
  102. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_LSB 16
  103. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MSB 17
  104. #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MASK 0x0000000000030000
  105. /* Description RESERVED_2B
  106. <legal 0>
  107. */
  108. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_OFFSET 0x0000000000000008
  109. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_LSB 18
  110. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MSB 19
  111. #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MASK 0x00000000000c0000
  112. /* Description COEX_BASED_TX_BW
  113. Field valid for regular PPDU frame transmission
  114. This is the transmit bandwidth value
  115. that is granted by Coex.
  116. <enum 0 20_mhz>20 Mhz BW
  117. <enum 1 40_mhz>40 Mhz BW
  118. <enum 2 80_mhz>80 Mhz BW
  119. <enum 3 160_mhz>160 Mhz BW
  120. <enum 4 320_mhz>320 Mhz BW
  121. <enum 5 240_mhz>240 Mhz BW
  122. */
  123. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_OFFSET 0x0000000000000008
  124. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_LSB 20
  125. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MSB 22
  126. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MASK 0x0000000000700000
  127. /* Description COEX_BASED_ANT_MASK
  128. Field valid for regular PPDU or Response frame transmission
  129. The antennas allowed to be used for this transmission.
  130. (Coex is allowed to reduce the number of antennas to be
  131. used, but not the number of SS)
  132. <legal all>
  133. */
  134. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_OFFSET 0x0000000000000008
  135. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_LSB 23
  136. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MSB 30
  137. #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MASK 0x000000007f800000
  138. /* Description RESERVED_2C
  139. <legal 0>
  140. */
  141. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_OFFSET 0x0000000000000008
  142. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_LSB 31
  143. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MSB 31
  144. #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MASK 0x0000000080000000
  145. /* Description COEX_BASED_TX_PWR_SHARED_ANT
  146. Field valid for regular PPDU or Response frame transmission
  147. Granted tx power for the shared antenna.
  148. Transmit Power in s6.2 format.
  149. In units of 0.25 dBm
  150. <legal all>
  151. */
  152. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_OFFSET 0x0000000000000008
  153. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_LSB 32
  154. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MSB 39
  155. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MASK 0x000000ff00000000
  156. /* Description COEX_BASED_TX_PWR_ANT
  157. Field valid for regular PPDU or Response frame transmission
  158. Granted tx power for the unshared antenna
  159. Transmit Power in s6.2 format.
  160. In units of 0.25 dBm
  161. <legal all>
  162. */
  163. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_OFFSET 0x0000000000000008
  164. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_LSB 40
  165. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MSB 47
  166. #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MASK 0x0000ff0000000000
  167. /* Description CONCURRENT_BT_TX
  168. Indicate the current TX is concurrent with a BT transmission.
  169. This bit is to be copied over into the FES status info.
  170. <legal all>
  171. */
  172. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_OFFSET 0x0000000000000008
  173. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_LSB 48
  174. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MSB 48
  175. #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MASK 0x0001000000000000
  176. /* Description CONCURRENT_WLAN_TX
  177. Field valid for regular PPDU or Response frame transmission
  178. Indicate the current TX is concurrent with other WLAN transmission.
  179. This bit is to be copied over into FES status info.
  180. <legal all>
  181. */
  182. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_OFFSET 0x0000000000000008
  183. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_LSB 49
  184. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MSB 49
  185. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MASK 0x0002000000000000
  186. /* Description CONCURRENT_WAN_TX
  187. Field valid for regular PPDU or Response frame transmission
  188. Indicate the current TX is concurrent with WAN transmission.
  189. This bit is to be copied over into FES status info.
  190. <legal all>
  191. */
  192. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_OFFSET 0x0000000000000008
  193. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_LSB 50
  194. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MSB 50
  195. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MASK 0x0004000000000000
  196. /* Description CONCURRENT_WAN_RX
  197. Field valid for regular PPDU or Response frame transmission
  198. Indicate the current TX is concurrent with WAN reception.
  199. This bit is to be copied over into FES status info.
  200. <legal all>
  201. */
  202. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_OFFSET 0x0000000000000008
  203. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_LSB 51
  204. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MSB 51
  205. #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MASK 0x0008000000000000
  206. /* Description COEX_PWR_REDUCTION_BT
  207. Field valid for regular or response frame transmission.
  208. When set, transmit power is reduced due to BT coex reason
  209. <legal all>
  210. */
  211. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_OFFSET 0x0000000000000008
  212. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_LSB 52
  213. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MSB 52
  214. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MASK 0x0010000000000000
  215. /* Description COEX_PWR_REDUCTION_WLAN
  216. Field valid for regular or response frame transmission.
  217. When set, transmit power is reduced due to wlan coex reason
  218. <legal all>
  219. */
  220. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_OFFSET 0x0000000000000008
  221. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_LSB 53
  222. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MSB 53
  223. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MASK 0x0020000000000000
  224. /* Description COEX_PWR_REDUCTION_WAN
  225. Field valid for regular or response frame transmission.
  226. When set, transmit power is reduced due to wan coex reason
  227. <legal all>
  228. */
  229. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_OFFSET 0x0000000000000008
  230. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_LSB 54
  231. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MSB 54
  232. #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MASK 0x0040000000000000
  233. /* Description COEX_RESULT_ALT_BASED
  234. Field valid for regular PPDU or Response frame transmission
  235. When set, the resulting Coex transmit parameters are based
  236. alternate transmit settings in the TX_RATE_SETTING STRUCT
  237. of the original selected BW
  238. When not set, the resulting Coex parameters are based on
  239. the default transmit settings in the TX_RATE_SETTING STRUCT
  240. <legal all>
  241. */
  242. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_OFFSET 0x0000000000000008
  243. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_LSB 55
  244. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MSB 55
  245. #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MASK 0x0080000000000000
  246. /* Description REQUEST_PACKET_BW
  247. The requested transmit BW to PDG
  248. Note that Coex can have changed the actual allowed transmit
  249. bandwidth.
  250. <enum 0 20_mhz>20 Mhz BW
  251. <enum 1 40_mhz>40 Mhz BW
  252. <enum 2 80_mhz>80 Mhz BW
  253. <enum 3 160_mhz>160 Mhz BW
  254. <enum 4 320_mhz>320 Mhz BW
  255. <enum 5 240_mhz>240 Mhz BW
  256. */
  257. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_OFFSET 0x0000000000000008
  258. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_LSB 56
  259. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MSB 58
  260. #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MASK 0x0700000000000000
  261. /* Description RESPONSE_TYPE
  262. PPDU transmission Response type expected
  263. <enum 0 no_response_expected>After transmission of this
  264. frame, no response in SIFS time is expected
  265. When TXPCU sees this setting, it shall not generated the
  266. EXPECTED_RESPONSE TLV.
  267. RXPCU should never see this setting
  268. <enum 1 ack_expected>An ACK frame is expected as response
  269. RXPCU is just expecting any response. It is TXPCU who checks
  270. that the right response was received.
  271. <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected.
  272. PDG DOES NOT use the size info to calculated response duration.
  273. The length of the response will have to be programmed by
  274. SW in the per-BW 'Expected_ppdu_resp_length' field.
  275. For TXPCU only the fact that it is a BA is important. Actual
  276. received BA size is not important
  277. RXPCU is just expecting any response. It is TXPCU who checks
  278. that the right response was received.
  279. <enum 3 ba_256_expected>BA with 256 bitmap is expected.
  280. PDG DOES NOT use the size info to calculated response duration.
  281. The length of the response will have to be programmed by
  282. SW in the per-BW 'Expected_ppdu_resp_length' field.
  283. For TXPCU only the fact that it is a BA is important. Actual
  284. received BA size is not important
  285. RXPCU is just expecting any response. It is TXPCU who checks
  286. that the right response was received.
  287. <enum 4 actionnoack_expected>SW sets this after sending
  288. NDP or BR-Poll.
  289. As PDG has no idea on how long the reception is going to
  290. be, the reception time of the response will have to be
  291. programmed by SW in the 'Extend_duration_value_bw...' field
  292. RXPCU is just expecting any response. It is TXPCU who checks
  293. that the right response was received.
  294. <enum 5 ack_ba_expected>PDG uses the size info and assumes
  295. single BA format with ACK and 64 bitmap embedded.
  296. If SW expects more bitmaps in case of multi-TID, is shall
  297. program the 'Extend_duration_value_bw...' field for additional
  298. duration time.
  299. For TXPCU only the fact that an ACK and/or BA is received
  300. is important. Reception of only ACK or BA is also considered
  301. a success.
  302. SW also typically sets this when sending VHT single MPDU.
  303. Some chip vendors might send BA rather than ACK in response
  304. to VHT single MPDU but still we want to accept BA as well.
  305. RXPCU is just expecting any response. It is TXPCU who checks
  306. that the right response was received.
  307. <enum 6 cts_expected>SW sets this after queuing RTS frame
  308. as standalone packet and sending it.
  309. RXPCU is just expecting any response. It is TXPCU who checks
  310. that the right response was received.
  311. <enum 7 ack_data_expected>SW sets this after sending PS-Poll.
  312. For TXPCU either ACK and/or data reception is considered
  313. success.
  314. PDG basis it's response duration calculation on an ACK.
  315. For the data portion, SW shall program the 'Extend_duration_value_bw...'
  316. field
  317. <enum 8 ndp_ack_expected>Reserved for 11ah usage.
  318. <enum 9 ndp_modified_ack>Reserved for 11ah usage
  319. <enum 10 ndp_ba_expected>Reserved for 11ah usage.
  320. <enum 11 ndp_cts_expected>Reserved for 11ah usage
  321. <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for
  322. 11ah usage
  323. <enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND
  324. HASTINGS
  325. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  326. As PDG does not know how RUs are assigned for the uplink
  327. portion, PDG can not calculate the uplink duration. Therefor
  328. SW shall program the 'Extend_duration_value_bw...' field
  329. RXPCU will report any frame received, irrespective of it
  330. having been UL MU or SU It is TXPCUs responsibility to
  331. distinguish between the UL MU or SU
  332. TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap
  333. if indeed BA was received
  334. <enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER
  335. AX AND HASTINGS
  336. TXPCU expects UL MU OFDMA or UL MU MIMO reception.
  337. As PDG does not know how RUs are assigned for the uplink
  338. portion, PDG can not calculate the uplink duration. Therefor
  339. SW shall program the 'Extend_duration_value_bw...' field
  340. RXPCU will report any frame received, irrespective of it
  341. having been UL MU or SU It is TXPCUs responsibility to
  342. distinguish between the UL MU or SU
  343. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap
  344. and MU_Response_BA_bitmap if indeed BA and data was received
  345. <enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND
  346. HASTINGS
  347. When selected, CBF frames are expected to be received in
  348. MU reception (uplink OFDMA or uplink MIMO)
  349. RXPCU is just expecting any response. It is TXPCU who checks
  350. that the right response was received
  351. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap
  352. if indeed CBF frames were received.
  353. <enum 16 ul_mu_frames_expected>When selected, MPDU frames
  354. are expected in the MU reception (uplink OFDMA or uplink
  355. MIMO)
  356. RXPCU is just expecting any response. It is TXPCU who checks
  357. that the right response was received
  358. TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap
  359. if indeed frames were received.
  360. <enum 17 any_response_to_this_device>Any response expected
  361. to be send to this device in SIFS time is acceptable.
  362. RXPCU is just expecting any response. It is TXPCU who checks
  363. that the right response was received
  364. For TXPCU, UL MU or SU is both acceptable.
  365. Can be used for complex OFDMA scenarios. PDG can not calculate
  366. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  367. field
  368. <enum 18 any_response_accepted>Any frame in the medium to
  369. this or any other device, is acceptable as response.
  370. RXPCU is just expecting any response. It is TXPCU who checks
  371. that the right response was received
  372. For TXPCU, UL MU or SU is both acceptable.
  373. Can be used for complex OFDMA scenarios. PDG can not calculate
  374. the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...'
  375. field
  376. <enum 19 frameless_phyrx_response_accepted>Any MU frameless
  377. reception generated by the PHY is acceptable.
  378. PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY,
  379. field Reception_type == reception_is_frameless
  380. RXPCU will report any frame received, irrespective of it
  381. having been UL MU or SU.
  382. This can be used for complex MU-MIMO or OFDMA scenarios,
  383. like receiving MU-CTS.
  384. PDG can not calculate the uplink duration. Therefor SW shall
  385. program the 'Extend_duration_value_bw...' field
  386. <enum 20 ranging_ndp_and_lmr_expected>SW sets this after
  387. sending ranging NDPA followed by NDP as an ISTA and NDP
  388. and LMR (Action No Ack) are expected as back-to-back reception
  389. in SIFS.
  390. As PDG has no idea on how long the reception is going to
  391. be, the reception time of the response will have to be
  392. programmed by SW in the 'Extend_duration_value_bw...' field
  393. RXPCU is just expecting any response. It is TXPCU who checks
  394. that the right response was received.
  395. <enum 21 ba_512_expected>BA with 512 bitmap is expected.
  396. PDG DOES NOT use the size info to calculated response duration.
  397. The length of the response will have to be programmed by
  398. SW in the per-BW 'Expected_ppdu_resp_length' field.
  399. For TXPCU only the fact that it is a BA is important. Actual
  400. received BA size is not important
  401. RXPCU is just expecting any response. It is TXPCU who checks
  402. that the right response was received.
  403. <enum 22 ba_1024_expected>BA with 1024 bitmap is expected.
  404. PDG DOES NOT use the size info to calculated response duration.
  405. The length of the response will have to be programmed by
  406. SW in the per-BW 'Expected_ppdu_resp_length' field.
  407. For TXPCU only the fact that it is a BA is important. Actual
  408. received BA size is not important
  409. RXPCU is just expecting any response. It is TXPCU who checks
  410. that the right response was received.
  411. <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S
  412. frames are expected to be received in MU reception (uplink
  413. OFDMA)
  414. RXPCU shall check each response for CTS2S and report to
  415. TXPCU.
  416. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  417. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S
  418. frames were received.
  419. <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP
  420. frames are expected to be received in MU reception (uplink
  421. spatial multiplexing)
  422. RXPCU shall check each response for NDP and report to TXPCU.
  423. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  424. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP
  425. frames were received.
  426. <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames
  427. are expected to be received in MU reception (uplink OFDMA
  428. or uplink MIMO)
  429. RXPCU shall check each response for LMR and report to TXPCU.
  430. TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields
  431. 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR
  432. frames were received.
  433. */
  434. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_OFFSET 0x0000000000000008
  435. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_LSB 59
  436. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MSB 63
  437. #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MASK 0xf800000000000000
  438. #endif // TX_FES_STATUS_START_PPDU