xref: /wlan-dirver/qca-wifi-host-cmn/umac/regulatory/core/src/reg_db.c (revision bea437e2293c3d4fb1b5704fcf633aedac996962)
1 /*
2  * Copyright (c) 2017-2019 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 30.
24  */
25 
26 #include <qdf_types.h>
27 #include <qdf_trace.h>
28 #include <wlan_cmn.h>
29 #include <reg_services_public_struct.h>
30 #include "reg_db.h"
31 
32 enum country_code {
33 	CTRY_AFGHANISTAN = 4,
34 	CTRY_ALAND_ISLANDS = 248,
35 	CTRY_ALBANIA = 8,
36 	CTRY_ALGERIA = 12,
37 	CTRY_AMERICAN_SAMOA = 16,
38 	CTRY_ANDORRA = 20,
39 	CTRY_ANGUILLA = 660,
40 	CTRY_ANTIGUA_AND_BARBUDA = 28,
41 	CTRY_ARGENTINA = 32,
42 	CTRY_ARMENIA = 51,
43 	CTRY_MYANMAR = 104,
44 	CTRY_ARUBA = 533,
45 	CTRY_AUSTRALIA = 36,
46 	CTRY_AUSTRIA = 40,
47 	CTRY_AZERBAIJAN = 31,
48 	CTRY_BAHAMAS = 44,
49 	CTRY_BAHRAIN = 48,
50 	CTRY_BANGLADESH = 50,
51 	CTRY_BARBADOS = 52,
52 	CTRY_BELARUS = 112,
53 	CTRY_BELGIUM = 56,
54 	CTRY_BELIZE = 84,
55 	CTRY_BERMUDA = 60,
56 	CTRY_BHUTAN = 64,
57 	CTRY_BOLIVIA = 68,
58 	CTRY_BOSNIA_HERZ = 70,
59 	CTRY_BRAZIL = 76,
60 	CTRY_BRUNEI_DARUSSALAM = 96,
61 	CTRY_BULGARIA = 100,
62 	CTRY_BURKINA_FASO = 854,
63 	CTRY_CAMBODIA = 116,
64 	CTRY_CAMEROON = 120,
65 	CTRY_CANADA = 124,
66 	CTRY_CAYMAN_ISLANDS = 136,
67 	CTRY_CENTRAL_AFRICA_REPUBLIC = 140,
68 	CTRY_CHAD = 148,
69 	CTRY_CHILE = 152,
70 	CTRY_CHINA = 156,
71 	CTRY_CHRISTMAS_ISLAND = 162,
72 	CTRY_COLOMBIA = 170,
73 	CTRY_COOK_ISLANDS = 184,
74 	CTRY_COSTA_RICA = 188,
75 	CTRY_COTE_DIVOIRE = 384,
76 	CTRY_CROATIA = 191,
77 	CTRY_CYPRUS = 196,
78 	CTRY_CZECH = 203,
79 	CTRY_DENMARK = 208,
80 	CTRY_DOMINICA = 212,
81 	CTRY_DOMINICAN_REPUBLIC = 214,
82 	CTRY_ECUADOR = 218,
83 	CTRY_EGYPT = 818,
84 	CTRY_EL_SALVADOR = 222,
85 	CTRY_ESTONIA = 233,
86 	CTRY_ETHIOPIA = 231,
87 	CTRY_FALKLAND_ISLANDS = 238,
88 	CTRY_FAROE_ISLANDS = 234,
89 	CTRY_FINLAND = 246,
90 	CTRY_FRANCE = 250,
91 	CTRY_FRENCH_GUIANA = 254,
92 	CTRY_FRENCH_POLYNESIA = 258,
93 	CTRY_FRENCH_SOUTHERN_TERRITORIES = 260,
94 	CTRY_GEORGIA = 268,
95 	CTRY_GERMANY = 276,
96 	CTRY_GHANA = 288,
97 	CTRY_GIBRALTAR = 292,
98 	CTRY_GREECE = 300,
99 	CTRY_GREENLAND = 304,
100 	CTRY_GRENADA = 308,
101 	CTRY_GUADELOUPE = 312,
102 	CTRY_GUAM = 316,
103 	CTRY_GUATEMALA = 320,
104 	CTRY_GUERNSEY = 831,
105 	CTRY_GUYANA = 328,
106 	CTRY_HAITI = 332,
107 	CTRY_HEARD_ISLAND_AND_MCDONALD_ISLANDS = 334,
108 	CTRY_HOLY_SEE = 336,
109 	CTRY_HONDURAS = 340,
110 	CTRY_HONG_KONG = 344,
111 	CTRY_HUNGARY = 348,
112 	CTRY_ICELAND = 352,
113 	CTRY_INDIA = 356,
114 	CTRY_INDONESIA = 360,
115 	CTRY_IRAQ = 368,
116 	CTRY_IRELAND = 372,
117 	CTRY_ISLE_OF_MAN = 833,
118 	CTRY_ISRAEL = 376,
119 	CTRY_ITALY = 380,
120 	CTRY_JAMAICA = 388,
121 	CTRY_JERSEY = 832,
122 	CTRY_JORDAN = 400,
123 	CTRY_KAZAKHSTAN = 398,
124 	CTRY_KENYA = 404,
125 	CTRY_KOREA_ROC = 410,
126 	CTRY_KUWAIT = 414,
127 	CTRY_LATVIA = 428,
128 	CTRY_LEBANON = 422,
129 	CTRY_LESOTHO = 426,
130 	CTRY_LIECHTENSTEIN = 438,
131 	CTRY_LITHUANIA = 440,
132 	CTRY_LUXEMBOURG = 442,
133 	CTRY_MACAU = 446,
134 	CTRY_MACEDONIA = 807,
135 	CTRY_MALAWI = 454,
136 	CTRY_MALAYSIA = 458,
137 	CTRY_MALDIVES = 462,
138 	CTRY_MALTA = 470,
139 	CTRY_MARSHALL_ISLANDS = 584,
140 	CTRY_MARTINIQUE = 474,
141 	CTRY_MAURITANIA = 478,
142 	CTRY_MAURITIUS = 480,
143 	CTRY_MAYOTTE = 175,
144 	CTRY_MEXICO = 484,
145 	CTRY_MICRONESIA = 583,
146 	CTRY_MOLDOVA = 498,
147 	CTRY_MONACO = 492,
148 	CTRY_MONGOLIA = 496,
149 	CTRY_MONTENEGRO = 499,
150 	CTRY_MONTSERRAT = 500,
151 	CTRY_MOROCCO = 504,
152 	CTRY_NAMIBIA = 516,
153 	CTRY_NEPAL = 524,
154 	CTRY_NETHERLANDS = 528,
155 	CTRY_NETHERLANDS_ANTILLES = 530,
156 	CTRY_NEW_CALEDONIA = 540,
157 	CTRY_NEW_ZEALAND = 554,
158 	CTRY_NIGERIA = 566,
159 	CTRY_NORTHERN_MARIANA_ISLANDS = 580,
160 	CTRY_NICARAGUA = 558,
161 	CTRY_NIUE = 570,
162 	CTRY_NORFOLK_ISLAND = 574,
163 	CTRY_NORWAY = 578,
164 	CTRY_OMAN = 512,
165 	CTRY_PAKISTAN = 586,
166 	CTRY_PALAU = 585,
167 	CTRY_PANAMA = 591,
168 	CTRY_PAPUA_NEW_GUINEA = 598,
169 	CTRY_PARAGUAY = 600,
170 	CTRY_PERU = 604,
171 	CTRY_PHILIPPINES = 608,
172 	CTRY_POLAND = 616,
173 	CTRY_PORTUGAL = 620,
174 	CTRY_PUERTO_RICO = 630,
175 	CTRY_QATAR = 634,
176 	CTRY_REUNION = 638,
177 	CTRY_ROMANIA = 642,
178 	CTRY_RUSSIA = 643,
179 	CTRY_RWANDA = 646,
180 	CTRY_SAINT_BARTHELEMY = 652,
181 	CTRY_SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA = 654,
182 	CTRY_SAINT_KITTS_AND_NEVIS = 659,
183 	CTRY_SAINT_LUCIA = 662,
184 	CTRY_SAINT_MARTIN = 663,
185 	CTRY_SAINT_PIERRE_AND_MIQUELON = 666,
186 	CTRY_SAINT_VINCENT_AND_THE_GRENADIENS = 670,
187 	CTRY_SAMOA = 882,
188 	CTRY_SAN_MARINO = 674,
189 	CTRY_SAO_TOME_AND_PRINCIPE = 678,
190 	CTRY_SAUDI_ARABIA = 682,
191 	CTRY_SENEGAL = 686,
192 	CTRY_SERBIA = 688,
193 	CTRY_SINGAPORE = 702,
194 	CTRY_SINT_MAARTEN = 534,
195 	CTRY_SLOVAKIA = 703,
196 	CTRY_SLOVENIA = 705,
197 	CTRY_SOUTH_AFRICA = 710,
198 	CTRY_SPAIN = 724,
199 	CTRY_SURINAME = 740,
200 	CTRY_SRI_LANKA = 144,
201 	CTRY_SVALBARD_AND_JAN_MAYEN = 744,
202 	CTRY_SWEDEN = 752,
203 	CTRY_SWITZERLAND = 756,
204 	CTRY_TAIWAN = 158,
205 	CTRY_TANZANIA = 834,
206 	CTRY_THAILAND = 764,
207 	CTRY_TOGO = 768,
208 	CTRY_TRINIDAD_Y_TOBAGO = 780,
209 	CTRY_TUNISIA = 788,
210 	CTRY_TURKEY = 792,
211 	CTRY_TURKS_AND_CAICOS = 796,
212 	CTRY_UGANDA = 800,
213 	CTRY_UKRAINE = 804,
214 	CTRY_UAE = 784,
215 	CTRY_UNITED_KINGDOM = 826,
216 	CTRY_UNITED_STATES = 840,
217 	CTRY_UNITED_STATES_MINOR_OUTLYING_ISLANDS = 581,
218 	CTRY_URUGUAY = 858,
219 	CTRY_UZBEKISTAN = 860,
220 	CTRY_VANUATU = 548,
221 	CTRY_VENEZUELA = 862,
222 	CTRY_VIET_NAM = 704,
223 	CTRY_VIRGIN_ISLANDS = 850,
224 	CTRY_VIRGIN_ISLANDS_BRITISH = 92,
225 	CTRY_WALLIS_AND_FUTUNA = 876,
226 	CTRY_YEMEN = 887,
227 	CTRY_ZIMBABWE = 716,
228 	CTRY_JAPAN = 392,
229 	CTRY_JAPAN15 = 4015,
230 	CTRY_XA = 4100,
231 };
232 
233 enum reg_domain {
234 	NULL1_WORLD = 0x03,
235 
236 	FCC1_FCCA = 0x10,
237 	FCC1_WORLD = 0x11,
238 	FCC2_FCCA = 0x20,
239 	FCC2_WORLD = 0x21,
240 	FCC2_ETSIC = 0x22,
241 	FCC3_FCCA = 0x3A,
242 	FCC3_WORLD = 0x3B,
243 	FCC3_ETSIC = 0x3F,
244 	FCC4_FCCA = 0x12,
245 	FCC5_FCCA = 0x13,
246 	FCC6_WORLD = 0x23,
247 	FCC6_FCCA = 0x14,
248 	FCC8_FCCA = 0x16,
249 	FCC9_FCCA = 0x17,
250 	FCC10_FCCA = 0x18,
251 	FCC11_WORLD = 0x19,
252 	FCC13_WORLD = 0xE4,
253 	FCC14_FCCB = 0xE6,
254 #ifdef CONFIG_BAND_6GHZ
255 	FCC15_FCCA = 0xEA,
256 	FCC16_FCCA = 0xE8,
257 	FCC17_FCCA = 0xE9,
258 #endif
259 	ETSI1_WORLD = 0x37,
260 	ETSI3_WORLD = 0x36,
261 	ETSI4_WORLD = 0x30,
262 	ETSI8_WORLD = 0x3D,
263 	ETSI9_WORLD = 0x3E,
264 	ETSI10_WORLD = 0x24,
265 	ETSI10_FCCA = 0x25,
266 	ETSI11_WORLD = 0x26,
267 	ETSI12_WORLD = 0x28,
268 	ETSI13_WORLD = 0x27,
269 	ETSI14_WORLD = 0x29,
270 	ETSI15_WORLD = 0x31,
271 
272 	APL1_WORLD = 0x52,
273 	APL1_ETSIC = 0x55,
274 	APL2_WORLD = 0x45,
275 	APL2_ETSIC = 0x56,
276 	APL2_ETSID = 0x41,
277 	APL4_WORLD = 0x42,
278 	APL6_WORLD = 0x5B,
279 	APL8_WORLD = 0x5D,
280 	APL9_WORLD = 0x5E,
281 	APL9_MKKC  = 0x48,
282 	APL9_KRRA  = 0x43,
283 	APL10_WORLD = 0x5F,
284 	APL11_FCCA = 0x4F,
285 	APL12_WORLD = 0x51,
286 	APL13_WORLD = 0x5A,
287 	APL14_WORLD = 0x57,
288 	APL15_WORLD = 0x59,
289 	APL16_WORLD = 0x70,
290 	APL16_ETSIC = 0x6D,
291 	APL17_ETSIC = 0xE7,
292 	APL17_ETSID = 0xE0,
293 	APL19_ETSIC = 0x71,
294 	APL20_WORLD = 0xE5,
295 	APL23_WORLD = 0xE3,
296 	APL24_ETSIC = 0xE2,
297 
298 	MKK3_MKKC = 0x82,
299 	MKK5_MKKA = 0x99,
300 	MKK5_MKKC = 0x88,
301 	MKK11_MKKC = 0xD7,
302 	MKK16_MKKC = 0xDF,
303 	MKK17_MKKC = 0xE1,
304 
305 	WORLD_60 = 0x60,
306 	WORLD_61 = 0x61,
307 	WORLD_62 = 0x62,
308 	WORLD_63 = 0x63,
309 	WORLD_65 = 0x65,
310 	WORLD_64 = 0x64,
311 	WORLD_66 = 0x66,
312 	WORLD_69 = 0x69,
313 	WORLD_67 = 0x67,
314 	WORLD_68 = 0x68,
315 	WORLD_6A = 0x6A,
316 	WORLD_6C = 0x6C,
317 };
318 
319 #ifndef CONFIG_REG_CLIENT
320 const struct country_code_to_reg_domain g_all_countries[] = {
321 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0},
322 	{CTRY_ALAND_ISLANDS, FCC3_WORLD, "AX", 40, 160, 0},
323 	{CTRY_ALBANIA, ETSI1_WORLD, "AL", 40, 160, 0},
324 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
325 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
326 	{CTRY_ANDORRA, ETSI3_WORLD, "AD", 40, 160, 0},
327 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
328 	{CTRY_ANTIGUA_AND_BARBUDA, ETSI1_WORLD, "AG", 40, 160, 0},
329 	{CTRY_ARGENTINA, APL16_ETSIC, "AR", 40, 160, 0},
330 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
331 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
332 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
333 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT", 40, 160, 0},
334 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0},
335 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0},
336 	{CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0},
337 	{CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0},
338 	{CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0},
339 	{CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0},
340 	{CTRY_BELGIUM, ETSI1_WORLD, "BE", 40, 160, 0},
341 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0},
342 	{CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0},
343 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0},
344 	{CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0},
345 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", 40, 160, 0},
346 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0},
347 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0},
348 	{CTRY_BULGARIA, ETSI1_WORLD, "BG", 40, 160, 0},
349 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0},
350 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0},
351 	{CTRY_CAMEROON, ETSI1_WORLD, "CM", 40, 160, 0},
352 	{CTRY_CANADA, FCC6_FCCA, "CA", 40, 160, 0},
353 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0},
354 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0},
355 	{CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0},
356 	{CTRY_CHILE, FCC13_WORLD, "CL", 40, 160, 0},
357 	{CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0},
358 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0},
359 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0},
360 	{CTRY_COOK_ISLANDS, FCC3_WORLD, "CK", 40, 160, 0},
361 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 160, 0},
362 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0},
363 	{CTRY_CROATIA, ETSI1_WORLD, "HR", 40, 160, 0},
364 	{CTRY_CYPRUS, ETSI1_WORLD, "CY", 40, 160, 0},
365 	{CTRY_CZECH, ETSI1_WORLD, "CZ", 40, 160, 0},
366 	{CTRY_DENMARK, ETSI1_WORLD, "DK", 40, 160,  0},
367 	{CTRY_DOMINICA, FCC1_FCCA, "DM", 40, 160, 0},
368 	{CTRY_DOMINICAN_REPUBLIC, FCC3_FCCA, "DO", 40, 160, 0},
369 	{CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0},
370 	{CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0},
371 	{CTRY_EL_SALVADOR, FCC1_WORLD, "SV", 40, 20, 0},
372 	{CTRY_ESTONIA, ETSI1_WORLD, "EE", 40, 160, 0},
373 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0},
374 	{CTRY_FALKLAND_ISLANDS, ETSI1_WORLD, "FK", 40, 160, 0},
375 	{CTRY_FAROE_ISLANDS, ETSI1_WORLD, "FO", 40, 160, 0},
376 	{CTRY_FINLAND, ETSI1_WORLD, "FI", 40, 160, 0},
377 	{CTRY_FRANCE, ETSI1_WORLD, "FR", 40, 160, 0},
378 	{CTRY_FRENCH_GUIANA, ETSI1_WORLD, "GF", 40, 160, 0},
379 	{CTRY_FRENCH_POLYNESIA, ETSI1_WORLD, "PF", 40, 160, 0},
380 	{CTRY_FRENCH_SOUTHERN_TERRITORIES, ETSI1_WORLD, "TF", 40, 160, 0},
381 	{CTRY_GEORGIA, ETSI1_WORLD, "GE", 40, 160, 0},
382 	{CTRY_GERMANY, ETSI1_WORLD, "DE", 40, 160, 0},
383 	{CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0},
384 	{CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0},
385 	{CTRY_GREECE, ETSI1_WORLD, "GR", 40, 160, 0},
386 	{CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0},
387 	{CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0},
388 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0},
389 	{CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0},
390 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0},
391 	{CTRY_GUERNSEY, ETSI1_WORLD, "GG", 40, 160, 0},
392 	{CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0},
393 	{CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0},
394 	{CTRY_HEARD_ISLAND_AND_MCDONALD_ISLANDS, FCC6_WORLD, "HM", 40, 160, 0},
395 	{CTRY_HOLY_SEE, ETSI1_WORLD, "VA", 40, 160, 0},
396 	{CTRY_HONDURAS, FCC3_WORLD, "HN", 40, 160, 0},
397 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0},
398 	{CTRY_HUNGARY, ETSI1_WORLD, "HU", 40, 160, 0},
399 	{CTRY_ICELAND, ETSI1_WORLD, "IS", 40, 160, 0},
400 	{CTRY_INDIA, APL19_ETSIC, "IN", 40, 160, 0},
401 	{CTRY_INDONESIA, APL2_ETSID, "ID", 40, 80, 0},
402 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0},
403 	{CTRY_IRELAND, ETSI1_WORLD, "IE", 40, 160, 0},
404 	{CTRY_ISLE_OF_MAN, ETSI1_WORLD, "IM", 40, 160, 0},
405 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0},
406 	{CTRY_ITALY, ETSI1_WORLD, "IT", 40, 160,  0},
407 	{CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0},
408 	{CTRY_JERSEY, ETSI1_WORLD, "JE", 40, 160, 0},
409 	{CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0},
410 	{CTRY_KAZAKHSTAN, MKK5_MKKC, "KZ", 40, 160, 0},
411 	{CTRY_KENYA, ETSI13_WORLD, "KE", 40, 160, 0},
412 	{CTRY_KOREA_ROC, APL9_MKKC, "KR", 40, 160, 0},
413 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0},
414 	{CTRY_LATVIA, ETSI1_WORLD, "LV", 40, 160, 0},
415 	{CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0},
416 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0},
417 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", 40, 160, 0},
418 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT", 40, 160, 0},
419 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", 40, 160, 0},
420 	{CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0},
421 	{CTRY_MACEDONIA, ETSI1_WORLD, "MK", 40, 160, 0},
422 	{CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0},
423 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0},
424 	{CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0},
425 	{CTRY_MALTA, ETSI1_WORLD, "MT", 40, 160, 0},
426 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0},
427 	{CTRY_MARTINIQUE, ETSI1_WORLD, "MQ", 40, 160, 0},
428 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0},
429 	{CTRY_MAURITIUS, ETSI1_WORLD, "MU", 40, 160, 0},
430 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0},
431 	{CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0},
432 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0},
433 	{CTRY_MOLDOVA, ETSI1_WORLD, "MD", 40, 160, 0},
434 	{CTRY_MONACO, ETSI1_WORLD, "MC", 40, 160, 0},
435 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0},
436 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME", 40, 160, 0},
437 	{CTRY_MONTSERRAT, ETSI1_WORLD, "MS", 40, 160, 0},
438 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0},
439 	{CTRY_MYANMAR, APL1_WORLD, "MM", 40, 160, 0},
440 	{CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0},
441 	{CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0},
442 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL", 40, 160, 0},
443 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", 40, 160, 0},
444 	{CTRY_NEW_CALEDONIA, ETSI1_WORLD, "NC", 40, 160, 0},
445 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0},
446 	{CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0},
447 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0},
448 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0},
449 	{CTRY_NIUE, ETSI1_WORLD, "NU", 40, 160, 0},
450 	{CTRY_NORFOLK_ISLAND, FCC6_WORLD, "NF", 40, 160, 0},
451 	{CTRY_NORWAY, ETSI1_WORLD, "NO", 40, 160, 0},
452 	{CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0},
453 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0},
454 	{CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0},
455 	{CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0},
456 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0},
457 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0},
458 	{CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0},
459 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0},
460 	{CTRY_POLAND, ETSI1_WORLD, "PL", 40, 160, 0},
461 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT", 40, 160, 0},
462 	{CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0},
463 	{CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0},
464 	{CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0},
465 	{CTRY_ROMANIA, ETSI1_WORLD, "RO", 40, 160, 0},
466 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0},
467 	{CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0},
468 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0},
469 	{CTRY_SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA, ETSI1_WORLD, "SH",
470 	 40, 160, 0},
471 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0},
472 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0},
473 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0},
474 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI1_WORLD, "PM", 40, 160, 0},
475 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI1_WORLD,
476 	 "VC" , 40, 160, 0},
477 	{CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0},
478 	{CTRY_SAN_MARINO, FCC3_FCCA, "SM", 40, 160, 0},
479 	{CTRY_SAO_TOME_AND_PRINCIPE, FCC3_WORLD, "ST", 40, 160, 0},
480 	{CTRY_SAUDI_ARABIA, ETSI15_WORLD, "SA", 40, 160, 0},
481 	{CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0},
482 	{CTRY_SERBIA, ETSI1_WORLD, "RS", 40, 160, 0},
483 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0},
484 	{CTRY_SINT_MAARTEN, ETSI1_WORLD, "SX", 40, 160, 0},
485 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK", 40, 160, 0},
486 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI", 40, 160, 0},
487 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0},
488 	{CTRY_SPAIN, ETSI1_WORLD, "ES", 40, 160, 0},
489 	{CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0},
490 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0},
491 	{CTRY_SVALBARD_AND_JAN_MAYEN, FCC6_WORLD, "SJ", 40, 160, 0},
492 	{CTRY_SWEDEN, ETSI1_WORLD, "SE", 40, 160, 0},
493 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH", 40, 160, 0},
494 	{CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0},
495 	{CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0},
496 	{CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0},
497 	{CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0},
498 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0},
499 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0},
500 	{CTRY_TURKEY, ETSI1_WORLD, "TR", 40, 160, 0},
501 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0},
502 	{CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0},
503 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0},
504 	{CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0},
505 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", 40, 160, 0},
506 	{CTRY_UNITED_STATES, FCC8_FCCA, "US", 40, 160, 0},
507 	{CTRY_UNITED_STATES_MINOR_OUTLYING_ISLANDS, FCC8_FCCA, "UM", 40, 160,
508 	 0},
509 	{CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0},
510 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0},
511 	{CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0},
512 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0},
513 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0},
514 	{CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0},
515 	{CTRY_VIRGIN_ISLANDS_BRITISH, ETSI1_WORLD, "VG", 40, 160, 0},
516 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0},
517 	{CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0},
518 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0},
519 	{CTRY_JAPAN, MKK17_MKKC, "JP", 40, 160, 0},
520 	{CTRY_JAPAN15, MKK17_MKKC, "JP", 40, 160, 0},
521 };
522 #else
523 #ifdef WLAN_FEATURE_DSRC
524 const struct country_code_to_reg_domain g_all_countries[] = {
525 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0},
526 	{CTRY_ALAND_ISLANDS, FCC3_WORLD, "AX", 40, 160, 0},
527 	{CTRY_ALBANIA, ETSI13_WORLD, "AL", 40, 160, 0},
528 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
529 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
530 	{CTRY_ANDORRA, ETSI3_WORLD, "AD", 40, 160, 0},
531 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
532 	{CTRY_ANTIGUA_AND_BARBUDA, ETSI10_WORLD, "AG", 40, 160, 0},
533 	{CTRY_ARGENTINA, APL17_ETSIC, "AR", 40, 160, 0},
534 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
535 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
536 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
537 	{CTRY_AUSTRIA, ETSI10_WORLD, "AT", 40, 160, 0},
538 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0},
539 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0},
540 	{CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0},
541 	{CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0},
542 	{CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0},
543 	{CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0},
544 	{CTRY_BELGIUM, ETSI10_WORLD, "BE", 40, 160, 0},
545 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0},
546 	{CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0},
547 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0},
548 	{CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0},
549 	{CTRY_BOSNIA_HERZ, ETSI13_WORLD, "BA", 40, 160, 0},
550 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0},
551 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0},
552 	{CTRY_BULGARIA, ETSI10_WORLD, "BG", 40, 160, 0},
553 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0},
554 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0},
555 	{CTRY_CAMEROON, ETSI1_WORLD, "CM", 40, 160, 0},
556 	{CTRY_CANADA, FCC3_FCCA, "CA", 40, 160, 0},
557 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0},
558 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0},
559 	{CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0},
560 	{CTRY_CHILE, FCC13_WORLD, "CL", 40, 160, 0},
561 	{CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0},
562 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0},
563 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0},
564 	{CTRY_COOK_ISLANDS, FCC3_WORLD, "CK", 40, 160, 0},
565 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 160, 0},
566 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0},
567 	{CTRY_CROATIA, ETSI10_WORLD, "HR", 40, 160, 0},
568 	{CTRY_CYPRUS, ETSI10_WORLD, "CY", 40, 160, 0},
569 	{CTRY_CZECH, ETSI10_WORLD, "CZ", 40, 160, 0},
570 	{CTRY_DENMARK, ETSI10_WORLD, "DK", 40, 160,  0},
571 	{CTRY_DOMINICA, FCC2_FCCA, "DM", 40, 160, 0},
572 	{CTRY_DOMINICAN_REPUBLIC, FCC3_FCCA, "DO", 40, 160, 0},
573 	{CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0},
574 	{CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0},
575 	{CTRY_EL_SALVADOR, FCC2_WORLD, "SV", 40, 20, 0},
576 	{CTRY_ESTONIA, ETSI10_WORLD, "EE", 40, 160, 0},
577 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0},
578 	{CTRY_FALKLAND_ISLANDS, ETSI10_WORLD, "FK", 40, 160, 0},
579 	{CTRY_FAROE_ISLANDS, ETSI10_WORLD, "FO", 40, 160, 0},
580 	{CTRY_FINLAND, ETSI10_WORLD, "FI", 40, 160, 0},
581 	{CTRY_FRANCE, ETSI10_WORLD, "FR", 40, 160, 0},
582 	{CTRY_FRENCH_GUIANA, ETSI10_WORLD, "GF", 40, 160, 0},
583 	{CTRY_FRENCH_POLYNESIA, ETSI10_WORLD, "PF", 40, 160, 0},
584 	{CTRY_FRENCH_SOUTHERN_TERRITORIES, ETSI10_WORLD, "TF", 40, 160, 0},
585 	{CTRY_GEORGIA, ETSI1_WORLD, "GE", 40, 160, 0},
586 	{CTRY_GERMANY, ETSI10_WORLD, "DE", 40, 160, 0},
587 	{CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0},
588 	{CTRY_GIBRALTAR, ETSI10_WORLD, "GI", 40, 160, 0},
589 	{CTRY_GREECE, ETSI10_WORLD, "GR", 40, 160, 0},
590 	{CTRY_GREENLAND, ETSI10_WORLD, "GL", 40, 160, 0},
591 	{CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0},
592 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0},
593 	{CTRY_GUAM, FCC10_FCCA, "GU", 40, 160, 0},
594 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0},
595 	{CTRY_GUERNSEY, ETSI10_WORLD, "GG", 40, 160, 0},
596 	{CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0},
597 	{CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0},
598 	{CTRY_HEARD_ISLAND_AND_MCDONALD_ISLANDS, FCC6_WORLD, "HM", 40, 160, 0},
599 	{CTRY_HOLY_SEE, ETSI10_WORLD, "VA", 40, 160, 0},
600 	{CTRY_HONDURAS, FCC13_WORLD, "HN", 40, 160, 0},
601 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0},
602 	{CTRY_HUNGARY, ETSI10_WORLD, "HU", 40, 160, 0},
603 	{CTRY_ICELAND, ETSI10_WORLD, "IS", 40, 160, 0},
604 	{CTRY_INDIA, APL15_WORLD, "IN", 40, 160, 0},
605 	{CTRY_INDONESIA, APL2_ETSID, "ID", 40, 80, 0},
606 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0},
607 	{CTRY_IRELAND, ETSI10_WORLD, "IE", 40, 160, 0},
608 	{CTRY_ISLE_OF_MAN, ETSI10_WORLD, "IM", 40, 160, 0},
609 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0},
610 	{CTRY_ITALY, ETSI10_WORLD, "IT", 40, 160,  0},
611 	{CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0},
612 	{CTRY_JERSEY, ETSI10_WORLD, "JE", 40, 160, 0},
613 	{CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0},
614 	{CTRY_KAZAKHSTAN, MKK5_MKKC, "KZ", 40, 160, 0},
615 	{CTRY_KENYA, ETSI13_WORLD, "KE", 40, 160, 0},
616 	{CTRY_KOREA_ROC, APL9_MKKC, "KR", 40, 160, 0},
617 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0},
618 	{CTRY_LATVIA, ETSI10_WORLD, "LV", 40, 160, 0},
619 	{CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0},
620 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0},
621 	{CTRY_LIECHTENSTEIN, ETSI10_WORLD, "LI", 40, 160, 0},
622 	{CTRY_LITHUANIA, ETSI10_WORLD, "LT", 40, 160, 0},
623 	{CTRY_LUXEMBOURG, ETSI10_WORLD, "LU", 40, 160, 0},
624 	{CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0},
625 	{CTRY_MACEDONIA, ETSI13_WORLD, "MK", 40, 160, 0},
626 	{CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0},
627 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0},
628 	{CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0},
629 	{CTRY_MALTA, ETSI10_WORLD, "MT", 40, 160, 0},
630 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0},
631 	{CTRY_MARTINIQUE, ETSI10_WORLD, "MQ", 40, 160, 0},
632 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0},
633 	{CTRY_MAURITIUS, ETSI13_WORLD, "MU", 40, 160, 0},
634 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0},
635 	{CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0},
636 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0},
637 	{CTRY_MOLDOVA, ETSI13_WORLD, "MD", 40, 160, 0},
638 	{CTRY_MONACO, ETSI10_WORLD, "MC", 40, 160, 0},
639 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0},
640 	{CTRY_MONTENEGRO, ETSI10_WORLD, "ME", 40, 160, 0},
641 	{CTRY_MONTSERRAT, ETSI10_WORLD, "MS", 40, 160, 0},
642 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0},
643 	{CTRY_MYANMAR, APL1_WORLD, "MM", 40, 160, 0},
644 	{CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0},
645 	{CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0},
646 	{CTRY_NETHERLANDS, ETSI10_WORLD, "NL", 40, 160, 0},
647 	{CTRY_NETHERLANDS_ANTILLES, ETSI10_WORLD, "AN", 40, 160, 0},
648 	{CTRY_NEW_CALEDONIA, ETSI10_WORLD, "NC", 40, 160, 0},
649 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0},
650 	{CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0},
651 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC10_FCCA, "MP", 40, 160, 0},
652 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0},
653 	{CTRY_NIUE, ETSI10_WORLD, "NU", 40, 160, 0},
654 	{CTRY_NORFOLK_ISLAND, FCC6_WORLD, "NF", 40, 160, 0},
655 	{CTRY_NORWAY, ETSI10_WORLD, "NO", 40, 160, 0},
656 	{CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0},
657 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0},
658 	{CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0},
659 	{CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0},
660 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0},
661 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0},
662 	{CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0},
663 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0},
664 	{CTRY_POLAND, ETSI10_WORLD, "PL", 40, 160, 0},
665 	{CTRY_PORTUGAL, ETSI10_WORLD, "PT", 40, 160, 0},
666 	{CTRY_PUERTO_RICO, FCC10_FCCA, "PR", 40, 160, 0},
667 	{CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0},
668 	{CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0},
669 	{CTRY_ROMANIA, ETSI10_WORLD, "RO", 40, 160, 0},
670 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0},
671 	{CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0},
672 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0},
673 	{CTRY_SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA, ETSI10_WORLD, "SH",
674 	 40, 160, 0},
675 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0},
676 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0},
677 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0},
678 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI13_WORLD, "PM", 40, 160, 0},
679 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI13_WORLD, "VC",
680 	 40, 160, 0},
681 	{CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0},
682 	{CTRY_SAN_MARINO, FCC3_FCCA, "SM", 40, 160, 0},
683 	{CTRY_SAO_TOME_AND_PRINCIPE, FCC3_WORLD, "ST", 40, 160, 0},
684 	{CTRY_SAUDI_ARABIA, ETSI15_WORLD, "SA", 40, 160, 0},
685 	{CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0},
686 	{CTRY_SERBIA, ETSI13_WORLD, "RS", 40, 160, 0},
687 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0},
688 	{CTRY_SINT_MAARTEN, ETSI10_WORLD, "SX", 40, 160, 0},
689 	{CTRY_SLOVAKIA, ETSI10_WORLD, "SK", 40, 160, 0},
690 	{CTRY_SLOVENIA, ETSI10_WORLD, "SI", 40, 160, 0},
691 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0},
692 	{CTRY_SPAIN, ETSI10_WORLD, "ES", 40, 160, 0},
693 	{CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0},
694 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0},
695 	{CTRY_SVALBARD_AND_JAN_MAYEN, FCC6_WORLD, "SJ", 40, 160, 0},
696 	{CTRY_SWEDEN, ETSI10_WORLD, "SE", 40, 160, 0},
697 	{CTRY_SWITZERLAND, ETSI10_WORLD, "CH", 40, 160, 0},
698 	{CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0},
699 	{CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0},
700 	{CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0},
701 	{CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0},
702 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0},
703 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0},
704 	{CTRY_TURKEY, ETSI13_WORLD, "TR", 40, 160, 0},
705 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0},
706 	{CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0},
707 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0},
708 	{CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0},
709 	{CTRY_UNITED_KINGDOM, ETSI10_WORLD, "GB", 40, 160, 0},
710 	{CTRY_UNITED_STATES, FCC10_FCCA, "US", 40, 160, 0},
711 	{CTRY_UNITED_STATES_MINOR_OUTLYING_ISLANDS, FCC10_FCCA, "UM", 40, 160,
712 	 0},
713 	{CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0},
714 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0},
715 	{CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0},
716 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0},
717 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0},
718 	{CTRY_VIRGIN_ISLANDS, FCC10_FCCA, "VI", 40, 160, 0},
719 	{CTRY_VIRGIN_ISLANDS_BRITISH, ETSI10_WORLD, "VG", 40, 160, 0},
720 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0},
721 	{CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0},
722 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0},
723 	{CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0},
724 	{CTRY_JAPAN15, MKK5_MKKC, "JP", 40, 160, 0},
725 	{CTRY_XA, MKK5_MKKA, "XA", 40, 160, 0},
726 };
727 #else
728 const struct country_code_to_reg_domain g_all_countries[] = {
729 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0},
730 	{CTRY_ALAND_ISLANDS, FCC3_WORLD, "AX", 40, 160, 0},
731 	{CTRY_ALBANIA, ETSI13_WORLD, "AL", 40, 160, 0},
732 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
733 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
734 	{CTRY_ANDORRA, ETSI3_WORLD, "AD", 40, 160, 0},
735 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
736 	{CTRY_ANTIGUA_AND_BARBUDA, ETSI13_WORLD, "AG", 40, 160, 0},
737 	{CTRY_ARGENTINA, APL17_ETSIC, "AR", 40, 160, 0},
738 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
739 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
740 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
741 	{CTRY_AUSTRIA, ETSI13_WORLD, "AT", 40, 160, 0},
742 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0},
743 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0},
744 	{CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0},
745 	{CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0},
746 	{CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0},
747 	{CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0},
748 	{CTRY_BELGIUM, ETSI13_WORLD, "BE", 40, 160, 0},
749 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0},
750 	{CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0},
751 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0},
752 	{CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0},
753 	{CTRY_BOSNIA_HERZ, ETSI13_WORLD, "BA", 40, 160, 0},
754 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0},
755 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0},
756 	{CTRY_BULGARIA, ETSI13_WORLD, "BG", 40, 160, 0},
757 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0},
758 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0},
759 	{CTRY_CAMEROON, ETSI1_WORLD, "CM", 40, 160, 0},
760 	{CTRY_CANADA, FCC6_FCCA, "CA", 40, 160, 0},
761 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0},
762 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0},
763 	{CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0},
764 	{CTRY_CHILE, FCC13_WORLD, "CL", 40, 160, 0},
765 	{CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0},
766 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0},
767 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0},
768 	{CTRY_COOK_ISLANDS, FCC3_WORLD, "CK", 40, 160, 0},
769 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 160, 0},
770 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0},
771 	{CTRY_CROATIA, ETSI13_WORLD, "HR", 40, 160, 0},
772 	{CTRY_CYPRUS, ETSI13_WORLD, "CY", 40, 160, 0},
773 	{CTRY_CZECH, ETSI13_WORLD, "CZ", 40, 160, 0},
774 	{CTRY_DENMARK, ETSI13_WORLD, "DK", 40, 160,  0},
775 	{CTRY_DOMINICA, FCC2_FCCA, "DM", 40, 160, 0},
776 	{CTRY_DOMINICAN_REPUBLIC, FCC3_FCCA, "DO", 40, 160, 0},
777 	{CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0},
778 	{CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0},
779 	{CTRY_EL_SALVADOR, FCC2_WORLD, "SV", 40, 20, 0},
780 	{CTRY_ESTONIA, ETSI13_WORLD, "EE", 40, 160, 0},
781 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0},
782 	{CTRY_FALKLAND_ISLANDS, ETSI13_WORLD, "FK", 40, 160, 0},
783 	{CTRY_FAROE_ISLANDS, ETSI13_WORLD, "FO", 40, 160, 0},
784 	{CTRY_FINLAND, ETSI13_WORLD, "FI", 40, 160, 0},
785 	{CTRY_FRANCE, ETSI13_WORLD, "FR", 40, 160, 0},
786 	{CTRY_FRENCH_GUIANA, ETSI13_WORLD, "GF", 40, 160, 0},
787 	{CTRY_FRENCH_POLYNESIA, ETSI13_WORLD, "PF", 40, 160, 0},
788 	{CTRY_FRENCH_SOUTHERN_TERRITORIES, ETSI13_WORLD, "TF", 40, 160, 0},
789 	{CTRY_GEORGIA, ETSI1_WORLD, "GE", 40, 160, 0},
790 	{CTRY_GERMANY, ETSI13_WORLD, "DE", 40, 160, 0},
791 	{CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0},
792 	{CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0},
793 	{CTRY_GREECE, ETSI13_WORLD, "GR", 40, 160, 0},
794 	{CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0},
795 	{CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0},
796 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0},
797 	{CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0},
798 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0},
799 	{CTRY_GUERNSEY, ETSI13_WORLD, "GG", 40, 160, 0},
800 	{CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0},
801 	{CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0},
802 	{CTRY_HEARD_ISLAND_AND_MCDONALD_ISLANDS, FCC6_WORLD, "HM", 40, 160, 0},
803 	{CTRY_HOLY_SEE, ETSI13_WORLD, "VA", 40, 160, 0},
804 	{CTRY_HONDURAS, FCC13_WORLD, "HN", 40, 160, 0},
805 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0},
806 	{CTRY_HUNGARY, ETSI13_WORLD, "HU", 40, 160, 0},
807 	{CTRY_ICELAND, ETSI13_WORLD, "IS", 40, 160, 0},
808 	{CTRY_INDIA, APL19_ETSIC, "IN", 40, 160, 0},
809 	{CTRY_INDONESIA, APL2_ETSID, "ID", 40, 80, 0},
810 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0},
811 	{CTRY_IRELAND, ETSI13_WORLD, "IE", 40, 160, 0},
812 	{CTRY_ISLE_OF_MAN, ETSI13_WORLD, "IM", 40, 160, 0},
813 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0},
814 	{CTRY_ITALY, ETSI13_WORLD, "IT", 40, 160,  0},
815 	{CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0},
816 	{CTRY_JERSEY, ETSI13_WORLD, "JE", 40, 160, 0},
817 	{CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0},
818 	{CTRY_KAZAKHSTAN, MKK5_MKKC, "KZ", 40, 160, 0},
819 	{CTRY_KENYA, ETSI13_WORLD, "KE", 40, 160, 0},
820 	{CTRY_KOREA_ROC, APL9_MKKC, "KR", 40, 160, 0},
821 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0},
822 	{CTRY_LATVIA, ETSI13_WORLD, "LV", 40, 160, 0},
823 	{CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0},
824 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0},
825 	{CTRY_LIECHTENSTEIN, ETSI13_WORLD, "LI", 40, 160, 0},
826 	{CTRY_LITHUANIA, ETSI13_WORLD, "LT", 40, 160, 0},
827 	{CTRY_LUXEMBOURG, ETSI13_WORLD, "LU", 40, 160, 0},
828 	{CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0},
829 	{CTRY_MACEDONIA, ETSI13_WORLD, "MK", 40, 160, 0},
830 	{CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0},
831 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0},
832 	{CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0},
833 	{CTRY_MALTA, ETSI13_WORLD, "MT", 40, 160, 0},
834 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0},
835 	{CTRY_MARTINIQUE, ETSI13_WORLD, "MQ", 40, 160, 0},
836 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0},
837 	{CTRY_MAURITIUS, ETSI13_WORLD, "MU", 40, 160, 0},
838 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0},
839 	{CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0},
840 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0},
841 	{CTRY_MOLDOVA, ETSI13_WORLD, "MD", 40, 160, 0},
842 	{CTRY_MONACO, ETSI13_WORLD, "MC", 40, 160, 0},
843 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0},
844 	{CTRY_MONTENEGRO, ETSI13_WORLD, "ME", 40, 160, 0},
845 	{CTRY_MONTSERRAT, ETSI13_WORLD, "MS", 40, 160, 0},
846 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0},
847 	{CTRY_MYANMAR, APL1_WORLD, "MM", 40, 160, 0},
848 	{CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0},
849 	{CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0},
850 	{CTRY_NETHERLANDS, ETSI13_WORLD, "NL", 40, 160, 0},
851 	{CTRY_NETHERLANDS_ANTILLES, ETSI13_WORLD, "AN", 40, 160, 0},
852 	{CTRY_NEW_CALEDONIA, ETSI13_WORLD, "NC", 40, 160, 0},
853 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0},
854 	{CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0},
855 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0},
856 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0},
857 	{CTRY_NIUE, ETSI13_WORLD, "NU", 40, 160, 0},
858 	{CTRY_NORFOLK_ISLAND, FCC6_WORLD, "NF", 40, 160, 0},
859 	{CTRY_NORWAY, ETSI13_WORLD, "NO", 40, 160, 0},
860 	{CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0},
861 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0},
862 	{CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0},
863 	{CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0},
864 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0},
865 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0},
866 	{CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0},
867 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0},
868 	{CTRY_POLAND, ETSI13_WORLD, "PL", 40, 160, 0},
869 	{CTRY_PORTUGAL, ETSI13_WORLD, "PT", 40, 160, 0},
870 	{CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0},
871 	{CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0},
872 	{CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0},
873 	{CTRY_ROMANIA, ETSI13_WORLD, "RO", 40, 160, 0},
874 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0},
875 	{CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0},
876 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0},
877 	{CTRY_SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA, ETSI13_WORLD, "SH",
878 	 40, 160, 0},
879 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0},
880 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0},
881 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0},
882 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI13_WORLD, "PM", 40, 160, 0},
883 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI13_WORLD, "VC",
884 	 40, 160, 0},
885 	{CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0},
886 	{CTRY_SAN_MARINO, FCC3_FCCA, "SM", 40, 160, 0},
887 	{CTRY_SAO_TOME_AND_PRINCIPE, FCC3_WORLD, "ST", 40, 160, 0},
888 	{CTRY_SAUDI_ARABIA, ETSI15_WORLD, "SA", 40, 160, 0},
889 	{CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0},
890 	{CTRY_SERBIA, ETSI13_WORLD, "RS", 40, 160, 0},
891 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0},
892 	{CTRY_SINT_MAARTEN, ETSI13_WORLD, "SX", 40, 160, 0},
893 	{CTRY_SLOVAKIA, ETSI13_WORLD, "SK", 40, 160, 0},
894 	{CTRY_SLOVENIA, ETSI13_WORLD, "SI", 40, 160, 0},
895 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0},
896 	{CTRY_SPAIN, ETSI13_WORLD, "ES", 40, 160, 0},
897 	{CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0},
898 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0},
899 	{CTRY_SVALBARD_AND_JAN_MAYEN, FCC6_WORLD, "SJ", 40, 160, 0},
900 	{CTRY_SWEDEN, ETSI13_WORLD, "SE", 40, 160, 0},
901 	{CTRY_SWITZERLAND, ETSI13_WORLD, "CH", 40, 160, 0},
902 	{CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0},
903 	{CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0},
904 	{CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0},
905 	{CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0},
906 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0},
907 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0},
908 	{CTRY_TURKEY, ETSI13_WORLD, "TR", 40, 160, 0},
909 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0},
910 	{CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0},
911 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0},
912 	{CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0},
913 	{CTRY_UNITED_KINGDOM, ETSI13_WORLD, "GB", 40, 160, 0},
914 	{CTRY_UNITED_STATES, FCC3_FCCA, "US", 40, 160, 0},
915 	{CTRY_UNITED_STATES_MINOR_OUTLYING_ISLANDS, FCC3_FCCA, "UM", 40, 160,
916 	 0},
917 	{CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0},
918 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0},
919 	{CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0},
920 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0},
921 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0},
922 	{CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0},
923 	{CTRY_VIRGIN_ISLANDS_BRITISH, ETSI13_WORLD, "VG", 40, 160, 0},
924 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0},
925 	{CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0},
926 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0},
927 	{CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0},
928 	{CTRY_JAPAN15, MKK5_MKKC, "JP", 40, 160, 0},
929 	{CTRY_XA, MKK5_MKKA, "XA", 40, 160, 0},
930 };
931 #endif
932 #endif
933 
934 enum reg_domains_2g {
935 	FCCA,
936 	FCCB,
937 	WORLD,
938 	MKKA,
939 	MKKC,
940 	ETSIC,
941 	ETSID,
942 	KRRA,
943 	WORLD_2G_1,
944 	WORLD_2G_2,
945 	WORLD_2G_3,
946 
947 	REG_DOMAINS_2G_MAX,
948 };
949 
950 enum reg_domains_5g {
951 	NULL1,
952 	FCC1,
953 	FCC2,
954 	FCC3,
955 	FCC4,
956 	FCC5,
957 	FCC6,
958 	FCC8,
959 	FCC10,
960 	FCC11,
961 	FCC13,
962 	FCC14,
963 #ifdef CONFIG_BAND_6GHZ
964 	FCC15,
965 	FCC16,
966 	FCC17,
967 #endif
968 	ETSI1,
969 	ETSI3,
970 	ETSI4,
971 	ETSI8,
972 	ETSI9,
973 	ETSI10,
974 	ETSI11,
975 	ETSI12,
976 	ETSI13,
977 	ETSI14,
978 	ETSI15,
979 	APL1,
980 	APL2,
981 	APL4,
982 	APL6,
983 	APL8,
984 	APL9,
985 	APL10,
986 	APL11,
987 	APL12,
988 	APL13,
989 	APL14,
990 	APL15,
991 	APL16,
992 	APL17,
993 	APL19,
994 	APL20,
995 	APL23,
996 	APL24,
997 	MKK3,
998 	MKK4,
999 	MKK5,
1000 	MKK9,
1001 	MKK10,
1002 	MKK11,
1003 	MKK16,
1004 	MKK17,
1005 	WORLD_5G_1,
1006 	WORLD_5G_2,
1007 
1008 	REG_DOMAINS_5G_MAX,
1009 };
1010 
1011 const struct reg_domain_pair g_reg_dmn_pairs[] = {
1012 	{NULL1_WORLD, NULL1, WORLD},
1013 
1014 	{FCC1_FCCA, FCC1, FCCA},
1015 	{FCC1_WORLD, FCC1, WORLD},
1016 	{FCC2_FCCA, FCC2, FCCA},
1017 	{FCC2_WORLD, FCC2, WORLD},
1018 	{FCC2_ETSIC, FCC2, ETSIC},
1019 	{FCC3_FCCA, FCC3, FCCA},
1020 	{FCC3_WORLD, FCC3, WORLD},
1021 	{FCC3_ETSIC, FCC3, ETSIC},
1022 	{FCC4_FCCA, FCC4, FCCA},
1023 	{FCC5_FCCA, FCC5, FCCA},
1024 	{FCC6_WORLD, FCC6, WORLD},
1025 	{FCC6_FCCA, FCC6, FCCA},
1026 	{FCC8_FCCA, FCC8, FCCA},
1027 	{FCC10_FCCA, FCC10, FCCA},
1028 	{FCC11_WORLD, FCC11, WORLD},
1029 	{FCC13_WORLD, FCC13, WORLD},
1030 	{FCC14_FCCB, FCC14, FCCB},
1031 #ifdef CONFIG_BAND_6GHZ
1032 	{FCC15_FCCA, FCC15, FCCA},
1033 	{FCC16_FCCA, FCC16, FCCA},
1034 	{FCC17_FCCA, FCC17, FCCA},
1035 #endif
1036 	{ETSI1_WORLD, ETSI1, WORLD},
1037 	{ETSI3_WORLD, ETSI3, WORLD},
1038 	{ETSI4_WORLD, ETSI4, WORLD},
1039 	{ETSI8_WORLD, ETSI8, WORLD},
1040 	{ETSI9_WORLD, ETSI9, WORLD},
1041 	{ETSI10_WORLD, ETSI10, WORLD},
1042 	{ETSI10_FCCA, ETSI10, FCCA},
1043 	{ETSI11_WORLD, ETSI11, WORLD},
1044 	{ETSI12_WORLD, ETSI12, WORLD},
1045 	{ETSI13_WORLD, ETSI13, WORLD},
1046 	{ETSI14_WORLD, ETSI14, WORLD},
1047 	{ETSI15_WORLD, ETSI15, WORLD},
1048 
1049 	{APL1_WORLD, APL1, WORLD},
1050 	{APL1_ETSIC, APL1, ETSIC},
1051 	{APL2_WORLD, APL2, WORLD},
1052 	{APL2_ETSIC, APL2, ETSIC},
1053 	{APL2_ETSID, APL2, ETSID},
1054 	{APL4_WORLD, APL4, WORLD},
1055 	{APL6_WORLD, APL6, WORLD},
1056 	{APL8_WORLD, APL8, WORLD},
1057 	{APL9_WORLD, APL9, WORLD},
1058 	{APL9_MKKC, APL9, MKKC},
1059 	{APL9_KRRA, APL9, KRRA},
1060 	{APL10_WORLD, APL10, WORLD},
1061 	{APL11_FCCA, APL11, FCCA},
1062 	{APL12_WORLD, APL12, WORLD},
1063 	{APL13_WORLD, APL13, WORLD},
1064 	{APL14_WORLD, APL14, WORLD},
1065 	{APL15_WORLD, APL15, WORLD},
1066 	{APL16_WORLD, APL16, WORLD},
1067 	{APL16_ETSIC, APL16, ETSIC},
1068 	{APL17_ETSIC, APL17, ETSIC},
1069 	{APL17_ETSID, APL17, ETSID},
1070 	{APL19_ETSIC, APL19, ETSIC},
1071 	{APL20_WORLD, APL20, WORLD},
1072 	{APL23_WORLD, APL23, WORLD},
1073 	{APL24_ETSIC, APL24, ETSIC},
1074 
1075 	{MKK3_MKKC, MKK3, MKKC},
1076 	{MKK5_MKKA, MKK5, MKKA},
1077 	{MKK5_MKKC, MKK5, MKKC},
1078 	{MKK11_MKKC, MKK11, MKKC},
1079 	{MKK16_MKKC, MKK16, MKKC},
1080 	{MKK17_MKKC, MKK17, MKKC},
1081 
1082 	{WORLD_60, WORLD_5G_2, WORLD_2G_3},
1083 	{WORLD_61, WORLD_5G_2, WORLD_2G_3},
1084 	{WORLD_62, WORLD_5G_2, WORLD_2G_3},
1085 	{WORLD_63, WORLD_5G_1, WORLD_2G_2},
1086 	{WORLD_65, WORLD_5G_1, WORLD_2G_2},
1087 	{WORLD_64, WORLD_5G_1, WORLD_2G_1},
1088 	{WORLD_66, WORLD_5G_2, WORLD_2G_1},
1089 	{WORLD_69, WORLD_5G_2, WORLD_2G_1},
1090 	{WORLD_67, WORLD_5G_2, WORLD_2G_2},
1091 	{WORLD_68, WORLD_5G_2, WORLD_2G_2},
1092 	{WORLD_6A, WORLD_5G_2, WORLD_2G_2},
1093 	{WORLD_6C, WORLD_5G_2, WORLD_2G_2},
1094 };
1095 
1096 enum reg_rules_2g {
1097 
1098 	CHAN_1_11_1,
1099 	CHAN_1_11_2,
1100 	CHAN_1_11_3,
1101 	CHAN_1_13_1,
1102 	CHAN_1_13_2,
1103 	CHAN_1_13_3,
1104 	CHAN_1_13_4,
1105 	CHAN_1_13_5,
1106 	CHAN_12_12_1,
1107 	CHAN_12_13_1,
1108 	CHAN_14_1,
1109 	CHAN_14_2,
1110 };
1111 
1112 const struct regulatory_rule reg_rules_2g[] = {
1113 
1114 	[CHAN_1_11_1] = {2402, 2472, 40, 30, 0},
1115 	[CHAN_1_11_2] = {2402, 2472, 40, 20, 0},
1116 	[CHAN_1_11_3] = {2402, 2472, 40, 36, 0},
1117 	[CHAN_1_13_1] = {2402, 2482, 40, 20, 0},
1118 	[CHAN_1_13_2] = {2402, 2482, 40, 30, 0},
1119 	[CHAN_1_13_3] = {2402, 2482, 40, 36, 0},
1120 	[CHAN_1_13_4] = {2402, 2482, 40, 23, 0},
1121 	[CHAN_1_13_5] = {2402, 2482, 20, 20, 0},
1122 	[CHAN_12_12_1] = {2457, 2477, 20, 20, REGULATORY_CHAN_NO_IR},
1123 	[CHAN_12_13_1] = {2457, 2482, 20, 20, REGULATORY_CHAN_NO_IR},
1124 	[CHAN_14_1] = {2474, 2494, 20, 23, REGULATORY_CHAN_NO_OFDM},
1125 	[CHAN_14_2] = {2474, 2494, 20, 20,
1126 		       REGULATORY_CHAN_NO_OFDM | REGULATORY_CHAN_NO_IR},
1127 };
1128 
1129 
1130 const struct regdomain regdomains_2g[] = {
1131 
1132 	[FCCA] = {CTL_FCC, DFS_UNINIT_REGION, 0, 6, 1, {CHAN_1_11_1} },
1133 	[FCCB] = {CTL_FCC, DFS_UNINIT_REGION, 0, 6, 1, {CHAN_1_11_3} },
1134 	[WORLD] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_1} },
1135 	[MKKA] = {CTL_MKK, DFS_UNINIT_REGION, 0, 0, 2, {CHAN_1_13_4,
1136 							CHAN_14_1} },
1137 	[MKKC] = {CTL_MKK, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_4} },
1138 	[ETSIC] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_2} },
1139 	[ETSID] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_5} },
1140 	[KRRA]  = {CTL_KOR, DFS_UNINIT_REGION, 0, 0, 1,  {CHAN_1_13_4} },
1141 	[WORLD_2G_1] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_11_2} },
1142 	[WORLD_2G_2] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2,
1143 			{CHAN_1_11_2, CHAN_12_13_1} },
1144 	[WORLD_2G_3] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2,
1145 			{CHAN_1_11_2, CHAN_12_12_1} },
1146 };
1147 
1148 
1149 enum reg_rules_5g {
1150 
1151 	CHAN_4910_4990_1,
1152 	CHAN_4940_4990_1,
1153 	CHAN_5030_5090_1,
1154 	CHAN_5170_5250_1,
1155 	CHAN_5170_5250_2,
1156 	CHAN_5170_5250_3,
1157 	CHAN_5170_5250_4,
1158 	CHAN_5170_5250_5,
1159 	CHAN_5170_5250_6,
1160 	CHAN_5170_5250_7,
1161 	CHAN_5170_5250_8,
1162 	CHAN_5170_5250_9,
1163 	CHAN_5170_5330_1,
1164 	CHAN_5170_5330_2,
1165 	CHAN_5250_5330_1,
1166 	CHAN_5250_5330_2,
1167 	CHAN_5250_5330_3,
1168 	CHAN_5250_5330_4,
1169 	CHAN_5250_5330_5,
1170 	CHAN_5250_5330_6,
1171 	CHAN_5250_5330_7,
1172 	CHAN_5250_5330_8,
1173 	CHAN_5250_5330_9,
1174 	CHAN_5250_5330_10,
1175 	CHAN_5250_5330_11,
1176 	CHAN_5250_5330_12,
1177 	CHAN_5250_5330_13,
1178 	CHAN_5250_5330_14,
1179 	CHAN_5490_5730_1,
1180 	CHAN_5490_5730_2,
1181 	CHAN_5490_5730_3,
1182 	CHAN_5490_5730_4,
1183 	CHAN_5490_5730_5,
1184 	CHAN_5490_5730_6,
1185 	CHAN_5490_5730_7,
1186 	CHAN_5490_5710_1,
1187 	CHAN_5490_5710_2,
1188 	CHAN_5490_5710_3,
1189 	CHAN_5490_5710_4,
1190 	CHAN_5490_5710_5,
1191 	CHAN_5490_5710_6,
1192 	CHAN_5490_5710_7,
1193 	CHAN_5490_5590_1,
1194 	CHAN_5490_5590_2,
1195 	CHAN_5490_5590_3,
1196 	CHAN_5490_5570_1,
1197 	CHAN_5490_5650_2,
1198 	CHAN_5490_5670_1,
1199 	CHAN_5490_5670_2,
1200 	CHAN_5490_5630_1,
1201 	CHAN_5650_5730_1,
1202 	CHAN_5650_5730_2,
1203 	CHAN_5650_5730_3,
1204 	CHAN_5735_5835_1,
1205 	CHAN_5735_5835_2,
1206 	CHAN_5735_5835_3,
1207 	CHAN_5735_5835_4,
1208 	CHAN_5735_5835_5,
1209 	CHAN_5735_5835_6,
1210 	CHAN_5735_5835_7,
1211 	CHAN_5735_5835_8,
1212 	CHAN_5735_5835_9,
1213 	CHAN_5735_5875_1,
1214 	CHAN_5735_5875_2,
1215 	CHAN_5735_5875_3,
1216 	CHAN_5735_5875_4,
1217 	CHAN_5735_5875_5,
1218 	CHAN_5735_5815_1,
1219 	CHAN_5735_5815_2,
1220 	CHAN_5735_5815_3,
1221 	CHAN_5735_5815_4,
1222 	CHAN_5735_5775_1,
1223 	CHAN_5835_5855_1,
1224 	CHAN_5855_5875_1,
1225 	CHAN_5850_5925_1,
1226 	CHAN_5850_5925_2,
1227 #ifdef CONFIG_BAND_6GHZ
1228 	CHAN_5935_6435_1,
1229 	CHAN_5935_6435_2,
1230 	CHAN_6435_6535_1,
1231 	CHAN_6435_6535_2,
1232 	CHAN_6535_6875_1,
1233 	CHAN_6535_6875_2,
1234 	CHAN_6875_7115_1,
1235 	CHAN_6875_7115_2,
1236 #endif
1237 };
1238 
1239 const struct regulatory_rule reg_rules_5g[] = {
1240 
1241 	[CHAN_4910_4990_1] = {4910, 4990, 20, 20, 0},
1242 	[CHAN_4940_4990_1] = {4940, 4990, 20, 33, 0},
1243 	[CHAN_5030_5090_1] = {5030, 5090, 20, 20, 0},
1244 	[CHAN_5170_5250_1] = {5170, 5250, 80, 17, 0},
1245 	[CHAN_5170_5250_2] = {5170, 5250, 80, 23, 0},
1246 	[CHAN_5170_5250_3] = {5170, 5250, 80, 20, 0},
1247 	[CHAN_5170_5250_4] = {5170, 5250, 80, 30, 0},
1248 	[CHAN_5170_5250_5] = {5170, 5250, 80, 24, 0},
1249 	[CHAN_5170_5250_6] = {5170, 5250, 80, 18, 0},
1250 	[CHAN_5170_5250_7] = {5170, 5250, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
1251 	[CHAN_5170_5250_8] = {5170, 5250, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
1252 	[CHAN_5170_5250_9] = {5170, 5250, 40, 30, 0},
1253 	[CHAN_5170_5330_1] = {5170, 5330, 160, 20, REGULATORY_CHAN_NO_IR},
1254 	[CHAN_5170_5330_2] = {5170, 5330, 160, 24, 0},
1255 	[CHAN_5250_5330_1] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR},
1256 	[CHAN_5250_5330_2] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR},
1257 	[CHAN_5250_5330_3] = {5250, 5330, 80, 18, REGULATORY_CHAN_RADAR},
1258 	[CHAN_5250_5330_4] = {5250, 5330, 80, 30, REGULATORY_CHAN_RADAR},
1259 	[CHAN_5250_5330_5] = {5250, 5330, 80, 23, 0},
1260 	[CHAN_5250_5330_6] = {5250, 5330, 80, 30, 0},
1261 	[CHAN_5250_5330_7] = {5250, 5330, 80, 24, REGULATORY_CHAN_RADAR},
1262 	[CHAN_5250_5330_8] = {5250, 5330, 80, 36, 0},
1263 	[CHAN_5250_5330_9] = {5250, 5330, 80, 20, 0},
1264 	[CHAN_5250_5330_10] = {5250, 5330, 80, 24, 0},
1265 	[CHAN_5250_5330_11] = {5250, 5330, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
1266 	[CHAN_5250_5330_12] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR |
1267 						   REGULATORY_CHAN_INDOOR_ONLY},
1268 	[CHAN_5250_5330_13] = {5250, 5330, 40, 30, REGULATORY_CHAN_RADAR},
1269 	[CHAN_5250_5330_14] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR |
1270 						   REGULATORY_CHAN_INDOOR_ONLY},
1271 	[CHAN_5490_5730_1] = {5490, 5730, 160, 24, REGULATORY_CHAN_RADAR},
1272 	[CHAN_5490_5730_2] = {5490, 5730, 160, 20, REGULATORY_CHAN_NO_IR},
1273 	[CHAN_5490_5730_3] = {5490, 5730, 160, 30, 0},
1274 	[CHAN_5490_5730_4] = {5490, 5730, 160, 24, 0},
1275 	[CHAN_5490_5730_5] = {5490, 5730, 160, 30, REGULATORY_CHAN_RADAR},
1276 	[CHAN_5490_5730_6] = {5490, 5730, 160, 23, REGULATORY_CHAN_RADAR},
1277 	[CHAN_5490_5730_7] = {5490, 5730, 160, 20, REGULATORY_CHAN_RADAR},
1278 	[CHAN_5490_5710_1] = {5490, 5710, 160, 30, REGULATORY_CHAN_RADAR},
1279 	[CHAN_5490_5710_2] = {5490, 5710, 160, 20, REGULATORY_CHAN_RADAR},
1280 	[CHAN_5490_5710_3] = {5490, 5710, 160, 27, REGULATORY_CHAN_RADAR},
1281 	[CHAN_5490_5710_4] = {5490, 5710,  40, 30, REGULATORY_CHAN_RADAR},
1282 	[CHAN_5490_5710_5] = {5490, 5710, 160, 24, REGULATORY_CHAN_RADAR},
1283 	[CHAN_5490_5710_6] = {5490, 5710, 160, 26, REGULATORY_CHAN_RADAR},
1284 	[CHAN_5490_5710_7] = {5490, 5710, 160, 23, REGULATORY_CHAN_RADAR},
1285 	[CHAN_5490_5590_1] = {5490, 5590, 80, 24, REGULATORY_CHAN_RADAR},
1286 	[CHAN_5490_5590_2] = {5490, 5590, 80, 30, 0},
1287 	[CHAN_5490_5590_3] = {5490, 5590, 80, 36, 0},
1288 	[CHAN_5490_5570_1] = {5490, 5570, 80, 30, REGULATORY_CHAN_RADAR},
1289 	[CHAN_5490_5650_2] = {5490, 5650, 160, 24, REGULATORY_CHAN_RADAR},
1290 	[CHAN_5490_5670_1] = {5490, 5670, 160, 20, REGULATORY_CHAN_RADAR},
1291 	[CHAN_5490_5670_2] = {5490, 5670, 160, 23, REGULATORY_CHAN_RADAR},
1292 	[CHAN_5490_5630_1] = {5490, 5630, 80, 30, REGULATORY_CHAN_RADAR},
1293 	[CHAN_5650_5730_1] = {5650, 5730, 80, 24, REGULATORY_CHAN_RADAR},
1294 	[CHAN_5650_5730_2] = {5650, 5730, 80, 30, 0},
1295 	[CHAN_5650_5730_3] = {5650, 5730, 80, 36, 0},
1296 	[CHAN_5735_5835_1] = {5735, 5835, 80, 23, 0},
1297 	[CHAN_5735_5835_2] = {5735, 5835, 80, 30, 0},
1298 	[CHAN_5735_5835_3] = {5735, 5835, 80, 20, 0},
1299 	[CHAN_5735_5835_4] = {5735, 5835, 80, 33, 0},
1300 	[CHAN_5735_5835_5] = {5735, 5835, 80, 20, REGULATORY_CHAN_NO_IR},
1301 	[CHAN_5735_5835_6] = {5735, 5835, 80, 24, 0},
1302 	[CHAN_5735_5835_7] = {5735, 5835, 80, 36, 0},
1303 	[CHAN_5735_5835_8] = {5735, 5835, 80, 23, REGULATORY_CHAN_RADAR},
1304 	[CHAN_5735_5835_9] = {5735, 5835, 80, 30, REGULATORY_CHAN_RADAR},
1305 	[CHAN_5735_5875_1] = {5735, 5875, 20, 27, REGULATORY_CHAN_RADAR},
1306 	[CHAN_5735_5875_2] = {5735, 5875, 20, 30, 0},
1307 	[CHAN_5735_5875_3] = {5735, 5875, 80, 30, 0},
1308 	[CHAN_5735_5875_4] = {5735, 5875, 80, 14, 0},
1309 	[CHAN_5735_5875_5] = {5735, 5875, 80, 20, REGULATORY_CHAN_RADAR},
1310 	[CHAN_5735_5815_1] = {5735, 5815, 80, 30, 0},
1311 	[CHAN_5735_5815_2] = {5735, 5815, 80, 30, REGULATORY_CHAN_RADAR},
1312 	[CHAN_5735_5815_3] = {5735, 5815, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
1313 	[CHAN_5735_5815_4] = {5735, 5815, 20, 20, 0},
1314 	[CHAN_5735_5775_1] = {5735, 5775, 40, 23, 0},
1315 	[CHAN_5835_5855_1] = {5835, 5855, 20, 30, 0},
1316 	[CHAN_5855_5875_1] = {5855, 5875, 20, 30, 0},
1317 	[CHAN_5850_5925_1] = {5850, 5925, 20, 24, 0},
1318 	[CHAN_5850_5925_2] = {5850, 5925, 20, 30, 0},
1319 #ifdef CONFIG_BAND_6GHZ
1320 	[CHAN_5935_6435_1] = {5935, 6435, 160, 18, REGULATORY_CHAN_AFC},
1321 	[CHAN_5935_6435_2] = {5935, 6435, 160, 30, REGULATORY_CHAN_AFC},
1322 	[CHAN_6435_6535_1] = {6435, 6535, 160, 18, REGULATORY_CHAN_INDOOR_ONLY},
1323 	[CHAN_6435_6535_2] = {6435, 6535, 160, 24, REGULATORY_CHAN_INDOOR_ONLY},
1324 	[CHAN_6535_6875_1] = {6535, 6875, 160, 18, REGULATORY_CHAN_AFC},
1325 	[CHAN_6535_6875_2] = {6535, 6875, 160, 30, REGULATORY_CHAN_AFC},
1326 	[CHAN_6875_7115_1] = {6875, 7115, 160, 18, REGULATORY_CHAN_INDOOR_ONLY},
1327 	[CHAN_6875_7115_2] = {6875, 7115, 160, 24, REGULATORY_CHAN_INDOOR_ONLY},
1328 #endif
1329 };
1330 
1331 
1332 const struct regdomain regdomains_5g[] = {
1333 
1334 	[FCC1] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 3, {CHAN_5170_5250_1,
1335 						     CHAN_5250_5330_1,
1336 						     CHAN_5735_5835_2} },
1337 
1338 	[FCC2] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 3, {CHAN_5170_5250_2,
1339 						     CHAN_5250_5330_1,
1340 						     CHAN_5735_5835_2} },
1341 
1342 	[FCC3] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_5,
1343 						     CHAN_5250_5330_7,
1344 						     CHAN_5490_5730_1,
1345 						     CHAN_5735_5835_2} },
1346 
1347 	[FCC4] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 1, {CHAN_4940_4990_1} },
1348 
1349 	[FCC5] = {CTL_FCC, DFS_UNINIT_REGION, 2, 6, 2, {CHAN_5170_5250_4,
1350 							CHAN_5735_5835_2} },
1351 
1352 	[FCC6] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 5, {CHAN_5170_5250_5,
1353 						     CHAN_5250_5330_7,
1354 						     CHAN_5490_5590_1,
1355 						     CHAN_5650_5730_1,
1356 						     CHAN_5735_5835_2} },
1357 
1358 	[FCC8] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_4,
1359 						     CHAN_5250_5330_7,
1360 						     CHAN_5490_5730_1,
1361 						     CHAN_5735_5835_2} },
1362 
1363 	[FCC10] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 5, {CHAN_5170_5250_4,
1364 						      CHAN_5250_5330_7,
1365 						      CHAN_5490_5730_1,
1366 						      CHAN_5735_5835_2,
1367 						      CHAN_5850_5925_1} },
1368 
1369 	[FCC11] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_5,
1370 						      CHAN_5250_5330_7,
1371 						      CHAN_5490_5650_2,
1372 						      CHAN_5735_5835_6} },
1373 
1374 	[FCC13] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 4, {CHAN_5170_5330_2,
1375 							 CHAN_5250_5330_10,
1376 							 CHAN_5490_5730_4,
1377 							 CHAN_5735_5835_2} },
1378 
1379 	[FCC14] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 4, {CHAN_5170_5250_4,
1380 							 CHAN_5250_5330_10,
1381 							 CHAN_5490_5730_4,
1382 							 CHAN_5735_5835_2} },
1383 
1384 #ifdef CONFIG_BAND_6GHZ
1385 	[FCC15] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 8, {CHAN_5170_5250_5,
1386 							 CHAN_5250_5330_7,
1387 							 CHAN_5490_5730_1,
1388 							 CHAN_5735_5835_2,
1389 							 CHAN_5935_6435_1,
1390 							 CHAN_6435_6535_1,
1391 							 CHAN_6535_6875_1,
1392 							 CHAN_6875_7115_1} },
1393 
1394 	[FCC16] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 8, {CHAN_5170_5250_4,
1395 							CHAN_5250_5330_7,
1396 							CHAN_5490_5730_1,
1397 							CHAN_5735_5835_2,
1398 							CHAN_5935_6435_2,
1399 							CHAN_6435_6535_2,
1400 							CHAN_6535_6875_2,
1401 							CHAN_6875_7115_2} },
1402 
1403 	[FCC17] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 6, {CHAN_5170_5250_4,
1404 							CHAN_5250_5330_7,
1405 							CHAN_5490_5730_1,
1406 							CHAN_5735_5835_2,
1407 							CHAN_5935_6435_2,
1408 							CHAN_6535_6875_2} },
1409 #endif
1410 
1411 	[ETSI1] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_8,
1412 							CHAN_5250_5330_12,
1413 							CHAN_5490_5710_1} },
1414 
1415 	[ETSI3] = {CTL_ETSI, DFS_ETSI_REGION, 5, 0, 2, {CHAN_5170_5250_2,
1416 							CHAN_5250_5330_1} },
1417 
1418 	[ETSI4] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 2, {CHAN_5170_5250_6,
1419 							CHAN_5250_5330_3} },
1420 
1421 	[ETSI8] = {CTL_ETSI, DFS_UNINIT_REGION, 20, 0, 4, {CHAN_5170_5250_2,
1422 							   CHAN_5250_5330_5,
1423 							   CHAN_5490_5730_3,
1424 							   CHAN_5735_5835_2} },
1425 
1426 	[ETSI9] = {CTL_ETSI, DFS_ETSI_REGION, 20, 0, 4, {CHAN_5170_5250_2,
1427 							 CHAN_5250_5330_1,
1428 							 CHAN_5490_5710_5,
1429 							 CHAN_5735_5835_6} },
1430 
1431 	[ETSI10] = {CTL_ETSI, DFS_ETSI_REGION, 10, 0, 4, {CHAN_5170_5250_7,
1432 							  CHAN_5250_5330_14,
1433 							  CHAN_5490_5710_3,
1434 							  CHAN_5850_5925_2} },
1435 
1436 	[ETSI11] = {CTL_ETSI, DFS_ETSI_REGION, 10, 0, 4, {CHAN_5170_5250_7,
1437 							  CHAN_5250_5330_14,
1438 							  CHAN_5490_5710_3,
1439 							  CHAN_5735_5875_1} },
1440 
1441 	[ETSI12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_7,
1442 							 CHAN_5250_5330_14,
1443 							 CHAN_5490_5730_6,
1444 							 CHAN_5735_5835_8} },
1445 
1446 	[ETSI13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_8,
1447 							 CHAN_5250_5330_12,
1448 							 CHAN_5490_5730_5,
1449 							 CHAN_5735_5875_4} },
1450 
1451 	[ETSI14] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2,
1452 							 CHAN_5250_5330_1,
1453 							 CHAN_5490_5730_7,
1454 							 CHAN_5735_5875_5} },
1455 
1456 	[ETSI15] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2,
1457 							 CHAN_5250_5330_1,
1458 							 CHAN_5490_5730_5,
1459 							 CHAN_5735_5815_2} },
1460 
1461 	[APL1] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5735_5835_2} },
1462 
1463 	[APL2] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5735_5815_4} },
1464 
1465 	[APL4] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 2, {CHAN_5170_5250_2,
1466 							 CHAN_5735_5835_1} },
1467 
1468 	[APL6] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_3,
1469 						       CHAN_5250_5330_2,
1470 						       CHAN_5735_5835_3} },
1471 
1472 	[APL8] = {CTL_FCC, DFS_ETSI_REGION, 2, 0, 2, {CHAN_5250_5330_4,
1473 						      CHAN_5735_5835_2} },
1474 
1475 	[APL9] = {CTL_MKK, DFS_KR_REGION, 2, 6, 4,   {CHAN_5170_5250_2,
1476 						      CHAN_5250_5330_1,
1477 						      CHAN_5490_5730_6,
1478 						      CHAN_5735_5835_1} },
1479 
1480 	[APL10] = {CTL_ETSI, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_2,
1481 						       CHAN_5250_5330_4,
1482 						       CHAN_5490_5710_1,
1483 						       CHAN_5735_5815_1} },
1484 
1485 	[APL11] = { CTL_ETSI, DFS_FCC_REGION, 2, 0, 4, {CHAN_5170_5250_9,
1486 							 CHAN_5250_5330_13,
1487 							 CHAN_5490_5710_4,
1488 							 CHAN_5735_5875_2} },
1489 
1490 	[APL12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1491 							CHAN_5490_5570_1,
1492 							CHAN_5735_5775_1} },
1493 
1494 	[APL13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1495 							CHAN_5250_5330_1,
1496 							CHAN_5490_5670_2} },
1497 
1498 	[APL14] = {CTL_MKK, DFS_CN_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1499 						     CHAN_5250_5330_1,
1500 						     CHAN_5735_5835_4} },
1501 
1502 	[APL15] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_2,
1503 							 CHAN_5250_5330_5,
1504 							 CHAN_5735_5835_4} },
1505 
1506 	[APL16] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 5, {CHAN_5170_5250_1,
1507 							 CHAN_5250_5330_6,
1508 							 CHAN_5490_5590_2,
1509 							 CHAN_5650_5730_2,
1510 							 CHAN_5735_5835_2} },
1511 
1512 	[APL17] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 5, {CHAN_5170_5250_2,
1513 							 CHAN_5250_5330_8,
1514 							 CHAN_5490_5590_3,
1515 							 CHAN_5650_5730_3,
1516 							 CHAN_5735_5835_7} },
1517 
1518 	[APL19] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 4, {CHAN_5170_5250_4,
1519 						       CHAN_5250_5330_7,
1520 						       CHAN_5490_5730_1,
1521 						       CHAN_5735_5875_3} },
1522 
1523 	[APL20] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_8,
1524 							CHAN_5250_5330_12,
1525 							CHAN_5490_5730_5,
1526 							CHAN_5735_5835_4} },
1527 
1528 	[APL23] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_7,
1529 							  CHAN_5250_5330_11,
1530 							  CHAN_5735_5835_3} },
1531 
1532 	[APL24] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_8,
1533 							CHAN_5250_5330_12,
1534 							CHAN_5735_5815_3} },
1535 
1536 	[MKK3] = {CTL_MKK, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5170_5250_3} },
1537 
1538 	[MKK5] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 3, {CHAN_5170_5250_8,
1539 						     CHAN_5250_5330_12,
1540 						     CHAN_5490_5710_7} },
1541 
1542 	[MKK11] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 5, {CHAN_4910_4990_1,
1543 						      CHAN_5170_5250_2,
1544 						      CHAN_5030_5090_1,
1545 						      CHAN_5250_5330_1,
1546 						      CHAN_5490_5710_7} },
1547 
1548 	[MKK16] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 1, {CHAN_5490_5710_6} },
1549 
1550 	[MKK17] = {CTL_MKK, DFS_MKKN_REGION, 2, 0, 3, {CHAN_5170_5250_8,
1551 						      CHAN_5250_5330_12,
1552 						      CHAN_5490_5730_6} },
1553 
1554 	[WORLD_5G_1] = {CTL_NONE, DFS_UNINIT_REGION, 2, 0, 2,
1555 			{CHAN_5170_5330_1,
1556 			 CHAN_5735_5835_5} },
1557 
1558 	[WORLD_5G_2] = {CTL_NONE, DFS_UNINIT_REGION, 2, 0, 3,
1559 			{CHAN_5170_5330_1,
1560 			 CHAN_5490_5730_2,
1561 			 CHAN_5735_5835_5} },
1562 };
1563 
1564 #ifdef CONFIG_REG_CLIENT
1565 const uint32_t reg_2g_sub_dmn_code[REG_DOMAINS_2G_MAX] = {
1566 	[FCCA] = 0x0A10,
1567 	[FCCB] = 0x0B90,
1568 	[WORLD] = 0x0199,
1569 	[MKKA] = 0x0A40,
1570 	[MKKC] = 0x0A50,
1571 	[ETSIC] = 0x0C30,
1572 	[ETSID] = 0x0F30,
1573 	[KRRA] = 0x0A60,
1574 };
1575 
1576 const uint32_t reg_5g_sub_dmn_code[REG_DOMAINS_5G_MAX] = {
1577 	[NULL1] = 0x0198,
1578 	[FCC1] = 0x0110,
1579 	[FCC2] = 0x0120,
1580 	[FCC3] = 0x0160,
1581 	[FCC4] = 0x0165,
1582 	[FCC5] = 0x0510,
1583 	[FCC6] = 0x0610,
1584 	[FCC8] = 0x0810,
1585 	[FCC10] = 0x0B10,
1586 	[FCC11] = 0x0B20,
1587 	[FCC13] = 0x0B60,
1588 	[FCC14] = 0x0B70,
1589 	[ETSI1] = 0x0130,
1590 	[ETSI3] = 0x0330,
1591 	[ETSI4] = 0x0430,
1592 	[ETSI8] = 0x0830,
1593 	[ETSI9] = 0x0930,
1594 	[ETSI10] = 0x0D30,
1595 	[ETSI11] = 0x0E30,
1596 	[ETSI12] = 0x0E38,
1597 	[ETSI13] = 0x0E39,
1598 	[ETSI14] = 0x0E40,
1599 	[ETSI15] = 0x0E41,
1600 	[APL1] = 0x0150,
1601 	[APL2] = 0x0250,
1602 	[APL4] = 0x0450,
1603 	[APL6] = 0x0650,
1604 	[APL8] = 0x0850,
1605 	[APL9] = 0x0950,
1606 	[APL10] = 0x1050,
1607 	[APL11] = 0x1150,
1608 	[APL12] = 0x1160,
1609 	[APL13] = 0x1170,
1610 	[APL14] = 0x1180,
1611 	[APL15] = 0x1190,
1612 	[APL16] = 0x1200,
1613 	[APL17] = 0x1210,
1614 	[APL23] = 0x1280,
1615 	[APL20] = 0x1250,
1616 	[APL23] = 0x1280,
1617 	[MKK3] = 0x0340,
1618 	[MKK5] = 0x0540,
1619 	[MKK11] = 0x1140,
1620 	[MKK16] =  0x1640,
1621 	[MKK17] =  0x1650,
1622 };
1623 #endif
1624 
1625 QDF_STATUS reg_get_num_countries(int *num_countries)
1626 {
1627 	*num_countries = QDF_ARRAY_SIZE(g_all_countries);
1628 
1629 	return QDF_STATUS_SUCCESS;
1630 }
1631 
1632 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn)
1633 {
1634 	*num_reg_dmn = QDF_ARRAY_SIZE(g_reg_dmn_pairs);
1635 
1636 	return QDF_STATUS_SUCCESS;
1637 }
1638 
1639 QDF_STATUS reg_get_default_country(uint16_t *default_country)
1640 {
1641 	*default_country = CTRY_UNITED_STATES;
1642 
1643 	return QDF_STATUS_SUCCESS;
1644 }
1645 
1646 bool reg_etsi13_regdmn(uint8_t reg_dmn)
1647 {
1648 	return reg_dmn == ETSI13;
1649 }
1650 
1651 bool reg_en302_502_regdmn(uint16_t regdmn)
1652 {
1653 	return ((regdmn == ETSI11_WORLD) ||
1654 		(regdmn == ETSI12_WORLD) ||
1655 		(regdmn == ETSI14_WORLD) ||
1656 		(regdmn == ETSI15_WORLD));
1657 }
1658