aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c67
1 files changed, 58 insertions, 9 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index b110368c00e..525267d4cc3 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2223,7 +2223,7 @@ int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
2223EXPORT_SYMBOL_GPL(rt2800_init_eeprom); 2223EXPORT_SYMBOL_GPL(rt2800_init_eeprom);
2224 2224
2225/* 2225/*
2226 * RF value list for rt28x0 2226 * RF value list for rt28xx
2227 * Supports: 2.4 GHz (all) & 5.2 GHz (RF2850 & RF2750) 2227 * Supports: 2.4 GHz (all) & 5.2 GHz (RF2850 & RF2750)
2228 */ 2228 */
2229static const struct rf_channel rf_vals[] = { 2229static const struct rf_channel rf_vals[] = {
@@ -2298,10 +2298,10 @@ static const struct rf_channel rf_vals[] = {
2298}; 2298};
2299 2299
2300/* 2300/*
2301 * RF value list for rt3070 2301 * RF value list for rt3xxx
2302 * Supports: 2.4 GHz 2302 * Supports: 2.4 GHz (all) & 5.2 GHz (RF3052)
2303 */ 2303 */
2304static const struct rf_channel rf_vals_302x[] = { 2304static const struct rf_channel rf_vals_3x[] = {
2305 {1, 241, 2, 2 }, 2305 {1, 241, 2, 2 },
2306 {2, 241, 2, 7 }, 2306 {2, 241, 2, 7 },
2307 {3, 242, 2, 2 }, 2307 {3, 242, 2, 2 },
@@ -2316,6 +2316,51 @@ static const struct rf_channel rf_vals_302x[] = {
2316 {12, 246, 2, 7 }, 2316 {12, 246, 2, 7 },
2317 {13, 247, 2, 2 }, 2317 {13, 247, 2, 2 },
2318 {14, 248, 2, 4 }, 2318 {14, 248, 2, 4 },
2319
2320 /* 802.11 UNI / HyperLan 2 */
2321 {36, 0x56, 0, 4},
2322 {38, 0x56, 0, 6},
2323 {40, 0x56, 0, 8},
2324 {44, 0x57, 0, 0},
2325 {46, 0x57, 0, 2},
2326 {48, 0x57, 0, 4},
2327 {52, 0x57, 0, 8},
2328 {54, 0x57, 0, 10},
2329 {56, 0x58, 0, 0},
2330 {60, 0x58, 0, 4},
2331 {62, 0x58, 0, 6},
2332 {64, 0x58, 0, 8},
2333
2334 /* 802.11 HyperLan 2 */
2335 {100, 0x5b, 0, 8},
2336 {102, 0x5b, 0, 10},
2337 {104, 0x5c, 0, 0},
2338 {108, 0x5c, 0, 4},
2339 {110, 0x5c, 0, 6},
2340 {112, 0x5c, 0, 8},
2341 {116, 0x5d, 0, 0},
2342 {118, 0x5d, 0, 2},
2343 {120, 0x5d, 0, 4},
2344 {124, 0x5d, 0, 8},
2345 {126, 0x5d, 0, 10},
2346 {128, 0x5e, 0, 0},
2347 {132, 0x5e, 0, 4},
2348 {134, 0x5e, 0, 6},
2349 {136, 0x5e, 0, 8},
2350 {140, 0x5f, 0, 0},
2351
2352 /* 802.11 UNII */
2353 {149, 0x5f, 0, 9},
2354 {151, 0x5f, 0, 11},
2355 {153, 0x60, 0, 1},
2356 {157, 0x60, 0, 5},
2357 {159, 0x60, 0, 7},
2358 {161, 0x60, 0, 9},
2359 {165, 0x61, 0, 1},
2360 {167, 0x61, 0, 3},
2361 {169, 0x61, 0, 5},
2362 {171, 0x61, 0, 7},
2363 {173, 0x61, 0, 9},
2319}; 2364};
2320 2365
2321int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) 2366int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
@@ -2356,11 +2401,11 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2356 spec->supported_rates = SUPPORT_RATE_CCK | SUPPORT_RATE_OFDM; 2401 spec->supported_rates = SUPPORT_RATE_CCK | SUPPORT_RATE_OFDM;
2357 2402
2358 if (rt2x00_rf(rt2x00dev, RF2820) || 2403 if (rt2x00_rf(rt2x00dev, RF2820) ||
2359 rt2x00_rf(rt2x00dev, RF2720) || 2404 rt2x00_rf(rt2x00dev, RF2720)) {
2360 rt2x00_rf(rt2x00dev, RF3052)) {
2361 spec->num_channels = 14; 2405 spec->num_channels = 14;
2362 spec->channels = rf_vals; 2406 spec->channels = rf_vals;
2363 } else if (rt2x00_rf(rt2x00dev, RF2850) || rt2x00_rf(rt2x00dev, RF2750)) { 2407 } else if (rt2x00_rf(rt2x00dev, RF2850) ||
2408 rt2x00_rf(rt2x00dev, RF2750)) {
2364 spec->supported_bands |= SUPPORT_BAND_5GHZ; 2409 spec->supported_bands |= SUPPORT_BAND_5GHZ;
2365 spec->num_channels = ARRAY_SIZE(rf_vals); 2410 spec->num_channels = ARRAY_SIZE(rf_vals);
2366 spec->channels = rf_vals; 2411 spec->channels = rf_vals;
@@ -2368,8 +2413,12 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2368 rt2x00_rf(rt2x00dev, RF2020) || 2413 rt2x00_rf(rt2x00dev, RF2020) ||
2369 rt2x00_rf(rt2x00dev, RF3021) || 2414 rt2x00_rf(rt2x00dev, RF3021) ||
2370 rt2x00_rf(rt2x00dev, RF3022)) { 2415 rt2x00_rf(rt2x00dev, RF3022)) {
2371 spec->num_channels = ARRAY_SIZE(rf_vals_302x); 2416 spec->num_channels = 14;
2372 spec->channels = rf_vals_302x; 2417 spec->channels = rf_vals_3x;
2418 } else if (rt2x00_rf(rt2x00dev, RF3052)) {
2419 spec->supported_bands |= SUPPORT_BAND_5GHZ;
2420 spec->num_channels = ARRAY_SIZE(rf_vals_3x);
2421 spec->channels = rf_vals_3x;
2373 } 2422 }
2374 2423
2375 /* 2424 /*