diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800lib.c | 67 |
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) | |||
2223 | EXPORT_SYMBOL_GPL(rt2800_init_eeprom); | 2223 | EXPORT_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 | */ |
2229 | static const struct rf_channel rf_vals[] = { | 2229 | static 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 | */ |
2304 | static const struct rf_channel rf_vals_302x[] = { | 2304 | static 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 | ||
2321 | int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) | 2366 | int 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 | /* |