1 /* 2 * Copyright (c) 2020 The Linux Foundation. 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 17 // $ATH_LICENSE_HW_HDR_C$ 18 // 19 // DO NOT EDIT! This file is automatically generated 20 // These definitions are tied to a particular hardware layout 21 22 23 #ifndef _RX_PPDU_START_USER_INFO_H_ 24 #define _RX_PPDU_START_USER_INFO_H_ 25 #if !defined(__ASSEMBLER__) 26 #endif 27 28 #include "receive_user_info.h" 29 30 // ################ START SUMMARY ################# 31 // 32 // Dword Fields 33 // 0-2 struct receive_user_info receive_user_info_details; 34 // 35 // ################ END SUMMARY ################# 36 37 #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 3 38 39 struct rx_ppdu_start_user_info { 40 struct receive_user_info receive_user_info_details; 41 }; 42 43 /* 44 45 struct receive_user_info receive_user_info_details 46 47 Overview of receive parameters that the MAC needs to 48 prepend to every received MSDU/MPDU. 49 */ 50 51 52 /* EXTERNAL REFERENCE : struct receive_user_info receive_user_info_details */ 53 54 55 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID 56 57 A ppdu counter value that PHY increments for every PPDU 58 received. The counter value wraps around 59 60 <legal all> 61 */ 62 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000 63 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0 64 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff 65 66 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI 67 68 RSSI for this user 69 70 Frequency domain RSSI measurement for this user. Based 71 on the channel estimate. 72 73 74 75 <legal all> 76 */ 77 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x00000000 78 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16 79 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x00ff0000 80 81 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE 82 83 Packet type: 84 85 86 87 <enum 0 dot11a>802.11a PPDU type 88 89 <enum 1 dot11b>802.11b PPDU type 90 91 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 92 93 <enum 3 dot11ac>802.11ac PPDU type 94 95 <enum 4 dot11ax>802.11ax PPDU type 96 */ 97 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000 98 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24 99 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000 100 101 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC 102 103 When set, use STBC transmission rates 104 */ 105 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x00000000 106 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28 107 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x10000000 108 109 /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE 110 111 Indicates what type of reception this is. 112 113 <enum 0 reception_type_SU > Basic SU reception (not 114 part of OFDMA or MIMO) 115 116 <enum 1 reception_type_MU_MIMO > This is related to 117 DL type of reception 118 119 <enum 2 reception_type_MU_OFDMA > This is related 120 to DL type of reception 121 122 <enum 3 reception_type_MU_OFDMA_MIMO > This is 123 related to DL type of reception 124 125 <enum 4 reception_type_UL_MU_MIMO > This is related 126 to UL type of reception 127 128 <enum 5 reception_type_UL_MU_OFDMA > This is 129 related to UL type of reception 130 131 <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is 132 related to UL type of reception 133 134 135 136 <legal 0-6> 137 */ 138 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x00000000 139 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29 140 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0xe0000000 141 142 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS 143 144 For details, refer to MCS_TYPE description 145 146 <legal all> 147 */ 148 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x00000004 149 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 0 150 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f 151 152 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI 153 154 Field only valid when pkt type is HT, VHT or HE. 155 156 157 158 <enum 0 gi_0_8_us > Legacy normal GI. Can also be 159 used for HE 160 161 <enum 1 gi_0_4_us > Legacy short GI. Can also be 162 used for HE 163 164 <enum 2 gi_1_6_us > HE related GI 165 166 <enum 3 gi_3_2_us > HE related GI 167 168 <legal 0 - 3> 169 */ 170 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x00000004 171 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_LSB 4 172 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x00000030 173 174 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH 175 176 Full receive Bandwidth 177 178 179 180 <enum 0 full_rx_bw_20_mhz> 181 182 <enum 1 full_rx_bw_40_mhz> 183 184 <enum 2 full_rx_bw_80_mhz> 185 186 <enum 3 full_rx_bw_160_mhz> 187 188 189 190 <legal 0-3> 191 */ 192 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x00000004 193 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 6 194 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x000000c0 195 196 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP 197 198 Field only valid in case of MIMO type reception 199 200 201 202 Bitmap, with each bit indicating if the related spatial 203 stream is used for this STA 204 205 LSB related to SS 0 206 207 208 209 0: spatial stream not used for this reception 210 211 1: spatial stream used for this reception 212 213 214 215 <legal all> 216 */ 217 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x00000004 218 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 8 219 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff00 220 221 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION 222 223 Field only valid in case of OFDMA type receptions (DL 224 and UL) 225 226 227 228 Indicates the RU number associated with this user. 229 230 231 232 In case of reception where the transmission was DL MU 233 OFDMA, this field provides the RU pattern. Note that fields 234 ofdma_user_index and Content_channel are needed to determine 235 which RU was actually assigned to this user. 236 237 238 239 In case of reception where the transmission was UL MU 240 OFDMA, this field contains everything needed to determine 241 the actual RU 242 243 <legal all> 244 */ 245 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_OFFSET 0x00000004 246 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_LSB 16 247 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_MASK 0x00ff0000 248 249 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX 250 251 Field only valid in the of DL MU OFDMA reception 252 253 254 255 The user number within the RU_allocation. 256 257 258 259 This is needed for SW to determine the exact RU position 260 within the reception. 261 262 <legal all> 263 */ 264 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_OFFSET 0x00000004 265 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_LSB 24 266 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_MASK 0x7f000000 267 268 /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL 269 270 Field only valid in the of DL MU OFDMA/MIMO reception 271 272 273 274 In case of DL MU reception, this field indicates the 275 content channel number where PHY found the RU information 276 for this user 277 278 279 280 This is needed for SW to determine the exact RU position 281 within the reception. 282 283 284 285 <enum 0 content_channel_1> 286 287 <enum 1 content_channel_2> 288 289 290 291 <legal all> 292 */ 293 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000004 294 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_LSB 31 295 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_MASK 0x80000000 296 297 /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC 298 299 When set, use LDPC transmission rates were used. 300 301 <legal all> 302 */ 303 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x00000008 304 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 0 305 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x00000001 306 307 /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A 308 309 <legal 0> 310 */ 311 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008 312 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 1 313 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0xfffffffe 314 315 316 #endif // _RX_PPDU_START_USER_INFO_H_ 317