xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852bs/include/_hal_rate.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2019 Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  *****************************************************************************/
15 #ifndef __HAL_RATE_H__
16 #define __HAL_RATE_H__
17 
18 /*-----------------------------------------------------------
19  *	HW Rate def
20  * -----------------------------------------------------------
21  * CCK Rates, TxHT = 0 */
22 #define DESC_RATE1M				0x00
23 #define DESC_RATE2M				0x01
24 #define DESC_RATE5_5M			0x02
25 #define DESC_RATE11M			0x03
26 
27 /* OFDM Rates, TxHT = 0 */
28 #define DESC_RATE6M				0x04
29 #define DESC_RATE9M				0x05
30 #define DESC_RATE12M			0x06
31 #define DESC_RATE18M			0x07
32 #define DESC_RATE24M			0x08
33 #define DESC_RATE36M			0x09
34 #define DESC_RATE48M			0x0A
35 #define DESC_RATE54M			0x0B
36 
37 /* MCS Rates, TxHT = 1 */
38 #define DESC_RATEMCS0			0x0C
39 #define DESC_RATEMCS1			0x0D
40 #define DESC_RATEMCS2			0x0E
41 #define DESC_RATEMCS3			0x0F
42 #define DESC_RATEMCS4			0x10
43 #define DESC_RATEMCS5			0x11
44 #define DESC_RATEMCS6			0x12
45 #define DESC_RATEMCS7			0x13
46 #define DESC_RATEMCS8			0x14
47 #define DESC_RATEMCS9			0x15
48 #define DESC_RATEMCS10			0x16
49 #define DESC_RATEMCS11			0x17
50 #define DESC_RATEMCS12			0x18
51 #define DESC_RATEMCS13			0x19
52 #define DESC_RATEMCS14			0x1A
53 #define DESC_RATEMCS15			0x1B
54 #define DESC_RATEMCS16			0x1C
55 #define DESC_RATEMCS17			0x1D
56 #define DESC_RATEMCS18			0x1E
57 #define DESC_RATEMCS19			0x1F
58 #define DESC_RATEMCS20			0x20
59 #define DESC_RATEMCS21			0x21
60 #define DESC_RATEMCS22			0x22
61 #define DESC_RATEMCS23			0x23
62 #define DESC_RATEMCS24			0x24
63 #define DESC_RATEMCS25			0x25
64 #define DESC_RATEMCS26			0x26
65 #define DESC_RATEMCS27			0x27
66 #define DESC_RATEMCS28			0x28
67 #define DESC_RATEMCS29			0x29
68 #define DESC_RATEMCS30			0x2A
69 #define DESC_RATEMCS31			0x2B
70 #define DESC_RATEVHTSS1MCS0		0x2C
71 #define DESC_RATEVHTSS1MCS1		0x2D
72 #define DESC_RATEVHTSS1MCS2		0x2E
73 #define DESC_RATEVHTSS1MCS3		0x2F
74 #define DESC_RATEVHTSS1MCS4		0x30
75 #define DESC_RATEVHTSS1MCS5		0x31
76 #define DESC_RATEVHTSS1MCS6		0x32
77 #define DESC_RATEVHTSS1MCS7		0x33
78 #define DESC_RATEVHTSS1MCS8		0x34
79 #define DESC_RATEVHTSS1MCS9		0x35
80 #define DESC_RATEVHTSS2MCS0		0x36
81 #define DESC_RATEVHTSS2MCS1		0x37
82 #define DESC_RATEVHTSS2MCS2		0x38
83 #define DESC_RATEVHTSS2MCS3		0x39
84 #define DESC_RATEVHTSS2MCS4		0x3A
85 #define DESC_RATEVHTSS2MCS5		0x3B
86 #define DESC_RATEVHTSS2MCS6		0x3C
87 #define DESC_RATEVHTSS2MCS7		0x3D
88 #define DESC_RATEVHTSS2MCS8		0x3E
89 #define DESC_RATEVHTSS2MCS9		0x3F
90 #define DESC_RATEVHTSS3MCS0		0x40
91 #define DESC_RATEVHTSS3MCS1		0x41
92 #define DESC_RATEVHTSS3MCS2		0x42
93 #define DESC_RATEVHTSS3MCS3		0x43
94 #define DESC_RATEVHTSS3MCS4		0x44
95 #define DESC_RATEVHTSS3MCS5		0x45
96 #define DESC_RATEVHTSS3MCS6		0x46
97 #define DESC_RATEVHTSS3MCS7		0x47
98 #define DESC_RATEVHTSS3MCS8		0x48
99 #define DESC_RATEVHTSS3MCS9		0x49
100 #define DESC_RATEVHTSS4MCS0		0x4A
101 #define DESC_RATEVHTSS4MCS1		0x4B
102 #define DESC_RATEVHTSS4MCS2		0x4C
103 #define DESC_RATEVHTSS4MCS3		0x4D
104 #define DESC_RATEVHTSS4MCS4		0x4E
105 #define DESC_RATEVHTSS4MCS5		0x4F
106 #define DESC_RATEVHTSS4MCS6		0x50
107 #define DESC_RATEVHTSS4MCS7		0x51
108 #define DESC_RATEVHTSS4MCS8		0x52
109 #define DESC_RATEVHTSS4MCS9		0x53
110 
111 #define HDATA_RATE(rate)\
112 	(rate == DESC_RATE1M) ? "CCK_1M" :\
113 	(rate == DESC_RATE2M) ? "CCK_2M" :\
114 	(rate == DESC_RATE5_5M) ? "CCK5_5M" :\
115 	(rate == DESC_RATE11M) ? "CCK_11M" :\
116 	(rate == DESC_RATE6M) ? "OFDM_6M" :\
117 	(rate == DESC_RATE9M) ? "OFDM_9M" :\
118 	(rate == DESC_RATE12M) ? "OFDM_12M" :\
119 	(rate == DESC_RATE18M) ? "OFDM_18M" :\
120 	(rate == DESC_RATE24M) ? "OFDM_24M" :\
121 	(rate == DESC_RATE36M) ? "OFDM_36M" :\
122 	(rate == DESC_RATE48M) ? "OFDM_48M" :\
123 	(rate == DESC_RATE54M) ? "OFDM_54M" :\
124 	(rate == DESC_RATEMCS0) ? "MCS0" :\
125 	(rate == DESC_RATEMCS1) ? "MCS1" :\
126 	(rate == DESC_RATEMCS2) ? "MCS2" :\
127 	(rate == DESC_RATEMCS3) ? "MCS3" :\
128 	(rate == DESC_RATEMCS4) ? "MCS4" :\
129 	(rate == DESC_RATEMCS5) ? "MCS5" :\
130 	(rate == DESC_RATEMCS6) ? "MCS6" :\
131 	(rate == DESC_RATEMCS7) ? "MCS7" :\
132 	(rate == DESC_RATEMCS8) ? "MCS8" :\
133 	(rate == DESC_RATEMCS9) ? "MCS9" :\
134 	(rate == DESC_RATEMCS10) ? "MCS10" :\
135 	(rate == DESC_RATEMCS11) ? "MCS11" :\
136 	(rate == DESC_RATEMCS12) ? "MCS12" :\
137 	(rate == DESC_RATEMCS13) ? "MCS13" :\
138 	(rate == DESC_RATEMCS14) ? "MCS14" :\
139 	(rate == DESC_RATEMCS15) ? "MCS15" :\
140 	(rate == DESC_RATEMCS16) ? "MCS16" :\
141 	(rate == DESC_RATEMCS17) ? "MCS17" :\
142 	(rate == DESC_RATEMCS18) ? "MCS18" :\
143 	(rate == DESC_RATEMCS19) ? "MCS19" :\
144 	(rate == DESC_RATEMCS20) ? "MCS20" :\
145 	(rate == DESC_RATEMCS21) ? "MCS21" :\
146 	(rate == DESC_RATEMCS22) ? "MCS22" :\
147 	(rate == DESC_RATEMCS23) ? "MCS23" :\
148 	(rate == DESC_RATEMCS24) ? "MCS24" :\
149 	(rate == DESC_RATEMCS25) ? "MCS25" :\
150 	(rate == DESC_RATEMCS26) ? "MCS26" :\
151 	(rate == DESC_RATEMCS27) ? "MCS27" :\
152 	(rate == DESC_RATEMCS28) ? "MCS28" :\
153 	(rate == DESC_RATEMCS29) ? "MCS29" :\
154 	(rate == DESC_RATEMCS30) ? "MCS30" :\
155 	(rate == DESC_RATEMCS31) ? "MCS31" :\
156 	(rate == DESC_RATEVHTSS1MCS0) ? "VHTSS1MCS0" :\
157 	(rate == DESC_RATEVHTSS1MCS1) ? "VHTSS1MCS1" :\
158 	(rate == DESC_RATEVHTSS1MCS2) ? "VHTSS1MCS2" :\
159 	(rate == DESC_RATEVHTSS1MCS3) ? "VHTSS1MCS3" :\
160 	(rate == DESC_RATEVHTSS1MCS4) ? "VHTSS1MCS4" :\
161 	(rate == DESC_RATEVHTSS1MCS5) ? "VHTSS1MCS5" :\
162 	(rate == DESC_RATEVHTSS1MCS6) ? "VHTSS1MCS6" :\
163 	(rate == DESC_RATEVHTSS1MCS7) ? "VHTSS1MCS7" :\
164 	(rate == DESC_RATEVHTSS1MCS8) ? "VHTSS1MCS8" :\
165 	(rate == DESC_RATEVHTSS1MCS9) ? "VHTSS1MCS9" :\
166 	(rate == DESC_RATEVHTSS2MCS0) ? "VHTSS2MCS0" :\
167 	(rate == DESC_RATEVHTSS2MCS1) ? "VHTSS2MCS1" :\
168 	(rate == DESC_RATEVHTSS2MCS2) ? "VHTSS2MCS2" :\
169 	(rate == DESC_RATEVHTSS2MCS3) ? "VHTSS2MCS3" :\
170 	(rate == DESC_RATEVHTSS2MCS4) ? "VHTSS2MCS4" :\
171 	(rate == DESC_RATEVHTSS2MCS5) ? "VHTSS2MCS5" :\
172 	(rate == DESC_RATEVHTSS2MCS6) ? "VHTSS2MCS6" :\
173 	(rate == DESC_RATEVHTSS2MCS7) ? "VHTSS2MCS7" :\
174 	(rate == DESC_RATEVHTSS2MCS8) ? "VHTSS2MCS8" :\
175 	(rate == DESC_RATEVHTSS2MCS9) ? "VHTSS2MCS9" :\
176 	(rate == DESC_RATEVHTSS3MCS0) ? "VHTSS3MCS0" :\
177 	(rate == DESC_RATEVHTSS3MCS1) ? "VHTSS3MCS1" :\
178 	(rate == DESC_RATEVHTSS3MCS2) ? "VHTSS3MCS2" :\
179 	(rate == DESC_RATEVHTSS3MCS3) ? "VHTSS3MCS3" :\
180 	(rate == DESC_RATEVHTSS3MCS4) ? "VHTSS3MCS4" :\
181 	(rate == DESC_RATEVHTSS3MCS5) ? "VHTSS3MCS5" :\
182 	(rate == DESC_RATEVHTSS3MCS6) ? "VHTSS3MCS6" :\
183 	(rate == DESC_RATEVHTSS3MCS7) ? "VHTSS3MCS7" :\
184 	(rate == DESC_RATEVHTSS3MCS8) ? "VHTSS3MCS8" :\
185 	(rate == DESC_RATEVHTSS3MCS9) ? "VHTSS3MCS9" :\
186 	(rate == DESC_RATEVHTSS4MCS0) ? "VHTSS4MCS0" :\
187 	(rate == DESC_RATEVHTSS4MCS1) ? "VHTSS4MCS1" :\
188 	(rate == DESC_RATEVHTSS4MCS2) ? "VHTSS4MCS2" :\
189 	(rate == DESC_RATEVHTSS4MCS3) ? "VHTSS4MCS3" :\
190 	(rate == DESC_RATEVHTSS4MCS4) ? "VHTSS4MCS4" :\
191 	(rate == DESC_RATEVHTSS4MCS5) ? "VHTSS4MCS5" :\
192 	(rate == DESC_RATEVHTSS4MCS6) ? "VHTSS4MCS6" :\
193 	(rate == DESC_RATEVHTSS4MCS7) ? "VHTSS4MCS7" :\
194 	(rate == DESC_RATEVHTSS4MCS8) ? "VHTSS4MCS8" :\
195 	(rate == DESC_RATEVHTSS4MCS9) ? "VHTSS4MCS9" :\
196 	"UNKNOWN"
197 
198 enum hw_data_rate {
199 	HRATE_CCK1		= 0x0,
200 	HRATE_CCK2		= 0x1,
201 	HRATE_CCK5_5	= 0x2,
202 	HRATE_CCK11		= 0x3,
203 	HRATE_OFDM6		= 0x4,
204 	HRATE_OFDM9		= 0x5,
205 	HRATE_OFDM12	= 0x6,
206 	HRATE_OFDM18	= 0x7,
207 	HRATE_OFDM24	= 0x8,
208 	HRATE_OFDM36	= 0x9,
209 	HRATE_OFDM48	= 0xA,
210 	HRATE_OFDM54	= 0xB,
211 	HRATE_MCS0		= 0x80,
212 	HRATE_MCS1		= 0x81,
213 	HRATE_MCS2		= 0x82,
214 	HRATE_MCS3		= 0x83,
215 	HRATE_MCS4		= 0x84,
216 	HRATE_MCS5		= 0x85,
217 	HRATE_MCS6		= 0x86,
218 	HRATE_MCS7		= 0x87,
219 	HRATE_MCS8		= 0x88,
220 	HRATE_MCS9		= 0x89,
221 	HRATE_MCS10		= 0x8A,
222 	HRATE_MCS11		= 0x8B,
223 	HRATE_MCS12		= 0x8C,
224 	HRATE_MCS13		= 0x8D,
225 	HRATE_MCS14		= 0x8E,
226 	HRATE_MCS15		= 0x8F,
227 	HRATE_MCS16		= 0x90,
228 	HRATE_MCS17		= 0x91,
229 	HRATE_MCS18		= 0x92,
230 	HRATE_MCS19		= 0x93,
231 	HRATE_MCS20		= 0x94,
232 	HRATE_MCS21		= 0x95,
233 	HRATE_MCS22		= 0x96,
234 	HRATE_MCS23		= 0x97,
235 	HRATE_MCS24		= 0x98,
236 	HRATE_MCS25		= 0x99,
237 	HRATE_MCS26		= 0x9A,
238 	HRATE_MCS27		= 0x9B,
239 	HRATE_MCS28		= 0x9C,
240 	HRATE_MCS29		= 0x9D,
241 	HRATE_MCS30		= 0x9E,
242 	HRATE_MCS31		= 0x9F,
243 	HRATE_VHT_NSS1_MCS0	= 0x100,
244 	HRATE_VHT_NSS1_MCS1	= 0x101,
245 	HRATE_VHT_NSS1_MCS2	= 0x102,
246 	HRATE_VHT_NSS1_MCS3	= 0x103,
247 	HRATE_VHT_NSS1_MCS4	= 0x104,
248 	HRATE_VHT_NSS1_MCS5	= 0x105,
249 	HRATE_VHT_NSS1_MCS6	= 0x106,
250 	HRATE_VHT_NSS1_MCS7	= 0x107,
251 	HRATE_VHT_NSS1_MCS8	= 0x108,
252 	HRATE_VHT_NSS1_MCS9	= 0x109,
253 	HRATE_VHT_NSS2_MCS0	= 0x110,
254 	HRATE_VHT_NSS2_MCS1	= 0x111,
255 	HRATE_VHT_NSS2_MCS2	= 0x112,
256 	HRATE_VHT_NSS2_MCS3	= 0x113,
257 	HRATE_VHT_NSS2_MCS4	= 0x114,
258 	HRATE_VHT_NSS2_MCS5	= 0x115,
259 	HRATE_VHT_NSS2_MCS6	= 0x116,
260 	HRATE_VHT_NSS2_MCS7	= 0x117,
261 	HRATE_VHT_NSS2_MCS8	= 0x118,
262 	HRATE_VHT_NSS2_MCS9	= 0x119,
263 	HRATE_VHT_NSS3_MCS0	= 0x120,
264 	HRATE_VHT_NSS3_MCS1	= 0x121,
265 	HRATE_VHT_NSS3_MCS2	= 0x122,
266 	HRATE_VHT_NSS3_MCS3	= 0x123,
267 	HRATE_VHT_NSS3_MCS4	= 0x124,
268 	HRATE_VHT_NSS3_MCS5	= 0x125,
269 	HRATE_VHT_NSS3_MCS6	= 0x126,
270 	HRATE_VHT_NSS3_MCS7	= 0x127,
271 	HRATE_VHT_NSS3_MCS8	= 0x128,
272 	HRATE_VHT_NSS3_MCS9	= 0x129,
273 	HRATE_VHT_NSS4_MCS0	= 0x130,
274 	HRATE_VHT_NSS4_MCS1	= 0x131,
275 	HRATE_VHT_NSS4_MCS2	= 0x132,
276 	HRATE_VHT_NSS4_MCS3	= 0x133,
277 	HRATE_VHT_NSS4_MCS4	= 0x134,
278 	HRATE_VHT_NSS4_MCS5	= 0x135,
279 	HRATE_VHT_NSS4_MCS6	= 0x136,
280 	HRATE_VHT_NSS4_MCS7	= 0x137,
281 	HRATE_VHT_NSS4_MCS8	= 0x138,
282 	HRATE_VHT_NSS4_MCS9	= 0x139,
283 	HRATE_HE_NSS1_MCS0	= 0x180,
284 	HRATE_HE_NSS1_MCS1	= 0x181,
285 	HRATE_HE_NSS1_MCS2	= 0x182,
286 	HRATE_HE_NSS1_MCS3	= 0x183,
287 	HRATE_HE_NSS1_MCS4	= 0x184,
288 	HRATE_HE_NSS1_MCS5	= 0x185,
289 	HRATE_HE_NSS1_MCS6	= 0x186,
290 	HRATE_HE_NSS1_MCS7	= 0x187,
291 	HRATE_HE_NSS1_MCS8	= 0x188,
292 	HRATE_HE_NSS1_MCS9	= 0x189,
293 	HRATE_HE_NSS1_MCS10	= 0x18A,
294 	HRATE_HE_NSS1_MCS11	= 0x18B,
295 	HRATE_HE_NSS2_MCS0	= 0x190,
296 	HRATE_HE_NSS2_MCS1	= 0x191,
297 	HRATE_HE_NSS2_MCS2	= 0x192,
298 	HRATE_HE_NSS2_MCS3	= 0x193,
299 	HRATE_HE_NSS2_MCS4	= 0x194,
300 	HRATE_HE_NSS2_MCS5	= 0x195,
301 	HRATE_HE_NSS2_MCS6	= 0x196,
302 	HRATE_HE_NSS2_MCS7	= 0x197,
303 	HRATE_HE_NSS2_MCS8	= 0x198,
304 	HRATE_HE_NSS2_MCS9	= 0x199,
305 	HRATE_HE_NSS2_MCS10	= 0x19A,
306 	HRATE_HE_NSS2_MCS11	= 0x19B,
307 	HRATE_HE_NSS3_MCS0	= 0x1A0,
308 	HRATE_HE_NSS3_MCS1	= 0x1A1,
309 	HRATE_HE_NSS3_MCS2	= 0x1A2,
310 	HRATE_HE_NSS3_MCS3	= 0x1A3,
311 	HRATE_HE_NSS3_MCS4	= 0x1A4,
312 	HRATE_HE_NSS3_MCS5	= 0x1A5,
313 	HRATE_HE_NSS3_MCS6	= 0x1A6,
314 	HRATE_HE_NSS3_MCS7	= 0x1A7,
315 	HRATE_HE_NSS3_MCS8	= 0x1A8,
316 	HRATE_HE_NSS3_MCS9	= 0x1A9,
317 	HRATE_HE_NSS3_MCS10	= 0x1AA,
318 	HRATE_HE_NSS3_MCS11	= 0x1AB,
319 	HRATE_HE_NSS4_MCS0	= 0x1B0,
320 	HRATE_HE_NSS4_MCS1	= 0x1B1,
321 	HRATE_HE_NSS4_MCS2	= 0x1B2,
322 	HRATE_HE_NSS4_MCS3	= 0x1B3,
323 	HRATE_HE_NSS4_MCS4	= 0x1B4,
324 	HRATE_HE_NSS4_MCS5	= 0x1B5,
325 	HRATE_HE_NSS4_MCS6	= 0x1B6,
326 	HRATE_HE_NSS4_MCS7	= 0x1B7,
327 	HRATE_HE_NSS4_MCS8	= 0x1B8,
328 	HRATE_HE_NSS4_MCS9	= 0x1B9,
329 	HRATE_HE_NSS4_MCS10	= 0x1BA,
330 	HRATE_HE_NSS4_MCS11	= 0x1BB
331 };
332 
mrate_to_hwrate(u16 rate)333 static inline u16 mrate_to_hwrate(u16 rate)
334 {
335 	u16 ret = DESC_RATE1M;
336 
337 	switch (rate) {
338 	case MGN_1M:
339 		ret = RTW_DATA_RATE_CCK1;
340 		break;
341 	case MGN_2M:
342 		ret = RTW_DATA_RATE_CCK2;
343 		break;
344 	case MGN_5_5M:
345 		ret = RTW_DATA_RATE_CCK5_5;
346 		break;
347 	case MGN_11M:
348 		ret = RTW_DATA_RATE_CCK11;
349 		break;
350 	case MGN_6M:
351 		ret = RTW_DATA_RATE_OFDM6;
352 		break;
353 	case MGN_9M:
354 		ret = RTW_DATA_RATE_OFDM9;
355 		break;
356 	case MGN_12M:
357 		ret = RTW_DATA_RATE_OFDM12;
358 		break;
359 	case MGN_18M:
360 		ret = RTW_DATA_RATE_OFDM18;
361 		break;
362 	case MGN_24M:
363 		ret = RTW_DATA_RATE_OFDM24;
364 		break;
365 	case MGN_36M:
366 		ret = RTW_DATA_RATE_OFDM36;
367 		break;
368 	case MGN_48M:
369 		ret = RTW_DATA_RATE_OFDM48;
370 		break;
371 	case MGN_54M:
372 		ret = RTW_DATA_RATE_OFDM54;
373 		break;
374 
375 	case MGN_MCS0:
376 		ret = RTW_DATA_RATE_MCS0;
377 		break;
378 	case MGN_MCS1:
379 		ret = RTW_DATA_RATE_MCS1;
380 		break;
381 	case MGN_MCS2:
382 		ret = RTW_DATA_RATE_MCS2;
383 		break;
384 	case MGN_MCS3:
385 		ret = RTW_DATA_RATE_MCS3;
386 		break;
387 	case MGN_MCS4:
388 		ret = RTW_DATA_RATE_MCS4;
389 		break;
390 	case MGN_MCS5:
391 		ret = RTW_DATA_RATE_MCS5;
392 		break;
393 	case MGN_MCS6:
394 		ret = RTW_DATA_RATE_MCS6;
395 		break;
396 	case MGN_MCS7:
397 		ret = RTW_DATA_RATE_MCS7;
398 		break;
399 	case MGN_MCS8:
400 		ret = RTW_DATA_RATE_MCS8;
401 		break;
402 	case MGN_MCS9:
403 		ret = RTW_DATA_RATE_MCS9;
404 		break;
405 	case MGN_MCS10:
406 		ret = RTW_DATA_RATE_MCS10;
407 		break;
408 	case MGN_MCS11:
409 		ret = RTW_DATA_RATE_MCS11;
410 		break;
411 	case MGN_MCS12:
412 		ret = RTW_DATA_RATE_MCS12;
413 		break;
414 	case MGN_MCS13:
415 		ret = RTW_DATA_RATE_MCS13;
416 		break;
417 	case MGN_MCS14:
418 		ret = RTW_DATA_RATE_MCS14;
419 		break;
420 	case MGN_MCS15:
421 		ret = RTW_DATA_RATE_MCS15;
422 		break;
423 	case MGN_MCS16:
424 		ret = RTW_DATA_RATE_MCS16;
425 		break;
426 	case MGN_MCS17:
427 		ret = RTW_DATA_RATE_MCS17;
428 		break;
429 	case MGN_MCS18:
430 		ret = RTW_DATA_RATE_MCS18;
431 		break;
432 	case MGN_MCS19:
433 		ret = RTW_DATA_RATE_MCS19;
434 		break;
435 	case MGN_MCS20:
436 		ret = RTW_DATA_RATE_MCS20;
437 		break;
438 	case MGN_MCS21:
439 		ret = RTW_DATA_RATE_MCS21;
440 		break;
441 	case MGN_MCS22:
442 		ret = RTW_DATA_RATE_MCS22;
443 		break;
444 	case MGN_MCS23:
445 		ret = RTW_DATA_RATE_MCS23;
446 		break;
447 	case MGN_MCS24:
448 		ret = RTW_DATA_RATE_MCS24;
449 		break;
450 	case MGN_MCS25:
451 		ret = RTW_DATA_RATE_MCS25;
452 		break;
453 	case MGN_MCS26:
454 		ret = RTW_DATA_RATE_MCS26;
455 		break;
456 	case MGN_MCS27:
457 		ret = RTW_DATA_RATE_MCS27;
458 		break;
459 	case MGN_MCS28:
460 		ret = RTW_DATA_RATE_MCS28;
461 		break;
462 	case MGN_MCS29:
463 		ret = RTW_DATA_RATE_MCS29;
464 		break;
465 	case MGN_MCS30:
466 		ret = RTW_DATA_RATE_MCS30;
467 		break;
468 	case MGN_MCS31:
469 		ret = RTW_DATA_RATE_MCS31;
470 		break;
471 
472 	case MGN_VHT1SS_MCS0:
473 		ret = RTW_DATA_RATE_VHT_NSS1_MCS0;
474 		break;
475 	case MGN_VHT1SS_MCS1:
476 		ret = RTW_DATA_RATE_VHT_NSS1_MCS1;
477 		break;
478 	case MGN_VHT1SS_MCS2:
479 		ret = RTW_DATA_RATE_VHT_NSS1_MCS2;
480 		break;
481 	case MGN_VHT1SS_MCS3:
482 		ret = RTW_DATA_RATE_VHT_NSS1_MCS3;
483 		break;
484 	case MGN_VHT1SS_MCS4:
485 		ret = RTW_DATA_RATE_VHT_NSS1_MCS4;
486 		break;
487 	case MGN_VHT1SS_MCS5:
488 		ret = RTW_DATA_RATE_VHT_NSS1_MCS5;
489 		break;
490 	case MGN_VHT1SS_MCS6:
491 		ret = RTW_DATA_RATE_VHT_NSS1_MCS6;
492 		break;
493 	case MGN_VHT1SS_MCS7:
494 		ret = RTW_DATA_RATE_VHT_NSS1_MCS7;
495 		break;
496 	case MGN_VHT1SS_MCS8:
497 		ret = RTW_DATA_RATE_VHT_NSS1_MCS8;
498 		break;
499 	case MGN_VHT1SS_MCS9:
500 		ret = RTW_DATA_RATE_VHT_NSS1_MCS9;
501 		break;
502 	case MGN_VHT2SS_MCS0:
503 		ret = RTW_DATA_RATE_VHT_NSS2_MCS0;
504 		break;
505 	case MGN_VHT2SS_MCS1:
506 		ret = RTW_DATA_RATE_VHT_NSS2_MCS1;
507 		break;
508 	case MGN_VHT2SS_MCS2:
509 		ret = RTW_DATA_RATE_VHT_NSS2_MCS2;
510 		break;
511 	case MGN_VHT2SS_MCS3:
512 		ret = RTW_DATA_RATE_VHT_NSS2_MCS3;
513 		break;
514 	case MGN_VHT2SS_MCS4:
515 		ret = RTW_DATA_RATE_VHT_NSS2_MCS4;
516 		break;
517 	case MGN_VHT2SS_MCS5:
518 		ret = RTW_DATA_RATE_VHT_NSS2_MCS5;
519 		break;
520 	case MGN_VHT2SS_MCS6:
521 		ret = RTW_DATA_RATE_VHT_NSS2_MCS6;
522 		break;
523 	case MGN_VHT2SS_MCS7:
524 		ret = RTW_DATA_RATE_VHT_NSS2_MCS7;
525 		break;
526 	case MGN_VHT2SS_MCS8:
527 		ret = RTW_DATA_RATE_VHT_NSS2_MCS8;
528 		break;
529 	case MGN_VHT2SS_MCS9:
530 		ret = RTW_DATA_RATE_VHT_NSS2_MCS9;
531 		break;
532 	case MGN_VHT3SS_MCS0:
533 		ret = RTW_DATA_RATE_VHT_NSS3_MCS0;
534 		break;
535 	case MGN_VHT3SS_MCS1:
536 		ret = RTW_DATA_RATE_VHT_NSS3_MCS1;
537 		break;
538 	case MGN_VHT3SS_MCS2:
539 		ret = RTW_DATA_RATE_VHT_NSS3_MCS2;
540 		break;
541 	case MGN_VHT3SS_MCS3:
542 		ret = RTW_DATA_RATE_VHT_NSS3_MCS3;
543 		break;
544 	case MGN_VHT3SS_MCS4:
545 		ret = RTW_DATA_RATE_VHT_NSS3_MCS4;
546 		break;
547 	case MGN_VHT3SS_MCS5:
548 		ret = RTW_DATA_RATE_VHT_NSS3_MCS5;
549 		break;
550 	case MGN_VHT3SS_MCS6:
551 		ret = RTW_DATA_RATE_VHT_NSS3_MCS6;
552 		break;
553 	case MGN_VHT3SS_MCS7:
554 		ret = RTW_DATA_RATE_VHT_NSS3_MCS7;
555 		break;
556 	case MGN_VHT3SS_MCS8:
557 		ret = RTW_DATA_RATE_VHT_NSS3_MCS8;
558 		break;
559 	case MGN_VHT3SS_MCS9:
560 		ret = RTW_DATA_RATE_VHT_NSS3_MCS9;
561 		break;
562 	case MGN_VHT4SS_MCS0:
563 		ret = RTW_DATA_RATE_VHT_NSS4_MCS0;
564 		break;
565 	case MGN_VHT4SS_MCS1:
566 		ret = RTW_DATA_RATE_VHT_NSS4_MCS1;
567 		break;
568 	case MGN_VHT4SS_MCS2:
569 		ret = RTW_DATA_RATE_VHT_NSS4_MCS2;
570 		break;
571 	case MGN_VHT4SS_MCS3:
572 		ret = RTW_DATA_RATE_VHT_NSS4_MCS3;
573 		break;
574 	case MGN_VHT4SS_MCS4:
575 		ret = RTW_DATA_RATE_VHT_NSS4_MCS4;
576 		break;
577 	case MGN_VHT4SS_MCS5:
578 		ret = RTW_DATA_RATE_VHT_NSS4_MCS5;
579 		break;
580 	case MGN_VHT4SS_MCS6:
581 		ret = RTW_DATA_RATE_VHT_NSS4_MCS6;
582 		break;
583 	case MGN_VHT4SS_MCS7:
584 		ret = RTW_DATA_RATE_VHT_NSS4_MCS7;
585 		break;
586 	case MGN_VHT4SS_MCS8:
587 		ret = RTW_DATA_RATE_VHT_NSS4_MCS8;
588 		break;
589 	case MGN_VHT4SS_MCS9:
590 		ret = RTW_DATA_RATE_VHT_NSS4_MCS9;
591 		break;
592 
593 	case MGN_HE1SS_MCS0:
594 		ret = RTW_DATA_RATE_HE_NSS1_MCS0;
595 		break;
596 	case MGN_HE1SS_MCS1:
597 		ret = RTW_DATA_RATE_HE_NSS1_MCS1;
598 		break;
599 	case MGN_HE1SS_MCS2:
600 		ret = RTW_DATA_RATE_HE_NSS1_MCS2;
601 		break;
602 	case MGN_HE1SS_MCS3:
603 		ret = RTW_DATA_RATE_HE_NSS1_MCS3;
604 		break;
605 	case MGN_HE1SS_MCS4:
606 		ret = RTW_DATA_RATE_HE_NSS1_MCS4;
607 		break;
608 	case MGN_HE1SS_MCS5:
609 		ret = RTW_DATA_RATE_HE_NSS1_MCS5;
610 		break;
611 	case MGN_HE1SS_MCS6:
612 		ret = RTW_DATA_RATE_HE_NSS1_MCS6;
613 		break;
614 	case MGN_HE1SS_MCS7:
615 		ret = RTW_DATA_RATE_HE_NSS1_MCS7;
616 		break;
617 	case MGN_HE1SS_MCS8:
618 		ret = RTW_DATA_RATE_HE_NSS1_MCS8;
619 		break;
620 	case MGN_HE1SS_MCS9:
621 		ret = RTW_DATA_RATE_HE_NSS1_MCS9;
622 		break;
623 	case MGN_HE1SS_MCS10:
624 		ret = RTW_DATA_RATE_HE_NSS1_MCS10;
625 		break;
626 	case MGN_HE1SS_MCS11:
627 		ret = RTW_DATA_RATE_HE_NSS1_MCS11;
628 		break;
629 	case MGN_HE2SS_MCS0:
630 		ret = RTW_DATA_RATE_HE_NSS2_MCS0;
631 		break;
632 	case MGN_HE2SS_MCS1:
633 		ret = RTW_DATA_RATE_HE_NSS2_MCS1;
634 		break;
635 	case MGN_HE2SS_MCS2:
636 		ret = RTW_DATA_RATE_HE_NSS2_MCS2;
637 		break;
638 	case MGN_HE2SS_MCS3:
639 		ret = RTW_DATA_RATE_HE_NSS2_MCS3;
640 		break;
641 	case MGN_HE2SS_MCS4:
642 		ret = RTW_DATA_RATE_HE_NSS2_MCS4;
643 		break;
644 	case MGN_HE2SS_MCS5:
645 		ret = RTW_DATA_RATE_HE_NSS2_MCS5;
646 		break;
647 	case MGN_HE2SS_MCS6:
648 		ret = RTW_DATA_RATE_HE_NSS2_MCS6;
649 		break;
650 	case MGN_HE2SS_MCS7:
651 		ret = RTW_DATA_RATE_HE_NSS2_MCS7;
652 		break;
653 	case MGN_HE2SS_MCS8:
654 		ret = RTW_DATA_RATE_HE_NSS2_MCS8;
655 		break;
656 	case MGN_HE2SS_MCS9:
657 		ret = RTW_DATA_RATE_HE_NSS2_MCS9;
658 		break;
659 	case MGN_HE2SS_MCS10:
660 		ret = RTW_DATA_RATE_HE_NSS2_MCS10;
661 		break;
662 	case MGN_HE2SS_MCS11:
663 		ret = RTW_DATA_RATE_HE_NSS2_MCS11;
664 		break;
665 	case MGN_HE3SS_MCS0:
666 		ret = RTW_DATA_RATE_HE_NSS3_MCS0;
667 		break;
668 	case MGN_HE3SS_MCS1:
669 		ret = RTW_DATA_RATE_HE_NSS3_MCS1;
670 		break;
671 	case MGN_HE3SS_MCS2:
672 		ret = RTW_DATA_RATE_HE_NSS3_MCS2;
673 		break;
674 	case MGN_HE3SS_MCS3:
675 		ret = RTW_DATA_RATE_HE_NSS3_MCS3;
676 		break;
677 	case MGN_HE3SS_MCS4:
678 		ret = RTW_DATA_RATE_HE_NSS3_MCS4;
679 		break;
680 	case MGN_HE3SS_MCS5:
681 		ret = RTW_DATA_RATE_HE_NSS3_MCS5;
682 		break;
683 	case MGN_HE3SS_MCS6:
684 		ret = RTW_DATA_RATE_HE_NSS3_MCS6;
685 		break;
686 	case MGN_HE3SS_MCS7:
687 		ret = RTW_DATA_RATE_HE_NSS3_MCS7;
688 		break;
689 	case MGN_HE3SS_MCS8:
690 		ret = RTW_DATA_RATE_HE_NSS3_MCS8;
691 		break;
692 	case MGN_HE3SS_MCS9:
693 		ret = RTW_DATA_RATE_HE_NSS3_MCS9;
694 		break;
695 	case MGN_HE3SS_MCS10:
696 		ret = RTW_DATA_RATE_HE_NSS3_MCS10;
697 		break;
698 	case MGN_HE3SS_MCS11:
699 		ret = RTW_DATA_RATE_HE_NSS3_MCS11;
700 		break;
701 	case MGN_HE4SS_MCS0:
702 		ret = RTW_DATA_RATE_HE_NSS4_MCS0;
703 		break;
704 	case MGN_HE4SS_MCS1:
705 		ret = RTW_DATA_RATE_HE_NSS4_MCS1;
706 		break;
707 	case MGN_HE4SS_MCS2:
708 		ret = RTW_DATA_RATE_HE_NSS4_MCS2;
709 		break;
710 	case MGN_HE4SS_MCS3:
711 		ret = RTW_DATA_RATE_HE_NSS4_MCS3;
712 		break;
713 	case MGN_HE4SS_MCS4:
714 		ret = RTW_DATA_RATE_HE_NSS4_MCS4;
715 		break;
716 	case MGN_HE4SS_MCS5:
717 		ret = RTW_DATA_RATE_HE_NSS4_MCS5;
718 		break;
719 	case MGN_HE4SS_MCS6:
720 		ret = RTW_DATA_RATE_HE_NSS4_MCS6;
721 		break;
722 	case MGN_HE4SS_MCS7:
723 		ret = RTW_DATA_RATE_HE_NSS4_MCS7;
724 		break;
725 	case MGN_HE4SS_MCS8:
726 		ret = RTW_DATA_RATE_HE_NSS4_MCS8;
727 		break;
728 	case MGN_HE4SS_MCS9:
729 		ret = RTW_DATA_RATE_HE_NSS4_MCS9;
730 		break;
731 	case MGN_HE4SS_MCS10:
732 		ret = RTW_DATA_RATE_HE_NSS4_MCS10;
733 		break;
734 	case MGN_HE4SS_MCS11:
735 		ret = RTW_DATA_RATE_HE_NSS4_MCS11;
736 		break;
737 	default:
738 		break;
739 	}
740 
741 	return ret;
742 }
743 
hwrate_to_mrate(u16 rate)744 static inline u8 hwrate_to_mrate(u16 rate)
745 {
746 	u16 ret_rate = MGN_1M;
747 
748 	switch (rate) {
749 
750 	case RTW_DATA_RATE_CCK1:
751 		ret_rate = MGN_1M;
752 		break;
753 	case RTW_DATA_RATE_CCK2:
754 		ret_rate = MGN_2M;
755 		break;
756 	case RTW_DATA_RATE_CCK5_5:
757 		ret_rate = MGN_5_5M;
758 		break;
759 	case RTW_DATA_RATE_CCK11:
760 		ret_rate = MGN_11M;
761 		break;
762 	case RTW_DATA_RATE_OFDM6:
763 		ret_rate = MGN_6M;
764 		break;
765 	case RTW_DATA_RATE_OFDM9:
766 		ret_rate = MGN_9M;
767 		break;
768 	case RTW_DATA_RATE_OFDM12:
769 		ret_rate = MGN_12M;
770 		break;
771 	case RTW_DATA_RATE_OFDM18:
772 		ret_rate = MGN_18M;
773 		break;
774 	case RTW_DATA_RATE_OFDM24:
775 		ret_rate = MGN_24M;
776 		break;
777 	case RTW_DATA_RATE_OFDM36:
778 		ret_rate = MGN_36M;
779 		break;
780 	case RTW_DATA_RATE_OFDM48:
781 		ret_rate = MGN_48M;
782 		break;
783 	case RTW_DATA_RATE_OFDM54:
784 		ret_rate = MGN_54M;
785 		break;
786 	case RTW_DATA_RATE_MCS0:
787 		ret_rate = MGN_MCS0;
788 		break;
789 	case RTW_DATA_RATE_MCS1:
790 		ret_rate = MGN_MCS1;
791 		break;
792 	case RTW_DATA_RATE_MCS2:
793 		ret_rate = MGN_MCS2;
794 		break;
795 	case RTW_DATA_RATE_MCS3:
796 		ret_rate = MGN_MCS3;
797 		break;
798 	case RTW_DATA_RATE_MCS4:
799 		ret_rate = MGN_MCS4;
800 		break;
801 	case RTW_DATA_RATE_MCS5:
802 		ret_rate = MGN_MCS5;
803 		break;
804 	case RTW_DATA_RATE_MCS6:
805 		ret_rate = MGN_MCS6;
806 		break;
807 	case RTW_DATA_RATE_MCS7:
808 		ret_rate = MGN_MCS7;
809 		break;
810 	case RTW_DATA_RATE_MCS8:
811 		ret_rate = MGN_MCS8;
812 		break;
813 	case RTW_DATA_RATE_MCS9:
814 		ret_rate = MGN_MCS9;
815 		break;
816 	case RTW_DATA_RATE_MCS10:
817 		ret_rate = MGN_MCS10;
818 		break;
819 	case RTW_DATA_RATE_MCS11:
820 		ret_rate = MGN_MCS11;
821 		break;
822 	case RTW_DATA_RATE_MCS12:
823 		ret_rate = MGN_MCS12;
824 		break;
825 	case RTW_DATA_RATE_MCS13:
826 		ret_rate = MGN_MCS13;
827 		break;
828 	case RTW_DATA_RATE_MCS14:
829 		ret_rate = MGN_MCS14;
830 		break;
831 	case RTW_DATA_RATE_MCS15:
832 		ret_rate = MGN_MCS15;
833 		break;
834 	case RTW_DATA_RATE_MCS16:
835 		ret_rate = MGN_MCS16;
836 		break;
837 	case RTW_DATA_RATE_MCS17:
838 		ret_rate = MGN_MCS17;
839 		break;
840 	case RTW_DATA_RATE_MCS18:
841 		ret_rate = MGN_MCS18;
842 		break;
843 	case RTW_DATA_RATE_MCS19:
844 		ret_rate = MGN_MCS19;
845 		break;
846 	case RTW_DATA_RATE_MCS20:
847 		ret_rate = MGN_MCS20;
848 		break;
849 	case RTW_DATA_RATE_MCS21:
850 		ret_rate = MGN_MCS21;
851 		break;
852 	case RTW_DATA_RATE_MCS22:
853 		ret_rate = MGN_MCS22;
854 		break;
855 	case RTW_DATA_RATE_MCS23:
856 		ret_rate = MGN_MCS23;
857 		break;
858 	case RTW_DATA_RATE_MCS24:
859 		ret_rate = MGN_MCS24;
860 		break;
861 	case RTW_DATA_RATE_MCS25:
862 		ret_rate = MGN_MCS25;
863 		break;
864 	case RTW_DATA_RATE_MCS26:
865 		ret_rate = MGN_MCS26;
866 		break;
867 	case RTW_DATA_RATE_MCS27:
868 		ret_rate = MGN_MCS27;
869 		break;
870 	case RTW_DATA_RATE_MCS28:
871 		ret_rate = MGN_MCS28;
872 		break;
873 	case RTW_DATA_RATE_MCS29:
874 		ret_rate = MGN_MCS29;
875 		break;
876 	case RTW_DATA_RATE_MCS30:
877 		ret_rate = MGN_MCS30;
878 		break;
879 	case RTW_DATA_RATE_MCS31:
880 		ret_rate = MGN_MCS31;
881 		break;
882 	case RTW_DATA_RATE_VHT_NSS1_MCS0:
883 		ret_rate = MGN_VHT1SS_MCS0;
884 		break;
885 	case RTW_DATA_RATE_VHT_NSS1_MCS1:
886 		ret_rate = MGN_VHT1SS_MCS1;
887 		break;
888 	case RTW_DATA_RATE_VHT_NSS1_MCS2:
889 		ret_rate = MGN_VHT1SS_MCS2;
890 		break;
891 	case RTW_DATA_RATE_VHT_NSS1_MCS3:
892 		ret_rate = MGN_VHT1SS_MCS3;
893 		break;
894 	case RTW_DATA_RATE_VHT_NSS1_MCS4:
895 		ret_rate = MGN_VHT1SS_MCS4;
896 		break;
897 	case RTW_DATA_RATE_VHT_NSS1_MCS5:
898 		ret_rate = MGN_VHT1SS_MCS5;
899 		break;
900 	case RTW_DATA_RATE_VHT_NSS1_MCS6:
901 		ret_rate = MGN_VHT1SS_MCS6;
902 		break;
903 	case RTW_DATA_RATE_VHT_NSS1_MCS7:
904 		ret_rate = MGN_VHT1SS_MCS7;
905 		break;
906 	case RTW_DATA_RATE_VHT_NSS1_MCS8:
907 		ret_rate = MGN_VHT1SS_MCS8;
908 		break;
909 	case RTW_DATA_RATE_VHT_NSS1_MCS9:
910 		ret_rate = MGN_VHT1SS_MCS9;
911 		break;
912 	case RTW_DATA_RATE_VHT_NSS2_MCS0:
913 		ret_rate = MGN_VHT2SS_MCS0;
914 		break;
915 	case RTW_DATA_RATE_VHT_NSS2_MCS1:
916 		ret_rate = MGN_VHT2SS_MCS1;
917 		break;
918 	case RTW_DATA_RATE_VHT_NSS2_MCS2:
919 		ret_rate = MGN_VHT2SS_MCS2;
920 		break;
921 	case RTW_DATA_RATE_VHT_NSS2_MCS3:
922 		ret_rate = MGN_VHT2SS_MCS3;
923 		break;
924 	case RTW_DATA_RATE_VHT_NSS2_MCS4:
925 		ret_rate = MGN_VHT2SS_MCS4;
926 		break;
927 	case RTW_DATA_RATE_VHT_NSS2_MCS5:
928 		ret_rate = MGN_VHT2SS_MCS5;
929 		break;
930 	case RTW_DATA_RATE_VHT_NSS2_MCS6:
931 		ret_rate = MGN_VHT2SS_MCS6;
932 		break;
933 	case RTW_DATA_RATE_VHT_NSS2_MCS7:
934 		ret_rate = MGN_VHT2SS_MCS7;
935 		break;
936 	case RTW_DATA_RATE_VHT_NSS2_MCS8:
937 		ret_rate = MGN_VHT2SS_MCS8;
938 		break;
939 	case RTW_DATA_RATE_VHT_NSS2_MCS9:
940 		ret_rate = MGN_VHT2SS_MCS9;
941 		break;
942 	case RTW_DATA_RATE_VHT_NSS3_MCS0:
943 		ret_rate = MGN_VHT3SS_MCS0;
944 		break;
945 	case RTW_DATA_RATE_VHT_NSS3_MCS1:
946 		ret_rate = MGN_VHT3SS_MCS1;
947 		break;
948 	case RTW_DATA_RATE_VHT_NSS3_MCS2:
949 		ret_rate = MGN_VHT3SS_MCS2;
950 		break;
951 	case RTW_DATA_RATE_VHT_NSS3_MCS3:
952 		ret_rate = MGN_VHT3SS_MCS3;
953 		break;
954 	case RTW_DATA_RATE_VHT_NSS3_MCS4:
955 		ret_rate = MGN_VHT3SS_MCS4;
956 		break;
957 	case RTW_DATA_RATE_VHT_NSS3_MCS5:
958 		ret_rate = MGN_VHT3SS_MCS5;
959 		break;
960 	case RTW_DATA_RATE_VHT_NSS3_MCS6:
961 		ret_rate = MGN_VHT3SS_MCS6;
962 		break;
963 	case RTW_DATA_RATE_VHT_NSS3_MCS7:
964 		ret_rate = MGN_VHT3SS_MCS7;
965 		break;
966 	case RTW_DATA_RATE_VHT_NSS3_MCS8:
967 		ret_rate = MGN_VHT3SS_MCS8;
968 		break;
969 	case RTW_DATA_RATE_VHT_NSS3_MCS9:
970 		ret_rate = MGN_VHT3SS_MCS9;
971 		break;
972 	case RTW_DATA_RATE_VHT_NSS4_MCS0:
973 		ret_rate = MGN_VHT4SS_MCS0;
974 		break;
975 	case RTW_DATA_RATE_VHT_NSS4_MCS1:
976 		ret_rate = MGN_VHT4SS_MCS1;
977 		break;
978 	case RTW_DATA_RATE_VHT_NSS4_MCS2:
979 		ret_rate = MGN_VHT4SS_MCS2;
980 		break;
981 	case RTW_DATA_RATE_VHT_NSS4_MCS3:
982 		ret_rate = MGN_VHT4SS_MCS3;
983 		break;
984 	case RTW_DATA_RATE_VHT_NSS4_MCS4:
985 		ret_rate = MGN_VHT4SS_MCS4;
986 		break;
987 	case RTW_DATA_RATE_VHT_NSS4_MCS5:
988 		ret_rate = MGN_VHT4SS_MCS5;
989 		break;
990 	case RTW_DATA_RATE_VHT_NSS4_MCS6:
991 		ret_rate = MGN_VHT4SS_MCS6;
992 		break;
993 	case RTW_DATA_RATE_VHT_NSS4_MCS7:
994 		ret_rate = MGN_VHT4SS_MCS7;
995 		break;
996 	case RTW_DATA_RATE_VHT_NSS4_MCS8:
997 		ret_rate = MGN_VHT4SS_MCS8;
998 		break;
999 	case RTW_DATA_RATE_VHT_NSS4_MCS9:
1000 		ret_rate = MGN_VHT4SS_MCS9;
1001 		break;
1002 	case RTW_DATA_RATE_HE_NSS1_MCS0:
1003 		ret_rate = MGN_HE1SS_MCS0;
1004 		break;
1005 	case RTW_DATA_RATE_HE_NSS1_MCS1:
1006 		ret_rate = MGN_HE1SS_MCS1;
1007 		break;
1008 	case RTW_DATA_RATE_HE_NSS1_MCS2:
1009 		ret_rate = MGN_HE1SS_MCS2;
1010 		break;
1011 	case RTW_DATA_RATE_HE_NSS1_MCS3:
1012 		ret_rate = MGN_HE1SS_MCS3;
1013 		break;
1014 	case RTW_DATA_RATE_HE_NSS1_MCS4:
1015 		ret_rate = MGN_HE1SS_MCS4;
1016 		break;
1017 	case RTW_DATA_RATE_HE_NSS1_MCS5:
1018 		ret_rate = MGN_HE1SS_MCS5;
1019 		break;
1020 	case RTW_DATA_RATE_HE_NSS1_MCS6:
1021 		ret_rate = MGN_HE1SS_MCS6;
1022 		break;
1023 	case RTW_DATA_RATE_HE_NSS1_MCS7:
1024 		ret_rate = MGN_HE1SS_MCS7;
1025 		break;
1026 	case RTW_DATA_RATE_HE_NSS1_MCS8:
1027 		ret_rate = MGN_HE1SS_MCS8;
1028 		break;
1029 	case RTW_DATA_RATE_HE_NSS1_MCS9:
1030 		ret_rate = MGN_HE1SS_MCS9;
1031 		break;
1032 	case RTW_DATA_RATE_HE_NSS1_MCS10:
1033 		ret_rate = MGN_HE1SS_MCS10;
1034 		break;
1035 	case RTW_DATA_RATE_HE_NSS1_MCS11:
1036 		ret_rate = MGN_HE1SS_MCS11;
1037 		break;
1038 	case RTW_DATA_RATE_HE_NSS2_MCS0:
1039 		ret_rate = MGN_HE2SS_MCS0;
1040 		break;
1041 	case RTW_DATA_RATE_HE_NSS2_MCS1:
1042 		ret_rate = MGN_HE2SS_MCS1;
1043 		break;
1044 	case RTW_DATA_RATE_HE_NSS2_MCS2:
1045 		ret_rate = MGN_HE2SS_MCS2;
1046 		break;
1047 	case RTW_DATA_RATE_HE_NSS2_MCS3:
1048 		ret_rate = MGN_HE2SS_MCS3;
1049 		break;
1050 	case RTW_DATA_RATE_HE_NSS2_MCS4:
1051 		ret_rate = MGN_HE2SS_MCS4;
1052 		break;
1053 	case RTW_DATA_RATE_HE_NSS2_MCS5:
1054 		ret_rate = MGN_HE2SS_MCS5;
1055 		break;
1056 	case RTW_DATA_RATE_HE_NSS2_MCS6:
1057 		ret_rate = MGN_HE2SS_MCS6;
1058 		break;
1059 	case RTW_DATA_RATE_HE_NSS2_MCS7:
1060 		ret_rate = MGN_HE2SS_MCS7;
1061 		break;
1062 	case RTW_DATA_RATE_HE_NSS2_MCS8:
1063 		ret_rate = MGN_HE2SS_MCS8;
1064 		break;
1065 	case RTW_DATA_RATE_HE_NSS2_MCS9:
1066 		ret_rate = MGN_HE2SS_MCS9;
1067 		break;
1068 	case RTW_DATA_RATE_HE_NSS2_MCS10:
1069 		ret_rate = MGN_HE2SS_MCS10;
1070 		break;
1071 	case RTW_DATA_RATE_HE_NSS2_MCS11:
1072 		ret_rate = MGN_HE2SS_MCS11;
1073 		break;
1074 	case RTW_DATA_RATE_HE_NSS3_MCS0:
1075 		ret_rate = MGN_HE3SS_MCS0;
1076 		break;
1077 	case RTW_DATA_RATE_HE_NSS3_MCS1:
1078 		ret_rate = MGN_HE3SS_MCS1;
1079 		break;
1080 	case RTW_DATA_RATE_HE_NSS3_MCS2:
1081 		ret_rate = MGN_HE3SS_MCS2;
1082 		break;
1083 	case RTW_DATA_RATE_HE_NSS3_MCS3:
1084 		ret_rate = MGN_HE3SS_MCS3;
1085 		break;
1086 	case RTW_DATA_RATE_HE_NSS3_MCS4:
1087 		ret_rate = MGN_HE3SS_MCS4;
1088 		break;
1089 	case RTW_DATA_RATE_HE_NSS3_MCS5:
1090 		ret_rate = MGN_HE3SS_MCS5;
1091 		break;
1092 	case RTW_DATA_RATE_HE_NSS3_MCS6:
1093 		ret_rate = MGN_HE3SS_MCS6;
1094 		break;
1095 	case RTW_DATA_RATE_HE_NSS3_MCS7:
1096 		ret_rate = MGN_HE3SS_MCS7;
1097 		break;
1098 	case RTW_DATA_RATE_HE_NSS3_MCS8:
1099 		ret_rate = MGN_HE3SS_MCS8;
1100 		break;
1101 	case RTW_DATA_RATE_HE_NSS3_MCS9:
1102 		ret_rate = MGN_HE3SS_MCS9;
1103 		break;
1104 	case RTW_DATA_RATE_HE_NSS3_MCS10:
1105 		ret_rate = MGN_HE3SS_MCS10;
1106 		break;
1107 	case RTW_DATA_RATE_HE_NSS3_MCS11:
1108 		ret_rate = MGN_HE3SS_MCS11;
1109 		break;
1110 	case RTW_DATA_RATE_HE_NSS4_MCS0:
1111 		ret_rate = MGN_HE4SS_MCS0;
1112 		break;
1113 	case RTW_DATA_RATE_HE_NSS4_MCS1:
1114 		ret_rate = MGN_HE4SS_MCS1;
1115 		break;
1116 	case RTW_DATA_RATE_HE_NSS4_MCS2:
1117 		ret_rate = MGN_HE4SS_MCS2;
1118 		break;
1119 	case RTW_DATA_RATE_HE_NSS4_MCS3:
1120 		ret_rate = MGN_HE4SS_MCS3;
1121 		break;
1122 	case RTW_DATA_RATE_HE_NSS4_MCS4:
1123 		ret_rate = MGN_HE4SS_MCS4;
1124 		break;
1125 	case RTW_DATA_RATE_HE_NSS4_MCS5:
1126 		ret_rate = MGN_HE4SS_MCS5;
1127 		break;
1128 	case RTW_DATA_RATE_HE_NSS4_MCS6:
1129 		ret_rate = MGN_HE4SS_MCS6;
1130 		break;
1131 	case RTW_DATA_RATE_HE_NSS4_MCS7:
1132 		ret_rate = MGN_HE4SS_MCS7;
1133 		break;
1134 	case RTW_DATA_RATE_HE_NSS4_MCS8:
1135 		ret_rate = MGN_HE4SS_MCS8;
1136 		break;
1137 	case RTW_DATA_RATE_HE_NSS4_MCS9:
1138 		ret_rate = MGN_HE4SS_MCS9;
1139 		break;
1140 	case RTW_DATA_RATE_HE_NSS4_MCS10:
1141 		ret_rate = MGN_HE4SS_MCS10;
1142 		break;
1143 	case RTW_DATA_RATE_HE_NSS4_MCS11:
1144 		ret_rate = MGN_HE4SS_MCS11;
1145 		break;
1146 
1147 	default:
1148 		break;
1149 	}
1150 
1151 	return ret_rate;
1152 }
1153 
1154 #endif /* __HAL_RATE_H__ */
1155