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