xref: /wlan-driver/fw-api/hw/qca6290/11ax/v1/he_sig_b2_mu_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2016-2017 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