1 2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 18 19 20 21 22 23 24 25 26 #ifndef _VHT_SIG_B_MU40_INFO_H_ 27 #define _VHT_SIG_B_MU40_INFO_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_VHT_SIG_B_MU40_INFO 2 32 33 34 struct vht_sig_b_mu40_info { 35 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 36 uint32_t length : 17, // [16:0] 37 mcs : 4, // [20:17] 38 tail : 6, // [26:21] 39 reserved_0 : 2, // [28:27] 40 mu_user_number : 3; // [31:29] 41 uint32_t length_copy : 17, // [16:0] 42 mcs_copy : 4, // [20:17] 43 tail_copy : 6, // [26:21] 44 reserved_1 : 5; // [31:27] 45 #else 46 uint32_t mu_user_number : 3, // [31:29] 47 reserved_0 : 2, // [28:27] 48 tail : 6, // [26:21] 49 mcs : 4, // [20:17] 50 length : 17; // [16:0] 51 uint32_t reserved_1 : 5, // [31:27] 52 tail_copy : 6, // [26:21] 53 mcs_copy : 4, // [20:17] 54 length_copy : 17; // [16:0] 55 #endif 56 }; 57 58 59 /* Description LENGTH 60 61 VHT-SIG-B Length (in units of 4 octets) = ceiling (LENGTH/4) <legal 62 all> 63 */ 64 65 #define VHT_SIG_B_MU40_INFO_LENGTH_OFFSET 0x00000000 66 #define VHT_SIG_B_MU40_INFO_LENGTH_LSB 0 67 #define VHT_SIG_B_MU40_INFO_LENGTH_MSB 16 68 #define VHT_SIG_B_MU40_INFO_LENGTH_MASK 0x0001ffff 69 70 71 /* Description MCS 72 73 Modulation as described in vht_sig_a mcs field 74 <legal 0-11> 75 */ 76 77 #define VHT_SIG_B_MU40_INFO_MCS_OFFSET 0x00000000 78 #define VHT_SIG_B_MU40_INFO_MCS_LSB 17 79 #define VHT_SIG_B_MU40_INFO_MCS_MSB 20 80 #define VHT_SIG_B_MU40_INFO_MCS_MASK 0x001e0000 81 82 83 /* Description TAIL 84 85 Used to terminate the trellis of the convolutional decoder. 86 87 Set to 0. 88 <legal 0> 89 */ 90 91 #define VHT_SIG_B_MU40_INFO_TAIL_OFFSET 0x00000000 92 #define VHT_SIG_B_MU40_INFO_TAIL_LSB 21 93 #define VHT_SIG_B_MU40_INFO_TAIL_MSB 26 94 #define VHT_SIG_B_MU40_INFO_TAIL_MASK 0x07e00000 95 96 97 /* Description RESERVED_0 98 99 Not part of VHT-SIG-B. 100 Reserved: Set to 0 and ignored on receive <legal 0> 101 */ 102 103 #define VHT_SIG_B_MU40_INFO_RESERVED_0_OFFSET 0x00000000 104 #define VHT_SIG_B_MU40_INFO_RESERVED_0_LSB 27 105 #define VHT_SIG_B_MU40_INFO_RESERVED_0_MSB 28 106 #define VHT_SIG_B_MU40_INFO_RESERVED_0_MASK 0x18000000 107 108 109 /* Description MU_USER_NUMBER 110 111 Not part of VHT-SIG-B. 112 Mapping from user number (BFer hardware specific) to mu_user_number. 113 The reader is directed to the previous chapter (User Number) 114 for a definition of the terms user and mu_user. <legal 115 0-3> 116 */ 117 118 #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_OFFSET 0x00000000 119 #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_LSB 29 120 #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MSB 31 121 #define VHT_SIG_B_MU40_INFO_MU_USER_NUMBER_MASK 0xe0000000 122 123 124 /* Description LENGTH_COPY 125 126 Same as "length". This field is not valid for RX packets. <legal 127 all> 128 */ 129 130 #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_OFFSET 0x00000004 131 #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_LSB 0 132 #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MSB 16 133 #define VHT_SIG_B_MU40_INFO_LENGTH_COPY_MASK 0x0001ffff 134 135 136 /* Description MCS_COPY 137 138 Same as "mcs". This field is not valid for RX packets. <legal 139 0-11> 140 */ 141 142 #define VHT_SIG_B_MU40_INFO_MCS_COPY_OFFSET 0x00000004 143 #define VHT_SIG_B_MU40_INFO_MCS_COPY_LSB 17 144 #define VHT_SIG_B_MU40_INFO_MCS_COPY_MSB 20 145 #define VHT_SIG_B_MU40_INFO_MCS_COPY_MASK 0x001e0000 146 147 148 /* Description TAIL_COPY 149 150 Same as "tail". This field is not valid for RX packets. 151 <legal 0> 152 */ 153 154 #define VHT_SIG_B_MU40_INFO_TAIL_COPY_OFFSET 0x00000004 155 #define VHT_SIG_B_MU40_INFO_TAIL_COPY_LSB 21 156 #define VHT_SIG_B_MU40_INFO_TAIL_COPY_MSB 26 157 #define VHT_SIG_B_MU40_INFO_TAIL_COPY_MASK 0x07e00000 158 159 160 /* Description RESERVED_1 161 162 <legal 0> 163 */ 164 165 #define VHT_SIG_B_MU40_INFO_RESERVED_1_OFFSET 0x00000004 166 #define VHT_SIG_B_MU40_INFO_RESERVED_1_LSB 27 167 #define VHT_SIG_B_MU40_INFO_RESERVED_1_MSB 31 168 #define VHT_SIG_B_MU40_INFO_RESERVED_1_MASK 0xf8000000 169 170 171 172 #endif // VHT_SIG_B_MU40_INFO 173