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