1 /* 2 * Copyright (c) 2016-2018 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 #ifndef _HE_SIG_B2_MU_INFO_H_ 20 #define _HE_SIG_B2_MU_INFO_H_ 21 #if !defined(__ASSEMBLER__) 22 #endif 23 24 25 // ################ START SUMMARY ################# 26 // 27 // Dword Fields 28 // 0 sta_id[10:0], sta_spatial_config[14:11], sta_mcs[18:15], reserved_set_to_1[19], sta_coding[20], reserved_0a[28:21], nsts[31:29] 29 // 30 // ################ END SUMMARY ################# 31 32 #define NUM_OF_DWORDS_HE_SIG_B2_MU_INFO 1 33 34 struct he_sig_b2_mu_info { 35 uint32_t sta_id : 11, //[10:0] 36 sta_spatial_config : 4, //[14:11] 37 sta_mcs : 4, //[18:15] 38 reserved_set_to_1 : 1, //[19] 39 sta_coding : 1, //[20] 40 reserved_0a : 8, //[28:21] 41 nsts : 3; //[31:29] 42 }; 43 44 /* 45 46 sta_id 47 48 Identifies the STA that is addressed. Details of STA ID 49 are TBD 50 51 sta_spatial_config 52 53 Number of assigned spatial streams and their 54 corresponding index. 55 56 Total number of spatial streams assigned for the MU-MIMO 57 allocation is also signaled. 58 59 sta_mcs 60 61 Indicates the data MCS 62 63 reserved_set_to_1 64 65 <legal 1> 66 67 sta_coding 68 69 Distinguishes between BCC/LDPC 70 71 72 73 0: BCC 74 75 1: LDPC 76 77 <legal all> 78 79 reserved_0a 80 81 <legal 0> 82 83 nsts 84 85 MAC RX side usage only: 86 87 Needed by RXPCU. Provided by PHY so that RXPCU does not 88 need to have the RU number decoding logic. 89 90 91 92 Number of spatial streams for this user 93 94 95 96 <enum 0 1_spatial_stream>Single spatial stream 97 98 <enum 1 2_spatial_streams>2 spatial streams 99 100 <enum 2 3_spatial_streams>3 spatial streams 101 102 <enum 3 4_spatial_streams>4 spatial streams 103 104 <enum 4 5_spatial_streams>5 spatial streams 105 106 <enum 5 6_spatial_streams>6 spatial streams 107 108 <enum 6 7_spatial_streams>7 spatial streams 109 110 <enum 7 8_spatial_streams>8 spatial streams 111 */ 112 113 114 /* Description HE_SIG_B2_MU_INFO_0_STA_ID 115 116 Identifies the STA that is addressed. Details of STA ID 117 are TBD 118 */ 119 #define HE_SIG_B2_MU_INFO_0_STA_ID_OFFSET 0x00000000 120 #define HE_SIG_B2_MU_INFO_0_STA_ID_LSB 0 121 #define HE_SIG_B2_MU_INFO_0_STA_ID_MASK 0x000007ff 122 123 /* Description HE_SIG_B2_MU_INFO_0_STA_SPATIAL_CONFIG 124 125 Number of assigned spatial streams and their 126 corresponding index. 127 128 Total number of spatial streams assigned for the MU-MIMO 129 allocation is also signaled. 130 */ 131 #define HE_SIG_B2_MU_INFO_0_STA_SPATIAL_CONFIG_OFFSET 0x00000000 132 #define HE_SIG_B2_MU_INFO_0_STA_SPATIAL_CONFIG_LSB 11 133 #define HE_SIG_B2_MU_INFO_0_STA_SPATIAL_CONFIG_MASK 0x00007800 134 135 /* Description HE_SIG_B2_MU_INFO_0_STA_MCS 136 137 Indicates the data MCS 138 */ 139 #define HE_SIG_B2_MU_INFO_0_STA_MCS_OFFSET 0x00000000 140 #define HE_SIG_B2_MU_INFO_0_STA_MCS_LSB 15 141 #define HE_SIG_B2_MU_INFO_0_STA_MCS_MASK 0x00078000 142 143 /* Description HE_SIG_B2_MU_INFO_0_RESERVED_SET_TO_1 144 145 <legal 1> 146 */ 147 #define HE_SIG_B2_MU_INFO_0_RESERVED_SET_TO_1_OFFSET 0x00000000 148 #define HE_SIG_B2_MU_INFO_0_RESERVED_SET_TO_1_LSB 19 149 #define HE_SIG_B2_MU_INFO_0_RESERVED_SET_TO_1_MASK 0x00080000 150 151 /* Description HE_SIG_B2_MU_INFO_0_STA_CODING 152 153 Distinguishes between BCC/LDPC 154 155 156 157 0: BCC 158 159 1: LDPC 160 161 <legal all> 162 */ 163 #define HE_SIG_B2_MU_INFO_0_STA_CODING_OFFSET 0x00000000 164 #define HE_SIG_B2_MU_INFO_0_STA_CODING_LSB 20 165 #define HE_SIG_B2_MU_INFO_0_STA_CODING_MASK 0x00100000 166 167 /* Description HE_SIG_B2_MU_INFO_0_RESERVED_0A 168 169 <legal 0> 170 */ 171 #define HE_SIG_B2_MU_INFO_0_RESERVED_0A_OFFSET 0x00000000 172 #define HE_SIG_B2_MU_INFO_0_RESERVED_0A_LSB 21 173 #define HE_SIG_B2_MU_INFO_0_RESERVED_0A_MASK 0x1fe00000 174 175 /* Description HE_SIG_B2_MU_INFO_0_NSTS 176 177 MAC RX side usage only: 178 179 Needed by RXPCU. Provided by PHY so that RXPCU does not 180 need to have the RU number decoding logic. 181 182 183 184 Number of spatial streams for this user 185 186 187 188 <enum 0 1_spatial_stream>Single spatial stream 189 190 <enum 1 2_spatial_streams>2 spatial streams 191 192 <enum 2 3_spatial_streams>3 spatial streams 193 194 <enum 3 4_spatial_streams>4 spatial streams 195 196 <enum 4 5_spatial_streams>5 spatial streams 197 198 <enum 5 6_spatial_streams>6 spatial streams 199 200 <enum 6 7_spatial_streams>7 spatial streams 201 202 <enum 7 8_spatial_streams>8 spatial streams 203 */ 204 #define HE_SIG_B2_MU_INFO_0_NSTS_OFFSET 0x00000000 205 #define HE_SIG_B2_MU_INFO_0_NSTS_LSB 29 206 #define HE_SIG_B2_MU_INFO_0_NSTS_MASK 0xe0000000 207 208 209 #endif // _HE_SIG_B2_MU_INFO_H_ 210