]>
Commit | Line | Data |
---|---|---|
ca97b838 BZ |
1 | /* |
2 | ************************************************************************* | |
3 | * Ralink Tech Inc. | |
4 | * 5F., No.36, Taiyuan St., Jhubei City, | |
5 | * Hsinchu County 302, | |
6 | * Taiwan, R.O.C. | |
7 | * | |
8 | * (c) Copyright 2002-2007, Ralink Technology, Inc. | |
9 | * | |
10 | * This program is free software; you can redistribute it and/or modify * | |
11 | * it under the terms of the GNU General Public License as published by * | |
12 | * the Free Software Foundation; either version 2 of the License, or * | |
13 | * (at your option) any later version. * | |
14 | * * | |
15 | * This program is distributed in the hope that it will be useful, * | |
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
18 | * GNU General Public License for more details. * | |
19 | * * | |
20 | * You should have received a copy of the GNU General Public License * | |
21 | * along with this program; if not, write to the * | |
22 | * Free Software Foundation, Inc., * | |
23 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * | |
24 | * * | |
25 | ************************************************************************* | |
26 | */ | |
27 | #include "../rt_config.h" | |
28 | ||
62eb734b | 29 | struct rt_ch_freq_map CH_HZ_ID_MAP[] = { |
96b3c83d BZ |
30 | {1, 2412} |
31 | , | |
32 | {2, 2417} | |
33 | , | |
34 | {3, 2422} | |
35 | , | |
36 | {4, 2427} | |
37 | , | |
38 | {5, 2432} | |
39 | , | |
40 | {6, 2437} | |
41 | , | |
42 | {7, 2442} | |
43 | , | |
44 | {8, 2447} | |
45 | , | |
46 | {9, 2452} | |
47 | , | |
48 | {10, 2457} | |
49 | , | |
50 | {11, 2462} | |
51 | , | |
52 | {12, 2467} | |
53 | , | |
54 | {13, 2472} | |
55 | , | |
56 | {14, 2484} | |
57 | , | |
58 | ||
59 | /* UNII */ | |
60 | {36, 5180} | |
61 | , | |
62 | {40, 5200} | |
63 | , | |
64 | {44, 5220} | |
65 | , | |
66 | {48, 5240} | |
67 | , | |
68 | {52, 5260} | |
69 | , | |
70 | {56, 5280} | |
71 | , | |
72 | {60, 5300} | |
73 | , | |
74 | {64, 5320} | |
75 | , | |
76 | {149, 5745} | |
77 | , | |
78 | {153, 5765} | |
79 | , | |
80 | {157, 5785} | |
81 | , | |
82 | {161, 5805} | |
83 | , | |
84 | {165, 5825} | |
85 | , | |
86 | {167, 5835} | |
87 | , | |
88 | {169, 5845} | |
89 | , | |
90 | {171, 5855} | |
91 | , | |
92 | {173, 5865} | |
93 | , | |
94 | ||
95 | /* HiperLAN2 */ | |
96 | {100, 5500} | |
97 | , | |
98 | {104, 5520} | |
99 | , | |
100 | {108, 5540} | |
101 | , | |
102 | {112, 5560} | |
103 | , | |
104 | {116, 5580} | |
105 | , | |
106 | {120, 5600} | |
107 | , | |
108 | {124, 5620} | |
109 | , | |
110 | {128, 5640} | |
111 | , | |
112 | {132, 5660} | |
113 | , | |
114 | {136, 5680} | |
115 | , | |
116 | {140, 5700} | |
117 | , | |
118 | ||
119 | /* Japan MMAC */ | |
120 | {34, 5170} | |
121 | , | |
122 | {38, 5190} | |
123 | , | |
124 | {42, 5210} | |
125 | , | |
126 | {46, 5230} | |
127 | , | |
128 | ||
129 | /* Japan */ | |
130 | {184, 4920} | |
131 | , | |
132 | {188, 4940} | |
133 | , | |
134 | {192, 4960} | |
135 | , | |
136 | {196, 4980} | |
137 | , | |
138 | ||
139 | {208, 5040} | |
140 | , /* Japan, means J08 */ | |
141 | {212, 5060} | |
142 | , /* Japan, means J12 */ | |
143 | {216, 5080} | |
144 | , /* Japan, means J16 */ | |
ca97b838 BZ |
145 | }; |
146 | ||
62eb734b | 147 | int CH_HZ_ID_MAP_NUM = (sizeof(CH_HZ_ID_MAP) / sizeof(struct rt_ch_freq_map)); |
96b3c83d | 148 | |
62eb734b | 149 | struct rt_ch_region ChRegion[] = { |
ec278fa2 | 150 | { /* Antigua and Berbuda */ |
96b3c83d BZ |
151 | "AG", |
152 | CE, | |
153 | { | |
154 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 155 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 156 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 157 | , /* 5G, ch 36~48 */ |
96b3c83d | 158 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 159 | , /* 5G, ch 52~64 */ |
96b3c83d | 160 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 161 | , /* 5G, ch 100~140 */ |
96b3c83d | 162 | {0} |
ec278fa2 | 163 | , /* end */ |
96b3c83d BZ |
164 | } |
165 | } | |
166 | , | |
167 | ||
ec278fa2 | 168 | { /* Argentina */ |
96b3c83d BZ |
169 | "AR", |
170 | CE, | |
171 | { | |
172 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 173 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 174 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 175 | , /* 5G, ch 52~64 */ |
96b3c83d | 176 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 177 | , /* 5G, ch 149~161 */ |
96b3c83d | 178 | {0} |
ec278fa2 | 179 | , /* end */ |
96b3c83d BZ |
180 | } |
181 | } | |
182 | , | |
183 | ||
ec278fa2 | 184 | { /* Aruba */ |
96b3c83d BZ |
185 | "AW", |
186 | CE, | |
187 | { | |
188 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 189 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 190 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 191 | , /* 5G, ch 36~48 */ |
96b3c83d | 192 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 193 | , /* 5G, ch 52~64 */ |
96b3c83d | 194 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 195 | , /* 5G, ch 100~140 */ |
96b3c83d | 196 | {0} |
ec278fa2 | 197 | , /* end */ |
96b3c83d BZ |
198 | } |
199 | } | |
200 | , | |
201 | ||
ec278fa2 | 202 | { /* Australia */ |
96b3c83d BZ |
203 | "AU", |
204 | CE, | |
205 | { | |
206 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 207 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 208 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 209 | , /* 5G, ch 36~48 */ |
96b3c83d | 210 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 211 | , /* 5G, ch 52~64 */ |
96b3c83d | 212 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 213 | , /* 5G, ch 149~165 */ |
96b3c83d | 214 | {0} |
ec278fa2 | 215 | , /* end */ |
96b3c83d BZ |
216 | } |
217 | } | |
218 | , | |
219 | ||
ec278fa2 | 220 | { /* Austria */ |
96b3c83d BZ |
221 | "AT", |
222 | CE, | |
223 | { | |
224 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 225 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 226 | {36, 4, 23, IDOR, TRUE} |
ec278fa2 | 227 | , /* 5G, ch 36~48 */ |
96b3c83d | 228 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 229 | , /* 5G, ch 52~64 */ |
96b3c83d | 230 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 231 | , /* 5G, ch 100~140 */ |
96b3c83d | 232 | {0} |
ec278fa2 | 233 | , /* end */ |
96b3c83d BZ |
234 | } |
235 | } | |
236 | , | |
237 | ||
ec278fa2 | 238 | { /* Bahamas */ |
96b3c83d BZ |
239 | "BS", |
240 | CE, | |
241 | { | |
242 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 243 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 244 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 245 | , /* 5G, ch 36~48 */ |
96b3c83d | 246 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 247 | , /* 5G, ch 52~64 */ |
96b3c83d | 248 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 249 | , /* 5G, ch 149~165 */ |
96b3c83d | 250 | {0} |
ec278fa2 | 251 | , /* end */ |
96b3c83d BZ |
252 | } |
253 | } | |
254 | , | |
255 | ||
ec278fa2 | 256 | { /* Barbados */ |
96b3c83d BZ |
257 | "BB", |
258 | CE, | |
259 | { | |
260 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 261 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 262 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 263 | , /* 5G, ch 36~48 */ |
96b3c83d | 264 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 265 | , /* 5G, ch 52~64 */ |
96b3c83d | 266 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 267 | , /* 5G, ch 100~140 */ |
96b3c83d | 268 | {0} |
ec278fa2 | 269 | , /* end */ |
96b3c83d BZ |
270 | } |
271 | } | |
272 | , | |
273 | ||
ec278fa2 | 274 | { /* Bermuda */ |
96b3c83d BZ |
275 | "BM", |
276 | CE, | |
277 | { | |
278 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 279 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 280 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 281 | , /* 5G, ch 36~48 */ |
96b3c83d | 282 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 283 | , /* 5G, ch 52~64 */ |
96b3c83d | 284 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 285 | , /* 5G, ch 100~140 */ |
96b3c83d | 286 | {0} |
ec278fa2 | 287 | , /* end */ |
96b3c83d BZ |
288 | } |
289 | } | |
290 | , | |
291 | ||
ec278fa2 | 292 | { /* Brazil */ |
96b3c83d BZ |
293 | "BR", |
294 | CE, | |
295 | { | |
296 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 297 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 298 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 299 | , /* 5G, ch 36~48 */ |
96b3c83d | 300 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 301 | , /* 5G, ch 52~64 */ |
96b3c83d | 302 | {100, 11, 24, BOTH, FALSE} |
ec278fa2 | 303 | , /* 5G, ch 100~140 */ |
96b3c83d | 304 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 305 | , /* 5G, ch 100~140 */ |
96b3c83d | 306 | {0} |
ec278fa2 | 307 | , /* end */ |
96b3c83d BZ |
308 | } |
309 | } | |
310 | , | |
311 | ||
ec278fa2 | 312 | { /* Belgium */ |
96b3c83d BZ |
313 | "BE", |
314 | CE, | |
315 | { | |
316 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 317 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 318 | {36, 4, 18, IDOR, FALSE} |
ec278fa2 | 319 | , /* 5G, ch 36~48 */ |
96b3c83d | 320 | {52, 4, 18, IDOR, FALSE} |
ec278fa2 | 321 | , /* 5G, ch 52~64 */ |
96b3c83d | 322 | {0} |
ec278fa2 | 323 | , /* end */ |
96b3c83d BZ |
324 | } |
325 | } | |
326 | , | |
327 | ||
ec278fa2 | 328 | { /* Bulgaria */ |
96b3c83d BZ |
329 | "BG", |
330 | CE, | |
331 | { | |
332 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 333 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 334 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 335 | , /* 5G, ch 36~48 */ |
96b3c83d | 336 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 337 | , /* 5G, ch 52~64 */ |
96b3c83d | 338 | {100, 11, 30, ODOR, TRUE} |
ec278fa2 | 339 | , /* 5G, ch 100~140 */ |
96b3c83d | 340 | {0} |
ec278fa2 | 341 | , /* end */ |
96b3c83d BZ |
342 | } |
343 | } | |
344 | , | |
345 | ||
ec278fa2 | 346 | { /* Canada */ |
96b3c83d BZ |
347 | "CA", |
348 | CE, | |
349 | { | |
350 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 351 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 352 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 353 | , /* 5G, ch 36~48 */ |
96b3c83d | 354 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 355 | , /* 5G, ch 52~64 */ |
96b3c83d | 356 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 357 | , /* 5G, ch 149~165 */ |
96b3c83d | 358 | {0} |
ec278fa2 | 359 | , /* end */ |
96b3c83d BZ |
360 | } |
361 | } | |
362 | , | |
363 | ||
ec278fa2 | 364 | { /* Cayman IsLands */ |
96b3c83d BZ |
365 | "KY", |
366 | CE, | |
367 | { | |
368 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 369 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 370 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 371 | , /* 5G, ch 36~48 */ |
96b3c83d | 372 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 373 | , /* 5G, ch 52~64 */ |
96b3c83d | 374 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 375 | , /* 5G, ch 100~140 */ |
96b3c83d | 376 | {0} |
ec278fa2 | 377 | , /* end */ |
96b3c83d BZ |
378 | } |
379 | } | |
380 | , | |
381 | ||
ec278fa2 | 382 | { /* Chile */ |
96b3c83d BZ |
383 | "CL", |
384 | CE, | |
385 | { | |
386 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 387 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 388 | {36, 4, 20, BOTH, FALSE} |
ec278fa2 | 389 | , /* 5G, ch 36~48 */ |
96b3c83d | 390 | {52, 4, 20, BOTH, FALSE} |
ec278fa2 | 391 | , /* 5G, ch 52~64 */ |
96b3c83d | 392 | {149, 5, 20, BOTH, FALSE} |
ec278fa2 | 393 | , /* 5G, ch 149~165 */ |
96b3c83d | 394 | {0} |
ec278fa2 | 395 | , /* end */ |
96b3c83d BZ |
396 | } |
397 | } | |
398 | , | |
399 | ||
ec278fa2 | 400 | { /* China */ |
96b3c83d BZ |
401 | "CN", |
402 | CE, | |
403 | { | |
404 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 405 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 406 | {149, 4, 27, BOTH, FALSE} |
ec278fa2 | 407 | , /* 5G, ch 149~161 */ |
96b3c83d | 408 | {0} |
ec278fa2 | 409 | , /* end */ |
96b3c83d BZ |
410 | } |
411 | } | |
412 | , | |
413 | ||
ec278fa2 | 414 | { /* Colombia */ |
96b3c83d BZ |
415 | "CO", |
416 | CE, | |
417 | { | |
418 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 419 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 420 | {36, 4, 17, BOTH, FALSE} |
ec278fa2 | 421 | , /* 5G, ch 36~48 */ |
96b3c83d | 422 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 423 | , /* 5G, ch 52~64 */ |
96b3c83d | 424 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 425 | , /* 5G, ch 100~140 */ |
96b3c83d | 426 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 427 | , /* 5G, ch 149~165 */ |
96b3c83d | 428 | {0} |
ec278fa2 | 429 | , /* end */ |
96b3c83d BZ |
430 | } |
431 | } | |
432 | , | |
433 | ||
ec278fa2 | 434 | { /* Costa Rica */ |
96b3c83d BZ |
435 | "CR", |
436 | CE, | |
437 | { | |
438 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 439 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 440 | {36, 4, 17, BOTH, FALSE} |
ec278fa2 | 441 | , /* 5G, ch 36~48 */ |
96b3c83d | 442 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 443 | , /* 5G, ch 52~64 */ |
96b3c83d | 444 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 445 | , /* 5G, ch 149~161 */ |
96b3c83d | 446 | {0} |
ec278fa2 | 447 | , /* end */ |
96b3c83d BZ |
448 | } |
449 | } | |
450 | , | |
451 | ||
ec278fa2 | 452 | { /* Cyprus */ |
96b3c83d BZ |
453 | "CY", |
454 | CE, | |
455 | { | |
456 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 457 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 458 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 459 | , /* 5G, ch 36~48 */ |
96b3c83d | 460 | {52, 4, 24, IDOR, TRUE} |
ec278fa2 | 461 | , /* 5G, ch 52~64 */ |
96b3c83d | 462 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 463 | , /* 5G, ch 100~140 */ |
96b3c83d | 464 | {0} |
ec278fa2 | 465 | , /* end */ |
96b3c83d BZ |
466 | } |
467 | } | |
468 | , | |
469 | ||
ec278fa2 | 470 | { /* Czech_Republic */ |
96b3c83d BZ |
471 | "CZ", |
472 | CE, | |
473 | { | |
474 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 475 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 476 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 477 | , /* 5G, ch 36~48 */ |
96b3c83d | 478 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 479 | , /* 5G, ch 52~64 */ |
96b3c83d | 480 | {0} |
ec278fa2 | 481 | , /* end */ |
96b3c83d BZ |
482 | } |
483 | } | |
484 | , | |
485 | ||
ec278fa2 | 486 | { /* Denmark */ |
96b3c83d BZ |
487 | "DK", |
488 | CE, | |
489 | { | |
490 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 491 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 492 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 493 | , /* 5G, ch 36~48 */ |
96b3c83d | 494 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 495 | , /* 5G, ch 52~64 */ |
96b3c83d | 496 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 497 | , /* 5G, ch 100~140 */ |
96b3c83d | 498 | {0} |
ec278fa2 | 499 | , /* end */ |
96b3c83d BZ |
500 | } |
501 | } | |
502 | , | |
503 | ||
ec278fa2 | 504 | { /* Dominican Republic */ |
96b3c83d BZ |
505 | "DO", |
506 | CE, | |
507 | { | |
508 | {1, 0, 20, BOTH, FALSE} | |
ec278fa2 | 509 | , /* 2.4 G, ch 0 */ |
96b3c83d | 510 | {149, 4, 20, BOTH, FALSE} |
ec278fa2 | 511 | , /* 5G, ch 149~161 */ |
96b3c83d | 512 | {0} |
ec278fa2 | 513 | , /* end */ |
96b3c83d BZ |
514 | } |
515 | } | |
516 | , | |
517 | ||
ec278fa2 | 518 | { /* Equador */ |
96b3c83d BZ |
519 | "EC", |
520 | CE, | |
521 | { | |
522 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 523 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 524 | {100, 11, 27, BOTH, FALSE} |
ec278fa2 | 525 | , /* 5G, ch 100~140 */ |
96b3c83d | 526 | {0} |
ec278fa2 | 527 | , /* end */ |
96b3c83d BZ |
528 | } |
529 | } | |
530 | , | |
531 | ||
ec278fa2 | 532 | { /* El Salvador */ |
96b3c83d BZ |
533 | "SV", |
534 | CE, | |
535 | { | |
536 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 537 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 538 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 539 | , /* 5G, ch 36~48 */ |
96b3c83d | 540 | {52, 4, 30, BOTH, TRUE} |
ec278fa2 | 541 | , /* 5G, ch 52~64 */ |
96b3c83d | 542 | {149, 4, 36, BOTH, TRUE} |
ec278fa2 | 543 | , /* 5G, ch 149~165 */ |
96b3c83d | 544 | {0} |
ec278fa2 | 545 | , /* end */ |
96b3c83d BZ |
546 | } |
547 | } | |
548 | , | |
549 | ||
ec278fa2 | 550 | { /* Finland */ |
96b3c83d BZ |
551 | "FI", |
552 | CE, | |
553 | { | |
554 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 555 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 556 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 557 | , /* 5G, ch 36~48 */ |
96b3c83d | 558 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 559 | , /* 5G, ch 52~64 */ |
96b3c83d | 560 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 561 | , /* 5G, ch 100~140 */ |
96b3c83d | 562 | {0} |
ec278fa2 | 563 | , /* end */ |
96b3c83d BZ |
564 | } |
565 | } | |
566 | , | |
567 | ||
ec278fa2 | 568 | { /* France */ |
96b3c83d BZ |
569 | "FR", |
570 | CE, | |
571 | { | |
572 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 573 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 574 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 575 | , /* 5G, ch 36~48 */ |
96b3c83d | 576 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 577 | , /* 5G, ch 52~64 */ |
96b3c83d | 578 | {0} |
ec278fa2 | 579 | , /* end */ |
96b3c83d BZ |
580 | } |
581 | } | |
582 | , | |
583 | ||
ec278fa2 | 584 | { /* Germany */ |
96b3c83d BZ |
585 | "DE", |
586 | CE, | |
587 | { | |
588 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 589 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 590 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 591 | , /* 5G, ch 36~48 */ |
96b3c83d | 592 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 593 | , /* 5G, ch 52~64 */ |
96b3c83d | 594 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 595 | , /* 5G, ch 100~140 */ |
96b3c83d | 596 | {0} |
ec278fa2 | 597 | , /* end */ |
96b3c83d BZ |
598 | } |
599 | } | |
600 | , | |
601 | ||
ec278fa2 | 602 | { /* Greece */ |
96b3c83d BZ |
603 | "GR", |
604 | CE, | |
605 | { | |
606 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 607 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 608 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 609 | , /* 5G, ch 36~48 */ |
96b3c83d | 610 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 611 | , /* 5G, ch 52~64 */ |
96b3c83d | 612 | {100, 11, 30, ODOR, TRUE} |
ec278fa2 | 613 | , /* 5G, ch 100~140 */ |
96b3c83d | 614 | {0} |
ec278fa2 | 615 | , /* end */ |
96b3c83d BZ |
616 | } |
617 | } | |
618 | , | |
619 | ||
ec278fa2 | 620 | { /* Guam */ |
96b3c83d BZ |
621 | "GU", |
622 | CE, | |
623 | { | |
624 | {1, 11, 20, BOTH, FALSE} | |
ec278fa2 | 625 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 626 | {36, 4, 17, BOTH, FALSE} |
ec278fa2 | 627 | , /* 5G, ch 36~48 */ |
96b3c83d | 628 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 629 | , /* 5G, ch 52~64 */ |
96b3c83d | 630 | {100, 11, 30, BOTH, FALSE} |
ec278fa2 | 631 | , /* 5G, ch 100~140 */ |
96b3c83d | 632 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 633 | , /* 5G, ch 149~165 */ |
96b3c83d | 634 | {0} |
ec278fa2 | 635 | , /* end */ |
96b3c83d BZ |
636 | } |
637 | } | |
638 | , | |
639 | ||
ec278fa2 | 640 | { /* Guatemala */ |
96b3c83d BZ |
641 | "GT", |
642 | CE, | |
643 | { | |
644 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 645 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 646 | {36, 4, 17, BOTH, FALSE} |
ec278fa2 | 647 | , /* 5G, ch 36~48 */ |
96b3c83d | 648 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 649 | , /* 5G, ch 52~64 */ |
96b3c83d | 650 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 651 | , /* 5G, ch 149~161 */ |
96b3c83d | 652 | {0} |
ec278fa2 | 653 | , /* end */ |
96b3c83d BZ |
654 | } |
655 | } | |
656 | , | |
657 | ||
ec278fa2 | 658 | { /* Haiti */ |
96b3c83d BZ |
659 | "HT", |
660 | CE, | |
661 | { | |
662 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 663 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 664 | {36, 4, 17, BOTH, FALSE} |
ec278fa2 | 665 | , /* 5G, ch 36~48 */ |
96b3c83d | 666 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 667 | , /* 5G, ch 52~64 */ |
96b3c83d | 668 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 669 | , /* 5G, ch 149~161 */ |
96b3c83d | 670 | {0} |
ec278fa2 | 671 | , /* end */ |
96b3c83d BZ |
672 | } |
673 | } | |
674 | , | |
675 | ||
ec278fa2 | 676 | { /* Honduras */ |
96b3c83d BZ |
677 | "HN", |
678 | CE, | |
679 | { | |
680 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 681 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 682 | {149, 4, 27, BOTH, FALSE} |
ec278fa2 | 683 | , /* 5G, ch 149~161 */ |
96b3c83d | 684 | {0} |
ec278fa2 | 685 | , /* end */ |
96b3c83d BZ |
686 | } |
687 | } | |
688 | , | |
689 | ||
ec278fa2 | 690 | { /* Hong Kong */ |
96b3c83d BZ |
691 | "HK", |
692 | CE, | |
693 | { | |
694 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 695 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 696 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 697 | , /* 5G, ch 36~48 */ |
96b3c83d | 698 | {52, 4, 23, IDOR, FALSE} |
ec278fa2 | 699 | , /* 5G, ch 52~64 */ |
96b3c83d | 700 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 701 | , /* 5G, ch 149~161 */ |
96b3c83d | 702 | {0} |
ec278fa2 | 703 | , /* end */ |
96b3c83d BZ |
704 | } |
705 | } | |
706 | , | |
707 | ||
ec278fa2 | 708 | { /* Hungary */ |
96b3c83d BZ |
709 | "HU", |
710 | CE, | |
711 | { | |
712 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 713 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 714 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 715 | , /* 5G, ch 36~48 */ |
96b3c83d | 716 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 717 | , /* 5G, ch 52~64 */ |
96b3c83d | 718 | {0} |
ec278fa2 | 719 | , /* end */ |
96b3c83d BZ |
720 | } |
721 | } | |
722 | , | |
723 | ||
ec278fa2 | 724 | { /* Iceland */ |
96b3c83d BZ |
725 | "IS", |
726 | CE, | |
727 | { | |
728 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 729 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 730 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 731 | , /* 5G, ch 36~48 */ |
96b3c83d | 732 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 733 | , /* 5G, ch 52~64 */ |
96b3c83d | 734 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 735 | , /* 5G, ch 100~140 */ |
96b3c83d | 736 | {0} |
ec278fa2 | 737 | , /* end */ |
96b3c83d BZ |
738 | } |
739 | } | |
740 | , | |
741 | ||
ec278fa2 | 742 | { /* India */ |
96b3c83d BZ |
743 | "IN", |
744 | CE, | |
745 | { | |
746 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 747 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 748 | {149, 4, 24, IDOR, FALSE} |
ec278fa2 | 749 | , /* 5G, ch 149~161 */ |
96b3c83d | 750 | {0} |
ec278fa2 | 751 | , /* end */ |
96b3c83d BZ |
752 | } |
753 | } | |
754 | , | |
755 | ||
ec278fa2 | 756 | { /* Indonesia */ |
96b3c83d BZ |
757 | "ID", |
758 | CE, | |
759 | { | |
760 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 761 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 762 | {149, 4, 27, BOTH, FALSE} |
ec278fa2 | 763 | , /* 5G, ch 149~161 */ |
96b3c83d | 764 | {0} |
ec278fa2 | 765 | , /* end */ |
96b3c83d BZ |
766 | } |
767 | } | |
768 | , | |
769 | ||
ec278fa2 | 770 | { /* Ireland */ |
96b3c83d BZ |
771 | "IE", |
772 | CE, | |
773 | { | |
774 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 775 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 776 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 777 | , /* 5G, ch 36~48 */ |
96b3c83d | 778 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 779 | , /* 5G, ch 52~64 */ |
96b3c83d | 780 | {100, 11, 30, ODOR, TRUE} |
ec278fa2 | 781 | , /* 5G, ch 100~140 */ |
96b3c83d | 782 | {0} |
ec278fa2 | 783 | , /* end */ |
96b3c83d BZ |
784 | } |
785 | } | |
786 | , | |
787 | ||
ec278fa2 | 788 | { /* Israel */ |
96b3c83d BZ |
789 | "IL", |
790 | CE, | |
791 | { | |
792 | {1, 3, 20, IDOR, FALSE} | |
ec278fa2 | 793 | , /* 2.4 G, ch 1~3 */ |
96b3c83d | 794 | {4, 6, 20, BOTH, FALSE} |
ec278fa2 | 795 | , /* 2.4 G, ch 4~9 */ |
96b3c83d | 796 | {10, 4, 20, IDOR, FALSE} |
ec278fa2 | 797 | , /* 2.4 G, ch 10~13 */ |
96b3c83d | 798 | {0} |
ec278fa2 | 799 | , /* end */ |
96b3c83d BZ |
800 | } |
801 | } | |
802 | , | |
803 | ||
ec278fa2 | 804 | { /* Italy */ |
96b3c83d BZ |
805 | "IT", |
806 | CE, | |
807 | { | |
808 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 809 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 810 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 811 | , /* 5G, ch 36~48 */ |
96b3c83d | 812 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 813 | , /* 5G, ch 52~64 */ |
96b3c83d | 814 | {100, 11, 30, ODOR, TRUE} |
ec278fa2 | 815 | , /* 5G, ch 100~140 */ |
96b3c83d | 816 | {0} |
ec278fa2 | 817 | , /* end */ |
96b3c83d BZ |
818 | } |
819 | } | |
820 | , | |
821 | ||
ec278fa2 | 822 | { /* Japan */ |
96b3c83d BZ |
823 | "JP", |
824 | JAP, | |
825 | { | |
826 | {1, 14, 20, BOTH, FALSE} | |
ec278fa2 | 827 | , /* 2.4 G, ch 1~14 */ |
96b3c83d | 828 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 829 | , /* 5G, ch 36~48 */ |
96b3c83d | 830 | {0} |
ec278fa2 | 831 | , /* end */ |
96b3c83d BZ |
832 | } |
833 | } | |
834 | , | |
835 | ||
ec278fa2 | 836 | { /* Jordan */ |
96b3c83d BZ |
837 | "JO", |
838 | CE, | |
839 | { | |
840 | {1, 13, 20, IDOR, FALSE} | |
ec278fa2 | 841 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 842 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 843 | , /* 5G, ch 36~48 */ |
96b3c83d | 844 | {149, 4, 23, IDOR, FALSE} |
ec278fa2 | 845 | , /* 5G, ch 149~161 */ |
96b3c83d | 846 | {0} |
ec278fa2 | 847 | , /* end */ |
96b3c83d BZ |
848 | } |
849 | } | |
850 | , | |
851 | ||
ec278fa2 | 852 | { /* Latvia */ |
96b3c83d BZ |
853 | "LV", |
854 | CE, | |
855 | { | |
856 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 857 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 858 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 859 | , /* 5G, ch 36~48 */ |
96b3c83d | 860 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 861 | , /* 5G, ch 52~64 */ |
96b3c83d | 862 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 863 | , /* 5G, ch 100~140 */ |
96b3c83d | 864 | {0} |
ec278fa2 | 865 | , /* end */ |
96b3c83d BZ |
866 | } |
867 | } | |
868 | , | |
869 | ||
ec278fa2 | 870 | { /* Liechtenstein */ |
96b3c83d BZ |
871 | "LI", |
872 | CE, | |
873 | { | |
874 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 875 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 876 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 877 | , /* 5G, ch 52~64 */ |
96b3c83d | 878 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 879 | , /* 5G, ch 100~140 */ |
96b3c83d | 880 | {0} |
ec278fa2 | 881 | , /* end */ |
96b3c83d BZ |
882 | } |
883 | } | |
884 | , | |
885 | ||
ec278fa2 | 886 | { /* Lithuania */ |
96b3c83d BZ |
887 | "LT", |
888 | CE, | |
889 | { | |
890 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 891 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 892 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 893 | , /* 5G, ch 36~48 */ |
96b3c83d | 894 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 895 | , /* 5G, ch 52~64 */ |
96b3c83d | 896 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 897 | , /* 5G, ch 100~140 */ |
96b3c83d | 898 | {0} |
ec278fa2 | 899 | , /* end */ |
96b3c83d BZ |
900 | } |
901 | } | |
902 | , | |
903 | ||
ec278fa2 | 904 | { /* Luxemburg */ |
96b3c83d BZ |
905 | "LU", |
906 | CE, | |
907 | { | |
908 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 909 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 910 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 911 | , /* 5G, ch 36~48 */ |
96b3c83d | 912 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 913 | , /* 5G, ch 52~64 */ |
96b3c83d | 914 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 915 | , /* 5G, ch 100~140 */ |
96b3c83d | 916 | {0} |
ec278fa2 | 917 | , /* end */ |
96b3c83d BZ |
918 | } |
919 | } | |
920 | , | |
921 | ||
ec278fa2 | 922 | { /* Malaysia */ |
96b3c83d BZ |
923 | "MY", |
924 | CE, | |
925 | { | |
926 | {36, 4, 23, BOTH, FALSE} | |
ec278fa2 | 927 | , /* 5G, ch 36~48 */ |
96b3c83d | 928 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 929 | , /* 5G, ch 52~64 */ |
96b3c83d | 930 | {149, 5, 20, BOTH, FALSE} |
ec278fa2 | 931 | , /* 5G, ch 149~165 */ |
96b3c83d | 932 | {0} |
ec278fa2 | 933 | , /* end */ |
96b3c83d BZ |
934 | } |
935 | } | |
936 | , | |
937 | ||
ec278fa2 | 938 | { /* Malta */ |
96b3c83d BZ |
939 | "MT", |
940 | CE, | |
941 | { | |
942 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 943 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 944 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 945 | , /* 5G, ch 36~48 */ |
96b3c83d | 946 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 947 | , /* 5G, ch 52~64 */ |
96b3c83d | 948 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 949 | , /* 5G, ch 100~140 */ |
96b3c83d | 950 | {0} |
ec278fa2 | 951 | , /* end */ |
96b3c83d BZ |
952 | } |
953 | } | |
954 | , | |
955 | ||
ec278fa2 | 956 | { /* Marocco */ |
96b3c83d BZ |
957 | "MA", |
958 | CE, | |
959 | { | |
960 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 961 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 962 | {36, 4, 24, IDOR, FALSE} |
ec278fa2 | 963 | , /* 5G, ch 36~48 */ |
96b3c83d | 964 | {0} |
ec278fa2 | 965 | , /* end */ |
96b3c83d BZ |
966 | } |
967 | } | |
968 | , | |
969 | ||
ec278fa2 | 970 | { /* Mexico */ |
96b3c83d BZ |
971 | "MX", |
972 | CE, | |
973 | { | |
974 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 975 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 976 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 977 | , /* 5G, ch 36~48 */ |
96b3c83d | 978 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 979 | , /* 5G, ch 52~64 */ |
96b3c83d | 980 | {149, 5, 30, IDOR, FALSE} |
ec278fa2 | 981 | , /* 5G, ch 149~165 */ |
96b3c83d | 982 | {0} |
ec278fa2 | 983 | , /* end */ |
96b3c83d BZ |
984 | } |
985 | } | |
986 | , | |
987 | ||
ec278fa2 | 988 | { /* Netherlands */ |
96b3c83d BZ |
989 | "NL", |
990 | CE, | |
991 | { | |
992 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 993 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 994 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 995 | , /* 5G, ch 36~48 */ |
96b3c83d | 996 | {52, 4, 24, IDOR, TRUE} |
ec278fa2 | 997 | , /* 5G, ch 52~64 */ |
96b3c83d | 998 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 999 | , /* 5G, ch 100~140 */ |
96b3c83d | 1000 | {0} |
ec278fa2 | 1001 | , /* end */ |
96b3c83d BZ |
1002 | } |
1003 | } | |
1004 | , | |
1005 | ||
ec278fa2 | 1006 | { /* New Zealand */ |
96b3c83d BZ |
1007 | "NZ", |
1008 | CE, | |
1009 | { | |
1010 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1011 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1012 | {36, 4, 24, BOTH, FALSE} |
ec278fa2 | 1013 | , /* 5G, ch 36~48 */ |
96b3c83d | 1014 | {52, 4, 24, BOTH, FALSE} |
ec278fa2 | 1015 | , /* 5G, ch 52~64 */ |
96b3c83d | 1016 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 1017 | , /* 5G, ch 149~161 */ |
96b3c83d | 1018 | {0} |
ec278fa2 | 1019 | , /* end */ |
96b3c83d BZ |
1020 | } |
1021 | } | |
1022 | , | |
1023 | ||
ec278fa2 | 1024 | { /* Norway */ |
96b3c83d BZ |
1025 | "NO", |
1026 | CE, | |
1027 | { | |
1028 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1029 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1030 | {36, 4, 24, IDOR, FALSE} |
ec278fa2 | 1031 | , /* 5G, ch 36~48 */ |
96b3c83d | 1032 | {52, 4, 24, IDOR, TRUE} |
ec278fa2 | 1033 | , /* 5G, ch 52~64 */ |
96b3c83d | 1034 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1035 | , /* 5G, ch 149~161 */ |
96b3c83d | 1036 | {0} |
ec278fa2 | 1037 | , /* end */ |
96b3c83d BZ |
1038 | } |
1039 | } | |
1040 | , | |
1041 | ||
ec278fa2 | 1042 | { /* Peru */ |
96b3c83d BZ |
1043 | "PE", |
1044 | CE, | |
1045 | { | |
1046 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1047 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1048 | {149, 4, 27, BOTH, FALSE} |
ec278fa2 | 1049 | , /* 5G, ch 149~161 */ |
96b3c83d | 1050 | {0} |
ec278fa2 | 1051 | , /* end */ |
96b3c83d BZ |
1052 | } |
1053 | } | |
1054 | , | |
1055 | ||
ec278fa2 | 1056 | { /* Portugal */ |
96b3c83d BZ |
1057 | "PT", |
1058 | CE, | |
1059 | { | |
1060 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1061 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1062 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1063 | , /* 5G, ch 36~48 */ |
96b3c83d | 1064 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1065 | , /* 5G, ch 52~64 */ |
96b3c83d | 1066 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1067 | , /* 5G, ch 100~140 */ |
96b3c83d | 1068 | {0} |
ec278fa2 | 1069 | , /* end */ |
96b3c83d BZ |
1070 | } |
1071 | } | |
1072 | , | |
1073 | ||
ec278fa2 | 1074 | { /* Poland */ |
96b3c83d BZ |
1075 | "PL", |
1076 | CE, | |
1077 | { | |
1078 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1079 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1080 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1081 | , /* 5G, ch 36~48 */ |
96b3c83d | 1082 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1083 | , /* 5G, ch 52~64 */ |
96b3c83d | 1084 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1085 | , /* 5G, ch 100~140 */ |
96b3c83d | 1086 | {0} |
ec278fa2 | 1087 | , /* end */ |
96b3c83d BZ |
1088 | } |
1089 | } | |
1090 | , | |
1091 | ||
ec278fa2 | 1092 | { /* Romania */ |
96b3c83d BZ |
1093 | "RO", |
1094 | CE, | |
1095 | { | |
1096 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1097 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1098 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1099 | , /* 5G, ch 36~48 */ |
96b3c83d | 1100 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1101 | , /* 5G, ch 52~64 */ |
96b3c83d | 1102 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1103 | , /* 5G, ch 100~140 */ |
96b3c83d | 1104 | {0} |
ec278fa2 | 1105 | , /* end */ |
96b3c83d BZ |
1106 | } |
1107 | } | |
1108 | , | |
1109 | ||
ec278fa2 | 1110 | { /* Russia */ |
96b3c83d BZ |
1111 | "RU", |
1112 | CE, | |
1113 | { | |
1114 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1115 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1116 | {149, 4, 20, IDOR, FALSE} |
ec278fa2 | 1117 | , /* 5G, ch 149~161 */ |
96b3c83d | 1118 | {0} |
ec278fa2 | 1119 | , /* end */ |
96b3c83d BZ |
1120 | } |
1121 | } | |
1122 | , | |
1123 | ||
ec278fa2 | 1124 | { /* Saudi Arabia */ |
96b3c83d BZ |
1125 | "SA", |
1126 | CE, | |
1127 | { | |
1128 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1129 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1130 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 1131 | , /* 5G, ch 36~48 */ |
96b3c83d | 1132 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 1133 | , /* 5G, ch 52~64 */ |
96b3c83d | 1134 | {149, 4, 23, BOTH, FALSE} |
ec278fa2 | 1135 | , /* 5G, ch 149~161 */ |
96b3c83d | 1136 | {0} |
ec278fa2 | 1137 | , /* end */ |
96b3c83d BZ |
1138 | } |
1139 | } | |
1140 | , | |
1141 | ||
ec278fa2 | 1142 | { /* Serbia_and_Montenegro */ |
96b3c83d BZ |
1143 | "CS", |
1144 | CE, | |
1145 | { | |
1146 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1147 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1148 | {0} |
ec278fa2 | 1149 | , /* end */ |
96b3c83d BZ |
1150 | } |
1151 | } | |
1152 | , | |
1153 | ||
ec278fa2 | 1154 | { /* Singapore */ |
96b3c83d BZ |
1155 | "SG", |
1156 | CE, | |
1157 | { | |
1158 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1159 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1160 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 1161 | , /* 5G, ch 36~48 */ |
96b3c83d | 1162 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 1163 | , /* 5G, ch 52~64 */ |
96b3c83d | 1164 | {149, 4, 20, BOTH, FALSE} |
ec278fa2 | 1165 | , /* 5G, ch 149~161 */ |
96b3c83d | 1166 | {0} |
ec278fa2 | 1167 | , /* end */ |
96b3c83d BZ |
1168 | } |
1169 | } | |
1170 | , | |
1171 | ||
ec278fa2 | 1172 | { /* Slovakia */ |
96b3c83d BZ |
1173 | "SK", |
1174 | CE, | |
1175 | { | |
1176 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1177 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1178 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1179 | , /* 5G, ch 36~48 */ |
96b3c83d | 1180 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1181 | , /* 5G, ch 52~64 */ |
96b3c83d | 1182 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1183 | , /* 5G, ch 100~140 */ |
96b3c83d | 1184 | {0} |
ec278fa2 | 1185 | , /* end */ |
96b3c83d BZ |
1186 | } |
1187 | } | |
1188 | , | |
1189 | ||
ec278fa2 | 1190 | { /* Slovenia */ |
96b3c83d BZ |
1191 | "SI", |
1192 | CE, | |
1193 | { | |
1194 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1195 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1196 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1197 | , /* 5G, ch 36~48 */ |
96b3c83d | 1198 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1199 | , /* 5G, ch 52~64 */ |
96b3c83d | 1200 | {0} |
ec278fa2 | 1201 | , /* end */ |
96b3c83d BZ |
1202 | } |
1203 | } | |
1204 | , | |
1205 | ||
ec278fa2 | 1206 | { /* South Africa */ |
96b3c83d BZ |
1207 | "ZA", |
1208 | CE, | |
1209 | { | |
1210 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1211 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1212 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 1213 | , /* 5G, ch 36~48 */ |
96b3c83d | 1214 | {52, 4, 23, IDOR, FALSE} |
ec278fa2 | 1215 | , /* 5G, ch 52~64 */ |
96b3c83d | 1216 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1217 | , /* 5G, ch 100~140 */ |
96b3c83d | 1218 | {149, 4, 30, BOTH, FALSE} |
ec278fa2 | 1219 | , /* 5G, ch 149~161 */ |
96b3c83d | 1220 | {0} |
ec278fa2 | 1221 | , /* end */ |
96b3c83d BZ |
1222 | } |
1223 | } | |
1224 | , | |
1225 | ||
ec278fa2 | 1226 | { /* South Korea */ |
96b3c83d BZ |
1227 | "KR", |
1228 | CE, | |
1229 | { | |
1230 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1231 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1232 | {36, 4, 20, BOTH, FALSE} |
ec278fa2 | 1233 | , /* 5G, ch 36~48 */ |
96b3c83d | 1234 | {52, 4, 20, BOTH, FALSE} |
ec278fa2 | 1235 | , /* 5G, ch 52~64 */ |
96b3c83d | 1236 | {100, 8, 20, BOTH, FALSE} |
ec278fa2 | 1237 | , /* 5G, ch 100~128 */ |
96b3c83d | 1238 | {149, 4, 20, BOTH, FALSE} |
ec278fa2 | 1239 | , /* 5G, ch 149~161 */ |
96b3c83d | 1240 | {0} |
ec278fa2 | 1241 | , /* end */ |
96b3c83d BZ |
1242 | } |
1243 | } | |
1244 | , | |
1245 | ||
ec278fa2 | 1246 | { /* Spain */ |
96b3c83d BZ |
1247 | "ES", |
1248 | CE, | |
1249 | { | |
1250 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1251 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1252 | {36, 4, 17, IDOR, FALSE} |
ec278fa2 | 1253 | , /* 5G, ch 36~48 */ |
96b3c83d | 1254 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1255 | , /* 5G, ch 52~64 */ |
96b3c83d | 1256 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1257 | , /* 5G, ch 100~140 */ |
96b3c83d | 1258 | {0} |
ec278fa2 | 1259 | , /* end */ |
96b3c83d BZ |
1260 | } |
1261 | } | |
1262 | , | |
1263 | ||
ec278fa2 | 1264 | { /* Sweden */ |
96b3c83d BZ |
1265 | "SE", |
1266 | CE, | |
1267 | { | |
1268 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1269 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1270 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1271 | , /* 5G, ch 36~48 */ |
96b3c83d | 1272 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1273 | , /* 5G, ch 52~64 */ |
96b3c83d | 1274 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1275 | , /* 5G, ch 100~140 */ |
96b3c83d | 1276 | {0} |
ec278fa2 | 1277 | , /* end */ |
96b3c83d BZ |
1278 | } |
1279 | } | |
1280 | , | |
1281 | ||
ec278fa2 | 1282 | { /* Switzerland */ |
96b3c83d BZ |
1283 | "CH", |
1284 | CE, | |
1285 | { | |
1286 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1287 | , /* 2.4 G, ch 1~13 */ |
96b3c83d | 1288 | {36, 4, 23, IDOR, TRUE} |
ec278fa2 | 1289 | , /* 5G, ch 36~48 */ |
96b3c83d | 1290 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1291 | , /* 5G, ch 52~64 */ |
96b3c83d | 1292 | {0} |
ec278fa2 | 1293 | , /* end */ |
96b3c83d BZ |
1294 | } |
1295 | } | |
1296 | , | |
1297 | ||
ec278fa2 | 1298 | { /* Taiwan */ |
96b3c83d BZ |
1299 | "TW", |
1300 | CE, | |
1301 | { | |
1302 | {1, 11, 30, BOTH, FALSE} | |
ec278fa2 | 1303 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1304 | {52, 4, 23, IDOR, FALSE} |
ec278fa2 | 1305 | , /* 5G, ch 52~64 */ |
96b3c83d | 1306 | {0} |
ec278fa2 | 1307 | , /* end */ |
96b3c83d BZ |
1308 | } |
1309 | } | |
1310 | , | |
1311 | ||
ec278fa2 | 1312 | { /* Turkey */ |
96b3c83d BZ |
1313 | "TR", |
1314 | CE, | |
1315 | { | |
1316 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1317 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1318 | {36, 4, 23, BOTH, FALSE} |
ec278fa2 | 1319 | , /* 5G, ch 36~48 */ |
96b3c83d | 1320 | {52, 4, 23, BOTH, FALSE} |
ec278fa2 | 1321 | , /* 5G, ch 52~64 */ |
96b3c83d | 1322 | {0} |
ec278fa2 | 1323 | , /* end */ |
96b3c83d BZ |
1324 | } |
1325 | } | |
1326 | , | |
1327 | ||
ec278fa2 | 1328 | { /* UK */ |
96b3c83d BZ |
1329 | "GB", |
1330 | CE, | |
1331 | { | |
1332 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1333 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1334 | {36, 4, 23, IDOR, FALSE} |
ec278fa2 | 1335 | , /* 5G, ch 52~64 */ |
96b3c83d | 1336 | {52, 4, 23, IDOR, TRUE} |
ec278fa2 | 1337 | , /* 5G, ch 52~64 */ |
96b3c83d | 1338 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1339 | , /* 5G, ch 100~140 */ |
96b3c83d | 1340 | {0} |
ec278fa2 | 1341 | , /* end */ |
96b3c83d BZ |
1342 | } |
1343 | } | |
1344 | , | |
1345 | ||
ec278fa2 | 1346 | { /* Ukraine */ |
96b3c83d BZ |
1347 | "UA", |
1348 | CE, | |
1349 | { | |
1350 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1351 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1352 | {0} |
ec278fa2 | 1353 | , /* end */ |
96b3c83d BZ |
1354 | } |
1355 | } | |
1356 | , | |
1357 | ||
ec278fa2 | 1358 | { /* United_Arab_Emirates */ |
96b3c83d BZ |
1359 | "AE", |
1360 | CE, | |
1361 | { | |
1362 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1363 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1364 | {0} |
ec278fa2 | 1365 | , /* end */ |
96b3c83d BZ |
1366 | } |
1367 | } | |
1368 | , | |
1369 | ||
ec278fa2 | 1370 | { /* United_States */ |
96b3c83d BZ |
1371 | "US", |
1372 | CE, | |
1373 | { | |
1374 | {1, 11, 30, BOTH, FALSE} | |
ec278fa2 | 1375 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1376 | {36, 4, 17, IDOR, FALSE} |
ec278fa2 | 1377 | , /* 5G, ch 52~64 */ |
96b3c83d | 1378 | {52, 4, 24, BOTH, TRUE} |
ec278fa2 | 1379 | , /* 5G, ch 52~64 */ |
96b3c83d | 1380 | {100, 11, 30, BOTH, TRUE} |
ec278fa2 | 1381 | , /* 5G, ch 100~140 */ |
96b3c83d | 1382 | {149, 5, 30, BOTH, FALSE} |
ec278fa2 | 1383 | , /* 5G, ch 149~165 */ |
96b3c83d | 1384 | {0} |
ec278fa2 | 1385 | , /* end */ |
96b3c83d BZ |
1386 | } |
1387 | } | |
1388 | , | |
1389 | ||
ec278fa2 | 1390 | { /* Venezuela */ |
96b3c83d BZ |
1391 | "VE", |
1392 | CE, | |
1393 | { | |
1394 | {1, 13, 20, BOTH, FALSE} | |
ec278fa2 | 1395 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1396 | {149, 4, 27, BOTH, FALSE} |
ec278fa2 | 1397 | , /* 5G, ch 149~161 */ |
96b3c83d | 1398 | {0} |
ec278fa2 | 1399 | , /* end */ |
96b3c83d BZ |
1400 | } |
1401 | } | |
1402 | , | |
1403 | ||
ec278fa2 | 1404 | { /* Default */ |
96b3c83d BZ |
1405 | "", |
1406 | CE, | |
1407 | { | |
1408 | {1, 11, 20, BOTH, FALSE} | |
ec278fa2 | 1409 | , /* 2.4 G, ch 1~11 */ |
96b3c83d | 1410 | {36, 4, 20, BOTH, FALSE} |
ec278fa2 | 1411 | , /* 5G, ch 52~64 */ |
96b3c83d | 1412 | {52, 4, 20, BOTH, FALSE} |
ec278fa2 | 1413 | , /* 5G, ch 52~64 */ |
96b3c83d | 1414 | {100, 11, 20, BOTH, FALSE} |
ec278fa2 | 1415 | , /* 5G, ch 100~140 */ |
96b3c83d | 1416 | {149, 5, 20, BOTH, FALSE} |
ec278fa2 | 1417 | , /* 5G, ch 149~165 */ |
96b3c83d | 1418 | {0} |
ec278fa2 | 1419 | , /* end */ |
96b3c83d BZ |
1420 | } |
1421 | } | |
1422 | , | |
ca97b838 BZ |
1423 | }; |
1424 | ||
62eb734b | 1425 | static struct rt_ch_region *GetChRegion(u8 *CntryCode) |
ca97b838 | 1426 | { |
51126deb | 1427 | int loop = 0; |
62eb734b | 1428 | struct rt_ch_region *pChRegion = NULL; |
ca97b838 | 1429 | |
51126deb | 1430 | while (strcmp((char *)ChRegion[loop].CountReg, "") != 0) { |
96b3c83d | 1431 | if (strncmp |
51126deb | 1432 | ((char *)ChRegion[loop].CountReg, (char *)CntryCode, |
96b3c83d | 1433 | 2) == 0) { |
ca97b838 BZ |
1434 | pChRegion = &ChRegion[loop]; |
1435 | break; | |
1436 | } | |
1437 | loop++; | |
1438 | } | |
1439 | ||
1440 | if (pChRegion == NULL) | |
1441 | pChRegion = &ChRegion[loop]; | |
1442 | return pChRegion; | |
1443 | } | |
1444 | ||
51126deb | 1445 | static void ChBandCheck(u8 PhyMode, u8 *pChType) |
ca97b838 | 1446 | { |
96b3c83d BZ |
1447 | switch (PhyMode) { |
1448 | case PHY_11A: | |
1449 | case PHY_11AN_MIXED: | |
1450 | *pChType = BAND_5G; | |
1451 | break; | |
1452 | case PHY_11ABG_MIXED: | |
1453 | case PHY_11AGN_MIXED: | |
1454 | case PHY_11ABGN_MIXED: | |
1455 | *pChType = BAND_BOTH; | |
1456 | break; | |
1457 | ||
1458 | default: | |
1459 | *pChType = BAND_24G; | |
1460 | break; | |
ca97b838 BZ |
1461 | } |
1462 | } | |
1463 | ||
62eb734b BZ |
1464 | static u8 FillChList(struct rt_rtmp_adapter *pAd, |
1465 | struct rt_ch_desp *pChDesp, | |
51126deb | 1466 | u8 Offset, u8 increment) |
ca97b838 | 1467 | { |
51126deb BZ |
1468 | int i, j, l; |
1469 | u8 channel; | |
ca97b838 BZ |
1470 | |
1471 | j = Offset; | |
96b3c83d | 1472 | for (i = 0; i < pChDesp->NumOfCh; i++) { |
ca97b838 | 1473 | channel = pChDesp->FirstChannel + i * increment; |
96b3c83d BZ |
1474 | for (l = 0; l < MAX_NUM_OF_CHANNELS; l++) { |
1475 | if (channel == pAd->TxPower[l].Channel) { | |
1476 | pAd->ChannelList[j].Power = | |
1477 | pAd->TxPower[l].Power; | |
1478 | pAd->ChannelList[j].Power2 = | |
1479 | pAd->TxPower[l].Power2; | |
ca97b838 BZ |
1480 | break; |
1481 | } | |
1482 | } | |
1483 | if (l == MAX_NUM_OF_CHANNELS) | |
1484 | continue; | |
1485 | ||
96b3c83d BZ |
1486 | pAd->ChannelList[j].Channel = |
1487 | pChDesp->FirstChannel + i * increment; | |
ca97b838 BZ |
1488 | pAd->ChannelList[j].MaxTxPwr = pChDesp->MaxTxPwr; |
1489 | pAd->ChannelList[j].DfsReq = pChDesp->DfsReq; | |
1490 | j++; | |
1491 | } | |
1492 | pAd->ChannelListNum = j; | |
1493 | ||
1494 | return j; | |
1495 | } | |
1496 | ||
62eb734b BZ |
1497 | static inline void CreateChList(struct rt_rtmp_adapter *pAd, |
1498 | struct rt_ch_region *pChRegion, u8 Geography) | |
ca97b838 | 1499 | { |
51126deb BZ |
1500 | int i; |
1501 | u8 offset = 0; | |
62eb734b | 1502 | struct rt_ch_desp *pChDesp; |
51126deb BZ |
1503 | u8 ChType; |
1504 | u8 increment; | |
ca97b838 BZ |
1505 | |
1506 | if (pChRegion == NULL) | |
1507 | return; | |
1508 | ||
1509 | ChBandCheck(pAd->CommonCfg.PhyMode, &ChType); | |
1510 | ||
96b3c83d | 1511 | for (i = 0; i < 10; i++) { |
ca97b838 BZ |
1512 | pChDesp = &pChRegion->ChDesp[i]; |
1513 | if (pChDesp->FirstChannel == 0) | |
1514 | break; | |
1515 | ||
96b3c83d | 1516 | if (ChType == BAND_5G) { |
ca97b838 BZ |
1517 | if (pChDesp->FirstChannel <= 14) |
1518 | continue; | |
96b3c83d | 1519 | } else if (ChType == BAND_24G) { |
ca97b838 BZ |
1520 | if (pChDesp->FirstChannel > 14) |
1521 | continue; | |
1522 | } | |
1523 | ||
1524 | if ((pChDesp->Geography == BOTH) | |
96b3c83d | 1525 | || (pChDesp->Geography == Geography)) { |
ca97b838 | 1526 | if (pChDesp->FirstChannel > 14) |
96b3c83d BZ |
1527 | increment = 4; |
1528 | else | |
1529 | increment = 1; | |
ca97b838 | 1530 | offset = FillChList(pAd, pChDesp, offset, increment); |
96b3c83d | 1531 | } |
ca97b838 BZ |
1532 | } |
1533 | } | |
1534 | ||
62eb734b | 1535 | void BuildChannelListEx(struct rt_rtmp_adapter *pAd) |
ca97b838 | 1536 | { |
62eb734b | 1537 | struct rt_ch_region *pChReg; |
ca97b838 BZ |
1538 | |
1539 | pChReg = GetChRegion(pAd->CommonCfg.CountryCode); | |
1540 | CreateChList(pAd, pChReg, pAd->CommonCfg.Geography); | |
1541 | } | |
1542 | ||
62eb734b | 1543 | void BuildBeaconChList(struct rt_rtmp_adapter *pAd, |
51126deb | 1544 | u8 *pBuf, unsigned long *pBufLen) |
ca97b838 | 1545 | { |
51126deb BZ |
1546 | int i; |
1547 | unsigned long TmpLen; | |
62eb734b BZ |
1548 | struct rt_ch_region *pChRegion; |
1549 | struct rt_ch_desp *pChDesp; | |
51126deb | 1550 | u8 ChType; |
ca97b838 BZ |
1551 | |
1552 | pChRegion = GetChRegion(pAd->CommonCfg.CountryCode); | |
1553 | ||
1554 | if (pChRegion == NULL) | |
1555 | return; | |
1556 | ||
1557 | ChBandCheck(pAd->CommonCfg.PhyMode, &ChType); | |
1558 | *pBufLen = 0; | |
1559 | ||
96b3c83d | 1560 | for (i = 0; i < 10; i++) { |
ca97b838 BZ |
1561 | pChDesp = &pChRegion->ChDesp[i]; |
1562 | if (pChDesp->FirstChannel == 0) | |
1563 | break; | |
1564 | ||
96b3c83d | 1565 | if (ChType == BAND_5G) { |
ca97b838 BZ |
1566 | if (pChDesp->FirstChannel <= 14) |
1567 | continue; | |
96b3c83d | 1568 | } else if (ChType == BAND_24G) { |
ca97b838 BZ |
1569 | if (pChDesp->FirstChannel > 14) |
1570 | continue; | |
1571 | } | |
1572 | ||
1573 | if ((pChDesp->Geography == BOTH) | |
96b3c83d BZ |
1574 | || (pChDesp->Geography == pAd->CommonCfg.Geography)) { |
1575 | MakeOutgoingFrame(pBuf + *pBufLen, &TmpLen, | |
1576 | 1, &pChDesp->FirstChannel, | |
1577 | 1, &pChDesp->NumOfCh, | |
1578 | 1, &pChDesp->MaxTxPwr, END_OF_ARGS); | |
ca97b838 BZ |
1579 | *pBufLen += TmpLen; |
1580 | } | |
1581 | } | |
1582 | } | |
1583 | ||
62eb734b | 1584 | static BOOLEAN IsValidChannel(struct rt_rtmp_adapter *pAd, u8 channel) |
ca97b838 | 1585 | { |
51126deb | 1586 | int i; |
ca97b838 | 1587 | |
96b3c83d | 1588 | for (i = 0; i < pAd->ChannelListNum; i++) { |
ca97b838 BZ |
1589 | if (pAd->ChannelList[i].Channel == channel) |
1590 | break; | |
1591 | } | |
1592 | ||
1593 | if (i == pAd->ChannelListNum) | |
1594 | return FALSE; | |
1595 | else | |
1596 | return TRUE; | |
1597 | } | |
1598 | ||
51126deb | 1599 | static u8 GetExtCh(u8 Channel, u8 Direction) |
ca97b838 | 1600 | { |
51126deb | 1601 | char ExtCh; |
ca97b838 BZ |
1602 | |
1603 | if (Direction == EXTCHA_ABOVE) | |
1604 | ExtCh = Channel + 4; | |
1605 | else | |
1606 | ExtCh = (Channel - 4) > 0 ? (Channel - 4) : 0; | |
1607 | ||
1608 | return ExtCh; | |
1609 | } | |
1610 | ||
62eb734b | 1611 | void N_ChannelCheck(struct rt_rtmp_adapter *pAd) |
ca97b838 | 1612 | { |
51126deb BZ |
1613 | /*u8 ChannelNum = pAd->ChannelListNum; */ |
1614 | u8 Channel = pAd->CommonCfg.Channel; | |
ca97b838 | 1615 | |
96b3c83d BZ |
1616 | if ((pAd->CommonCfg.PhyMode >= PHY_11ABGN_MIXED) |
1617 | && (pAd->CommonCfg.RegTransmitSetting.field.BW == BW_40)) { | |
1618 | if (Channel > 14) { | |
1619 | if ((Channel == 36) || (Channel == 44) | |
1620 | || (Channel == 52) || (Channel == 60) | |
1621 | || (Channel == 100) || (Channel == 108) | |
1622 | || (Channel == 116) || (Channel == 124) | |
1623 | || (Channel == 132) || (Channel == 149) | |
1624 | || (Channel == 157)) { | |
1625 | pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = | |
1626 | EXTCHA_ABOVE; | |
1627 | } else if ((Channel == 40) || (Channel == 48) | |
1628 | || (Channel == 56) || (Channel == 64) | |
1629 | || (Channel == 104) || (Channel == 112) | |
1630 | || (Channel == 120) || (Channel == 128) | |
1631 | || (Channel == 136) || (Channel == 153) | |
1632 | || (Channel == 161)) { | |
1633 | pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = | |
1634 | EXTCHA_BELOW; | |
1635 | } else { | |
1636 | pAd->CommonCfg.RegTransmitSetting.field.BW = | |
1637 | BW_20; | |
1638 | } | |
1639 | } else { | |
1640 | do { | |
51126deb BZ |
1641 | u8 ExtCh; |
1642 | u8 Dir = | |
96b3c83d BZ |
1643 | pAd->CommonCfg.RegTransmitSetting.field. |
1644 | EXTCHA; | |
ca97b838 BZ |
1645 | ExtCh = GetExtCh(Channel, Dir); |
1646 | if (IsValidChannel(pAd, ExtCh)) | |
1647 | break; | |
1648 | ||
96b3c83d BZ |
1649 | Dir = |
1650 | (Dir == | |
1651 | EXTCHA_ABOVE) ? EXTCHA_BELOW : | |
1652 | EXTCHA_ABOVE; | |
ca97b838 | 1653 | ExtCh = GetExtCh(Channel, Dir); |
96b3c83d BZ |
1654 | if (IsValidChannel(pAd, ExtCh)) { |
1655 | pAd->CommonCfg.RegTransmitSetting.field. | |
1656 | EXTCHA = Dir; | |
ca97b838 BZ |
1657 | break; |
1658 | } | |
96b3c83d BZ |
1659 | pAd->CommonCfg.RegTransmitSetting.field.BW = |
1660 | BW_20; | |
1661 | } while (FALSE); | |
ca97b838 | 1662 | |
96b3c83d BZ |
1663 | if (Channel == 14) { |
1664 | pAd->CommonCfg.RegTransmitSetting.field.BW = | |
1665 | BW_20; | |
ec278fa2 | 1666 | /*pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_NONE; // We didn't set the ExtCh as NONE due to it'll set in RTMPSetHT() */ |
ca97b838 BZ |
1667 | } |
1668 | } | |
1669 | } | |
1670 | ||
ca97b838 BZ |
1671 | } |
1672 | ||
62eb734b | 1673 | void N_SetCenCh(struct rt_rtmp_adapter *pAd) |
ca97b838 | 1674 | { |
96b3c83d BZ |
1675 | if (pAd->CommonCfg.RegTransmitSetting.field.BW == BW_40) { |
1676 | if (pAd->CommonCfg.RegTransmitSetting.field.EXTCHA == | |
1677 | EXTCHA_ABOVE) { | |
1678 | pAd->CommonCfg.CentralChannel = | |
1679 | pAd->CommonCfg.Channel + 2; | |
1680 | } else { | |
ca97b838 | 1681 | if (pAd->CommonCfg.Channel == 14) |
96b3c83d BZ |
1682 | pAd->CommonCfg.CentralChannel = |
1683 | pAd->CommonCfg.Channel - 1; | |
ca97b838 | 1684 | else |
96b3c83d BZ |
1685 | pAd->CommonCfg.CentralChannel = |
1686 | pAd->CommonCfg.Channel - 2; | |
ca97b838 | 1687 | } |
96b3c83d | 1688 | } else { |
ca97b838 BZ |
1689 | pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel; |
1690 | } | |
1691 | } | |
1692 | ||
62eb734b | 1693 | u8 GetCuntryMaxTxPwr(struct rt_rtmp_adapter *pAd, u8 channel) |
ca97b838 BZ |
1694 | { |
1695 | int i; | |
96b3c83d | 1696 | for (i = 0; i < pAd->ChannelListNum; i++) { |
ca97b838 BZ |
1697 | if (pAd->ChannelList[i].Channel == channel) |
1698 | break; | |
1699 | } | |
1700 | ||
1701 | if (i == pAd->ChannelListNum) | |
1702 | return 0xff; | |
1703 | else | |
1704 | return pAd->ChannelList[i].MaxTxPwr; | |
1705 | } |