1 /*-
2  * SPDX-License-Identifier: ISC
3  *
4  * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
5  * Copyright (c) 2005-2006 Atheros Communications, Inc.
6  * All rights reserved.
7  *
8  * Permission to use, copy, modify, and/or distribute this software for any
9  * purpose with or without fee is hereby granted, provided that the above
10  * copyright notice and this permission notice appear in all copies.
11  *
12  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19  *
20  * $FreeBSD$
21  */
22 
23 #ifndef	__AH_REGDOMAIN_DOMAINS_H__
24 #define	__AH_REGDOMAIN_DOMAINS_H__
25 
26 /*
27  * BMLEN defines the size of the bitmask used to hold frequency
28  * band specifications.  Note this must agree with the BM macro
29  * definition that's used to setup initializers.  See also further
30  * comments below.
31  */
32 /* BMLEN is now defined in ah_regdomain.h */
33 #define	W0(_a) \
34 	(((_a) >= 0 && (_a) < 64 ? (((uint64_t) 1)<<(_a)) : (uint64_t) 0))
35 #define	W1(_a) \
36 	(((_a) > 63 && (_a) < 128 ? (((uint64_t) 1)<<((_a)-64)) : (uint64_t) 0))
37 #define BM1(_fa)	{ W0(_fa), W1(_fa) }
38 #define BM2(_fa, _fb)	{ W0(_fa) | W0(_fb), W1(_fa) | W1(_fb) }
39 #define BM3(_fa, _fb, _fc) \
40 	{ W0(_fa) | W0(_fb) | W0(_fc), W1(_fa) | W1(_fb) | W1(_fc) }
41 #define BM4(_fa, _fb, _fc, _fd)						\
42 	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd),			\
43 	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) }
44 #define BM5(_fa, _fb, _fc, _fd, _fe)					\
45 	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe),		\
46 	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) }
47 #define BM6(_fa, _fb, _fc, _fd, _fe, _ff)				\
48 	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff),	\
49 	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) }
50 #define BM7(_fa, _fb, _fc, _fd, _fe, _ff, _fg)	\
51 	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\
52 	  W0(_fg),\
53 	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\
54 	  W1(_fg) }
55 #define BM8(_fa, _fb, _fc, _fd, _fe, _ff, _fg, _fh)	\
56 	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\
57 	  W0(_fg) | W0(_fh) ,	\
58 	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\
59 	  W1(_fg) | W1(_fh) }
60 #define BM9(_fa, _fb, _fc, _fd, _fe, _ff, _fg, _fh, _fi)	\
61 	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\
62 	  W0(_fg) | W0(_fh) | W0(_fi) ,	\
63 	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\
64 	  W1(_fg) | W1(_fh) | W1(_fi) }
65 
66 static REG_DOMAIN regDomains[] = {
67 	{.regDmnEnum		= DEBUG_REG_DMN,
68 	 .conformanceTestLimit	= FCC,
69 	 .dfsMask		= DFS_FCC3,
70 	 .chan11a		= BM4(F1_4950_4980,
71 				      F1_5120_5240,
72 				      F1_5260_5700,
73 				      F1_5745_5825),
74 	 .chan11a_half		= BM4(F1_4945_4985,
75 				      F2_5120_5240,
76 				      F2_5260_5700,
77 				      F7_5745_5825),
78 	 .chan11a_quarter	= BM4(F1_4942_4987,
79 				      F3_5120_5240,
80 				      F3_5260_5700,
81 				      F8_5745_5825),
82 	 .chan11a_turbo		= BM8(T1_5130_5210,
83 				      T1_5250_5330,
84 				      T1_5370_5490,
85 				      T1_5530_5650,
86 				      T1_5150_5190,
87 				      T1_5230_5310,
88 				      T1_5350_5470,
89 				      T1_5510_5670),
90 	 .chan11a_dyn_turbo	= BM4(T1_5200_5240,
91 				      T1_5280_5280,
92 				      T1_5540_5660,
93 				      T1_5765_5805),
94 	 .chan11b		= BM4(F1_2312_2372,
95 				      F1_2412_2472,
96 				      F1_2484_2484,
97 				      F1_2512_2732),
98 	 .chan11g		= BM3(G1_2312_2372, G1_2412_2472, G1_2512_2732),
99 	 .chan11g_turbo		= BM3(T1_2312_2372, T1_2437_2437, T1_2512_2732),
100 	 .chan11g_half		= BM3(G2_2312_2372, G4_2412_2472, G2_2512_2732),
101 	 .chan11g_quarter	= BM3(G3_2312_2372, G5_2412_2472, G3_2512_2732),
102 	},
103 
104 	{.regDmnEnum		= APL1,
105 	 .conformanceTestLimit	= FCC,
106 	 .chan11a		= BM1(F4_5745_5825),
107 	},
108 
109 	{.regDmnEnum		= APL2,
110 	 .conformanceTestLimit	= FCC,
111 	 .chan11a		= BM1(F1_5745_5805),
112 	},
113 
114 	{.regDmnEnum		= APL3,
115 	 .conformanceTestLimit	= FCC,
116 	 .chan11a		= BM2(F1_5280_5320, F2_5745_5805),
117 	},
118 
119 	{.regDmnEnum		= APL4,
120 	 .conformanceTestLimit	= FCC,
121 	 .chan11a		= BM2(F4_5180_5240, F3_5745_5825),
122 	},
123 
124 	{.regDmnEnum		= APL5,
125 	 .conformanceTestLimit	= FCC,
126 	 .chan11a		= BM1(F2_5745_5825),
127 	},
128 
129 	{.regDmnEnum		= APL6,
130 	 .conformanceTestLimit	= ETSI,
131 	 .dfsMask		= DFS_ETSI,
132 	 .pscan			= PSCAN_FCC_T | PSCAN_FCC,
133 	 .chan11a		= BM3(F4_5180_5240, F2_5260_5320, F3_5745_5825),
134 	 .chan11a_turbo		= BM3(T2_5210_5210, T1_5250_5290, T1_5760_5800),
135 	},
136 
137 	{.regDmnEnum		= APL8,
138 	 .conformanceTestLimit	= ETSI,
139 	 .flags			= DISALLOW_ADHOC_11A|DISALLOW_ADHOC_11A_TURB,
140 	 .chan11a		= BM2(F6_5260_5320, F4_5745_5825),
141 	},
142 
143 	{.regDmnEnum		= APL9,
144 	 .conformanceTestLimit	= ETSI,
145 	 .dfsMask		= DFS_ETSI,
146 	 .pscan			= PSCAN_ETSI,
147 	 .flags			= DISALLOW_ADHOC_11A|DISALLOW_ADHOC_11A_TURB,
148 	 .chan11a		= BM3(F1_5180_5320, F1_5500_5620, F3_5745_5805),
149 	},
150 
151 	{.regDmnEnum		= ETSI1,
152 	 .conformanceTestLimit	= ETSI,
153 	 .dfsMask		= DFS_ETSI,
154 	 .pscan			= PSCAN_ETSI,
155 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
156 	 .chan11a		= BM3(W2_5180_5240, F2_5260_5320, F2_5500_5700),
157 	},
158 
159 	{.regDmnEnum		= ETSI2,
160 	 .conformanceTestLimit	= ETSI,
161 	 .dfsMask		= DFS_ETSI,
162 	 .pscan			= PSCAN_ETSI,
163 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
164 	 .chan11a		= BM1(F3_5180_5240),
165 	},
166 
167 	{.regDmnEnum		= ETSI3,
168 	 .conformanceTestLimit	= ETSI,
169 	 .dfsMask		= DFS_ETSI,
170 	 .pscan			= PSCAN_ETSI,
171 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
172 	 .chan11a		= BM2(W2_5180_5240, F2_5260_5320),
173 	},
174 
175 	{.regDmnEnum		= ETSI4,
176 	 .conformanceTestLimit	= ETSI,
177 	 .dfsMask		= DFS_ETSI,
178 	 .pscan			= PSCAN_ETSI,
179 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
180 	 .chan11a		= BM2(F3_5180_5240, F1_5260_5320),
181 	},
182 
183 	{.regDmnEnum		= ETSI5,
184 	 .conformanceTestLimit	= ETSI,
185 	 .dfsMask		= DFS_ETSI,
186 	 .pscan			= PSCAN_ETSI,
187 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
188 	 .chan11a		= BM1(F1_5180_5240),
189 	},
190 
191 	{.regDmnEnum		= ETSI6,
192 	 .conformanceTestLimit	= ETSI,
193 	 .dfsMask		= DFS_ETSI,
194 	 .pscan			= PSCAN_ETSI,
195 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
196 	 .chan11a		= BM3(F5_5180_5240, F1_5260_5280, F3_5500_5700),
197 	},
198 
199 	{.regDmnEnum		= FCC1,
200 	 .conformanceTestLimit	= FCC,
201 	 .chan11a		= BM3(F2_5180_5240, F4_5260_5320, F5_5745_5825),
202 	 .chan11a_turbo		= BM3(T1_5210_5210, T2_5250_5290, T2_5760_5800),
203 	 .chan11a_dyn_turbo	= BM3(T1_5200_5240, T1_5280_5280, T1_5765_5805),
204 	},
205 
206 	{.regDmnEnum		= FCC2,
207 	 .conformanceTestLimit	= FCC,
208 	 .chan11a		= BM3(F6_5180_5240, F5_5260_5320, F6_5745_5825),
209 	 .chan11a_dyn_turbo	= BM3(T2_5200_5240, T1_5280_5280, T1_5765_5805),
210 	},
211 
212 	{.regDmnEnum		= FCC3,
213 	 .conformanceTestLimit	= FCC,
214 	 .dfsMask		= DFS_FCC3,
215 	 .pscan			= PSCAN_FCC | PSCAN_FCC_T,
216 	 .chan11a		= BM4(F2_5180_5240,
217 				      F3_5260_5320,
218 				      F1_5500_5700,
219 				      F5_5745_5825),
220 	 .chan11a_turbo		= BM4(T1_5210_5210,
221 				      T1_5250_5250,
222 				      T1_5290_5290,
223 				      T2_5760_5800),
224 	 .chan11a_dyn_turbo	= BM3(T1_5200_5240, T2_5280_5280, T1_5540_5660),
225 	},
226 
227 	{.regDmnEnum		= FCC4,
228 	 .conformanceTestLimit	= FCC,
229 	 .dfsMask		= DFS_FCC3,
230 	 .pscan			= PSCAN_FCC | PSCAN_FCC_T,
231 	 .chan11a		= BM1(F1_4950_4980),
232 	 .chan11a_half		= BM1(F1_4945_4985),
233 	 .chan11a_quarter	= BM1(F1_4942_4987),
234 	},
235 
236 	/* FCC1 w/ 1/2 and 1/4 width channels */
237 	{.regDmnEnum		= FCC5,
238 	 .conformanceTestLimit	= FCC,
239 	 .chan11a		= BM3(F2_5180_5240, F4_5260_5320, F5_5745_5825),
240 	 .chan11a_turbo		= BM3(T1_5210_5210, T2_5250_5290, T2_5760_5800),
241 	 .chan11a_dyn_turbo	= BM3(T1_5200_5240, T1_5280_5280, T1_5765_5805),
242 	 .chan11a_half		= BM3(F7_5180_5240, F7_5260_5320, F9_5745_5825),
243 	 .chan11a_quarter	= BM3(F8_5180_5240, F8_5260_5320,F10_5745_5825),
244 	},
245 
246 	{.regDmnEnum		= FCC6,
247 	 .conformanceTestLimit	= FCC,
248 	 .chan11a		= BM5(F8_5180_5240, F5_5260_5320, F1_5500_5580, F2_5660_5720, F6_5745_5825),
249 	 .chan11a_turbo		= BM3(T7_5210_5210, T3_5250_5290, T2_5760_5800),
250 	 .chan11a_dyn_turbo	= BM4(T7_5200_5200, T1_5240_5240, T2_5280_5280, T1_5765_5805),
251 #if 0
252 	 .chan11a_half		= BM3(F7_5180_5240, F7_5260_5320, F9_5745_5825),
253 	 .chan11a_quarter	= BM3(F8_5180_5240, F8_5260_5320,F10_5745_5825),
254 #endif
255 	},
256 
257 	{.regDmnEnum		= MKK1,
258 	 .conformanceTestLimit	= MKK,
259 	 .pscan			= PSCAN_MKK1,
260 	 .flags			= DISALLOW_ADHOC_11A_TURB,
261 	 .chan11a		= BM1(F1_5170_5230),
262 	},
263 
264 	{.regDmnEnum		= MKK2,
265 	 .conformanceTestLimit	= MKK,
266 	 .pscan			= PSCAN_MKK2,
267 	 .flags			= DISALLOW_ADHOC_11A_TURB,
268 	 .chan11a		= BM3(F1_4920_4980, F1_5040_5080, F1_5170_5230),
269 	 .chan11a_half		= BM4(F1_4915_4925,
270 				      F1_4935_4945,
271 				      F1_5035_5040,
272 				      F1_5055_5055),
273 	},
274 
275 	/* UNI-1 even */
276 	{.regDmnEnum		= MKK3,
277 	 .conformanceTestLimit	= MKK,
278 	 .pscan			= PSCAN_MKK3,
279 	 .flags			= DISALLOW_ADHOC_11A_TURB,
280 	 .chan11a		= BM1(F4_5180_5240),
281 	},
282 
283 	/* UNI-1 even + UNI-2 */
284 	{.regDmnEnum		= MKK4,
285 	 .conformanceTestLimit	= MKK,
286 	 .dfsMask		= DFS_MKK4,
287 	 .pscan			= PSCAN_MKK3,
288 	 .flags			= DISALLOW_ADHOC_11A_TURB,
289 	 .chan11a		= BM2(F4_5180_5240, F2_5260_5320),
290 	},
291 
292 	/* UNI-1 even + UNI-2 + mid-band */
293 	{.regDmnEnum		= MKK5,
294 	 .conformanceTestLimit	= MKK,
295 	 .dfsMask		= DFS_MKK4,
296 	 .pscan			= PSCAN_MKK3,
297 	 .flags			= DISALLOW_ADHOC_11A_TURB,
298 	 .chan11a		= BM3(F4_5180_5240, F2_5260_5320, F4_5500_5700),
299 	},
300 
301 	/* UNI-1 odd + even */
302 	{.regDmnEnum		= MKK6,
303 	 .conformanceTestLimit	= MKK,
304 	 .pscan			= PSCAN_MKK1,
305 	 .flags			= DISALLOW_ADHOC_11A_TURB,
306 	 .chan11a		= BM2(F2_5170_5230, F4_5180_5240),
307 	},
308 
309 	/* UNI-1 odd + UNI-1 even + UNI-2 */
310 	{.regDmnEnum		= MKK7,
311 	 .conformanceTestLimit	= MKK,
312 	 .dfsMask		= DFS_MKK4,
313 	 .pscan			= PSCAN_MKK1 | PSCAN_MKK3,
314 	 .flags			= DISALLOW_ADHOC_11A_TURB,
315 	 .chan11a		= BM3(F1_5170_5230, F4_5180_5240, F2_5260_5320),
316 	},
317 
318 	/* UNI-1 odd + UNI-1 even + UNI-2 + mid-band */
319 	{.regDmnEnum		= MKK8,
320 	 .conformanceTestLimit	= MKK,
321 	 .dfsMask		= DFS_MKK4,
322 	 .pscan			= PSCAN_MKK1 | PSCAN_MKK3,
323 	 .flags			= DISALLOW_ADHOC_11A_TURB,
324 	 .chan11a		= BM4(F1_5170_5230,
325 				      F4_5180_5240,
326 				      F2_5260_5320,
327 				      F4_5500_5700),
328 	},
329 
330         /* UNI-1 even + 4.9 GHZ */
331         {.regDmnEnum		= MKK9,
332 	 .conformanceTestLimit	= MKK,
333 	 .pscan			= PSCAN_MKK3,
334 	 .flags			= DISALLOW_ADHOC_11A_TURB,
335          .chan11a		= BM7(F1_4915_4925,
336 				      F1_4935_4945,
337 				      F1_4920_4980,
338 				      F1_5035_5040,
339 				      F1_5055_5055,
340 				      F1_5040_5080,
341 				      F4_5180_5240),
342         },
343 
344         /* UNI-1 even + UNI-2 + 4.9 GHZ */
345         {.regDmnEnum		= MKK10,
346 	 .conformanceTestLimit	= MKK,
347 	 .dfsMask		= DFS_MKK4,
348 	 .pscan			= PSCAN_MKK3,
349 	 .flags			= DISALLOW_ADHOC_11A_TURB,
350          .chan11a		= BM8(F1_4915_4925,
351 				      F1_4935_4945,
352 				      F1_4920_4980,
353 				      F1_5035_5040,
354 				      F1_5055_5055,
355 				      F1_5040_5080,
356 				      F4_5180_5240,
357 				      F2_5260_5320),
358         },
359 
360 	/* Defined here to use when 2G channels are authorised for country K2 */
361 	{.regDmnEnum		= APLD,
362 	 .conformanceTestLimit	= NO_CTL,
363 	 .chan11b		= BM2(F2_2312_2372,F2_2412_2472),
364 	 .chan11g		= BM2(G2_2312_2372,G2_2412_2472),
365 	},
366 
367 	{.regDmnEnum		= ETSIA,
368 	 .conformanceTestLimit	= NO_CTL,
369 	 .pscan			= PSCAN_ETSIA,
370 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
371 	 .chan11b		= BM1(F1_2457_2472),
372 	 .chan11g		= BM1(G1_2457_2472),
373 	 .chan11g_turbo		= BM1(T2_2437_2437)
374 	},
375 
376 	{.regDmnEnum		= ETSIB,
377 	 .conformanceTestLimit	= ETSI,
378 	 .pscan			= PSCAN_ETSIB,
379 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
380 	 .chan11b		= BM1(F1_2432_2442),
381 	 .chan11g		= BM1(G1_2432_2442),
382 	 .chan11g_turbo		= BM1(T2_2437_2437)
383 	},
384 
385 	{.regDmnEnum		= ETSIC,
386 	 .conformanceTestLimit	= ETSI,
387 	 .pscan			= PSCAN_ETSIC,
388 	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
389 	 .chan11b		= BM1(F3_2412_2472),
390 	 .chan11g		= BM1(G3_2412_2472),
391 	 .chan11g_turbo		= BM1(T2_2437_2437)
392 	},
393 
394 	{.regDmnEnum		= FCCA,
395 	 .conformanceTestLimit	= FCC,
396 	 .chan11b		= BM1(F1_2412_2462),
397 	 .chan11g		= BM1(G1_2412_2462),
398 	 .chan11g_turbo		= BM1(T2_2437_2437),
399 	},
400 
401 	/* FCCA w/ 1/2 and 1/4 width channels */
402 	{.regDmnEnum		= FCCB,
403 	 .conformanceTestLimit	= FCC,
404 	 .chan11b		= BM1(F1_2412_2462),
405 	 .chan11g		= BM1(G1_2412_2462),
406 	 .chan11g_turbo		= BM1(T2_2437_2437),
407 	 .chan11g_half		= BM1(G3_2412_2462),
408 	 .chan11g_quarter	= BM1(G4_2412_2462),
409 	},
410 
411 	{.regDmnEnum		= MKKA,
412 	 .conformanceTestLimit	= MKK,
413 	 .pscan			= PSCAN_MKKA | PSCAN_MKKA_G
414 				| PSCAN_MKKA1 | PSCAN_MKKA1_G
415 				| PSCAN_MKKA2 | PSCAN_MKKA2_G,
416 	 .flags			= DISALLOW_ADHOC_11A_TURB,
417 	 .chan11b		= BM3(F2_2412_2462, F1_2467_2472, F2_2484_2484),
418 	 .chan11g		= BM2(G2_2412_2462, G1_2467_2472),
419 	 .chan11g_turbo		= BM1(T2_2437_2437)
420 	},
421 
422 	{.regDmnEnum		= MKKC,
423 	 .conformanceTestLimit	= MKK,
424 	 .chan11b		= BM1(F2_2412_2472),
425 	 .chan11g		= BM1(G2_2412_2472),
426 	 .chan11g_turbo		= BM1(T2_2437_2437)
427 	},
428 
429 	{.regDmnEnum		= WORLD,
430 	 .conformanceTestLimit	= ETSI,
431 	 .chan11b		= BM1(F2_2412_2472),
432 	 .chan11g		= BM1(G2_2412_2472),
433 	 .chan11g_turbo		= BM1(T2_2437_2437)
434 	},
435 
436 	{.regDmnEnum		= WOR0_WORLD,
437 	 .conformanceTestLimit	= NO_CTL,
438 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
439 	 .pscan			= PSCAN_WWR,
440 	 .flags			= ADHOC_PER_11D,
441 	 .chan11a		= BM5(W1_5260_5320,
442 				      W1_5180_5240,
443 				      W1_5170_5230,
444 				      W1_5745_5825,
445 				      W1_5500_5700),
446 	 .chan11a_turbo		= BM3(WT1_5210_5250,
447 				      WT1_5290_5290,
448 				      WT1_5760_5800),
449 	 .chan11b		= BM8(W1_2412_2412,
450 				      W1_2437_2442,
451 				      W1_2462_2462,
452 				      W1_2472_2472,
453 				      W1_2417_2432,
454 				      W1_2447_2457,
455 				      W1_2467_2467,
456 				      W1_2484_2484),
457 	 .chan11g		= BM7(WG1_2412_2412,
458 				      WG1_2437_2442,
459 				      WG1_2462_2462,
460 				      WG1_2472_2472,
461 				      WG1_2417_2432,
462 				      WG1_2447_2457,
463 				      WG1_2467_2467),
464 	 .chan11g_turbo		= BM1(T3_2437_2437)
465 	},
466 
467 	{.regDmnEnum		= WOR01_WORLD,
468 	 .conformanceTestLimit	= NO_CTL,
469 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
470 	 .pscan			= PSCAN_WWR,
471 	 .flags			= ADHOC_PER_11D,
472 	 .chan11a		= BM5(W1_5260_5320,
473 				      W1_5180_5240,
474 				      W1_5170_5230,
475 				      W1_5745_5825,
476 				      W1_5500_5700),
477 	 .chan11a_turbo		= BM3(WT1_5210_5250,
478 				      WT1_5290_5290,
479 				      WT1_5760_5800),
480 	 .chan11b		= BM5(W1_2412_2412,
481 				      W1_2437_2442,
482 				      W1_2462_2462,
483 				      W1_2417_2432,
484 				      W1_2447_2457),
485 	 .chan11g		= BM5(WG1_2412_2412,
486 				      WG1_2437_2442,
487 				      WG1_2462_2462,
488 				      WG1_2417_2432,
489 				      WG1_2447_2457),
490 	 .chan11g_turbo		= BM1(T3_2437_2437)},
491 
492 	{.regDmnEnum		= WOR02_WORLD,
493 	 .conformanceTestLimit	= NO_CTL,
494 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
495 	 .pscan			= PSCAN_WWR,
496 	 .flags			= ADHOC_PER_11D,
497 	 .chan11a		= BM5(W1_5260_5320,
498 				      W1_5180_5240,
499 				      W1_5170_5230,
500 				      W1_5745_5825,
501 				      W1_5500_5700),
502 	 .chan11a_turbo		= BM3(WT1_5210_5250,
503 				      WT1_5290_5290,
504 				      WT1_5760_5800),
505 	 .chan11b		= BM7(W1_2412_2412,
506 				      W1_2437_2442,
507 				      W1_2462_2462,
508 				      W1_2472_2472,
509 				      W1_2417_2432,
510 				      W1_2447_2457,
511 				      W1_2467_2467),
512 	 .chan11g		= BM7(WG1_2412_2412,
513 				      WG1_2437_2442,
514 				      WG1_2462_2462,
515 				      WG1_2472_2472,
516 				      WG1_2417_2432,
517 				      WG1_2447_2457,
518 				      WG1_2467_2467),
519 	 .chan11g_turbo		= BM1(T3_2437_2437)},
520 
521 	{.regDmnEnum		= EU1_WORLD,
522 	 .conformanceTestLimit	= NO_CTL,
523 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
524 	 .pscan			= PSCAN_WWR,
525 	 .flags			= ADHOC_PER_11D,
526 	 .chan11a		= BM5(W1_5260_5320,
527 				      W1_5180_5240,
528 				      W1_5170_5230,
529 				      W1_5745_5825,
530 				      W1_5500_5700),
531 	 .chan11a_turbo		= BM3(WT1_5210_5250,
532 				      WT1_5290_5290,
533 				      WT1_5760_5800),
534 	 .chan11b		= BM7(W1_2412_2412,
535 				      W1_2437_2442,
536 				      W1_2462_2462,
537 				      W2_2472_2472,
538 				      W1_2417_2432,
539 				      W1_2447_2457,
540 				      W2_2467_2467),
541 	 .chan11g		= BM7(WG1_2412_2412,
542 				      WG1_2437_2442,
543 				      WG1_2462_2462,
544 				      WG2_2472_2472,
545 				      WG1_2417_2432,
546 				      WG1_2447_2457,
547 				      WG2_2467_2467),
548 	 .chan11g_turbo		= BM1(T3_2437_2437)},
549 
550 	{.regDmnEnum		= WOR1_WORLD,
551 	 .conformanceTestLimit	= NO_CTL,
552 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
553 	 .pscan			= PSCAN_WWR,
554 	 .flags			= DISALLOW_ADHOC_11A,
555 	 .chan11a		= BM5(W1_5260_5320,
556 				      W1_5180_5240,
557 				      W1_5170_5230,
558 				      W1_5745_5825,
559 				      W1_5500_5700),
560 	 .chan11b		= BM8(W1_2412_2412,
561 				      W1_2437_2442,
562 				      W1_2462_2462,
563 				      W1_2472_2472,
564 				      W1_2417_2432,
565 				      W1_2447_2457,
566 				      W1_2467_2467,
567 				      W1_2484_2484),
568 	 .chan11g		= BM7(WG1_2412_2412,
569 				      WG1_2437_2442,
570 				      WG1_2462_2462,
571 				      WG1_2472_2472,
572 				      WG1_2417_2432,
573 				      WG1_2447_2457,
574 				      WG1_2467_2467),
575 	 .chan11g_turbo		= BM1(T3_2437_2437)
576 	},
577 
578 	{.regDmnEnum		= WOR2_WORLD,
579 	 .conformanceTestLimit	= NO_CTL,
580 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
581 	 .pscan			= PSCAN_WWR,
582 	 .flags			= DISALLOW_ADHOC_11A,
583 	 .chan11a		= BM5(W1_5260_5320,
584 				      W1_5180_5240,
585 				      W1_5170_5230,
586 				      W1_5745_5825,
587 				      W1_5500_5700),
588 	 .chan11a_turbo		= BM3(WT1_5210_5250,
589 				      WT1_5290_5290,
590 				      WT1_5760_5800),
591 	 .chan11b		= BM8(W1_2412_2412,
592 				      W1_2437_2442,
593 				      W1_2462_2462,
594 				      W1_2472_2472,
595 				      W1_2417_2432,
596 				      W1_2447_2457,
597 				      W1_2467_2467,
598 				      W1_2484_2484),
599 	 .chan11g		= BM7(WG1_2412_2412,
600 				      WG1_2437_2442,
601 				      WG1_2462_2462,
602 				      WG1_2472_2472,
603 				      WG1_2417_2432,
604 				      WG1_2447_2457,
605 				      WG1_2467_2467),
606 	 .chan11g_turbo		= BM1(T3_2437_2437)},
607 
608 	{.regDmnEnum		= WOR3_WORLD,
609 	 .conformanceTestLimit	= NO_CTL,
610 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
611 	 .pscan			= PSCAN_WWR,
612 	 .flags			= ADHOC_PER_11D,
613 	 .chan11a		= BM4(W1_5260_5320,
614 				      W1_5180_5240,
615 				      W1_5170_5230,
616 				      W1_5745_5825),
617 	 .chan11a_turbo		= BM3(WT1_5210_5250,
618 				      WT1_5290_5290,
619 				      WT1_5760_5800),
620 	 .chan11b		= BM7(W1_2412_2412,
621 				      W1_2437_2442,
622 				      W1_2462_2462,
623 				      W1_2472_2472,
624 				      W1_2417_2432,
625 				      W1_2447_2457,
626 				      W1_2467_2467),
627 	 .chan11g		= BM7(WG1_2412_2412,
628 				      WG1_2437_2442,
629 				      WG1_2462_2462,
630 				      WG1_2472_2472,
631 				      WG1_2417_2432,
632 				      WG1_2447_2457,
633 				      WG1_2467_2467),
634 	 .chan11g_turbo		= BM1(T3_2437_2437)},
635 
636 	{.regDmnEnum		= WOR4_WORLD,
637 	 .conformanceTestLimit	= NO_CTL,
638 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
639 	 .pscan			= PSCAN_WWR,
640 	 .flags			= DISALLOW_ADHOC_11A,
641 	 .chan11a		= BM4(W2_5260_5320,
642 				      W2_5180_5240,
643 				      F2_5745_5805,
644 				      W2_5825_5825),
645 	 .chan11a_turbo		= BM3(WT1_5210_5250,
646 				      WT1_5290_5290,
647 				      WT1_5760_5800),
648 	 .chan11b		= BM5(W1_2412_2412,
649 				      W1_2437_2442,
650 				      W1_2462_2462,
651 				      W1_2417_2432,
652 				      W1_2447_2457),
653 	 .chan11g		= BM5(WG1_2412_2412,
654 				      WG1_2437_2442,
655 				      WG1_2462_2462,
656 				      WG1_2417_2432,
657 				      WG1_2447_2457),
658 	 .chan11g_turbo		= BM1(T3_2437_2437)},
659 
660 	{.regDmnEnum		= WOR5_ETSIC,
661 	 .conformanceTestLimit	= NO_CTL,
662 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
663 	 .pscan			= PSCAN_WWR,
664 	 .flags			= DISALLOW_ADHOC_11A,
665 	 .chan11a		= BM3(W1_5260_5320, W2_5180_5240, F6_5745_5825),
666 	 .chan11b		= BM7(W1_2412_2412,
667 				      W1_2437_2442,
668 				      W1_2462_2462,
669 				      W2_2472_2472,
670 				      W1_2417_2432,
671 				      W1_2447_2457,
672 				      W2_2467_2467),
673 	 .chan11g		= BM7(WG1_2412_2412,
674 				      WG1_2437_2442,
675 				      WG1_2462_2462,
676 				      WG2_2472_2472,
677 				      WG1_2417_2432,
678 				      WG1_2447_2457,
679 				      WG2_2467_2467),
680 	 .chan11g_turbo		= BM1(T3_2437_2437)},
681 
682 	{.regDmnEnum		= WOR9_WORLD,
683 	 .conformanceTestLimit	= NO_CTL,
684 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
685 	 .pscan			= PSCAN_WWR,
686 	 .flags			= DISALLOW_ADHOC_11A,
687 	 .chan11a		= BM4(W1_5260_5320,
688 				      W1_5180_5240,
689 				      W1_5745_5825,
690 				      W1_5500_5700),
691 	 .chan11a_turbo		= BM3(WT1_5210_5250,
692 				      WT1_5290_5290,
693 				      WT1_5760_5800),
694 	 .chan11b		= BM5(W1_2412_2412,
695 				      W1_2437_2442,
696 				      W1_2462_2462,
697 				      W1_2417_2432,
698 				      W1_2447_2457),
699 	 .chan11g		= BM5(WG1_2412_2412,
700 				      WG1_2437_2442,
701 				      WG1_2462_2462,
702 				      WG1_2417_2432,
703 				      WG1_2447_2457),
704 	 .chan11g_turbo		= BM1(T3_2437_2437)},
705 
706 	{.regDmnEnum		= WORA_WORLD,
707 	 .conformanceTestLimit	= NO_CTL,
708 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
709 	 .pscan			= PSCAN_WWR,
710 	 .flags			= DISALLOW_ADHOC_11A,
711 	 .chan11a		= BM4(W1_5260_5320,
712 				      W1_5180_5240,
713 				      W1_5745_5825,
714 				      W1_5500_5700),
715 	 .chan11b		= BM7(W1_2412_2412,
716 				      W1_2437_2442,
717 				      W1_2462_2462,
718 				      W1_2472_2472,
719 				      W1_2417_2432,
720 				      W1_2447_2457,
721 				      W1_2467_2467),
722 	 .chan11g		= BM7(WG1_2412_2412,
723 				      WG1_2437_2442,
724 				      WG1_2462_2462,
725 				      WG1_2472_2472,
726 				      WG1_2417_2432,
727 				      WG1_2447_2457,
728 				      WG1_2467_2467),
729 	 .chan11g_turbo		= BM1(T3_2437_2437)},
730 
731 	{.regDmnEnum		= WORB_WORLD,
732 	 .conformanceTestLimit	= NO_CTL,
733 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
734 	 .pscan			= PSCAN_WWR,
735 	 .flags			= DISALLOW_ADHOC_11A,
736 	 .chan11a		= BM4(W1_5260_5320,
737 				      W1_5180_5240,
738 				      W1_5745_5825,
739 				      W1_5500_5700),
740 	 .chan11b		= BM7(W1_2412_2412,
741 				      W1_2437_2442,
742 				      W1_2462_2462,
743 				      W1_2472_2472,
744 				      W1_2417_2432,
745 				      W1_2447_2457,
746 				      W1_2467_2467),
747 	 .chan11g		= BM7(WG1_2412_2412,
748 				      WG1_2437_2442,
749 				      WG1_2462_2462,
750 				      WG1_2472_2472,
751 				      WG1_2417_2432,
752 				      WG1_2447_2457,
753 				      WG1_2467_2467),
754 	 .chan11g_turbo		= BM1(T3_2437_2437)},
755 
756 	{.regDmnEnum		= WORC_WORLD,
757 	 .conformanceTestLimit	= NO_CTL,
758 	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
759 	 .pscan			= PSCAN_WWR,
760 	 .flags			= ADHOC_PER_11D,
761 	 .chan11a		= BM4(W1_5260_5320,
762 				      W1_5180_5240,
763 				      W1_5745_5825,
764 				      W1_5500_5700),
765 	 .chan11b		= BM7(W1_2412_2412,
766 				      W1_2437_2442,
767 				      W1_2462_2462,
768 				      W1_2472_2472,
769 				      W1_2417_2432,
770 				      W1_2447_2457,
771 				      W1_2467_2467),
772 	 .chan11g		= BM7(WG1_2412_2412,
773 				      WG1_2437_2442,
774 				      WG1_2462_2462,
775 				      WG1_2472_2472,
776 				      WG1_2417_2432,
777 				      WG1_2447_2457,
778 				      WG1_2467_2467),
779 	 .chan11g_turbo		= BM1(T3_2437_2437)},
780 
781 	{.regDmnEnum		= NULL1,
782 	 .conformanceTestLimit	= NO_CTL,
783 	}
784 };
785 
786 #endif
787