d12b550486a95d402eb00a90b9b21101c6fe061b
[openwrt/staging/yousong.git] / package / mac80211 / patches / 616-rt2x00-support-rt5350.patch
1 --- a/drivers/net/wireless/rt2x00/rt2800.h
2 +++ b/drivers/net/wireless/rt2x00/rt2800.h
3 @@ -69,6 +69,7 @@
4 #define RF3322 0x000c
5 #define RF3053 0x000d
6 #define RF3290 0x3290
7 +#define RF5350 0x5350
8 #define RF5360 0x5360
9 #define RF5370 0x5370
10 #define RF5372 0x5372
11 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
12 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
13 @@ -2138,6 +2138,15 @@ static void rt2800_config_channel_rf53xx
14 if (rf->channel <= 14) {
15 int idx = rf->channel-1;
16
17 + if (rt2x00_rt(rt2x00dev, RT5350)) {
18 + static const char r59_non_bt[] = {0x0b, 0x0b,
19 + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0a,
20 + 0x0a, 0x09, 0x08, 0x07, 0x07, 0x06};
21 +
22 + rt2800_rfcsr_write(rt2x00dev, 59,
23 + r59_non_bt[idx]);
24 + }
25 +
26 if (test_bit(CAPABILITY_BT_COEXIST, &rt2x00dev->cap_flags)) {
27 if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) {
28 /* r55/r59 value array of channel 1~14 */
29 @@ -2219,6 +2228,7 @@ static void rt2800_config_channel(struct
30 case RF3322:
31 rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
32 break;
33 + case RF5350:
34 case RF5360:
35 case RF5370:
36 case RF5372:
37 @@ -2232,6 +2242,7 @@ static void rt2800_config_channel(struct
38
39 if (rt2x00_rf(rt2x00dev, RF3290) ||
40 rt2x00_rf(rt2x00dev, RF3322) ||
41 + rt2x00_rf(rt2x00dev, RF5350) ||
42 rt2x00_rf(rt2x00dev, RF5360) ||
43 rt2x00_rf(rt2x00dev, RF5370) ||
44 rt2x00_rf(rt2x00dev, RF5372) ||
45 @@ -2362,7 +2373,8 @@ static void rt2800_config_channel(struct
46 /*
47 * Clear update flag
48 */
49 - if (rt2x00_rt(rt2x00dev, RT3352)) {
50 + if (rt2x00_rt(rt2x00dev, RT3352) ||
51 + rt2x00_rt(rt2x00dev, RT5350)) {
52 rt2800_bbp_read(rt2x00dev, 49, &bbp);
53 rt2x00_set_field8(&bbp, BBP49_UPDATE_FLAG, 0);
54 rt2800_bbp_write(rt2x00dev, 49, bbp);
55 @@ -2801,6 +2813,7 @@ void rt2800_vco_calibration(struct rt2x0
56 rt2800_rfcsr_write(rt2x00dev, 7, rfcsr);
57 break;
58 case RF3290:
59 + case RF5350:
60 case RF5360:
61 case RF5370:
62 case RF5372:
63 @@ -3125,7 +3138,8 @@ static int rt2800_init_registers(struct
64 } else if (rt2x00_rt(rt2x00dev, RT3572)) {
65 rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000400);
66 rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
67 - } else if (rt2x00_rt(rt2x00dev, RT5390) ||
68 + } else if (rt2x00_rt(rt2x00dev, RT5350) ||
69 + rt2x00_rt(rt2x00dev, RT5390) ||
70 rt2x00_rt(rt2x00dev, RT5392)) {
71 rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
72 rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
73 @@ -3507,6 +3521,10 @@ static int rt2800_init_bbp(struct rt2x00
74 rt2800_bbp_write(rt2x00dev, 4, 0x50);
75 }
76
77 + if (rt2x00_rt(rt2x00dev, RT5350)) {
78 + rt2800_bbp_write(rt2x00dev, 4, 0x50);
79 + }
80 +
81 if (rt2x00_rt(rt2x00dev, RT3290) ||
82 rt2x00_rt(rt2x00dev, RT5390) ||
83 rt2x00_rt(rt2x00dev, RT5392)) {
84 @@ -3519,11 +3537,13 @@ static int rt2800_init_bbp(struct rt2x00
85 rt2x00_rt(rt2x00dev, RT3290) ||
86 rt2x00_rt(rt2x00dev, RT3352) ||
87 rt2x00_rt(rt2x00dev, RT3572) ||
88 + rt2x00_rt(rt2x00dev, RT5350) ||
89 rt2x00_rt(rt2x00dev, RT5390) ||
90 rt2x00_rt(rt2x00dev, RT5392))
91 rt2800_bbp_write(rt2x00dev, 31, 0x08);
92
93 - if (rt2x00_rt(rt2x00dev, RT3352))
94 + if (rt2x00_rt(rt2x00dev, RT3352) ||
95 + rt2x00_rt(rt2x00dev, RT5350))
96 rt2800_bbp_write(rt2x00dev, 47, 0x48);
97
98 rt2800_bbp_write(rt2x00dev, 65, 0x2c);
99 @@ -3531,6 +3551,7 @@ static int rt2800_init_bbp(struct rt2x00
100
101 if (rt2x00_rt(rt2x00dev, RT3290) ||
102 rt2x00_rt(rt2x00dev, RT3352) ||
103 + rt2x00_rt(rt2x00dev, RT5350) ||
104 rt2x00_rt(rt2x00dev, RT5390) ||
105 rt2x00_rt(rt2x00dev, RT5392))
106 rt2800_bbp_write(rt2x00dev, 68, 0x0b);
107 @@ -3540,6 +3561,7 @@ static int rt2800_init_bbp(struct rt2x00
108 rt2800_bbp_write(rt2x00dev, 73, 0x12);
109 } else if (rt2x00_rt(rt2x00dev, RT3290) ||
110 rt2x00_rt(rt2x00dev, RT3352) ||
111 + rt2x00_rt(rt2x00dev, RT5350) ||
112 rt2x00_rt(rt2x00dev, RT5390) ||
113 rt2x00_rt(rt2x00dev, RT5392)) {
114 rt2800_bbp_write(rt2x00dev, 69, 0x12);
115 @@ -3576,7 +3598,8 @@ static int rt2800_init_bbp(struct rt2x00
116 rt2800_bbp_write(rt2x00dev, 79, 0x18);
117 rt2800_bbp_write(rt2x00dev, 80, 0x09);
118 rt2800_bbp_write(rt2x00dev, 81, 0x33);
119 - } else if (rt2x00_rt(rt2x00dev, RT3352)) {
120 + } else if (rt2x00_rt(rt2x00dev, RT3352) ||
121 + rt2x00_rt(rt2x00dev, RT5350)) {
122 rt2800_bbp_write(rt2x00dev, 78, 0x0e);
123 rt2800_bbp_write(rt2x00dev, 80, 0x08);
124 rt2800_bbp_write(rt2x00dev, 81, 0x37);
125 @@ -3586,6 +3609,7 @@ static int rt2800_init_bbp(struct rt2x00
126
127 rt2800_bbp_write(rt2x00dev, 82, 0x62);
128 if (rt2x00_rt(rt2x00dev, RT3290) ||
129 + rt2x00_rt(rt2x00dev, RT5350) ||
130 rt2x00_rt(rt2x00dev, RT5390) ||
131 rt2x00_rt(rt2x00dev, RT5392))
132 rt2800_bbp_write(rt2x00dev, 83, 0x7a);
133 @@ -3595,6 +3619,7 @@ static int rt2800_init_bbp(struct rt2x00
134 if (rt2x00_rt_rev(rt2x00dev, RT2860, REV_RT2860D))
135 rt2800_bbp_write(rt2x00dev, 84, 0x19);
136 else if (rt2x00_rt(rt2x00dev, RT3290) ||
137 + rt2x00_rt(rt2x00dev, RT5350) ||
138 rt2x00_rt(rt2x00dev, RT5390) ||
139 rt2x00_rt(rt2x00dev, RT5392))
140 rt2800_bbp_write(rt2x00dev, 84, 0x9a);
141 @@ -3603,6 +3628,7 @@ static int rt2800_init_bbp(struct rt2x00
142
143 if (rt2x00_rt(rt2x00dev, RT3290) ||
144 rt2x00_rt(rt2x00dev, RT3352) ||
145 + rt2x00_rt(rt2x00dev, RT5350) ||
146 rt2x00_rt(rt2x00dev, RT5390) ||
147 rt2x00_rt(rt2x00dev, RT5392))
148 rt2800_bbp_write(rt2x00dev, 86, 0x38);
149 @@ -3617,6 +3643,7 @@ static int rt2800_init_bbp(struct rt2x00
150
151 if (rt2x00_rt(rt2x00dev, RT3290) ||
152 rt2x00_rt(rt2x00dev, RT3352) ||
153 + rt2x00_rt(rt2x00dev, RT5350) ||
154 rt2x00_rt(rt2x00dev, RT5390) ||
155 rt2x00_rt(rt2x00dev, RT5392))
156 rt2800_bbp_write(rt2x00dev, 92, 0x02);
157 @@ -3635,6 +3662,7 @@ static int rt2800_init_bbp(struct rt2x00
158 rt2x00_rt(rt2x00dev, RT3290) ||
159 rt2x00_rt(rt2x00dev, RT3352) ||
160 rt2x00_rt(rt2x00dev, RT3572) ||
161 + rt2x00_rt(rt2x00dev, RT5350) ||
162 rt2x00_rt(rt2x00dev, RT5390) ||
163 rt2x00_rt(rt2x00dev, RT5392) ||
164 rt2800_is_305x_soc(rt2x00dev))
165 @@ -3644,6 +3672,7 @@ static int rt2800_init_bbp(struct rt2x00
166
167 if (rt2x00_rt(rt2x00dev, RT3290) ||
168 rt2x00_rt(rt2x00dev, RT3352) ||
169 + rt2x00_rt(rt2x00dev, RT5350) ||
170 rt2x00_rt(rt2x00dev, RT5390) ||
171 rt2x00_rt(rt2x00dev, RT5392))
172 rt2800_bbp_write(rt2x00dev, 104, 0x92);
173 @@ -3654,13 +3683,15 @@ static int rt2800_init_bbp(struct rt2x00
174 rt2800_bbp_write(rt2x00dev, 105, 0x1c);
175 else if (rt2x00_rt(rt2x00dev, RT3352))
176 rt2800_bbp_write(rt2x00dev, 105, 0x34);
177 - else if (rt2x00_rt(rt2x00dev, RT5390) ||
178 + else if (rt2x00_rt(rt2x00dev, RT5350) ||
179 + rt2x00_rt(rt2x00dev, RT5390) ||
180 rt2x00_rt(rt2x00dev, RT5392))
181 rt2800_bbp_write(rt2x00dev, 105, 0x3c);
182 else
183 rt2800_bbp_write(rt2x00dev, 105, 0x05);
184
185 if (rt2x00_rt(rt2x00dev, RT3290) ||
186 + rt2x00_rt(rt2x00dev, RT5350) ||
187 rt2x00_rt(rt2x00dev, RT5390))
188 rt2800_bbp_write(rt2x00dev, 106, 0x03);
189 else if (rt2x00_rt(rt2x00dev, RT3352))
190 @@ -3670,11 +3701,13 @@ static int rt2800_init_bbp(struct rt2x00
191 else
192 rt2800_bbp_write(rt2x00dev, 106, 0x35);
193
194 - if (rt2x00_rt(rt2x00dev, RT3352))
195 + if (rt2x00_rt(rt2x00dev, RT3352) ||
196 + rt2x00_rt(rt2x00dev, RT5350))
197 rt2800_bbp_write(rt2x00dev, 120, 0x50);
198
199 if (rt2x00_rt(rt2x00dev, RT3290) ||
200 rt2x00_rt(rt2x00dev, RT3352) ||
201 + rt2x00_rt(rt2x00dev, RT5350) ||
202 rt2x00_rt(rt2x00dev, RT5390) ||
203 rt2x00_rt(rt2x00dev, RT5392))
204 rt2800_bbp_write(rt2x00dev, 128, 0x12);
205 @@ -3684,13 +3717,15 @@ static int rt2800_init_bbp(struct rt2x00
206 rt2800_bbp_write(rt2x00dev, 135, 0xf6);
207 }
208
209 - if (rt2x00_rt(rt2x00dev, RT3352))
210 + if (rt2x00_rt(rt2x00dev, RT3352) ||
211 + rt2x00_rt(rt2x00dev, RT5350))
212 rt2800_bbp_write(rt2x00dev, 137, 0x0f);
213
214 if (rt2x00_rt(rt2x00dev, RT3071) ||
215 rt2x00_rt(rt2x00dev, RT3090) ||
216 rt2x00_rt(rt2x00dev, RT3390) ||
217 rt2x00_rt(rt2x00dev, RT3572) ||
218 + rt2x00_rt(rt2x00dev, RT5350) ||
219 rt2x00_rt(rt2x00dev, RT5390) ||
220 rt2x00_rt(rt2x00dev, RT5392)) {
221 rt2800_bbp_read(rt2x00dev, 138, &value);
222 @@ -3727,7 +3762,8 @@ static int rt2800_init_bbp(struct rt2x00
223 rt2800_bbp_write(rt2x00dev, 3, value);
224 }
225
226 - if (rt2x00_rt(rt2x00dev, RT3352)) {
227 + if (rt2x00_rt(rt2x00dev, RT3352) ||
228 + rt2x00_rt(rt2x00dev, RT5350)) {
229 rt2800_bbp_write(rt2x00dev, 163, 0xbd);
230 /* Set ITxBF timeout to 0x9c40=1000msec */
231 rt2800_bbp_write(rt2x00dev, 179, 0x02);
232 @@ -3749,6 +3785,14 @@ static int rt2800_init_bbp(struct rt2x00
233 rt2800_bbp_write(rt2x00dev, 148, 0xc8);
234 }
235
236 + if (rt2x00_rt(rt2x00dev, RT5350)) {
237 + rt2800_bbp_write(rt2x00dev, 150, 0x40); /* Antenna Software OFDM */
238 + rt2800_bbp_write(rt2x00dev, 151, 0x30); /* Antenna Software CCK */
239 + rt2800_bbp_write(rt2x00dev, 152, 0xa3);
240 + rt2800_bbp_write(rt2x00dev, 154, 0); /* Clear previously selected antenna */
241 + }
242 +
243 +
244 if (rt2x00_rt(rt2x00dev, RT5390) ||
245 rt2x00_rt(rt2x00dev, RT5392)) {
246 int ant, div_mode;
247 @@ -4143,6 +4187,76 @@ static void rt2800_init_rfcsr_3572(struc
248 rt2800_rfcsr_write(rt2x00dev, 31, 0x10);
249 }
250
251 +static void rt2800_init_rfcsr_5350(struct rt2x00_dev *rt2x00dev)
252 +{
253 + rt2800_rfcsr_write(rt2x00dev, 0, 0xf0);
254 + rt2800_rfcsr_write(rt2x00dev, 1, 0x23);
255 + rt2800_rfcsr_write(rt2x00dev, 2, 0x50);
256 + rt2800_rfcsr_write(rt2x00dev, 3, 0x08);
257 + rt2800_rfcsr_write(rt2x00dev, 4, 0x49);
258 + rt2800_rfcsr_write(rt2x00dev, 5, 0x10);
259 + rt2800_rfcsr_write(rt2x00dev, 6, 0xe0);
260 + rt2800_rfcsr_write(rt2x00dev, 7, 0x00);
261 + rt2800_rfcsr_write(rt2x00dev, 8, 0xf1);
262 + rt2800_rfcsr_write(rt2x00dev, 9, 0x02);
263 + rt2800_rfcsr_write(rt2x00dev, 10, 0x53);
264 + rt2800_rfcsr_write(rt2x00dev, 11, 0x4a);
265 + rt2800_rfcsr_write(rt2x00dev, 12, 0x46);
266 + if(rt2x00dev->spec.clk_is_20mhz)
267 + rt2800_rfcsr_write(rt2x00dev, 13, 0x1f);
268 + else
269 + rt2800_rfcsr_write(rt2x00dev, 13, 0x9f);
270 + rt2800_rfcsr_write(rt2x00dev, 14, 0x00);
271 + rt2800_rfcsr_write(rt2x00dev, 15, 0x00);
272 + rt2800_rfcsr_write(rt2x00dev, 16, 0xc0);
273 + rt2800_rfcsr_write(rt2x00dev, 18, 0x03);
274 + rt2800_rfcsr_write(rt2x00dev, 19, 0x00);
275 + rt2800_rfcsr_write(rt2x00dev, 20, 0x00);
276 + rt2800_rfcsr_write(rt2x00dev, 21, 0x00);
277 + rt2800_rfcsr_write(rt2x00dev, 22, 0x20);
278 + rt2800_rfcsr_write(rt2x00dev, 23, 0x00);
279 + rt2800_rfcsr_write(rt2x00dev, 24, 0x00);
280 + rt2800_rfcsr_write(rt2x00dev, 25, 0x80);
281 + rt2800_rfcsr_write(rt2x00dev, 26, 0x00);
282 + rt2800_rfcsr_write(rt2x00dev, 27, 0x03);
283 + rt2800_rfcsr_write(rt2x00dev, 28, 0x00);
284 + rt2800_rfcsr_write(rt2x00dev, 29, 0xd0);
285 + rt2800_rfcsr_write(rt2x00dev, 30, 0x10);
286 + rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
287 + rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
288 + rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
289 + rt2800_rfcsr_write(rt2x00dev, 34, 0x07);
290 + rt2800_rfcsr_write(rt2x00dev, 35, 0x12);
291 + rt2800_rfcsr_write(rt2x00dev, 36, 0x00);
292 + rt2800_rfcsr_write(rt2x00dev, 37, 0x08);
293 + rt2800_rfcsr_write(rt2x00dev, 38, 0x85);
294 + rt2800_rfcsr_write(rt2x00dev, 39, 0x1b);
295 + rt2800_rfcsr_write(rt2x00dev, 40, 0x0b);
296 + rt2800_rfcsr_write(rt2x00dev, 41, 0xbb);
297 + rt2800_rfcsr_write(rt2x00dev, 42, 0xd5);
298 + rt2800_rfcsr_write(rt2x00dev, 43, 0x9b);
299 + rt2800_rfcsr_write(rt2x00dev, 44, 0x0c);
300 + rt2800_rfcsr_write(rt2x00dev, 45, 0xa6);
301 + rt2800_rfcsr_write(rt2x00dev, 46, 0x73);
302 + rt2800_rfcsr_write(rt2x00dev, 47, 0x00);
303 + rt2800_rfcsr_write(rt2x00dev, 48, 0x10);
304 + rt2800_rfcsr_write(rt2x00dev, 49, 0x80);
305 + rt2800_rfcsr_write(rt2x00dev, 50, 0x00);
306 + rt2800_rfcsr_write(rt2x00dev, 51, 0x00);
307 + rt2800_rfcsr_write(rt2x00dev, 52, 0x38);
308 + rt2800_rfcsr_write(rt2x00dev, 53, 0x00);
309 + rt2800_rfcsr_write(rt2x00dev, 54, 0x38);
310 + rt2800_rfcsr_write(rt2x00dev, 55, 0x43);
311 + rt2800_rfcsr_write(rt2x00dev, 56, 0x82);
312 + rt2800_rfcsr_write(rt2x00dev, 57, 0x00);
313 + rt2800_rfcsr_write(rt2x00dev, 58, 0x39);
314 + rt2800_rfcsr_write(rt2x00dev, 59, 0x0b);
315 + rt2800_rfcsr_write(rt2x00dev, 60, 0x45);
316 + rt2800_rfcsr_write(rt2x00dev, 61, 0xd1);
317 + rt2800_rfcsr_write(rt2x00dev, 62, 0x00);
318 + rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
319 +}
320 +
321 static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
322 {
323 rt2800_rfcsr_write(rt2x00dev, 1, 0x0f);
324 @@ -4305,6 +4419,7 @@ static int rt2800_init_rfcsr(struct rt2x
325 !rt2x00_rt(rt2x00dev, RT3352) &&
326 !rt2x00_rt(rt2x00dev, RT3390) &&
327 !rt2x00_rt(rt2x00dev, RT3572) &&
328 + !rt2x00_rt(rt2x00dev, RT5350) &&
329 !rt2x00_rt(rt2x00dev, RT5390) &&
330 !rt2x00_rt(rt2x00dev, RT5392) &&
331 !rt2800_is_305x_soc(rt2x00dev))
332 @@ -4355,6 +4470,9 @@ static int rt2800_init_rfcsr(struct rt2x
333 case RT3572:
334 rt2800_init_rfcsr_3572(rt2x00dev);
335 break;
336 + case RT5350:
337 + rt2800_init_rfcsr_5350(rt2x00dev);
338 + break;
339 case RT5390:
340 rt2800_init_rfcsr_5390(rt2x00dev);
341 break;
342 @@ -4751,6 +4869,12 @@ static int rt2800_validate_eeprom(struct
343 if (rt2x00_get_field16(word, EEPROM_NIC_CONF0_RXPATH) > 2)
344 rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RXPATH, 2);
345 rt2x00_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word);
346 + } else if(rt2x00_rt(rt2x00dev, RT5350)) {
347 + rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RXPATH, 1);
348 + rt2x00_set_field16(&word, EEPROM_NIC_CONF0_TXPATH, 1);
349 + rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RF_TYPE, RF3320);
350 + rt2x00_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word);
351 + EEPROM(rt2x00dev, "rt5350: Ant: 0x%04x\n", word);
352 }
353
354 rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &word);
355 @@ -4875,6 +4999,8 @@ static int rt2800_init_eeprom(struct rt2
356 rt2x00_get_field32(reg, MAC_CSR0_CHIPSET) == RT5390 ||
357 rt2x00_get_field32(reg, MAC_CSR0_CHIPSET) == RT5392)
358 rt2x00_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &value);
359 + else if(rt2x00_get_field32(reg, MAC_CSR0_CHIPSET) == RT5350)
360 + value = RF5350;
361 else
362 value = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE);
363
364 @@ -4892,6 +5018,7 @@ static int rt2800_init_eeprom(struct rt2
365 case RT3352:
366 case RT3390:
367 case RT3572:
368 + case RT5350:
369 case RT5390:
370 case RT5392:
371 break;
372 @@ -4913,6 +5040,7 @@ static int rt2800_init_eeprom(struct rt2
373 case RF3290:
374 case RF3320:
375 case RF3322:
376 + case RF5350:
377 case RF5360:
378 case RF5370:
379 case RF5372:
380 @@ -5275,7 +5403,8 @@ static int rt2800_probe_hw_mode(struct r
381 rt2x00_rf(rt2x00dev, RF5392)) {
382 spec->num_channels = 14;
383 spec->channels = rf_vals_3x;
384 - } else if (rt2x00_rf(rt2x00dev, RF3322)) {
385 + } else if (rt2x00_rf(rt2x00dev, RF3322) ||
386 + rt2x00_rf(rt2x00dev, RF5350)) {
387 spec->num_channels = 14;
388 if (spec->clk_is_20mhz)
389 spec->channels = rf_vals_xtal20mhz_3x;
390 @@ -5364,6 +5493,7 @@ static int rt2800_probe_hw_mode(struct r
391 case RF3290:
392 case RF5360:
393 case RF5370:
394 + case RF5350:
395 case RF5372:
396 case RF5390:
397 case RF5392:
398 --- a/drivers/net/wireless/rt2x00/rt2x00.h
399 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
400 @@ -192,6 +192,7 @@ struct rt2x00_chip {
401 #define RT3572 0x3572
402 #define RT3593 0x3593
403 #define RT3883 0x3883 /* WSOC */
404 +#define RT5350 0x5350 /* WSOC 2.4GHz */
405 #define RT5390 0x5390 /* 2.4GHz */
406 #define RT5392 0x5392 /* 2.4GHz */
407