xref: /wlan-dirver/qca-wifi-host-cmn/umac/regulatory/core/src/reg_db.c (revision 1f55ed1a9f5050d8da228aa8dd3fff7c0242aa71)
1 /*
2  * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
3  *
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 /**
21  * DOC: reg_db.c
22  * This file implements QCA regulatory database.
23  * Current implementation conforms to database version 27.
24  */
25 
26 #include <qdf_types.h>
27 #include <qdf_trace.h>
28 #include "reg_db.h"
29 
30 enum country_code {
31 	CTRY_AFGHANISTAN = 4,
32 	CTRY_ALBANIA = 8,
33 	CTRY_ALGERIA = 12,
34 	CTRY_AMERICAN_SAMOA = 16,
35 	CTRY_ANGUILLA = 660,
36 	CTRY_ARGENTINA = 32,
37 	CTRY_ARMENIA = 51,
38 	CTRY_MYANMAR = 104,
39 	CTRY_ARUBA = 533,
40 	CTRY_AUSTRALIA = 36,
41 	CTRY_AUSTRIA = 40,
42 	CTRY_AZERBAIJAN = 31,
43 	CTRY_BAHAMAS = 44,
44 	CTRY_BAHRAIN = 48,
45 	CTRY_BANGLADESH = 50,
46 	CTRY_BARBADOS = 52,
47 	CTRY_BELARUS = 112,
48 	CTRY_BELGIUM = 56,
49 	CTRY_BELIZE = 84,
50 	CTRY_BERMUDA = 60,
51 	CTRY_BHUTAN = 64,
52 	CTRY_BOLIVIA = 68,
53 	CTRY_BOSNIA_HERZ = 70,
54 	CTRY_BRAZIL = 76,
55 	CTRY_BRUNEI_DARUSSALAM = 96,
56 	CTRY_BULGARIA = 100,
57 	CTRY_BURKINA_FASO = 854,
58 	CTRY_CAMBODIA = 116,
59 	CTRY_CANADA = 124,
60 	CTRY_CAYMAN_ISLANDS = 136,
61 	CTRY_CENTRAL_AFRICA_REPUBLIC = 140,
62 	CTRY_CHAD = 148,
63 	CTRY_CHILE = 152,
64 	CTRY_CHINA = 156,
65 	CTRY_CHRISTMAS_ISLAND = 162,
66 	CTRY_COLOMBIA = 170,
67 	CTRY_COSTA_RICA = 188,
68 	CTRY_COTE_DIVOIRE = 384,
69 	CTRY_CROATIA = 191,
70 	CTRY_CYPRUS = 196,
71 	CTRY_CZECH = 203,
72 	CTRY_DENMARK = 208,
73 	CTRY_DOMINICA = 212,
74 	CTRY_DOMINICAN_REPUBLIC = 214,
75 	CTRY_ECUADOR = 218,
76 	CTRY_EGYPT = 818,
77 	CTRY_EL_SALVADOR = 222,
78 	CTRY_ESTONIA = 233,
79 	CTRY_ETHIOPIA = 231,
80 	CTRY_FINLAND = 246,
81 	CTRY_FRANCE = 250,
82 	CTRY_FRENCH_GUIANA = 254,
83 	CTRY_FRENCH_POLYNESIA = 258,
84 	CTRY_GEORGIA = 268,
85 	CTRY_GERMANY = 276,
86 	CTRY_GHANA = 288,
87 	CTRY_GIBRALTAR = 292,
88 	CTRY_GREECE = 300,
89 	CTRY_GREENLAND = 304,
90 	CTRY_GRENADA = 308,
91 	CTRY_GUADELOUPE = 312,
92 	CTRY_GUAM = 316,
93 	CTRY_GUATEMALA = 320,
94 	CTRY_GUYANA = 328,
95 	CTRY_HAITI = 332,
96 	CTRY_HONDURAS = 340,
97 	CTRY_HONG_KONG = 344,
98 	CTRY_HUNGARY = 348,
99 	CTRY_ICELAND = 352,
100 	CTRY_INDIA = 356,
101 	CTRY_INDONESIA = 360,
102 	CTRY_IRAQ = 368,
103 	CTRY_IRELAND = 372,
104 	CTRY_ISRAEL = 376,
105 	CTRY_ITALY = 380,
106 	CTRY_JAMAICA = 388,
107 	CTRY_JORDAN = 400,
108 	CTRY_KAZAKHSTAN = 398,
109 	CTRY_KENYA = 404,
110 	CTRY_KOREA_ROC = 410,
111 	CTRY_KUWAIT = 414,
112 	CTRY_LATVIA = 428,
113 	CTRY_LEBANON = 422,
114 	CTRY_LESOTHO = 426,
115 	CTRY_LIECHTENSTEIN = 438,
116 	CTRY_LITHUANIA = 440,
117 	CTRY_LUXEMBOURG = 442,
118 	CTRY_MACAU = 446,
119 	CTRY_MACEDONIA = 807,
120 	CTRY_MALAWI = 454,
121 	CTRY_MALAYSIA = 458,
122 	CTRY_MALDIVES = 462,
123 	CTRY_MALTA = 470,
124 	CTRY_MARSHALL_ISLANDS = 584,
125 	CTRY_MARTINIQUE = 474,
126 	CTRY_MAURITANIA = 478,
127 	CTRY_MAURITIUS = 480,
128 	CTRY_MAYOTTE = 175,
129 	CTRY_MEXICO = 484,
130 	CTRY_MICRONESIA = 583,
131 	CTRY_MOLDOVA = 498,
132 	CTRY_MONACO = 492,
133 	CTRY_MONGOLIA = 496,
134 	CTRY_MONTENEGRO = 499,
135 	CTRY_MOROCCO = 504,
136 	CTRY_NAMIBIA = 516,
137 	CTRY_NEPAL = 524,
138 	CTRY_NETHERLANDS = 528,
139 	CTRY_NETHERLANDS_ANTILLES = 530,
140 	CTRY_NEW_ZEALAND = 554,
141 	CTRY_NIGERIA = 566,
142 	CTRY_NORTHERN_MARIANA_ISLANDS = 580,
143 	CTRY_NICARAGUA = 558,
144 	CTRY_NORWAY = 578,
145 	CTRY_OMAN = 512,
146 	CTRY_PAKISTAN = 586,
147 	CTRY_PALAU = 585,
148 	CTRY_PANAMA = 591,
149 	CTRY_PAPUA_NEW_GUINEA = 598,
150 	CTRY_PARAGUAY = 600,
151 	CTRY_PERU = 604,
152 	CTRY_PHILIPPINES = 608,
153 	CTRY_POLAND = 616,
154 	CTRY_PORTUGAL = 620,
155 	CTRY_PUERTO_RICO = 630,
156 	CTRY_QATAR = 634,
157 	CTRY_REUNION = 638,
158 	CTRY_ROMANIA = 642,
159 	CTRY_RUSSIA = 643,
160 	CTRY_RWANDA = 646,
161 	CTRY_SAINT_BARTHELEMY = 652,
162 	CTRY_SAINT_KITTS_AND_NEVIS = 659,
163 	CTRY_SAINT_LUCIA = 662,
164 	CTRY_SAINT_MARTIN = 663,
165 	CTRY_SAINT_PIERRE_AND_MIQUELON = 666,
166 	CTRY_SAINT_VINCENT_AND_THE_GRENADIENS = 670,
167 	CTRY_SAMOA = 882,
168 	CTRY_SAUDI_ARABIA = 682,
169 	CTRY_SENEGAL = 686,
170 	CTRY_SERBIA = 688,
171 	CTRY_SINGAPORE = 702,
172 	CTRY_SLOVAKIA = 703,
173 	CTRY_SLOVENIA = 705,
174 	CTRY_SOUTH_AFRICA = 710,
175 	CTRY_SPAIN = 724,
176 	CTRY_SURINAME = 740,
177 	CTRY_SRI_LANKA = 144,
178 	CTRY_SWEDEN = 752,
179 	CTRY_SWITZERLAND = 756,
180 	CTRY_TAIWAN = 158,
181 	CTRY_TANZANIA = 834,
182 	CTRY_THAILAND = 764,
183 	CTRY_TOGO = 768,
184 	CTRY_TRINIDAD_Y_TOBAGO = 780,
185 	CTRY_TUNISIA = 788,
186 	CTRY_TURKEY = 792,
187 	CTRY_TURKS_AND_CAICOS = 796,
188 	CTRY_UGANDA = 800,
189 	CTRY_UKRAINE = 804,
190 	CTRY_UAE = 784,
191 	CTRY_UNITED_KINGDOM = 826,
192 	CTRY_UNITED_STATES = 840,
193 	CTRY_URUGUAY = 858,
194 	CTRY_UZBEKISTAN = 860,
195 	CTRY_VANUATU = 548,
196 	CTRY_VENEZUELA = 862,
197 	CTRY_VIET_NAM = 704,
198 	CTRY_VIRGIN_ISLANDS = 850,
199 	CTRY_WALLIS_AND_FUTUNA = 876,
200 	CTRY_YEMEN = 887,
201 	CTRY_ZIMBABWE = 716,
202 	CTRY_JAPAN = 392,
203 	CTRY_JAPAN15 = 4015,
204 	CTRY_XA = 4100,
205 };
206 
207 enum reg_domain {
208 	NULL1_WORLD = 0x03,
209 
210 	FCC1_FCCA = 0x10,
211 	FCC1_WORLD = 0x11,
212 	FCC2_FCCA = 0x20,
213 	FCC2_WORLD = 0x21,
214 	FCC2_ETSIC = 0x22,
215 	FCC3_FCCA = 0x3A,
216 	FCC3_WORLD = 0x3B,
217 	FCC3_ETSIC = 0x3F,
218 	FCC4_FCCA = 0x12,
219 	FCC5_FCCA = 0x13,
220 	FCC6_WORLD = 0x23,
221 	FCC6_FCCA = 0x14,
222 	FCC8_FCCA = 0x16,
223 	FCC9_FCCA = 0x17,
224 	FCC10_FCCA = 0x18,
225 	FCC11_WORLD = 0x19,
226 	FCC13_WORLD = 0xE4,
227 	FCC14_FCCB = 0xE6,
228 
229 	ETSI1_WORLD = 0x37,
230 	ETSI3_WORLD = 0x36,
231 	ETSI4_WORLD = 0x30,
232 	ETSI8_WORLD = 0x3D,
233 	ETSI9_WORLD = 0x3E,
234 	ETSI10_WORLD = 0x24,
235 	ETSI10_FCCA = 0x25,
236 	ETSI11_WORLD = 0x26,
237 	ETSI12_WORLD = 0x28,
238 	ETSI13_WORLD = 0x27,
239 	ETSI14_WORLD = 0x29,
240 	ETSI15_WORLD = 0x31,
241 
242 	APL1_WORLD = 0x52,
243 	APL1_ETSIC = 0x55,
244 	APL2_WORLD = 0x45,
245 	APL2_ETSIC = 0x56,
246 	APL4_WORLD = 0x42,
247 	APL6_WORLD = 0x5B,
248 	APL8_WORLD = 0x5D,
249 	APL9_WORLD = 0x5E,
250 	APL10_WORLD = 0x5F,
251 	APL11_FCCA = 0x4F,
252 	APL12_WORLD = 0x51,
253 	APL13_WORLD = 0x5A,
254 	APL14_WORLD = 0x57,
255 	APL15_WORLD = 0x59,
256 	APL16_WORLD = 0x70,
257 	APL17_ETSID = 0xE0,
258 	APL19_ETSIC = 0x71,
259 	APL20_WORLD = 0xE5,
260 	APL23_WORLD = 0xE3,
261 
262 	MKK3_MKKC = 0x82,
263 	MKK5_MKKA = 0x99,
264 	MKK5_MKKC = 0x88,
265 	MKK11_MKKC = 0xD7,
266 	MKK16_MKKC = 0xDF,
267 
268 	WORLD_60 = 0x60,
269 	WORLD_61 = 0x61,
270 	WORLD_62 = 0x62,
271 	WORLD_63 = 0x63,
272 	WORLD_65 = 0x65,
273 	WORLD_64 = 0x64,
274 	WORLD_66 = 0x66,
275 	WORLD_69 = 0x69,
276 	WORLD_67 = 0x67,
277 	WORLD_68 = 0x68,
278 	WORLD_6A = 0x6A,
279 	WORLD_6C = 0x6C,
280 };
281 
282 #ifndef CONFIG_MCL_REGDB
283 const struct country_code_to_reg_domain g_all_countries[] = {
284 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0},
285 	{CTRY_ALBANIA, ETSI1_WORLD, "AL", 40, 160, 0},
286 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
287 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
288 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
289 	{CTRY_ARGENTINA, APL16_WORLD, "AR", 40, 160, 0},
290 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
291 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
292 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
293 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT", 40, 160, 0},
294 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0},
295 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0},
296 	{CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0},
297 	{CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0},
298 	{CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0},
299 	{CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0},
300 	{CTRY_BELGIUM, ETSI1_WORLD, "BE", 40, 160, 0},
301 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0},
302 	{CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0},
303 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0},
304 	{CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0},
305 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", 40, 160, 0},
306 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0},
307 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0},
308 	{CTRY_BULGARIA, ETSI1_WORLD, "BG", 40, 160, 0},
309 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0},
310 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0},
311 	{CTRY_CANADA, FCC6_FCCA, "CA", 40, 160, 0},
312 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0},
313 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0},
314 	{CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0},
315 	{CTRY_CHILE, FCC13_WORLD, "CL", 40, 160, 0},
316 	{CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0},
317 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0},
318 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0},
319 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 160, 0},
320 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0},
321 	{CTRY_CROATIA, ETSI1_WORLD, "HR", 40, 160, 0},
322 	{CTRY_CYPRUS, ETSI1_WORLD, "CY", 40, 160, 0},
323 	{CTRY_CZECH, ETSI1_WORLD, "CZ", 40, 160, 0},
324 	{CTRY_DENMARK, ETSI1_WORLD, "DK", 40, 160,  0},
325 	{CTRY_DOMINICA, FCC1_FCCA, "DM", 40, 160, 0},
326 	{CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO", 40, 160, 0},
327 	{CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0},
328 	{CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0},
329 	{CTRY_EL_SALVADOR, FCC1_WORLD, "SV", 40, 20, 0},
330 	{CTRY_ESTONIA, ETSI1_WORLD, "EE", 40, 160, 0},
331 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0},
332 	{CTRY_FINLAND, ETSI1_WORLD, "FI", 40, 160, 0},
333 	{CTRY_FRANCE, ETSI1_WORLD, "FR", 40, 160, 0},
334 	{CTRY_FRENCH_GUIANA, ETSI1_WORLD, "GF", 40, 160, 0},
335 	{CTRY_FRENCH_POLYNESIA, ETSI1_WORLD, "PF", 40, 160, 0},
336 	{CTRY_GEORGIA, ETSI4_WORLD, "GE", 40, 160, 0},
337 	{CTRY_GERMANY, ETSI1_WORLD, "DE", 40, 160, 0},
338 	{CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0},
339 	{CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0},
340 	{CTRY_GREECE, ETSI1_WORLD, "GR", 40, 160, 0},
341 	{CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0},
342 	{CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0},
343 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0},
344 	{CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0},
345 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0},
346 	{CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0},
347 	{CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0},
348 	{CTRY_HONDURAS, FCC3_WORLD, "HN", 40, 160, 0},
349 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0},
350 	{CTRY_HUNGARY, ETSI1_WORLD, "HU", 40, 160, 0},
351 	{CTRY_ICELAND, ETSI1_WORLD, "IS", 40, 160, 0},
352 	{CTRY_INDIA, APL19_ETSIC, "IN", 40, 160, 0},
353 	{CTRY_INDONESIA, APL2_ETSIC, "ID", 40, 20, 0},
354 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0},
355 	{CTRY_IRELAND, ETSI1_WORLD, "IE", 40, 160, 0},
356 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0},
357 	{CTRY_ITALY, ETSI1_WORLD, "IT", 40, 160,  0},
358 	{CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0},
359 	{CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0},
360 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", 40, 0, 0},
361 	{CTRY_KENYA, APL12_WORLD, "KE", 40, 160, 0},
362 	{CTRY_KOREA_ROC, APL9_WORLD, "KR", 40, 160, 0},
363 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0},
364 	{CTRY_LATVIA, ETSI1_WORLD, "LV", 40, 160, 0},
365 	{CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0},
366 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0},
367 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", 40, 160, 0},
368 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT", 40, 160, 0},
369 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", 40, 160, 0},
370 	{CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0},
371 	{CTRY_MACEDONIA, ETSI1_WORLD, "MK", 40, 160, 0},
372 	{CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0},
373 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0},
374 	{CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0},
375 	{CTRY_MALTA, ETSI1_WORLD, "MT", 40, 160, 0},
376 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0},
377 	{CTRY_MARTINIQUE, ETSI1_WORLD, "MQ", 40, 160, 0},
378 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0},
379 	{CTRY_MAURITIUS, ETSI1_WORLD, "MU", 40, 160, 0},
380 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0},
381 	{CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0},
382 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0},
383 	{CTRY_MOLDOVA, ETSI1_WORLD, "MD", 40, 160, 0},
384 	{CTRY_MONACO, ETSI1_WORLD, "MC", 40, 160, 0},
385 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0},
386 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME", 40, 160, 0},
387 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0},
388 	{CTRY_MYANMAR, APL1_WORLD, "MM", 40, 160, 0},
389 	{CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0},
390 	{CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0},
391 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL", 40, 160, 0},
392 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", 40, 160, 0},
393 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0},
394 	{CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0},
395 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0},
396 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0},
397 	{CTRY_NORWAY, ETSI1_WORLD, "NO", 40, 160, 0},
398 	{CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0},
399 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0},
400 	{CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0},
401 	{CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0},
402 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0},
403 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0},
404 	{CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0},
405 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0},
406 	{CTRY_POLAND, ETSI1_WORLD, "PL", 40, 160, 0},
407 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT", 40, 160, 0},
408 	{CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0},
409 	{CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0},
410 	{CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0},
411 	{CTRY_ROMANIA, ETSI1_WORLD, "RO", 40, 160, 0},
412 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0},
413 	{CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0},
414 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0},
415 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0},
416 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0},
417 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0},
418 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI1_WORLD, "PM", 40, 160, 0},
419 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI1_WORLD,
420 	 "VC" , 40, 160, 0},
421 	{CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0},
422 	{CTRY_SAUDI_ARABIA, ETSI15_WORLD, "SA", 40, 160, 0},
423 	{CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0},
424 	{CTRY_SERBIA, ETSI1_WORLD, "RS", 40, 160, 0},
425 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0},
426 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK", 40, 160, 0},
427 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI", 40, 160, 0},
428 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0},
429 	{CTRY_SPAIN, ETSI1_WORLD, "ES", 40, 160, 0},
430 	{CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0},
431 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0},
432 	{CTRY_SWEDEN, ETSI1_WORLD, "SE", 40, 160, 0},
433 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH", 40, 160, 0},
434 	{CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0},
435 	{CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0},
436 	{CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0},
437 	{CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0},
438 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0},
439 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0},
440 	{CTRY_TURKEY, ETSI1_WORLD, "TR", 40, 160, 0},
441 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0},
442 	{CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0},
443 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0},
444 	{CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0},
445 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", 40, 160, 0},
446 	{CTRY_UNITED_STATES, FCC8_FCCA, "US", 40, 160, 0},
447 	{CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0},
448 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0},
449 	{CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0},
450 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0},
451 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0},
452 	{CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0},
453 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0},
454 	{CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0},
455 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0},
456 	{CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0},
457 	{CTRY_JAPAN15, MKK5_MKKC, "JP", 40, 160, 0},
458 };
459 #else
460 #ifdef WLAN_FEATURE_DSRC
461 const struct country_code_to_reg_domain g_all_countries[] = {
462 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0},
463 	{CTRY_ALBANIA, ETSI13_WORLD, "AL", 40, 160, 0},
464 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
465 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
466 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
467 	{CTRY_ARGENTINA, APL17_ETSID, "AR", 40, 160, 0},
468 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
469 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
470 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
471 	{CTRY_AUSTRIA, ETSI10_WORLD, "AT", 40, 160, 0},
472 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0},
473 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0},
474 	{CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0},
475 	{CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0},
476 	{CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0},
477 	{CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0},
478 	{CTRY_BELGIUM, ETSI10_WORLD, "BE", 40, 160, 0},
479 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0},
480 	{CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0},
481 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0},
482 	{CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0},
483 	{CTRY_BOSNIA_HERZ, ETSI13_WORLD, "BA", 40, 160, 0},
484 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0},
485 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0},
486 	{CTRY_BULGARIA, ETSI10_WORLD, "BG", 40, 160, 0},
487 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0},
488 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0},
489 	{CTRY_CANADA, FCC3_FCCA, "CA", 40, 160, 0},
490 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0},
491 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0},
492 	{CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0},
493 	{CTRY_CHILE, FCC13_WORLD, "CL", 40, 160, 0},
494 	{CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0},
495 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0},
496 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0},
497 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 160, 0},
498 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0},
499 	{CTRY_CROATIA, ETSI10_WORLD, "HR", 40, 160, 0},
500 	{CTRY_CYPRUS, ETSI10_WORLD, "CY", 40, 160, 0},
501 	{CTRY_CZECH, ETSI10_WORLD, "CZ", 40, 160, 0},
502 	{CTRY_DENMARK, ETSI10_WORLD, "DK", 40, 160,  0},
503 	{CTRY_DOMINICA, FCC2_FCCA, "DM", 40, 160, 0},
504 	{CTRY_DOMINICAN_REPUBLIC, FCC2_FCCA, "DO", 40, 160, 0},
505 	{CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0},
506 	{CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0},
507 	{CTRY_EL_SALVADOR, FCC2_WORLD, "SV", 40, 20, 0},
508 	{CTRY_ESTONIA, ETSI10_WORLD, "EE", 40, 160, 0},
509 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0},
510 	{CTRY_FINLAND, ETSI10_WORLD, "FI", 40, 160, 0},
511 	{CTRY_FRANCE, ETSI10_WORLD, "FR", 40, 160, 0},
512 	{CTRY_FRENCH_GUIANA, ETSI10_WORLD, "GF", 40, 160, 0},
513 	{CTRY_FRENCH_POLYNESIA, ETSI10_WORLD, "PF", 40, 160, 0},
514 	{CTRY_GEORGIA, ETSI4_WORLD, "GE", 40, 160, 0},
515 	{CTRY_GERMANY, ETSI10_WORLD, "DE", 40, 160, 0},
516 	{CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0},
517 	{CTRY_GIBRALTAR, ETSI10_WORLD, "GI", 40, 160, 0},
518 	{CTRY_GREECE, ETSI10_WORLD, "GR", 40, 160, 0},
519 	{CTRY_GREENLAND, ETSI10_WORLD, "GL", 40, 160, 0},
520 	{CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0},
521 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0},
522 	{CTRY_GUAM, FCC10_FCCA, "GU", 40, 160, 0},
523 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0},
524 	{CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0},
525 	{CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0},
526 	{CTRY_HONDURAS, FCC13_WORLD, "HN", 40, 160, 0},
527 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0},
528 	{CTRY_HUNGARY, ETSI10_WORLD, "HU", 40, 160, 0},
529 	{CTRY_ICELAND, ETSI10_WORLD, "IS", 40, 160, 0},
530 	{CTRY_INDIA, APL15_WORLD, "IN", 40, 160, 0},
531 	{CTRY_INDONESIA, APL2_ETSIC, "ID", 40, 20, 0},
532 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0},
533 	{CTRY_IRELAND, ETSI10_WORLD, "IE", 40, 160, 0},
534 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0},
535 	{CTRY_ITALY, ETSI10_WORLD, "IT", 40, 160,  0},
536 	{CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0},
537 	{CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0},
538 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", 40, 0, 0},
539 	{CTRY_KENYA, APL12_WORLD, "KE", 40, 160, 0},
540 	{CTRY_KOREA_ROC, APL9_WORLD, "KR", 40, 160, 0},
541 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0},
542 	{CTRY_LATVIA, ETSI10_WORLD, "LV", 40, 160, 0},
543 	{CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0},
544 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0},
545 	{CTRY_LIECHTENSTEIN, ETSI10_WORLD, "LI", 40, 160, 0},
546 	{CTRY_LITHUANIA, ETSI10_WORLD, "LT", 40, 160, 0},
547 	{CTRY_LUXEMBOURG, ETSI10_WORLD, "LU", 40, 160, 0},
548 	{CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0},
549 	{CTRY_MACEDONIA, ETSI13_WORLD, "MK", 40, 160, 0},
550 	{CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0},
551 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0},
552 	{CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0},
553 	{CTRY_MALTA, ETSI10_WORLD, "MT", 40, 160, 0},
554 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0},
555 	{CTRY_MARTINIQUE, ETSI10_WORLD, "MQ", 40, 160, 0},
556 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0},
557 	{CTRY_MAURITIUS, ETSI13_WORLD, "MU", 40, 160, 0},
558 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0},
559 	{CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0},
560 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0},
561 	{CTRY_MOLDOVA, ETSI13_WORLD, "MD", 40, 160, 0},
562 	{CTRY_MONACO, ETSI10_WORLD, "MC", 40, 160, 0},
563 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0},
564 	{CTRY_MONTENEGRO, ETSI10_WORLD, "ME", 40, 160, 0},
565 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0},
566 	{CTRY_MYANMAR, APL1_WORLD, "MM", 40, 160, 0},
567 	{CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0},
568 	{CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0},
569 	{CTRY_NETHERLANDS, ETSI10_WORLD, "NL", 40, 160, 0},
570 	{CTRY_NETHERLANDS_ANTILLES, ETSI10_WORLD, "AN", 40, 160, 0},
571 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0},
572 	{CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0},
573 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC10_FCCA, "MP", 40, 160, 0},
574 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0},
575 	{CTRY_NORWAY, ETSI10_WORLD, "NO", 40, 160, 0},
576 	{CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0},
577 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0},
578 	{CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0},
579 	{CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0},
580 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0},
581 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0},
582 	{CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0},
583 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0},
584 	{CTRY_POLAND, ETSI10_WORLD, "PL", 40, 160, 0},
585 	{CTRY_PORTUGAL, ETSI10_WORLD, "PT", 40, 160, 0},
586 	{CTRY_PUERTO_RICO, FCC10_FCCA, "PR", 40, 160, 0},
587 	{CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0},
588 	{CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0},
589 	{CTRY_ROMANIA, ETSI10_WORLD, "RO", 40, 160, 0},
590 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0},
591 	{CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0},
592 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0},
593 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0},
594 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0},
595 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0},
596 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI13_WORLD, "PM", 40, 160, 0},
597 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI13_WORLD, "VC",
598 	 40, 160, 0},
599 	{CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0},
600 	{CTRY_SAUDI_ARABIA, ETSI15_WORLD, "SA", 40, 160, 0},
601 	{CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0},
602 	{CTRY_SERBIA, ETSI13_WORLD, "RS", 40, 160, 0},
603 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0},
604 	{CTRY_SLOVAKIA, ETSI10_WORLD, "SK", 40, 160, 0},
605 	{CTRY_SLOVENIA, ETSI10_WORLD, "SI", 40, 160, 0},
606 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0},
607 	{CTRY_SPAIN, ETSI10_WORLD, "ES", 40, 160, 0},
608 	{CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0},
609 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0},
610 	{CTRY_SWEDEN, ETSI10_WORLD, "SE", 40, 160, 0},
611 	{CTRY_SWITZERLAND, ETSI10_WORLD, "CH", 40, 160, 0},
612 	{CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0},
613 	{CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0},
614 	{CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0},
615 	{CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0},
616 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0},
617 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0},
618 	{CTRY_TURKEY, ETSI13_WORLD, "TR", 40, 160, 0},
619 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0},
620 	{CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0},
621 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0},
622 	{CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0},
623 	{CTRY_UNITED_KINGDOM, ETSI10_WORLD, "GB", 40, 160, 0},
624 	{CTRY_UNITED_STATES, FCC10_FCCA, "US", 40, 160, 0},
625 	{CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0},
626 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0},
627 	{CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0},
628 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0},
629 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0},
630 	{CTRY_VIRGIN_ISLANDS, FCC10_FCCA, "VI", 40, 160, 0},
631 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0},
632 	{CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0},
633 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0},
634 	{CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0},
635 	{CTRY_XA, MKK5_MKKA, "XA", 40, 160, 0},
636 };
637 #else
638 const struct country_code_to_reg_domain g_all_countries[] = {
639 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0},
640 	{CTRY_ALBANIA, ETSI13_WORLD, "AL", 40, 160, 0},
641 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
642 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
643 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
644 	{CTRY_ARGENTINA, APL17_ETSID, "AR", 40, 160, 0},
645 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
646 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
647 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
648 	{CTRY_AUSTRIA, ETSI13_WORLD, "AT", 40, 160, 0},
649 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0},
650 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0},
651 	{CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0},
652 	{CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0},
653 	{CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0},
654 	{CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0},
655 	{CTRY_BELGIUM, ETSI13_WORLD, "BE", 40, 160, 0},
656 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0},
657 	{CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0},
658 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0},
659 	{CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0},
660 	{CTRY_BOSNIA_HERZ, ETSI13_WORLD, "BA", 40, 160, 0},
661 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0},
662 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0},
663 	{CTRY_BULGARIA, ETSI13_WORLD, "BG", 40, 160, 0},
664 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0},
665 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0},
666 	{CTRY_CANADA, FCC3_FCCA, "CA", 40, 160, 0},
667 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0},
668 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0},
669 	{CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0},
670 	{CTRY_CHILE, FCC13_WORLD, "CL", 40, 160, 0},
671 	{CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0},
672 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0},
673 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0},
674 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 160, 0},
675 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0},
676 	{CTRY_CROATIA, ETSI13_WORLD, "HR", 40, 160, 0},
677 	{CTRY_CYPRUS, ETSI13_WORLD, "CY", 40, 160, 0},
678 	{CTRY_CZECH, ETSI13_WORLD, "CZ", 40, 160, 0},
679 	{CTRY_DENMARK, ETSI13_WORLD, "DK", 40, 160,  0},
680 	{CTRY_DOMINICA, FCC2_FCCA, "DM", 40, 160, 0},
681 	{CTRY_DOMINICAN_REPUBLIC, FCC2_FCCA, "DO", 40, 160, 0},
682 	{CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0},
683 	{CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0},
684 	{CTRY_EL_SALVADOR, FCC2_WORLD, "SV", 40, 20, 0},
685 	{CTRY_ESTONIA, ETSI13_WORLD, "EE", 40, 160, 0},
686 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0},
687 	{CTRY_FINLAND, ETSI13_WORLD, "FI", 40, 160, 0},
688 	{CTRY_FRANCE, ETSI13_WORLD, "FR", 40, 160, 0},
689 	{CTRY_FRENCH_GUIANA, ETSI13_WORLD, "GF", 40, 160, 0},
690 	{CTRY_FRENCH_POLYNESIA, ETSI13_WORLD, "PF", 40, 160, 0},
691 	{CTRY_GEORGIA, ETSI4_WORLD, "GE", 40, 160, 0},
692 	{CTRY_GERMANY, ETSI13_WORLD, "DE", 40, 160, 0},
693 	{CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0},
694 	{CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0},
695 	{CTRY_GREECE, ETSI13_WORLD, "GR", 40, 160, 0},
696 	{CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0},
697 	{CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0},
698 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0},
699 	{CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0},
700 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0},
701 	{CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0},
702 	{CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0},
703 	{CTRY_HONDURAS, FCC13_WORLD, "HN", 40, 160, 0},
704 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0},
705 	{CTRY_HUNGARY, ETSI13_WORLD, "HU", 40, 160, 0},
706 	{CTRY_ICELAND, ETSI13_WORLD, "IS", 40, 160, 0},
707 	{CTRY_INDIA, APL19_ETSIC, "IN", 40, 160, 0},
708 	{CTRY_INDONESIA, APL2_ETSIC, "ID", 40, 20, 0},
709 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0},
710 	{CTRY_IRELAND, ETSI13_WORLD, "IE", 40, 160, 0},
711 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0},
712 	{CTRY_ITALY, ETSI13_WORLD, "IT", 40, 160,  0},
713 	{CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0},
714 	{CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0},
715 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", 40, 0, 0},
716 	{CTRY_KENYA, APL12_WORLD, "KE", 40, 160, 0},
717 	{CTRY_KOREA_ROC, APL9_WORLD, "KR", 40, 160, 0},
718 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0},
719 	{CTRY_LATVIA, ETSI13_WORLD, "LV", 40, 160, 0},
720 	{CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0},
721 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0},
722 	{CTRY_LIECHTENSTEIN, ETSI13_WORLD, "LI", 40, 160, 0},
723 	{CTRY_LITHUANIA, ETSI13_WORLD, "LT", 40, 160, 0},
724 	{CTRY_LUXEMBOURG, ETSI13_WORLD, "LU", 40, 160, 0},
725 	{CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0},
726 	{CTRY_MACEDONIA, ETSI13_WORLD, "MK", 40, 160, 0},
727 	{CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0},
728 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0},
729 	{CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0},
730 	{CTRY_MALTA, ETSI13_WORLD, "MT", 40, 160, 0},
731 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0},
732 	{CTRY_MARTINIQUE, ETSI13_WORLD, "MQ", 40, 160, 0},
733 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0},
734 	{CTRY_MAURITIUS, ETSI13_WORLD, "MU", 40, 160, 0},
735 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0},
736 	{CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0},
737 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0},
738 	{CTRY_MOLDOVA, ETSI13_WORLD, "MD", 40, 160, 0},
739 	{CTRY_MONACO, ETSI13_WORLD, "MC", 40, 160, 0},
740 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0},
741 	{CTRY_MONTENEGRO, ETSI13_WORLD, "ME", 40, 160, 0},
742 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0},
743 	{CTRY_MYANMAR, APL1_WORLD, "MM", 40, 160, 0},
744 	{CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0},
745 	{CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0},
746 	{CTRY_NETHERLANDS, ETSI13_WORLD, "NL", 40, 160, 0},
747 	{CTRY_NETHERLANDS_ANTILLES, ETSI13_WORLD, "AN", 40, 160, 0},
748 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0},
749 	{CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0},
750 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0},
751 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0},
752 	{CTRY_NORWAY, ETSI13_WORLD, "NO", 40, 160, 0},
753 	{CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0},
754 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0},
755 	{CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0},
756 	{CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0},
757 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0},
758 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0},
759 	{CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0},
760 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0},
761 	{CTRY_POLAND, ETSI13_WORLD, "PL", 40, 160, 0},
762 	{CTRY_PORTUGAL, ETSI13_WORLD, "PT", 40, 160, 0},
763 	{CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0},
764 	{CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0},
765 	{CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0},
766 	{CTRY_ROMANIA, ETSI13_WORLD, "RO", 40, 160, 0},
767 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0},
768 	{CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0},
769 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0},
770 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0},
771 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0},
772 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0},
773 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI13_WORLD, "PM", 40, 160, 0},
774 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI13_WORLD, "VC",
775 	 40, 160, 0},
776 	{CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0},
777 	{CTRY_SAUDI_ARABIA, ETSI15_WORLD, "SA", 40, 160, 0},
778 	{CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0},
779 	{CTRY_SERBIA, ETSI13_WORLD, "RS", 40, 160, 0},
780 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0},
781 	{CTRY_SLOVAKIA, ETSI13_WORLD, "SK", 40, 160, 0},
782 	{CTRY_SLOVENIA, ETSI13_WORLD, "SI", 40, 160, 0},
783 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0},
784 	{CTRY_SPAIN, ETSI13_WORLD, "ES", 40, 160, 0},
785 	{CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0},
786 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0},
787 	{CTRY_SWEDEN, ETSI13_WORLD, "SE", 40, 160, 0},
788 	{CTRY_SWITZERLAND, ETSI13_WORLD, "CH", 40, 160, 0},
789 	{CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0},
790 	{CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0},
791 	{CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0},
792 	{CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0},
793 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0},
794 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0},
795 	{CTRY_TURKEY, ETSI13_WORLD, "TR", 40, 160, 0},
796 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0},
797 	{CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0},
798 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0},
799 	{CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0},
800 	{CTRY_UNITED_KINGDOM, ETSI13_WORLD, "GB", 40, 160, 0},
801 	{CTRY_UNITED_STATES, FCC3_FCCA, "US", 40, 160, 0},
802 	{CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0},
803 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0},
804 	{CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0},
805 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0},
806 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0},
807 	{CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0},
808 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0},
809 	{CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0},
810 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0},
811 	{CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0},
812 	{CTRY_XA, MKK5_MKKA, "XA", 40, 160, 0},
813 };
814 #endif
815 #endif
816 
817 enum reg_domains_2g {
818 	FCCA,
819 	FCCB,
820 	WORLD,
821 	MKKA,
822 	MKKC,
823 	ETSIC,
824 	ETSID,
825 	WORLD_2G_1,
826 	WORLD_2G_2,
827 	WORLD_2G_3,
828 };
829 
830 enum reg_domains_5g {
831 	NULL1,
832 	FCC1,
833 	FCC2,
834 	FCC3,
835 	FCC4,
836 	FCC5,
837 	FCC6,
838 	FCC8,
839 	FCC10,
840 	FCC11,
841 	FCC13,
842 	FCC14,
843 	ETSI1,
844 	ETSI3,
845 	ETSI4,
846 	ETSI8,
847 	ETSI9,
848 	ETSI10,
849 	ETSI11,
850 	ETSI12,
851 	ETSI13,
852 	ETSI14,
853 	ETSI15,
854 	APL1,
855 	APL2,
856 	APL4,
857 	APL6,
858 	APL8,
859 	APL9,
860 	APL10,
861 	APL11,
862 	APL12,
863 	APL13,
864 	APL14,
865 	APL15,
866 	APL16,
867 	APL17,
868 	APL19,
869 	APL20,
870 	APL23,
871 	MKK3,
872 	MKK4,
873 	MKK5,
874 	MKK9,
875 	MKK10,
876 	MKK11,
877 	MKK16,
878 	WORLD_5G_1,
879 	WORLD_5G_2,
880 };
881 
882 
883 const struct reg_domain_pair g_reg_dmn_pairs[] = {
884 	{NULL1_WORLD, NULL1, WORLD},
885 
886 	{FCC1_FCCA, FCC1, FCCA},
887 	{FCC1_WORLD, FCC1, WORLD},
888 	{FCC2_FCCA, FCC2, FCCA},
889 	{FCC2_WORLD, FCC2, WORLD},
890 	{FCC2_ETSIC, FCC2, ETSIC},
891 	{FCC3_FCCA, FCC3, FCCA},
892 	{FCC3_WORLD, FCC3, WORLD},
893 	{FCC3_ETSIC, FCC3, ETSIC},
894 	{FCC4_FCCA, FCC4, FCCA},
895 	{FCC5_FCCA, FCC5, FCCA},
896 	{FCC6_WORLD, FCC6, WORLD},
897 	{FCC6_FCCA, FCC6, FCCA},
898 	{FCC8_FCCA, FCC8, FCCA},
899 	{FCC11_WORLD, FCC11, WORLD},
900 	{FCC13_WORLD, FCC13, WORLD},
901 	{FCC14_FCCB, FCC14, FCCB},
902 
903 	{ETSI1_WORLD, ETSI1, WORLD},
904 	{ETSI3_WORLD, ETSI3, WORLD},
905 	{ETSI4_WORLD, ETSI4, WORLD},
906 	{ETSI8_WORLD, ETSI8, WORLD},
907 	{ETSI9_WORLD, ETSI9, WORLD},
908 	{ETSI10_WORLD, ETSI10, WORLD},
909 	{ETSI10_FCCA, ETSI10, FCCA},
910 	{ETSI11_WORLD, ETSI11, WORLD},
911 	{ETSI12_WORLD, ETSI12, WORLD},
912 	{ETSI13_WORLD, ETSI13, WORLD},
913 	{ETSI14_WORLD, ETSI14, WORLD},
914 	{ETSI15_WORLD, ETSI15, WORLD},
915 
916 	{APL1_WORLD, APL1, WORLD},
917 	{APL1_ETSIC, APL1, ETSIC},
918 	{APL2_WORLD, APL2, WORLD},
919 	{APL2_ETSIC, APL2, ETSIC},
920 	{APL4_WORLD, APL4, WORLD},
921 	{APL6_WORLD, APL6, WORLD},
922 	{APL8_WORLD, APL8, WORLD},
923 	{APL9_WORLD, APL9, WORLD},
924 	{APL10_WORLD, APL10, WORLD},
925 	{APL11_FCCA, APL11, FCCA},
926 	{APL12_WORLD, APL12, WORLD},
927 	{APL13_WORLD, APL13, WORLD},
928 	{APL14_WORLD, APL14, WORLD},
929 	{APL15_WORLD, APL15, WORLD},
930 	{APL16_WORLD, APL16, WORLD},
931 	{APL17_ETSID, APL17, ETSID},
932 	{APL19_ETSIC, APL19, ETSIC},
933 	{APL20_WORLD, APL20, WORLD},
934 	{APL23_WORLD, APL23, WORLD},
935 
936 	{MKK3_MKKC, MKK3, MKKC},
937 	{MKK5_MKKA, MKK5, MKKA},
938 	{MKK5_MKKC, MKK5, MKKC},
939 	{MKK11_MKKC, MKK11, MKKC},
940 	{MKK16_MKKC, MKK16, MKKC},
941 
942 	{WORLD_60, WORLD_5G_2, WORLD_2G_3},
943 	{WORLD_61, WORLD_5G_2, WORLD_2G_3},
944 	{WORLD_62, WORLD_5G_2, WORLD_2G_3},
945 	{WORLD_63, WORLD_5G_1, WORLD_2G_2},
946 	{WORLD_65, WORLD_5G_1, WORLD_2G_2},
947 	{WORLD_64, WORLD_5G_1, WORLD_2G_1},
948 	{WORLD_66, WORLD_5G_2, WORLD_2G_1},
949 	{WORLD_69, WORLD_5G_2, WORLD_2G_1},
950 	{WORLD_67, WORLD_5G_2, WORLD_2G_2},
951 	{WORLD_68, WORLD_5G_2, WORLD_2G_2},
952 	{WORLD_6A, WORLD_5G_2, WORLD_2G_2},
953 	{WORLD_6C, WORLD_5G_2, WORLD_2G_2},
954 };
955 
956 enum reg_rules_2g {
957 
958 	CHAN_1_11_1,
959 	CHAN_1_11_2,
960 	CHAN_1_11_3,
961 	CHAN_1_13_1,
962 	CHAN_1_13_2,
963 	CHAN_1_13_3,
964 	CHAN_1_13_4,
965 	CHAN_12_12_1,
966 	CHAN_12_13_1,
967 	CHAN_14_1,
968 	CHAN_14_2,
969 };
970 
971 const struct regulatory_rule reg_rules_2g[] = {
972 
973 	[CHAN_1_11_1] = {2402, 2472, 40, 30, 0},
974 	[CHAN_1_11_2] = {2402, 2472, 40, 20, 0},
975 	[CHAN_1_11_3] = {2402, 2472, 40, 36, 0},
976 	[CHAN_1_13_1] = {2402, 2482, 40, 20, 0},
977 	[CHAN_1_13_2] = {2402, 2482, 40, 30, 0},
978 	[CHAN_1_13_3] = {2402, 2482, 40, 36, 0},
979 	[CHAN_1_13_4] = {2402, 2482, 40, 23, 0},
980 	[CHAN_12_12_1] = {2457, 2477, 20, 20, REGULATORY_CHAN_NO_IR},
981 	[CHAN_12_13_1] = {2457, 2482, 20, 20, REGULATORY_CHAN_NO_IR},
982 	[CHAN_14_1] = {2474, 2494, 20, 23, REGULATORY_CHAN_NO_OFDM},
983 	[CHAN_14_2] = {2474, 2494, 20, 20,
984 		       REGULATORY_CHAN_NO_OFDM | REGULATORY_CHAN_NO_IR},
985 };
986 
987 
988 const struct regdomain regdomains_2g[] = {
989 
990 	[FCCA] = {CTL_FCC, DFS_UNINIT_REGION, 0, 6, 1, {CHAN_1_11_1} },
991 	[FCCB] = {CTL_FCC, DFS_UNINIT_REGION, 0, 6, 1, {CHAN_1_11_3} },
992 	[WORLD] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_1} },
993 	[MKKA] = {CTL_MKK, DFS_UNINIT_REGION, 0, 0, 2, {CHAN_1_13_4,
994 							CHAN_14_1} },
995 	[MKKC] = {CTL_MKK, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_4} },
996 	[ETSIC] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_2} },
997 	[ETSID] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_3} },
998 	[WORLD_2G_1] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_11_2} },
999 	[WORLD_2G_2] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2,
1000 			{CHAN_1_11_2, CHAN_12_13_1} },
1001 	[WORLD_2G_3] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2,
1002 			{CHAN_1_11_2, CHAN_12_12_1} },
1003 };
1004 
1005 
1006 enum reg_rules_5g {
1007 
1008 	CHAN_4910_4990_1,
1009 	CHAN_4940_4990_1,
1010 	CHAN_5030_5090_1,
1011 	CHAN_5170_5250_1,
1012 	CHAN_5170_5250_2,
1013 	CHAN_5170_5250_3,
1014 	CHAN_5170_5250_4,
1015 	CHAN_5170_5250_5,
1016 	CHAN_5170_5250_6,
1017 	CHAN_5170_5250_7,
1018 	CHAN_5170_5250_8,
1019 	CHAN_5170_5250_9,
1020 	CHAN_5170_5330_1,
1021 	CHAN_5170_5330_2,
1022 	CHAN_5250_5330_1,
1023 	CHAN_5250_5330_2,
1024 	CHAN_5250_5330_3,
1025 	CHAN_5250_5330_4,
1026 	CHAN_5250_5330_5,
1027 	CHAN_5250_5330_6,
1028 	CHAN_5250_5330_7,
1029 	CHAN_5250_5330_8,
1030 	CHAN_5250_5330_9,
1031 	CHAN_5250_5330_10,
1032 	CHAN_5250_5330_11,
1033 	CHAN_5250_5330_12,
1034 	CHAN_5250_5330_13,
1035 	CHAN_5490_5730_1,
1036 	CHAN_5490_5730_2,
1037 	CHAN_5490_5730_3,
1038 	CHAN_5490_5730_4,
1039 	CHAN_5490_5730_5,
1040 	CHAN_5490_5730_6,
1041 	CHAN_5490_5730_7,
1042 	CHAN_5490_5710_1,
1043 	CHAN_5490_5710_2,
1044 	CHAN_5490_5710_3,
1045 	CHAN_5490_5710_4,
1046 	CHAN_5490_5710_5,
1047 	CHAN_5490_5710_6,
1048 	CHAN_5490_5710_7,
1049 	CHAN_5490_5590_1,
1050 	CHAN_5490_5590_2,
1051 	CHAN_5490_5590_3,
1052 	CHAN_5490_5570_1,
1053 	CHAN_5490_5650_2,
1054 	CHAN_5490_5670_1,
1055 	CHAN_5490_5670_2,
1056 	CHAN_5490_5630_1,
1057 	CHAN_5650_5730_1,
1058 	CHAN_5650_5730_2,
1059 	CHAN_5650_5730_3,
1060 	CHAN_5735_5835_1,
1061 	CHAN_5735_5835_2,
1062 	CHAN_5735_5835_3,
1063 	CHAN_5735_5835_4,
1064 	CHAN_5735_5835_5,
1065 	CHAN_5735_5835_6,
1066 	CHAN_5735_5835_7,
1067 	CHAN_5735_5835_8,
1068 	CHAN_5735_5875_1,
1069 	CHAN_5735_5875_2,
1070 	CHAN_5735_5875_3,
1071 	CHAN_5735_5875_4,
1072 	CHAN_5735_5875_5,
1073 	CHAN_5735_5815_1,
1074 	CHAN_5735_5775_1,
1075 	CHAN_5835_5855_1,
1076 	CHAN_5855_5875_1,
1077 	CHAN_5850_5925_1,
1078 	CHAN_5850_5925_2,
1079 };
1080 
1081 const struct regulatory_rule reg_rules_5g[] = {
1082 
1083 	[CHAN_4910_4990_1] = {4910, 4990, 20, 20, 0},
1084 	[CHAN_4940_4990_1] = {4940, 4990, 20, 33, 0},
1085 	[CHAN_5030_5090_1] = {5030, 5090, 20, 20, 0},
1086 	[CHAN_5170_5250_1] = {5170, 5250, 80, 17, 0},
1087 	[CHAN_5170_5250_2] = {5170, 5250, 80, 23, 0},
1088 	[CHAN_5170_5250_3] = {5170, 5250, 80, 20, 0},
1089 	[CHAN_5170_5250_4] = {5170, 5250, 80, 30, 0},
1090 	[CHAN_5170_5250_5] = {5170, 5250, 80, 24, 0},
1091 	[CHAN_5170_5250_6] = {5170, 5250, 80, 18, 0},
1092 	[CHAN_5170_5250_7] = {5170, 5250, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
1093 	[CHAN_5170_5250_8] = {5170, 5250, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
1094 	[CHAN_5170_5250_9] = {5170, 5250, 40, 30, 0},
1095 	[CHAN_5170_5330_1] = {5170, 5330, 160, 20, REGULATORY_CHAN_NO_IR},
1096 	[CHAN_5170_5330_2] = {5170, 5330, 160, 24, 0},
1097 	[CHAN_5250_5330_1] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR},
1098 	[CHAN_5250_5330_2] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR},
1099 	[CHAN_5250_5330_3] = {5250, 5330, 80, 18, REGULATORY_CHAN_RADAR},
1100 	[CHAN_5250_5330_4] = {5250, 5330, 80, 30, REGULATORY_CHAN_RADAR},
1101 	[CHAN_5250_5330_5] = {5250, 5330, 80, 23, 0},
1102 	[CHAN_5250_5330_6] = {5250, 5330, 80, 30, 0},
1103 	[CHAN_5250_5330_7] = {5250, 5330, 80, 24, REGULATORY_CHAN_RADAR},
1104 	[CHAN_5250_5330_8] = {5250, 5330, 80, 36, 0},
1105 	[CHAN_5250_5330_9] = {5250, 5330, 80, 20, 0},
1106 	[CHAN_5250_5330_10] = {5250, 5330, 80, 24, 0},
1107 	[CHAN_5250_5330_11] = {5250, 5330, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
1108 	[CHAN_5250_5330_12] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR |
1109 						   REGULATORY_CHAN_INDOOR_ONLY},
1110 	[CHAN_5250_5330_13] = {5250, 5330, 40, 30, REGULATORY_CHAN_RADAR},
1111 	[CHAN_5490_5730_1] = {5490, 5730, 160, 24, REGULATORY_CHAN_RADAR},
1112 	[CHAN_5490_5730_2] = {5490, 5730, 160, 20, REGULATORY_CHAN_NO_IR},
1113 	[CHAN_5490_5730_3] = {5490, 5730, 160, 30, 0},
1114 	[CHAN_5490_5730_4] = {5490, 5730, 160, 24, 0},
1115 	[CHAN_5490_5730_5] = {5490, 5730, 160, 30, REGULATORY_CHAN_RADAR},
1116 	[CHAN_5490_5730_6] = {5490, 5730, 160, 23, REGULATORY_CHAN_RADAR},
1117 	[CHAN_5490_5730_7] = {5490, 5730, 160, 20, REGULATORY_CHAN_RADAR},
1118 	[CHAN_5490_5710_1] = {5490, 5710, 160, 30, REGULATORY_CHAN_RADAR},
1119 	[CHAN_5490_5710_2] = {5490, 5710, 160, 20, REGULATORY_CHAN_RADAR},
1120 	[CHAN_5490_5710_3] = {5490, 5710, 160, 27, REGULATORY_CHAN_RADAR},
1121 	[CHAN_5490_5710_4] = {5490, 5710,  40, 30, REGULATORY_CHAN_RADAR},
1122 	[CHAN_5490_5710_5] = {5490, 5710, 160, 24, REGULATORY_CHAN_RADAR},
1123 	[CHAN_5490_5710_6] = {5490, 5710, 160, 26, REGULATORY_CHAN_RADAR},
1124 	[CHAN_5490_5710_7] = {5490, 5710, 160, 23, REGULATORY_CHAN_RADAR},
1125 	[CHAN_5490_5590_1] = {5490, 5590, 80, 24, REGULATORY_CHAN_RADAR},
1126 	[CHAN_5490_5590_2] = {5490, 5590, 80, 30, 0},
1127 	[CHAN_5490_5590_3] = {5490, 5590, 80, 36, 0},
1128 	[CHAN_5490_5570_1] = {5490, 5570, 80, 30, REGULATORY_CHAN_RADAR},
1129 	[CHAN_5490_5650_2] = {5490, 5650, 160, 24, REGULATORY_CHAN_RADAR},
1130 	[CHAN_5490_5670_1] = {5490, 5670, 160, 20, REGULATORY_CHAN_RADAR},
1131 	[CHAN_5490_5670_2] = {5490, 5670, 160, 23, REGULATORY_CHAN_RADAR},
1132 	[CHAN_5490_5630_1] = {5490, 5630, 80, 30, REGULATORY_CHAN_RADAR},
1133 	[CHAN_5650_5730_1] = {5650, 5730, 80, 24, REGULATORY_CHAN_RADAR},
1134 	[CHAN_5650_5730_2] = {5650, 5730, 80, 30, 0},
1135 	[CHAN_5650_5730_3] = {5650, 5730, 80, 36, 0},
1136 	[CHAN_5735_5835_1] = {5735, 5835, 80, 23, 0},
1137 	[CHAN_5735_5835_2] = {5735, 5835, 80, 30, 0},
1138 	[CHAN_5735_5835_3] = {5735, 5835, 80, 20, 0},
1139 	[CHAN_5735_5835_4] = {5735, 5835, 80, 33, 0},
1140 	[CHAN_5735_5835_5] = {5735, 5835, 80, 20, REGULATORY_CHAN_NO_IR},
1141 	[CHAN_5735_5835_6] = {5735, 5835, 80, 24, 0},
1142 	[CHAN_5735_5835_7] = {5735, 5835, 80, 36, 0},
1143 	[CHAN_5735_5835_8] = {5735, 5835, 80, 23, REGULATORY_CHAN_RADAR},
1144 	[CHAN_5735_5875_1] = {5735, 5875, 20, 27, REGULATORY_CHAN_RADAR},
1145 	[CHAN_5735_5875_2] = {5735, 5875, 20, 30, 0},
1146 	[CHAN_5735_5875_3] = {5735, 5875, 80, 30, 0},
1147 	[CHAN_5735_5875_4] = {5735, 5875, 80, 14, 0},
1148 	[CHAN_5735_5875_5] = {5735, 5875, 80, 20, REGULATORY_CHAN_RADAR},
1149 	[CHAN_5735_5815_1] = {5735, 5815, 80, 30, 0},
1150 	[CHAN_5735_5775_1] = {5735, 5775, 40, 23, 0},
1151 	[CHAN_5835_5855_1] = {5835, 5855, 20, 30, 0},
1152 	[CHAN_5855_5875_1] = {5855, 5875, 20, 30, 0},
1153 	[CHAN_5850_5925_1] = {5850, 5925, 20, 24, 0},
1154 	[CHAN_5850_5925_2] = {5850, 5925, 20, 30, 0},
1155 };
1156 
1157 
1158 const struct regdomain regdomains_5g[] = {
1159 
1160 	[FCC1] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 3, {CHAN_5170_5250_1,
1161 						     CHAN_5250_5330_1,
1162 						     CHAN_5735_5835_2} },
1163 
1164 	[FCC2] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 3, {CHAN_5170_5250_2,
1165 						     CHAN_5250_5330_1,
1166 						     CHAN_5735_5835_2} },
1167 
1168 	[FCC3] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_5,
1169 						     CHAN_5250_5330_7,
1170 						     CHAN_5490_5730_1,
1171 						     CHAN_5735_5835_2} },
1172 
1173 	[FCC4] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 1, {CHAN_4940_4990_1} },
1174 
1175 	[FCC5] = {CTL_FCC, DFS_UNINIT_REGION, 2, 6, 2, {CHAN_5170_5250_4,
1176 							CHAN_5735_5835_2} },
1177 
1178 	[FCC6] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 5, {CHAN_5170_5250_5,
1179 						     CHAN_5250_5330_7,
1180 						     CHAN_5490_5590_1,
1181 						     CHAN_5650_5730_1,
1182 						     CHAN_5735_5835_2} },
1183 
1184 	[FCC8] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_4,
1185 						     CHAN_5250_5330_7,
1186 						     CHAN_5490_5730_1,
1187 						     CHAN_5735_5835_2} },
1188 
1189 	[FCC10] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 5, {CHAN_5170_5250_4,
1190 						      CHAN_5250_5330_7,
1191 						      CHAN_5490_5730_1,
1192 						      CHAN_5735_5835_2,
1193 						      CHAN_5850_5925_1} },
1194 
1195 	[FCC11] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_5,
1196 						      CHAN_5250_5330_7,
1197 						      CHAN_5490_5650_2,
1198 						      CHAN_5735_5835_6} },
1199 
1200 	[FCC13] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 4, {CHAN_5170_5330_2,
1201 							 CHAN_5250_5330_10,
1202 							 CHAN_5490_5730_4,
1203 							 CHAN_5735_5835_2} },
1204 
1205 	[FCC14] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 4, {CHAN_5170_5250_4,
1206 							 CHAN_5250_5330_10,
1207 							 CHAN_5490_5730_4,
1208 							 CHAN_5735_5835_2} },
1209 
1210 	[ETSI1] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1211 							CHAN_5250_5330_1,
1212 							CHAN_5490_5710_1} },
1213 
1214 	[ETSI3] = {CTL_ETSI, DFS_ETSI_REGION, 5, 0, 2, {CHAN_5170_5250_2,
1215 							CHAN_5250_5330_1} },
1216 
1217 	[ETSI4] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 2, {CHAN_5170_5250_6,
1218 							CHAN_5250_5330_3} },
1219 
1220 	[ETSI8] = {CTL_ETSI, DFS_UNINIT_REGION, 20, 0, 4, {CHAN_5170_5250_2,
1221 							   CHAN_5250_5330_5,
1222 							   CHAN_5490_5730_3,
1223 							   CHAN_5735_5835_2} },
1224 
1225 	[ETSI9] = {CTL_ETSI, DFS_ETSI_REGION, 20, 0, 4, {CHAN_5170_5250_2,
1226 							 CHAN_5250_5330_1,
1227 							 CHAN_5490_5710_5,
1228 							 CHAN_5735_5835_6} },
1229 
1230 	[ETSI10] = {CTL_ETSI, DFS_ETSI_REGION, 10, 0, 4, {CHAN_5170_5250_3,
1231 							  CHAN_5250_5330_2,
1232 							  CHAN_5490_5710_3,
1233 							  CHAN_5850_5925_2} },
1234 
1235 	[ETSI11] = {CTL_ETSI, DFS_ETSI_REGION, 10, 0, 4, {CHAN_5170_5250_3,
1236 							  CHAN_5250_5330_2,
1237 							  CHAN_5490_5710_3,
1238 							  CHAN_5735_5875_1} },
1239 
1240 	[ETSI12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_3,
1241 							 CHAN_5250_5330_2,
1242 							 CHAN_5490_5730_6,
1243 							 CHAN_5735_5835_8} },
1244 
1245 	[ETSI13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2,
1246 							 CHAN_5250_5330_1,
1247 							 CHAN_5490_5730_5,
1248 							 CHAN_5735_5875_4} },
1249 
1250 	[ETSI14] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2,
1251 							 CHAN_5250_5330_1,
1252 							 CHAN_5490_5730_7,
1253 							 CHAN_5735_5875_5} },
1254 
1255 	[ETSI15] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2,
1256 							 CHAN_5250_5330_1,
1257 							 CHAN_5490_5710_1,
1258 							 CHAN_5735_5835_2} },
1259 
1260 	[APL1] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5735_5835_2} },
1261 
1262 	[APL2] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5735_5815_1} },
1263 
1264 	[APL4] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 2, {CHAN_5170_5250_2,
1265 							 CHAN_5735_5835_1} },
1266 
1267 	[APL6] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_3,
1268 						       CHAN_5250_5330_2,
1269 						       CHAN_5735_5835_3} },
1270 
1271 	[APL8] = {CTL_FCC, DFS_ETSI_REGION, 2, 0, 2, {CHAN_5250_5330_4,
1272 						      CHAN_5735_5835_2} },
1273 
1274 	[APL9] = {CTL_ETSI, DFS_KR_REGION, 2, 6, 4, {CHAN_5170_5250_2,
1275 						     CHAN_5250_5330_1,
1276 						     CHAN_5490_5730_5,
1277 						     CHAN_5735_5835_2} },
1278 
1279 	[APL10] = {CTL_ETSI, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_2,
1280 						       CHAN_5250_5330_4,
1281 						       CHAN_5490_5710_1,
1282 						       CHAN_5735_5815_1} },
1283 
1284 	[APL11] = { CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_9,
1285 							 CHAN_5250_5330_13,
1286 							 CHAN_5490_5710_4,
1287 							 CHAN_5735_5875_2} },
1288 
1289 	[APL12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1290 							CHAN_5490_5570_1,
1291 							CHAN_5735_5775_1} },
1292 
1293 	[APL13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1294 							CHAN_5250_5330_1,
1295 							CHAN_5490_5670_2} },
1296 
1297 	[APL14] = {CTL_FCC, DFS_CN_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1298 						     CHAN_5250_5330_1,
1299 						     CHAN_5735_5835_4} },
1300 
1301 	[APL15] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1302 							 CHAN_5250_5330_5,
1303 							 CHAN_5735_5835_4} },
1304 
1305 	[APL16] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 5, {CHAN_5170_5250_1,
1306 							 CHAN_5250_5330_6,
1307 							 CHAN_5490_5590_2,
1308 							 CHAN_5650_5730_2,
1309 							 CHAN_5735_5835_2} },
1310 
1311 	[APL17] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 5, {CHAN_5170_5250_2,
1312 							 CHAN_5250_5330_8,
1313 							 CHAN_5490_5590_3,
1314 							 CHAN_5650_5730_3,
1315 							 CHAN_5735_5835_7} },
1316 
1317 	[APL19] = {CTL_FCC, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_4,
1318 						       CHAN_5250_5330_7,
1319 						       CHAN_5490_5730_1,
1320 						       CHAN_5735_5875_3} },
1321 
1322 	[APL20] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_8,
1323 							CHAN_5250_5330_12,
1324 							CHAN_5490_5730_5,
1325 							CHAN_5735_5835_4} },
1326 
1327 	[APL23] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_7,
1328 							  CHAN_5250_5330_11,
1329 							  CHAN_5735_5835_3} },
1330 
1331 	[MKK3] = {CTL_MKK, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5170_5250_3} },
1332 
1333 	[MKK5] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1334 						     CHAN_5250_5330_1,
1335 						     CHAN_5490_5710_7} },
1336 
1337 	[MKK11] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 5, {CHAN_4910_4990_1,
1338 						      CHAN_5170_5250_2,
1339 						      CHAN_5030_5090_1,
1340 						      CHAN_5250_5330_1,
1341 						      CHAN_5490_5710_7} },
1342 
1343 	[MKK16] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 1, {CHAN_5490_5710_6} },
1344 
1345 	[WORLD_5G_1] = {CTL_NONE, DFS_UNINIT_REGION, 2, 0, 2,
1346 			{CHAN_5170_5330_1,
1347 			 CHAN_5735_5835_5} },
1348 
1349 	[WORLD_5G_2] = {CTL_NONE, DFS_UNINIT_REGION, 2, 0, 3,
1350 			{CHAN_5170_5330_1,
1351 			 CHAN_5490_5730_2,
1352 			 CHAN_5735_5835_5} },
1353 };
1354 
1355 QDF_STATUS reg_get_num_countries(int *num_countries)
1356 {
1357 	*num_countries = QDF_ARRAY_SIZE(g_all_countries);
1358 
1359 	return QDF_STATUS_SUCCESS;
1360 }
1361 
1362 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn)
1363 {
1364 	*num_reg_dmn = QDF_ARRAY_SIZE(g_reg_dmn_pairs);
1365 
1366 	return QDF_STATUS_SUCCESS;
1367 }
1368 
1369 QDF_STATUS reg_get_default_country(uint16_t *default_country)
1370 {
1371 	*default_country = CTRY_UNITED_STATES;
1372 
1373 	return QDF_STATUS_SUCCESS;
1374 }
1375 
1376 bool reg_etsi13_regdmn(uint8_t reg_dmn)
1377 {
1378 	return reg_dmn == ETSI13;
1379 }
1380