xref: /wlan-driver/fw-api/hw/qca5332/mactx_eht_sig_usr_su.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
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 _MACTX_EHT_SIG_USR_SU_H_
27 #define _MACTX_EHT_SIG_USR_SU_H_
28 #if !defined(__ASSEMBLER__)
29 #endif
30 
31 #include "eht_sig_usr_su_info.h"
32 #define NUM_OF_DWORDS_MACTX_EHT_SIG_USR_SU 2
33 
34 #define NUM_OF_QWORDS_MACTX_EHT_SIG_USR_SU 1
35 
36 
37 struct mactx_eht_sig_usr_su {
38 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
39              struct   eht_sig_usr_su_info                                       mactx_eht_sig_usr_su_info_details;
40              uint32_t tlv64_padding                                           : 32; // [31:0]
41 #else
42              struct   eht_sig_usr_su_info                                       mactx_eht_sig_usr_su_info_details;
43              uint32_t tlv64_padding                                           : 32; // [31:0]
44 #endif
45 };
46 
47 
48 /* Description		MACTX_EHT_SIG_USR_SU_INFO_DETAILS
49 
50 			See detailed description of the STRUCT
51 */
52 
53 
54 /* Description		STA_ID
55 
56 			Identifies the STA that is addressed. Details of STA ID
57 			are TBD
58 */
59 
60 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_OFFSET        0x0000000000000000
61 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_LSB           0
62 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_MSB           10
63 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_ID_MASK          0x00000000000007ff
64 
65 
66 /* Description		STA_MCS
67 
68 			Indicates the data MCS
69 			0 - 13: MCS 0 - 13
70 			14: MCS 0 with DCM and 2x duplicate
71 			15: MCS 0 with DCM
72 			<legal all>
73 */
74 
75 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_OFFSET       0x0000000000000000
76 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_LSB          11
77 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_MSB          14
78 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_MCS_MASK         0x0000000000007800
79 
80 
81 /* Description		VALIDATE_0A
82 
83 			Note: spec indicates this shall be set to 1
84 			<legal 1>
85 */
86 
87 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_OFFSET   0x0000000000000000
88 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_LSB      15
89 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_MSB      15
90 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_VALIDATE_0A_MASK     0x0000000000008000
91 
92 
93 /* Description		NSS
94 
95 			Number of spatial streams for this user
96 
97 			The actual number of streams is 1 larger than indicated
98 			in this field.
99 			<legal all>
100 */
101 
102 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_OFFSET           0x0000000000000000
103 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_LSB              16
104 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_MSB              19
105 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_NSS_MASK             0x00000000000f0000
106 
107 
108 /* Description		TXBF
109 
110 			Indicates whether beamforming is applied
111 			0: No beamforming
112 			1: beamforming
113 			<legal all>
114 */
115 
116 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_OFFSET          0x0000000000000000
117 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_LSB             20
118 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_MSB             20
119 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_TXBF_MASK            0x0000000000100000
120 
121 
122 /* Description		STA_CODING
123 
124 			Distinguishes between BCC/LDPC
125 
126 			0: BCC
127 			1: LDPC
128 			<legal all>
129 */
130 
131 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_OFFSET    0x0000000000000000
132 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_LSB       21
133 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_MSB       21
134 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_STA_CODING_MASK      0x0000000000200000
135 
136 
137 /* Description		RESERVED_0B
138 
139 			<legal 0>
140 */
141 
142 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_OFFSET   0x0000000000000000
143 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_LSB      22
144 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_MSB      30
145 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RESERVED_0B_MASK     0x000000007fc00000
146 
147 
148 /* Description		RX_INTEGRITY_CHECK_PASSED
149 
150 			TX side: Set to 0
151 			RX side: Set to 1 if PHY determines the CRC check of the
152 			 codeblock containing this EHT-SIG user info has passed,
153 			else set to 0
154 
155 			<legal all>
156 */
157 
158 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
159 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 31
160 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 31
161 #define MACTX_EHT_SIG_USR_SU_MACTX_EHT_SIG_USR_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x0000000080000000
162 
163 
164 /* Description		TLV64_PADDING
165 
166 			Automatic DWORD padding inserted while converting TLV32
167 			to TLV64 for 64 bit ARCH
168 			<legal 0>
169 */
170 
171 #define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_OFFSET                                   0x0000000000000000
172 #define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_LSB                                      32
173 #define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_MSB                                      63
174 #define MACTX_EHT_SIG_USR_SU_TLV64_PADDING_MASK                                     0xffffffff00000000
175 
176 
177 
178 #endif   // MACTX_EHT_SIG_USR_SU
179