1 /* 2 * Copyright (c) 2020 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 // 20 // DO NOT EDIT! This file is automatically generated 21 // These definitions are tied to a particular hardware layout 22 23 24 #ifndef _PHYRX_USER_INFO_H_ 25 #define _PHYRX_USER_INFO_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 #include "receive_user_info.h" 30 31 // ################ START SUMMARY ################# 32 // 33 // Dword Fields 34 // 0-2 struct receive_user_info receive_user_info_details; 35 // 36 // ################ END SUMMARY ################# 37 38 #define NUM_OF_DWORDS_PHYRX_USER_INFO 3 39 40 struct phyrx_user_info { 41 struct receive_user_info receive_user_info_details; 42 }; 43 44 /* 45 46 struct receive_user_info receive_user_info_details 47 48 Overview of receive parameters that the MAC needs to 49 prepend to every received MSDU/MPDU. 50 51 52 53 PHY RX gathers this info for the MAC 54 */ 55 56 57 /* EXTERNAL REFERENCE : struct receive_user_info receive_user_info_details */ 58 59 60 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID 61 62 A ppdu counter value that PHY increments for every PPDU 63 received. The counter value wraps around 64 65 <legal all> 66 */ 67 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000 68 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0 69 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff 70 71 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI 72 73 RSSI for this user 74 75 Frequency domain RSSI measurement for this user. Based 76 on the channel estimate. 77 78 79 80 <legal all> 81 */ 82 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x00000000 83 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16 84 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x00ff0000 85 86 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE 87 88 Packet type: 89 90 91 92 <enum 0 dot11a>802.11a PPDU type 93 94 <enum 1 dot11b>802.11b PPDU type 95 96 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 97 98 <enum 3 dot11ac>802.11ac PPDU type 99 100 <enum 4 dot11ax>802.11ax PPDU type 101 102 <enum 5 dot11ba>802.11ba (WUR) PPDU type 103 */ 104 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000 105 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24 106 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000 107 108 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC 109 110 When set, use STBC transmission rates 111 */ 112 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x00000000 113 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28 114 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x10000000 115 116 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE 117 118 Indicates what type of reception this is. 119 120 <enum 0 reception_type_SU > Basic SU reception (not 121 part of OFDMA or MU-MIMO) 122 123 <enum 1 reception_type_MU_MIMO > This is related to 124 DL type of reception 125 126 <enum 2 reception_type_MU_OFDMA > This is related 127 to DL type of reception 128 129 <enum 3 reception_type_MU_OFDMA_MIMO > This is 130 related to DL type of reception 131 132 <enum 4 reception_type_UL_MU_MIMO > This is related 133 to UL type of reception 134 135 <enum 5 reception_type_UL_MU_OFDMA > This is 136 related to UL type of reception 137 138 <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is 139 related to UL type of reception 140 141 142 143 <legal 0-6> 144 */ 145 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x00000000 146 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29 147 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0xe0000000 148 149 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS 150 151 For details, refer to MCS_TYPE description 152 153 <legal all> 154 */ 155 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x00000004 156 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 0 157 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f 158 159 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI 160 161 Field only valid when pkt type is HT, VHT or HE. 162 163 164 165 <enum 0 gi_0_8_us > Legacy normal GI. Can also be 166 used for HE 167 168 <enum 1 gi_0_4_us > Legacy short GI. Can also be 169 used for HE 170 171 <enum 2 gi_1_6_us > HE related GI 172 173 <enum 3 gi_3_2_us > HE related GI 174 175 <legal 0 - 3> 176 */ 177 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x00000004 178 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_LSB 4 179 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x00000030 180 181 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH 182 183 Full receive Bandwidth 184 185 186 187 <enum 0 full_rx_bw_20_mhz> 188 189 <enum 1 full_rx_bw_40_mhz> 190 191 <enum 2 full_rx_bw_80_mhz> 192 193 <enum 3 full_rx_bw_160_mhz> 194 195 196 197 <legal 0-3> 198 */ 199 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x00000004 200 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 6 201 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x000000c0 202 203 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP 204 205 Bitmap, with each bit indicating if the related spatial 206 stream is used for this STA 207 208 LSB related to SS 0 209 210 211 212 0: spatial stream not used for this reception 213 214 1: spatial stream used for this reception 215 216 217 218 <legal all> 219 */ 220 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x00000004 221 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 8 222 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff00 223 224 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION 225 226 Field only valid in case of OFDMA type receptions (DL 227 and UL) 228 229 230 231 Indicates the RU number associated with this user. 232 233 234 235 In case of reception where the transmission was DL MU 236 OFDMA, this field provides the RU pattern. Note that fields 237 ofdma_user_index and ofdma_content_channel are needed to 238 determine which RU (within a 40 MHz channel) was actually 239 assigned to this user, but this does not give info on which 240 40 MHz channel was assigned to this user. Please refer 241 DL_ofdma_ru_* in PHYRX_PKT_END_INFO for complete RU info for 242 this user. 243 244 245 246 In case of reception where the transmission was UL MU 247 OFDMA, PHY is recommended to insert the RU start index in 248 this field. Note that PHY may insert the RU width in 249 Reserved_2a[6:0]. 250 251 <legal all> 252 */ 253 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_OFFSET 0x00000004 254 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_LSB 16 255 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_MASK 0x00ff0000 256 257 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX 258 259 Field only valid in the of DL MU OFDMA reception 260 261 262 263 The user number within the RU_allocation. 264 265 266 267 This is needed for SW to determine the exact RU position 268 within the reception. 269 270 <legal all> 271 */ 272 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_OFFSET 0x00000004 273 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_LSB 24 274 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_MASK 0x7f000000 275 276 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL 277 278 Field only valid in the of DL MU OFDMA/MIMO reception 279 280 281 282 In case of DL MU reception, this field indicates the 283 content channel number where PHY found the RU information 284 for this user 285 286 287 288 This is needed for SW to determine the exact RU position 289 within the reception. 290 291 292 293 <enum 0 content_channel_1> 294 295 <enum 1 content_channel_2> 296 297 298 299 <legal all> 300 */ 301 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000004 302 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_LSB 31 303 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_MASK 0x80000000 304 305 /* Description PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC 306 307 When set, use LDPC transmission rates were used. 308 309 <legal all> 310 */ 311 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x00000008 312 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 0 313 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x00000001 314 315 /* Description PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH 316 317 In case of UL OFDMA reception, PHY is recommended to 318 insert the RU width 319 320 In Hastings80: was using Reserved_2a[6:0]. 321 322 <legal 1 - 74> 323 */ 324 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_OFFSET 0x00000008 325 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_LSB 1 326 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_MASK 0x000000fe 327 328 /* Description PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A 329 330 <legal 0> 331 */ 332 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008 333 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 8 334 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0xffffff00 335 336 337 #endif // _PHYRX_USER_INFO_H_ 338