1 /* 2 * Copyright (c) 2023 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 #ifndef _VHT_SIG_B_SU80_INFO_H_ 19 #define _VHT_SIG_B_SU80_INFO_H_ 20 21 #define NUM_OF_DWORDS_VHT_SIG_B_SU80_INFO 4 22 23 struct vht_sig_b_su80_info { 24 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 25 uint32_t length : 21, 26 vhtb_reserved : 2, 27 tail : 6, 28 reserved_0 : 2, 29 rx_ndp : 1; 30 uint32_t length_copy_a : 21, 31 vhtb_reserved_copy_a : 2, 32 tail_copy_a : 6, 33 reserved_1 : 2, 34 rx_ndp_copy_a : 1; 35 uint32_t length_copy_b : 21, 36 vhtb_reserved_copy_b : 2, 37 tail_copy_b : 6, 38 reserved_2 : 2, 39 rx_ndp_copy_b : 1; 40 uint32_t length_copy_c : 21, 41 vhtb_reserved_copy_c : 2, 42 tail_copy_c : 6, 43 reserved_3 : 2, 44 rx_ndp_copy_c : 1; 45 #else 46 uint32_t rx_ndp : 1, 47 reserved_0 : 2, 48 tail : 6, 49 vhtb_reserved : 2, 50 length : 21; 51 uint32_t rx_ndp_copy_a : 1, 52 reserved_1 : 2, 53 tail_copy_a : 6, 54 vhtb_reserved_copy_a : 2, 55 length_copy_a : 21; 56 uint32_t rx_ndp_copy_b : 1, 57 reserved_2 : 2, 58 tail_copy_b : 6, 59 vhtb_reserved_copy_b : 2, 60 length_copy_b : 21; 61 uint32_t rx_ndp_copy_c : 1, 62 reserved_3 : 2, 63 tail_copy_c : 6, 64 vhtb_reserved_copy_c : 2, 65 length_copy_c : 21; 66 #endif 67 }; 68 69 #define VHT_SIG_B_SU80_INFO_LENGTH_OFFSET 0x00000000 70 #define VHT_SIG_B_SU80_INFO_LENGTH_LSB 0 71 #define VHT_SIG_B_SU80_INFO_LENGTH_MSB 20 72 #define VHT_SIG_B_SU80_INFO_LENGTH_MASK 0x001fffff 73 74 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_OFFSET 0x00000000 75 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_LSB 21 76 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_MSB 22 77 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_MASK 0x00600000 78 79 #define VHT_SIG_B_SU80_INFO_TAIL_OFFSET 0x00000000 80 #define VHT_SIG_B_SU80_INFO_TAIL_LSB 23 81 #define VHT_SIG_B_SU80_INFO_TAIL_MSB 28 82 #define VHT_SIG_B_SU80_INFO_TAIL_MASK 0x1f800000 83 84 #define VHT_SIG_B_SU80_INFO_RESERVED_0_OFFSET 0x00000000 85 #define VHT_SIG_B_SU80_INFO_RESERVED_0_LSB 29 86 #define VHT_SIG_B_SU80_INFO_RESERVED_0_MSB 30 87 #define VHT_SIG_B_SU80_INFO_RESERVED_0_MASK 0x60000000 88 89 #define VHT_SIG_B_SU80_INFO_RX_NDP_OFFSET 0x00000000 90 #define VHT_SIG_B_SU80_INFO_RX_NDP_LSB 31 91 #define VHT_SIG_B_SU80_INFO_RX_NDP_MSB 31 92 #define VHT_SIG_B_SU80_INFO_RX_NDP_MASK 0x80000000 93 94 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_OFFSET 0x00000004 95 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_LSB 0 96 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_MSB 20 97 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_A_MASK 0x001fffff 98 99 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_OFFSET 0x00000004 100 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_LSB 21 101 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_MSB 22 102 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_A_MASK 0x00600000 103 104 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_OFFSET 0x00000004 105 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_LSB 23 106 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_MSB 28 107 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_A_MASK 0x1f800000 108 109 #define VHT_SIG_B_SU80_INFO_RESERVED_1_OFFSET 0x00000004 110 #define VHT_SIG_B_SU80_INFO_RESERVED_1_LSB 29 111 #define VHT_SIG_B_SU80_INFO_RESERVED_1_MSB 30 112 #define VHT_SIG_B_SU80_INFO_RESERVED_1_MASK 0x60000000 113 114 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_OFFSET 0x00000004 115 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_LSB 31 116 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_MSB 31 117 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_A_MASK 0x80000000 118 119 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_OFFSET 0x00000008 120 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_LSB 0 121 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_MSB 20 122 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_B_MASK 0x001fffff 123 124 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_OFFSET 0x00000008 125 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_LSB 21 126 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_MSB 22 127 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_B_MASK 0x00600000 128 129 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_OFFSET 0x00000008 130 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_LSB 23 131 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_MSB 28 132 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_B_MASK 0x1f800000 133 134 #define VHT_SIG_B_SU80_INFO_RESERVED_2_OFFSET 0x00000008 135 #define VHT_SIG_B_SU80_INFO_RESERVED_2_LSB 29 136 #define VHT_SIG_B_SU80_INFO_RESERVED_2_MSB 30 137 #define VHT_SIG_B_SU80_INFO_RESERVED_2_MASK 0x60000000 138 139 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_OFFSET 0x00000008 140 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_LSB 31 141 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_MSB 31 142 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_B_MASK 0x80000000 143 144 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_OFFSET 0x0000000c 145 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_LSB 0 146 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_MSB 20 147 #define VHT_SIG_B_SU80_INFO_LENGTH_COPY_C_MASK 0x001fffff 148 149 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_OFFSET 0x0000000c 150 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_LSB 21 151 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_MSB 22 152 #define VHT_SIG_B_SU80_INFO_VHTB_RESERVED_COPY_C_MASK 0x00600000 153 154 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_OFFSET 0x0000000c 155 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_LSB 23 156 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_MSB 28 157 #define VHT_SIG_B_SU80_INFO_TAIL_COPY_C_MASK 0x1f800000 158 159 #define VHT_SIG_B_SU80_INFO_RESERVED_3_OFFSET 0x0000000c 160 #define VHT_SIG_B_SU80_INFO_RESERVED_3_LSB 29 161 #define VHT_SIG_B_SU80_INFO_RESERVED_3_MSB 30 162 #define VHT_SIG_B_SU80_INFO_RESERVED_3_MASK 0x60000000 163 164 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_OFFSET 0x0000000c 165 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_LSB 31 166 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_MSB 31 167 #define VHT_SIG_B_SU80_INFO_RX_NDP_COPY_C_MASK 0x80000000 168 169 #endif 170