1219442Sadrian/*
2219442Sadrian * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
3219442Sadrian * Copyright (c) 2005-2006 Atheros Communications, Inc.
4219442Sadrian * All rights reserved.
5219442Sadrian *
6219442Sadrian * Permission to use, copy, modify, and/or distribute this software for any
7219442Sadrian * purpose with or without fee is hereby granted, provided that the above
8219442Sadrian * copyright notice and this permission notice appear in all copies.
9219442Sadrian *
10219442Sadrian * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11219442Sadrian * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12219442Sadrian * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13219442Sadrian * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14219442Sadrian * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15219442Sadrian * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16219442Sadrian * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17219442Sadrian *
18219442Sadrian * $FreeBSD$
19219442Sadrian */
20219442Sadrian
21219442Sadrian#ifndef	__AH_REGDOMAIN_DOMAINS_H__
22219442Sadrian#define	__AH_REGDOMAIN_DOMAINS_H__
23219442Sadrian
24219442Sadrian/*
25219442Sadrian * BMLEN defines the size of the bitmask used to hold frequency
26219442Sadrian * band specifications.  Note this must agree with the BM macro
27219442Sadrian * definition that's used to setup initializers.  See also further
28219442Sadrian * comments below.
29219442Sadrian */
30219442Sadrian/* BMLEN is now defined in ah_regdomain.h */
31219442Sadrian#define	W0(_a) \
32219442Sadrian	(((_a) >= 0 && (_a) < 64 ? (((uint64_t) 1)<<(_a)) : (uint64_t) 0))
33219442Sadrian#define	W1(_a) \
34219442Sadrian	(((_a) > 63 && (_a) < 128 ? (((uint64_t) 1)<<((_a)-64)) : (uint64_t) 0))
35219442Sadrian#define BM1(_fa)	{ W0(_fa), W1(_fa) }
36219442Sadrian#define BM2(_fa, _fb)	{ W0(_fa) | W0(_fb), W1(_fa) | W1(_fb) }
37219442Sadrian#define BM3(_fa, _fb, _fc) \
38219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc), W1(_fa) | W1(_fb) | W1(_fc) }
39219442Sadrian#define BM4(_fa, _fb, _fc, _fd)						\
40219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd),			\
41219442Sadrian	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) }
42219442Sadrian#define BM5(_fa, _fb, _fc, _fd, _fe)					\
43219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe),		\
44219442Sadrian	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) }
45219442Sadrian#define BM6(_fa, _fb, _fc, _fd, _fe, _ff)				\
46219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff),	\
47219442Sadrian	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) }
48219442Sadrian#define BM7(_fa, _fb, _fc, _fd, _fe, _ff, _fg)	\
49219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\
50219442Sadrian	  W0(_fg),\
51219442Sadrian	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\
52219442Sadrian	  W1(_fg) }
53219442Sadrian#define BM8(_fa, _fb, _fc, _fd, _fe, _ff, _fg, _fh)	\
54219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\
55219442Sadrian	  W0(_fg) | W0(_fh) ,	\
56219442Sadrian	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\
57219442Sadrian	  W1(_fg) | W1(_fh) }
58219442Sadrian#define BM9(_fa, _fb, _fc, _fd, _fe, _ff, _fg, _fh, _fi)	\
59219442Sadrian	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\
60219442Sadrian	  W0(_fg) | W0(_fh) | W0(_fi) ,	\
61219442Sadrian	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\
62219442Sadrian	  W1(_fg) | W1(_fh) | W1(_fi) }
63219442Sadrian
64219442Sadrianstatic REG_DOMAIN regDomains[] = {
65219442Sadrian
66219442Sadrian	{.regDmnEnum		= DEBUG_REG_DMN,
67219442Sadrian	 .conformanceTestLimit	= FCC,
68219442Sadrian	 .dfsMask		= DFS_FCC3,
69219442Sadrian	 .chan11a		= BM4(F1_4950_4980,
70219442Sadrian				      F1_5120_5240,
71219442Sadrian				      F1_5260_5700,
72219442Sadrian				      F1_5745_5825),
73219442Sadrian	 .chan11a_half		= BM4(F1_4945_4985,
74219442Sadrian				      F2_5120_5240,
75219442Sadrian				      F2_5260_5700,
76219442Sadrian				      F7_5745_5825),
77219442Sadrian	 .chan11a_quarter	= BM4(F1_4942_4987,
78219442Sadrian				      F3_5120_5240,
79219442Sadrian				      F3_5260_5700,
80219442Sadrian				      F8_5745_5825),
81219442Sadrian	 .chan11a_turbo		= BM8(T1_5130_5210,
82219442Sadrian				      T1_5250_5330,
83219442Sadrian				      T1_5370_5490,
84219442Sadrian				      T1_5530_5650,
85219442Sadrian				      T1_5150_5190,
86219442Sadrian				      T1_5230_5310,
87219442Sadrian				      T1_5350_5470,
88219442Sadrian				      T1_5510_5670),
89219442Sadrian	 .chan11a_dyn_turbo	= BM4(T1_5200_5240,
90219442Sadrian				      T1_5280_5280,
91219442Sadrian				      T1_5540_5660,
92219442Sadrian				      T1_5765_5805),
93219442Sadrian	 .chan11b		= BM4(F1_2312_2372,
94219442Sadrian				      F1_2412_2472,
95219442Sadrian				      F1_2484_2484,
96219442Sadrian				      F1_2512_2732),
97219442Sadrian	 .chan11g		= BM3(G1_2312_2372, G1_2412_2472, G1_2512_2732),
98219442Sadrian	 .chan11g_turbo		= BM3(T1_2312_2372, T1_2437_2437, T1_2512_2732),
99219442Sadrian	 .chan11g_half		= BM3(G2_2312_2372, G4_2412_2472, G2_2512_2732),
100219442Sadrian	 .chan11g_quarter	= BM3(G3_2312_2372, G5_2412_2472, G3_2512_2732),
101219442Sadrian	},
102219442Sadrian
103219442Sadrian	{.regDmnEnum		= APL1,
104219442Sadrian	 .conformanceTestLimit	= FCC,
105219442Sadrian	 .chan11a		= BM1(F4_5745_5825),
106219442Sadrian	},
107219442Sadrian
108219442Sadrian	{.regDmnEnum		= APL2,
109219442Sadrian	 .conformanceTestLimit	= FCC,
110219442Sadrian	 .chan11a		= BM1(F1_5745_5805),
111219442Sadrian	},
112219442Sadrian
113219442Sadrian	{.regDmnEnum		= APL3,
114219442Sadrian	 .conformanceTestLimit	= FCC,
115219442Sadrian	 .chan11a		= BM2(F1_5280_5320, F2_5745_5805),
116219442Sadrian	},
117219442Sadrian
118219442Sadrian	{.regDmnEnum		= APL4,
119219442Sadrian	 .conformanceTestLimit	= FCC,
120219442Sadrian	 .chan11a		= BM2(F4_5180_5240, F3_5745_5825),
121219442Sadrian	},
122219442Sadrian
123219442Sadrian	{.regDmnEnum		= APL5,
124219442Sadrian	 .conformanceTestLimit	= FCC,
125219442Sadrian	 .chan11a		= BM1(F2_5745_5825),
126219442Sadrian	},
127219442Sadrian
128219442Sadrian	{.regDmnEnum		= APL6,
129219442Sadrian	 .conformanceTestLimit	= ETSI,
130219442Sadrian	 .dfsMask		= DFS_ETSI,
131219442Sadrian	 .pscan			= PSCAN_FCC_T | PSCAN_FCC,
132219442Sadrian	 .chan11a		= BM3(F4_5180_5240, F2_5260_5320, F3_5745_5825),
133219442Sadrian	 .chan11a_turbo		= BM3(T2_5210_5210, T1_5250_5290, T1_5760_5800),
134219442Sadrian	},
135219442Sadrian
136219442Sadrian	{.regDmnEnum		= APL8,
137219442Sadrian	 .conformanceTestLimit	= ETSI,
138219442Sadrian	 .flags			= DISALLOW_ADHOC_11A|DISALLOW_ADHOC_11A_TURB,
139219442Sadrian	 .chan11a		= BM2(F6_5260_5320, F4_5745_5825),
140219442Sadrian	},
141219442Sadrian
142219442Sadrian	{.regDmnEnum		= APL9,
143219442Sadrian	 .conformanceTestLimit	= ETSI,
144219442Sadrian	 .dfsMask		= DFS_ETSI,
145219442Sadrian	 .pscan			= PSCAN_ETSI,
146219442Sadrian	 .flags			= DISALLOW_ADHOC_11A|DISALLOW_ADHOC_11A_TURB,
147219442Sadrian	 .chan11a		= BM3(F1_5180_5320, F1_5500_5620, F3_5745_5805),
148219442Sadrian	},
149219442Sadrian
150219442Sadrian	{.regDmnEnum		= ETSI1,
151219442Sadrian	 .conformanceTestLimit	= ETSI,
152219442Sadrian	 .dfsMask		= DFS_ETSI,
153219442Sadrian	 .pscan			= PSCAN_ETSI,
154219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
155219442Sadrian	 .chan11a		= BM3(W2_5180_5240, F2_5260_5320, F2_5500_5700),
156219442Sadrian	},
157219442Sadrian
158219442Sadrian	{.regDmnEnum		= ETSI2,
159219442Sadrian	 .conformanceTestLimit	= ETSI,
160219442Sadrian	 .dfsMask		= DFS_ETSI,
161219442Sadrian	 .pscan			= PSCAN_ETSI,
162219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
163219442Sadrian	 .chan11a		= BM1(F3_5180_5240),
164219442Sadrian	},
165219442Sadrian
166219442Sadrian	{.regDmnEnum		= ETSI3,
167219442Sadrian	 .conformanceTestLimit	= ETSI,
168219442Sadrian	 .dfsMask		= DFS_ETSI,
169219442Sadrian	 .pscan			= PSCAN_ETSI,
170219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
171219442Sadrian	 .chan11a		= BM2(W2_5180_5240, F2_5260_5320),
172219442Sadrian	},
173219442Sadrian
174219442Sadrian	{.regDmnEnum		= ETSI4,
175219442Sadrian	 .conformanceTestLimit	= ETSI,
176219442Sadrian	 .dfsMask		= DFS_ETSI,
177219442Sadrian	 .pscan			= PSCAN_ETSI,
178219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
179219442Sadrian	 .chan11a		= BM2(F3_5180_5240, F1_5260_5320),
180219442Sadrian	},
181219442Sadrian
182219442Sadrian	{.regDmnEnum		= ETSI5,
183219442Sadrian	 .conformanceTestLimit	= ETSI,
184219442Sadrian	 .dfsMask		= DFS_ETSI,
185219442Sadrian	 .pscan			= PSCAN_ETSI,
186219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
187219442Sadrian	 .chan11a		= BM1(F1_5180_5240),
188219442Sadrian	},
189219442Sadrian
190219442Sadrian	{.regDmnEnum		= ETSI6,
191219442Sadrian	 .conformanceTestLimit	= ETSI,
192219442Sadrian	 .dfsMask		= DFS_ETSI,
193219442Sadrian	 .pscan			= PSCAN_ETSI,
194219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
195219442Sadrian	 .chan11a		= BM3(F5_5180_5240, F1_5260_5280, F3_5500_5700),
196219442Sadrian	},
197219442Sadrian
198219442Sadrian	{.regDmnEnum		= FCC1,
199219442Sadrian	 .conformanceTestLimit	= FCC,
200219442Sadrian	 .chan11a		= BM3(F2_5180_5240, F4_5260_5320, F5_5745_5825),
201219442Sadrian	 .chan11a_turbo		= BM3(T1_5210_5210, T2_5250_5290, T2_5760_5800),
202219442Sadrian	 .chan11a_dyn_turbo	= BM3(T1_5200_5240, T1_5280_5280, T1_5765_5805),
203219442Sadrian	},
204219442Sadrian
205219442Sadrian	{.regDmnEnum		= FCC2,
206219442Sadrian	 .conformanceTestLimit	= FCC,
207219442Sadrian	 .chan11a		= BM3(F6_5180_5240, F5_5260_5320, F6_5745_5825),
208219442Sadrian	 .chan11a_dyn_turbo	= BM3(T2_5200_5240, T1_5280_5280, T1_5765_5805),
209219442Sadrian	},
210219442Sadrian
211219442Sadrian	{.regDmnEnum		= FCC3,
212219442Sadrian	 .conformanceTestLimit	= FCC,
213219442Sadrian	 .dfsMask		= DFS_FCC3,
214219442Sadrian	 .pscan			= PSCAN_FCC | PSCAN_FCC_T,
215219442Sadrian	 .chan11a		= BM4(F2_5180_5240,
216219442Sadrian				      F3_5260_5320,
217219442Sadrian				      F1_5500_5700,
218219442Sadrian				      F5_5745_5825),
219219442Sadrian	 .chan11a_turbo		= BM4(T1_5210_5210,
220219442Sadrian				      T1_5250_5250,
221219442Sadrian				      T1_5290_5290,
222219442Sadrian				      T2_5760_5800),
223219442Sadrian	 .chan11a_dyn_turbo	= BM3(T1_5200_5240, T2_5280_5280, T1_5540_5660),
224219442Sadrian	},
225219442Sadrian
226219442Sadrian	{.regDmnEnum		= FCC4,
227219442Sadrian	 .conformanceTestLimit	= FCC,
228219442Sadrian	 .dfsMask		= DFS_FCC3,
229219442Sadrian	 .pscan			= PSCAN_FCC | PSCAN_FCC_T,
230219442Sadrian	 .chan11a		= BM1(F1_4950_4980),
231219442Sadrian	 .chan11a_half		= BM1(F1_4945_4985),
232219442Sadrian	 .chan11a_quarter	= BM1(F1_4942_4987),
233219442Sadrian	},
234219442Sadrian
235219442Sadrian	/* FCC1 w/ 1/2 and 1/4 width channels */
236219442Sadrian	{.regDmnEnum		= FCC5,
237219442Sadrian	 .conformanceTestLimit	= FCC,
238219442Sadrian	 .chan11a		= BM3(F2_5180_5240, F4_5260_5320, F5_5745_5825),
239219442Sadrian	 .chan11a_turbo		= BM3(T1_5210_5210, T2_5250_5290, T2_5760_5800),
240219442Sadrian	 .chan11a_dyn_turbo	= BM3(T1_5200_5240, T1_5280_5280, T1_5765_5805),
241219442Sadrian	 .chan11a_half		= BM3(F7_5180_5240, F7_5260_5320, F9_5745_5825),
242219442Sadrian	 .chan11a_quarter	= BM3(F8_5180_5240, F8_5260_5320,F10_5745_5825),
243219442Sadrian	},
244219442Sadrian
245219442Sadrian	{.regDmnEnum		= MKK1,
246219442Sadrian	 .conformanceTestLimit	= MKK,
247219442Sadrian	 .pscan			= PSCAN_MKK1,
248219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
249219442Sadrian	 .chan11a		= BM1(F1_5170_5230),
250219442Sadrian	},
251219442Sadrian
252219442Sadrian	{.regDmnEnum		= MKK2,
253219442Sadrian	 .conformanceTestLimit	= MKK,
254219442Sadrian	 .pscan			= PSCAN_MKK2,
255219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
256219442Sadrian	 .chan11a		= BM3(F1_4920_4980, F1_5040_5080, F1_5170_5230),
257219442Sadrian	 .chan11a_half		= BM4(F1_4915_4925,
258219442Sadrian				      F1_4935_4945,
259219442Sadrian				      F1_5035_5040,
260219442Sadrian				      F1_5055_5055),
261219442Sadrian	},
262219442Sadrian
263219442Sadrian	/* UNI-1 even */
264219442Sadrian	{.regDmnEnum		= MKK3,
265219442Sadrian	 .conformanceTestLimit	= MKK,
266219442Sadrian	 .pscan			= PSCAN_MKK3,
267219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
268219442Sadrian	 .chan11a		= BM1(F4_5180_5240),
269219442Sadrian	},
270219442Sadrian
271219442Sadrian	/* UNI-1 even + UNI-2 */
272219442Sadrian	{.regDmnEnum		= MKK4,
273219442Sadrian	 .conformanceTestLimit	= MKK,
274219442Sadrian	 .dfsMask		= DFS_MKK4,
275219442Sadrian	 .pscan			= PSCAN_MKK3,
276219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
277219442Sadrian	 .chan11a		= BM2(F4_5180_5240, F2_5260_5320),
278219442Sadrian	},
279219442Sadrian
280219442Sadrian	/* UNI-1 even + UNI-2 + mid-band */
281219442Sadrian	{.regDmnEnum		= MKK5,
282219442Sadrian	 .conformanceTestLimit	= MKK,
283219442Sadrian	 .dfsMask		= DFS_MKK4,
284219442Sadrian	 .pscan			= PSCAN_MKK3,
285219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
286219442Sadrian	 .chan11a		= BM3(F4_5180_5240, F2_5260_5320, F4_5500_5700),
287219442Sadrian	},
288219442Sadrian
289219442Sadrian	/* UNI-1 odd + even */
290219442Sadrian	{.regDmnEnum		= MKK6,
291219442Sadrian	 .conformanceTestLimit	= MKK,
292219442Sadrian	 .pscan			= PSCAN_MKK1,
293219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
294219442Sadrian	 .chan11a		= BM2(F2_5170_5230, F4_5180_5240),
295219442Sadrian	},
296219442Sadrian
297219442Sadrian	/* UNI-1 odd + UNI-1 even + UNI-2 */
298219442Sadrian	{.regDmnEnum		= MKK7,
299219442Sadrian	 .conformanceTestLimit	= MKK,
300219442Sadrian	 .dfsMask		= DFS_MKK4,
301219442Sadrian	 .pscan			= PSCAN_MKK1 | PSCAN_MKK3,
302219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
303219442Sadrian	 .chan11a		= BM3(F1_5170_5230, F4_5180_5240, F2_5260_5320),
304219442Sadrian	},
305219442Sadrian
306219442Sadrian	/* UNI-1 odd + UNI-1 even + UNI-2 + mid-band */
307219442Sadrian	{.regDmnEnum		= MKK8,
308219442Sadrian	 .conformanceTestLimit	= MKK,
309219442Sadrian	 .dfsMask		= DFS_MKK4,
310219442Sadrian	 .pscan			= PSCAN_MKK1 | PSCAN_MKK3,
311219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
312219442Sadrian	 .chan11a		= BM4(F1_5170_5230,
313219442Sadrian				      F4_5180_5240,
314219442Sadrian				      F2_5260_5320,
315219442Sadrian				      F4_5500_5700),
316219442Sadrian	},
317219442Sadrian
318219442Sadrian        /* UNI-1 even + 4.9 GHZ */
319219442Sadrian        {.regDmnEnum		= MKK9,
320219442Sadrian	 .conformanceTestLimit	= MKK,
321219442Sadrian	 .pscan			= PSCAN_MKK3,
322219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
323219442Sadrian         .chan11a		= BM7(F1_4915_4925,
324219442Sadrian				      F1_4935_4945,
325219442Sadrian				      F1_4920_4980,
326219442Sadrian				      F1_5035_5040,
327219442Sadrian				      F1_5055_5055,
328219442Sadrian				      F1_5040_5080,
329219442Sadrian				      F4_5180_5240),
330219442Sadrian        },
331219442Sadrian
332219442Sadrian        /* UNI-1 even + UNI-2 + 4.9 GHZ */
333219442Sadrian        {.regDmnEnum		= MKK10,
334219442Sadrian	 .conformanceTestLimit	= MKK,
335219442Sadrian	 .dfsMask		= DFS_MKK4,
336219442Sadrian	 .pscan			= PSCAN_MKK3,
337219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
338219442Sadrian         .chan11a		= BM8(F1_4915_4925,
339219442Sadrian				      F1_4935_4945,
340219442Sadrian				      F1_4920_4980,
341219442Sadrian				      F1_5035_5040,
342219442Sadrian				      F1_5055_5055,
343219442Sadrian				      F1_5040_5080,
344219442Sadrian				      F4_5180_5240,
345219442Sadrian				      F2_5260_5320),
346219442Sadrian        },
347219442Sadrian
348219442Sadrian	/* Defined here to use when 2G channels are authorised for country K2 */
349219442Sadrian	{.regDmnEnum		= APLD,
350219442Sadrian	 .conformanceTestLimit	= NO_CTL,
351219442Sadrian	 .chan11b		= BM2(F2_2312_2372,F2_2412_2472),
352219442Sadrian	 .chan11g		= BM2(G2_2312_2372,G2_2412_2472),
353219442Sadrian	},
354219442Sadrian
355219442Sadrian	{.regDmnEnum		= ETSIA,
356219442Sadrian	 .conformanceTestLimit	= NO_CTL,
357219442Sadrian	 .pscan			= PSCAN_ETSIA,
358219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
359219442Sadrian	 .chan11b		= BM1(F1_2457_2472),
360219442Sadrian	 .chan11g		= BM1(G1_2457_2472),
361219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437)
362219442Sadrian	},
363219442Sadrian
364219442Sadrian	{.regDmnEnum		= ETSIB,
365219442Sadrian	 .conformanceTestLimit	= ETSI,
366219442Sadrian	 .pscan			= PSCAN_ETSIB,
367219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
368219442Sadrian	 .chan11b		= BM1(F1_2432_2442),
369219442Sadrian	 .chan11g		= BM1(G1_2432_2442),
370219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437)
371219442Sadrian	},
372219442Sadrian
373219442Sadrian	{.regDmnEnum		= ETSIC,
374219442Sadrian	 .conformanceTestLimit	= ETSI,
375219442Sadrian	 .pscan			= PSCAN_ETSIC,
376219442Sadrian	 .flags			= DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
377219442Sadrian	 .chan11b		= BM1(F3_2412_2472),
378219442Sadrian	 .chan11g		= BM1(G3_2412_2472),
379219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437)
380219442Sadrian	},
381219442Sadrian
382219442Sadrian	{.regDmnEnum		= FCCA,
383219442Sadrian	 .conformanceTestLimit	= FCC,
384219442Sadrian	 .chan11b		= BM1(F1_2412_2462),
385219442Sadrian	 .chan11g		= BM1(G1_2412_2462),
386219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437),
387219442Sadrian	},
388219442Sadrian
389219442Sadrian	/* FCCA w/ 1/2 and 1/4 width channels */
390219442Sadrian	{.regDmnEnum		= FCCB,
391219442Sadrian	 .conformanceTestLimit	= FCC,
392219442Sadrian	 .chan11b		= BM1(F1_2412_2462),
393219442Sadrian	 .chan11g		= BM1(G1_2412_2462),
394219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437),
395219442Sadrian	 .chan11g_half		= BM1(G3_2412_2462),
396219442Sadrian	 .chan11g_quarter	= BM1(G4_2412_2462),
397219442Sadrian	},
398219442Sadrian
399219442Sadrian	{.regDmnEnum		= MKKA,
400219442Sadrian	 .conformanceTestLimit	= MKK,
401219442Sadrian	 .pscan			= PSCAN_MKKA | PSCAN_MKKA_G
402219442Sadrian				| PSCAN_MKKA1 | PSCAN_MKKA1_G
403219442Sadrian				| PSCAN_MKKA2 | PSCAN_MKKA2_G,
404219442Sadrian	 .flags			= DISALLOW_ADHOC_11A_TURB,
405219442Sadrian	 .chan11b		= BM3(F2_2412_2462, F1_2467_2472, F2_2484_2484),
406219442Sadrian	 .chan11g		= BM2(G2_2412_2462, G1_2467_2472),
407219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437)
408219442Sadrian	},
409219442Sadrian
410219442Sadrian	{.regDmnEnum		= MKKC,
411219442Sadrian	 .conformanceTestLimit	= MKK,
412219442Sadrian	 .chan11b		= BM1(F2_2412_2472),
413219442Sadrian	 .chan11g		= BM1(G2_2412_2472),
414219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437)
415219442Sadrian	},
416219442Sadrian
417219442Sadrian	{.regDmnEnum		= WORLD,
418219442Sadrian	 .conformanceTestLimit	= ETSI,
419219442Sadrian	 .chan11b		= BM1(F2_2412_2472),
420219442Sadrian	 .chan11g		= BM1(G2_2412_2472),
421219442Sadrian	 .chan11g_turbo		= BM1(T2_2437_2437)
422219442Sadrian	},
423219442Sadrian
424219442Sadrian	{.regDmnEnum		= WOR0_WORLD,
425219442Sadrian	 .conformanceTestLimit	= NO_CTL,
426219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
427219442Sadrian	 .pscan			= PSCAN_WWR,
428219442Sadrian	 .flags			= ADHOC_PER_11D,
429219442Sadrian	 .chan11a		= BM5(W1_5260_5320,
430219442Sadrian				      W1_5180_5240,
431219442Sadrian				      W1_5170_5230,
432219442Sadrian				      W1_5745_5825,
433219442Sadrian				      W1_5500_5700),
434219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
435219442Sadrian				      WT1_5290_5290,
436219442Sadrian				      WT1_5760_5800),
437219442Sadrian	 .chan11b		= BM8(W1_2412_2412,
438219442Sadrian				      W1_2437_2442,
439219442Sadrian				      W1_2462_2462,
440219442Sadrian				      W1_2472_2472,
441219442Sadrian				      W1_2417_2432,
442219442Sadrian				      W1_2447_2457,
443219442Sadrian				      W1_2467_2467,
444219442Sadrian				      W1_2484_2484),
445219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
446219442Sadrian				      WG1_2437_2442,
447219442Sadrian				      WG1_2462_2462,
448219442Sadrian				      WG1_2472_2472,
449219442Sadrian				      WG1_2417_2432,
450219442Sadrian				      WG1_2447_2457,
451219442Sadrian				      WG1_2467_2467),
452219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)
453219442Sadrian	},
454219442Sadrian
455219442Sadrian	{.regDmnEnum		= WOR01_WORLD,
456219442Sadrian	 .conformanceTestLimit	= NO_CTL,
457219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
458219442Sadrian	 .pscan			= PSCAN_WWR,
459219442Sadrian	 .flags			= ADHOC_PER_11D,
460219442Sadrian	 .chan11a		= BM5(W1_5260_5320,
461219442Sadrian				      W1_5180_5240,
462219442Sadrian				      W1_5170_5230,
463219442Sadrian				      W1_5745_5825,
464219442Sadrian				      W1_5500_5700),
465219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
466219442Sadrian				      WT1_5290_5290,
467219442Sadrian				      WT1_5760_5800),
468219442Sadrian	 .chan11b		= BM5(W1_2412_2412,
469219442Sadrian				      W1_2437_2442,
470219442Sadrian				      W1_2462_2462,
471219442Sadrian				      W1_2417_2432,
472219442Sadrian				      W1_2447_2457),
473219442Sadrian	 .chan11g		= BM5(WG1_2412_2412,
474219442Sadrian				      WG1_2437_2442,
475219442Sadrian				      WG1_2462_2462,
476219442Sadrian				      WG1_2417_2432,
477219442Sadrian				      WG1_2447_2457),
478219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
479219442Sadrian
480219442Sadrian	{.regDmnEnum		= WOR02_WORLD,
481219442Sadrian	 .conformanceTestLimit	= NO_CTL,
482219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
483219442Sadrian	 .pscan			= PSCAN_WWR,
484219442Sadrian	 .flags			= ADHOC_PER_11D,
485219442Sadrian	 .chan11a		= BM5(W1_5260_5320,
486219442Sadrian				      W1_5180_5240,
487219442Sadrian				      W1_5170_5230,
488219442Sadrian				      W1_5745_5825,
489219442Sadrian				      W1_5500_5700),
490219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
491219442Sadrian				      WT1_5290_5290,
492219442Sadrian				      WT1_5760_5800),
493219442Sadrian	 .chan11b		= BM7(W1_2412_2412,
494219442Sadrian				      W1_2437_2442,
495219442Sadrian				      W1_2462_2462,
496219442Sadrian				      W1_2472_2472,
497219442Sadrian				      W1_2417_2432,
498219442Sadrian				      W1_2447_2457,
499219442Sadrian				      W1_2467_2467),
500219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
501219442Sadrian				      WG1_2437_2442,
502219442Sadrian				      WG1_2462_2462,
503219442Sadrian				      WG1_2472_2472,
504219442Sadrian				      WG1_2417_2432,
505219442Sadrian				      WG1_2447_2457,
506219442Sadrian				      WG1_2467_2467),
507219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
508219442Sadrian
509219442Sadrian	{.regDmnEnum		= EU1_WORLD,
510219442Sadrian	 .conformanceTestLimit	= NO_CTL,
511219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
512219442Sadrian	 .pscan			= PSCAN_WWR,
513219442Sadrian	 .flags			= ADHOC_PER_11D,
514219442Sadrian	 .chan11a		= BM5(W1_5260_5320,
515219442Sadrian				      W1_5180_5240,
516219442Sadrian				      W1_5170_5230,
517219442Sadrian				      W1_5745_5825,
518219442Sadrian				      W1_5500_5700),
519219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
520219442Sadrian				      WT1_5290_5290,
521219442Sadrian				      WT1_5760_5800),
522219442Sadrian	 .chan11b		= BM7(W1_2412_2412,
523219442Sadrian				      W1_2437_2442,
524219442Sadrian				      W1_2462_2462,
525219442Sadrian				      W2_2472_2472,
526219442Sadrian				      W1_2417_2432,
527219442Sadrian				      W1_2447_2457,
528219442Sadrian				      W2_2467_2467),
529219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
530219442Sadrian				      WG1_2437_2442,
531219442Sadrian				      WG1_2462_2462,
532219442Sadrian				      WG2_2472_2472,
533219442Sadrian				      WG1_2417_2432,
534219442Sadrian				      WG1_2447_2457,
535219442Sadrian				      WG2_2467_2467),
536219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
537219442Sadrian
538219442Sadrian	{.regDmnEnum		= WOR1_WORLD,
539219442Sadrian	 .conformanceTestLimit	= NO_CTL,
540219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
541219442Sadrian	 .pscan			= PSCAN_WWR,
542219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
543219442Sadrian	 .chan11a		= BM5(W1_5260_5320,
544219442Sadrian				      W1_5180_5240,
545219442Sadrian				      W1_5170_5230,
546219442Sadrian				      W1_5745_5825,
547219442Sadrian				      W1_5500_5700),
548219442Sadrian	 .chan11b		= BM8(W1_2412_2412,
549219442Sadrian				      W1_2437_2442,
550219442Sadrian				      W1_2462_2462,
551219442Sadrian				      W1_2472_2472,
552219442Sadrian				      W1_2417_2432,
553219442Sadrian				      W1_2447_2457,
554219442Sadrian				      W1_2467_2467,
555219442Sadrian				      W1_2484_2484),
556219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
557219442Sadrian				      WG1_2437_2442,
558219442Sadrian				      WG1_2462_2462,
559219442Sadrian				      WG1_2472_2472,
560219442Sadrian				      WG1_2417_2432,
561219442Sadrian				      WG1_2447_2457,
562219442Sadrian				      WG1_2467_2467),
563219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)
564219442Sadrian	},
565219442Sadrian
566219442Sadrian	{.regDmnEnum		= WOR2_WORLD,
567219442Sadrian	 .conformanceTestLimit	= NO_CTL,
568219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
569219442Sadrian	 .pscan			= PSCAN_WWR,
570219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
571219442Sadrian	 .chan11a		= BM5(W1_5260_5320,
572219442Sadrian				      W1_5180_5240,
573219442Sadrian				      W1_5170_5230,
574219442Sadrian				      W1_5745_5825,
575219442Sadrian				      W1_5500_5700),
576219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
577219442Sadrian				      WT1_5290_5290,
578219442Sadrian				      WT1_5760_5800),
579219442Sadrian	 .chan11b		= BM8(W1_2412_2412,
580219442Sadrian				      W1_2437_2442,
581219442Sadrian				      W1_2462_2462,
582219442Sadrian				      W1_2472_2472,
583219442Sadrian				      W1_2417_2432,
584219442Sadrian				      W1_2447_2457,
585219442Sadrian				      W1_2467_2467,
586219442Sadrian				      W1_2484_2484),
587219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
588219442Sadrian				      WG1_2437_2442,
589219442Sadrian				      WG1_2462_2462,
590219442Sadrian				      WG1_2472_2472,
591219442Sadrian				      WG1_2417_2432,
592219442Sadrian				      WG1_2447_2457,
593219442Sadrian				      WG1_2467_2467),
594219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
595219442Sadrian
596219442Sadrian	{.regDmnEnum		= WOR3_WORLD,
597219442Sadrian	 .conformanceTestLimit	= NO_CTL,
598219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
599219442Sadrian	 .pscan			= PSCAN_WWR,
600219442Sadrian	 .flags			= ADHOC_PER_11D,
601219442Sadrian	 .chan11a		= BM4(W1_5260_5320,
602219442Sadrian				      W1_5180_5240,
603219442Sadrian				      W1_5170_5230,
604219442Sadrian				      W1_5745_5825),
605219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
606219442Sadrian				      WT1_5290_5290,
607219442Sadrian				      WT1_5760_5800),
608219442Sadrian	 .chan11b		= BM7(W1_2412_2412,
609219442Sadrian				      W1_2437_2442,
610219442Sadrian				      W1_2462_2462,
611219442Sadrian				      W1_2472_2472,
612219442Sadrian				      W1_2417_2432,
613219442Sadrian				      W1_2447_2457,
614219442Sadrian				      W1_2467_2467),
615219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
616219442Sadrian				      WG1_2437_2442,
617219442Sadrian				      WG1_2462_2462,
618219442Sadrian				      WG1_2472_2472,
619219442Sadrian				      WG1_2417_2432,
620219442Sadrian				      WG1_2447_2457,
621219442Sadrian				      WG1_2467_2467),
622219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
623219442Sadrian
624219442Sadrian	{.regDmnEnum		= WOR4_WORLD,
625219442Sadrian	 .conformanceTestLimit	= NO_CTL,
626219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
627219442Sadrian	 .pscan			= PSCAN_WWR,
628219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
629219442Sadrian	 .chan11a		= BM4(W2_5260_5320,
630219442Sadrian				      W2_5180_5240,
631219442Sadrian				      F2_5745_5805,
632219442Sadrian				      W2_5825_5825),
633219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
634219442Sadrian				      WT1_5290_5290,
635219442Sadrian				      WT1_5760_5800),
636219442Sadrian	 .chan11b		= BM5(W1_2412_2412,
637219442Sadrian				      W1_2437_2442,
638219442Sadrian				      W1_2462_2462,
639219442Sadrian				      W1_2417_2432,
640219442Sadrian				      W1_2447_2457),
641219442Sadrian	 .chan11g		= BM5(WG1_2412_2412,
642219442Sadrian				      WG1_2437_2442,
643219442Sadrian				      WG1_2462_2462,
644219442Sadrian				      WG1_2417_2432,
645219442Sadrian				      WG1_2447_2457),
646219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
647219442Sadrian
648219442Sadrian	{.regDmnEnum		= WOR5_ETSIC,
649219442Sadrian	 .conformanceTestLimit	= NO_CTL,
650219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
651219442Sadrian	 .pscan			= PSCAN_WWR,
652219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
653219442Sadrian	 .chan11a		= BM3(W1_5260_5320, W2_5180_5240, F6_5745_5825),
654219442Sadrian	 .chan11b		= BM7(W1_2412_2412,
655219442Sadrian				      W1_2437_2442,
656219442Sadrian				      W1_2462_2462,
657219442Sadrian				      W2_2472_2472,
658219442Sadrian				      W1_2417_2432,
659219442Sadrian				      W1_2447_2457,
660219442Sadrian				      W2_2467_2467),
661219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
662219442Sadrian				      WG1_2437_2442,
663219442Sadrian				      WG1_2462_2462,
664219442Sadrian				      WG2_2472_2472,
665219442Sadrian				      WG1_2417_2432,
666219442Sadrian				      WG1_2447_2457,
667219442Sadrian				      WG2_2467_2467),
668219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
669219442Sadrian
670219442Sadrian	{.regDmnEnum		= WOR9_WORLD,
671219442Sadrian	 .conformanceTestLimit	= NO_CTL,
672219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
673219442Sadrian	 .pscan			= PSCAN_WWR,
674219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
675219442Sadrian	 .chan11a		= BM4(W1_5260_5320,
676219442Sadrian				      W1_5180_5240,
677219442Sadrian				      W1_5745_5825,
678219442Sadrian				      W1_5500_5700),
679219442Sadrian	 .chan11a_turbo		= BM3(WT1_5210_5250,
680219442Sadrian				      WT1_5290_5290,
681219442Sadrian				      WT1_5760_5800),
682219442Sadrian	 .chan11b		= BM5(W1_2412_2412,
683219442Sadrian				      W1_2437_2442,
684219442Sadrian				      W1_2462_2462,
685219442Sadrian				      W1_2417_2432,
686219442Sadrian				      W1_2447_2457),
687219442Sadrian	 .chan11g		= BM5(WG1_2412_2412,
688219442Sadrian				      WG1_2437_2442,
689219442Sadrian				      WG1_2462_2462,
690219442Sadrian				      WG1_2417_2432,
691219442Sadrian				      WG1_2447_2457),
692219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
693219442Sadrian
694219442Sadrian	{.regDmnEnum		= WORA_WORLD,
695219442Sadrian	 .conformanceTestLimit	= NO_CTL,
696219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
697219442Sadrian	 .pscan			= PSCAN_WWR,
698219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
699219442Sadrian	 .chan11a		= BM4(W1_5260_5320,
700219442Sadrian				      W1_5180_5240,
701219442Sadrian				      W1_5745_5825,
702219442Sadrian				      W1_5500_5700),
703219442Sadrian	 .chan11b		= BM7(W1_2412_2412,
704219442Sadrian				      W1_2437_2442,
705219442Sadrian				      W1_2462_2462,
706219442Sadrian				      W1_2472_2472,
707219442Sadrian				      W1_2417_2432,
708219442Sadrian				      W1_2447_2457,
709219442Sadrian				      W1_2467_2467),
710219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
711219442Sadrian				      WG1_2437_2442,
712219442Sadrian				      WG1_2462_2462,
713219442Sadrian				      WG1_2472_2472,
714219442Sadrian				      WG1_2417_2432,
715219442Sadrian				      WG1_2447_2457,
716219442Sadrian				      WG1_2467_2467),
717219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
718219442Sadrian
719219442Sadrian	{.regDmnEnum		= WORB_WORLD,
720219442Sadrian	 .conformanceTestLimit	= NO_CTL,
721219442Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
722219442Sadrian	 .pscan			= PSCAN_WWR,
723219442Sadrian	 .flags			= DISALLOW_ADHOC_11A,
724219442Sadrian	 .chan11a		= BM4(W1_5260_5320,
725219442Sadrian				      W1_5180_5240,
726219442Sadrian				      W1_5745_5825,
727219442Sadrian				      W1_5500_5700),
728219442Sadrian	 .chan11b		= BM7(W1_2412_2412,
729219442Sadrian				      W1_2437_2442,
730219442Sadrian				      W1_2462_2462,
731219442Sadrian				      W1_2472_2472,
732219442Sadrian				      W1_2417_2432,
733219442Sadrian				      W1_2447_2457,
734219442Sadrian				      W1_2467_2467),
735219442Sadrian	 .chan11g		= BM7(WG1_2412_2412,
736219442Sadrian				      WG1_2437_2442,
737219442Sadrian				      WG1_2462_2462,
738219442Sadrian				      WG1_2472_2472,
739219442Sadrian				      WG1_2417_2432,
740219442Sadrian				      WG1_2447_2457,
741219442Sadrian				      WG1_2467_2467),
742219442Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
743219442Sadrian
744248677Sadrian	{.regDmnEnum		= WORC_WORLD,
745248677Sadrian	 .conformanceTestLimit	= NO_CTL,
746248677Sadrian	 .dfsMask		= DFS_FCC3 | DFS_ETSI,
747248677Sadrian	 .pscan			= PSCAN_WWR,
748248677Sadrian	 .flags			= ADHOC_PER_11D,
749248677Sadrian	 .chan11a		= BM4(W1_5260_5320,
750248677Sadrian				      W1_5180_5240,
751248677Sadrian				      W1_5745_5825,
752248677Sadrian				      W1_5500_5700),
753248677Sadrian	 .chan11b		= BM7(W1_2412_2412,
754248677Sadrian				      W1_2437_2442,
755248677Sadrian				      W1_2462_2462,
756248677Sadrian				      W1_2472_2472,
757248677Sadrian				      W1_2417_2432,
758248677Sadrian				      W1_2447_2457,
759248677Sadrian				      W1_2467_2467),
760248677Sadrian	 .chan11g		= BM7(WG1_2412_2412,
761248677Sadrian				      WG1_2437_2442,
762248677Sadrian				      WG1_2462_2462,
763248677Sadrian				      WG1_2472_2472,
764248677Sadrian				      WG1_2417_2432,
765248677Sadrian				      WG1_2447_2457,
766248677Sadrian				      WG1_2467_2467),
767248677Sadrian	 .chan11g_turbo		= BM1(T3_2437_2437)},
768248677Sadrian
769219442Sadrian	{.regDmnEnum		= NULL1,
770219442Sadrian	 .conformanceTestLimit	= NO_CTL,
771219442Sadrian	}
772219442Sadrian};
773219442Sadrian
774219442Sadrian#endif
775