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