xref: /wlan-dirver/qca-wifi-host-cmn/umac/regulatory/core/src/reg_db.c (revision 45a38684b07295822dc8eba39e293408f203eec8)
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_5735_5895_1,
1233 	CHAN_5835_5855_1,
1234 	CHAN_5855_5875_1,
1235 	CHAN_5850_5925_1,
1236 	CHAN_5850_5925_2,
1237 #ifdef CONFIG_BAND_6GHZ
1238 	CHAN_5935_6435_1,
1239 	CHAN_5935_6435_2,
1240 	CHAN_6435_6535_1,
1241 	CHAN_6435_6535_2,
1242 	CHAN_6535_6875_1,
1243 	CHAN_6535_6875_2,
1244 	CHAN_6875_7115_1,
1245 	CHAN_6875_7115_2,
1246 #endif
1247 };
1248 
1249 const struct regulatory_rule reg_rules_5g[] = {
1250 
1251 	[CHAN_4910_4990_1] = {4910, 4990, 20, 20, 0},
1252 	[CHAN_4940_4990_1] = {4940, 4990, 20, 33, 0},
1253 	[CHAN_5030_5090_1] = {5030, 5090, 20, 20, 0},
1254 	[CHAN_5170_5250_1] = {5170, 5250, 80, 17, 0},
1255 	[CHAN_5170_5250_2] = {5170, 5250, 80, 23, 0},
1256 	[CHAN_5170_5250_3] = {5170, 5250, 80, 20, 0},
1257 	[CHAN_5170_5250_4] = {5170, 5250, 80, 30, 0},
1258 	[CHAN_5170_5250_5] = {5170, 5250, 80, 24, 0},
1259 	[CHAN_5170_5250_6] = {5170, 5250, 80, 18, 0},
1260 	[CHAN_5170_5250_7] = {5170, 5250, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
1261 	[CHAN_5170_5250_8] = {5170, 5250, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
1262 	[CHAN_5170_5250_9] = {5170, 5250, 40, 30, 0},
1263 	[CHAN_5170_5250_10] = {5170, 5250, 20, 20, REGULATORY_CHAN_INDOOR_ONLY},
1264 	[CHAN_5170_5330_1] = {5170, 5330, 160, 20, REGULATORY_CHAN_NO_IR},
1265 	[CHAN_5170_5330_2] = {5170, 5330, 160, 24, 0},
1266 	[CHAN_5250_5330_1] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR},
1267 	[CHAN_5250_5330_2] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR},
1268 	[CHAN_5250_5330_3] = {5250, 5330, 80, 18, REGULATORY_CHAN_RADAR},
1269 	[CHAN_5250_5330_4] = {5250, 5330, 80, 30, REGULATORY_CHAN_RADAR},
1270 	[CHAN_5250_5330_5] = {5250, 5330, 80, 23, 0},
1271 	[CHAN_5250_5330_6] = {5250, 5330, 80, 30, 0},
1272 	[CHAN_5250_5330_7] = {5250, 5330, 80, 24, REGULATORY_CHAN_RADAR},
1273 	[CHAN_5250_5330_8] = {5250, 5330, 80, 36, 0},
1274 	[CHAN_5250_5330_9] = {5250, 5330, 80, 20, 0},
1275 	[CHAN_5250_5330_10] = {5250, 5330, 80, 24, 0},
1276 	[CHAN_5250_5330_11] = {5250, 5330, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
1277 	[CHAN_5250_5330_12] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR |
1278 						   REGULATORY_CHAN_INDOOR_ONLY},
1279 	[CHAN_5250_5330_13] = {5250, 5330, 40, 30, REGULATORY_CHAN_RADAR},
1280 	[CHAN_5250_5330_14] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR |
1281 						   REGULATORY_CHAN_INDOOR_ONLY},
1282 	[CHAN_5250_5330_15] = {5250, 5330, 20, 20, REGULATORY_CHAN_RADAR |
1283 						   REGULATORY_CHAN_INDOOR_ONLY},
1284 	[CHAN_5250_5330_16] = {5250, 5330, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
1285 	[CHAN_5490_5730_1] = {5490, 5730, 160, 24, REGULATORY_CHAN_RADAR},
1286 	[CHAN_5490_5730_2] = {5490, 5730, 160, 20, REGULATORY_CHAN_NO_IR},
1287 	[CHAN_5490_5730_3] = {5490, 5730, 160, 30, 0},
1288 	[CHAN_5490_5730_4] = {5490, 5730, 160, 24, 0},
1289 	[CHAN_5490_5730_5] = {5490, 5730, 160, 30, REGULATORY_CHAN_RADAR},
1290 	[CHAN_5490_5730_6] = {5490, 5730, 160, 23, REGULATORY_CHAN_RADAR},
1291 	[CHAN_5490_5730_7] = {5490, 5730, 160, 20, REGULATORY_CHAN_RADAR},
1292 	[CHAN_5490_5710_1] = {5490, 5710, 160, 30, REGULATORY_CHAN_RADAR},
1293 	[CHAN_5490_5710_2] = {5490, 5710, 160, 20, REGULATORY_CHAN_RADAR},
1294 	[CHAN_5490_5710_3] = {5490, 5710, 160, 27, REGULATORY_CHAN_RADAR},
1295 	[CHAN_5490_5710_4] = {5490, 5710,  40, 30, REGULATORY_CHAN_RADAR},
1296 	[CHAN_5490_5710_5] = {5490, 5710, 160, 24, REGULATORY_CHAN_RADAR},
1297 	[CHAN_5490_5710_6] = {5490, 5710, 160, 26, REGULATORY_CHAN_RADAR},
1298 	[CHAN_5490_5710_7] = {5490, 5710, 160, 23, REGULATORY_CHAN_RADAR},
1299 	[CHAN_5490_5710_8] = {5490, 5710, 20, 27, REGULATORY_CHAN_RADAR},
1300 	[CHAN_5490_5590_1] = {5490, 5590, 80, 24, REGULATORY_CHAN_RADAR},
1301 	[CHAN_5490_5590_2] = {5490, 5590, 80, 30, 0},
1302 	[CHAN_5490_5590_3] = {5490, 5590, 80, 36, 0},
1303 	[CHAN_5490_5570_1] = {5490, 5570, 80, 30, REGULATORY_CHAN_RADAR},
1304 	[CHAN_5490_5650_2] = {5490, 5650, 160, 24, REGULATORY_CHAN_RADAR},
1305 	[CHAN_5490_5670_1] = {5490, 5670, 160, 20, REGULATORY_CHAN_RADAR},
1306 	[CHAN_5490_5670_2] = {5490, 5670, 160, 23, REGULATORY_CHAN_RADAR},
1307 	[CHAN_5490_5630_1] = {5490, 5630, 80, 30, REGULATORY_CHAN_RADAR},
1308 	[CHAN_5650_5730_1] = {5650, 5730, 80, 24, REGULATORY_CHAN_RADAR},
1309 	[CHAN_5650_5730_2] = {5650, 5730, 80, 30, 0},
1310 	[CHAN_5650_5730_3] = {5650, 5730, 80, 36, 0},
1311 	[CHAN_5735_5835_1] = {5735, 5835, 80, 23, 0},
1312 	[CHAN_5735_5835_2] = {5735, 5835, 80, 30, 0},
1313 	[CHAN_5735_5835_3] = {5735, 5835, 80, 20, 0},
1314 	[CHAN_5735_5835_4] = {5735, 5835, 80, 33, 0},
1315 	[CHAN_5735_5835_5] = {5735, 5835, 80, 20, REGULATORY_CHAN_NO_IR},
1316 	[CHAN_5735_5835_6] = {5735, 5835, 80, 24, 0},
1317 	[CHAN_5735_5835_7] = {5735, 5835, 80, 36, 0},
1318 	[CHAN_5735_5835_8] = {5735, 5835, 80, 23, REGULATORY_CHAN_RADAR},
1319 	[CHAN_5735_5835_9] = {5735, 5835, 80, 30, REGULATORY_CHAN_RADAR},
1320 	[CHAN_5735_5875_1] = {5735, 5875, 20, 27, REGULATORY_CHAN_RADAR},
1321 	[CHAN_5735_5875_2] = {5735, 5875, 20, 30, 0},
1322 	[CHAN_5735_5875_3] = {5735, 5875, 80, 30, 0},
1323 	[CHAN_5735_5875_4] = {5735, 5875, 80, 14, 0},
1324 	[CHAN_5735_5875_5] = {5735, 5875, 80, 20, REGULATORY_CHAN_RADAR},
1325 	[CHAN_5735_5815_1] = {5735, 5815, 80, 30, 0},
1326 	[CHAN_5735_5815_2] = {5735, 5815, 80, 30, REGULATORY_CHAN_RADAR},
1327 	[CHAN_5735_5815_3] = {5735, 5815, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
1328 	[CHAN_5735_5815_4] = {5735, 5815, 20, 20, 0},
1329 	[CHAN_5735_5775_1] = {5735, 5775, 40, 23, 0},
1330 	[CHAN_5735_5895_1] = {5735, 5895, 160, 30, 0},
1331 	[CHAN_5835_5855_1] = {5835, 5855, 20, 30, 0},
1332 	[CHAN_5855_5875_1] = {5855, 5875, 20, 30, 0},
1333 	[CHAN_5850_5925_1] = {5850, 5925, 20, 24, 0},
1334 	[CHAN_5850_5925_2] = {5850, 5925, 20, 30, 0},
1335 #ifdef CONFIG_BAND_6GHZ
1336 	[CHAN_5935_6435_1] = {5935, 6435, 160, 18, REGULATORY_CHAN_AFC},
1337 	[CHAN_5935_6435_2] = {5935, 6435, 160, 30, REGULATORY_CHAN_AFC},
1338 	[CHAN_6435_6535_1] = {6435, 6535, 100, 18, REGULATORY_CHAN_INDOOR_ONLY},
1339 	[CHAN_6435_6535_2] = {6435, 6535, 100, 24, REGULATORY_CHAN_INDOOR_ONLY},
1340 	[CHAN_6535_6875_1] = {6535, 6875, 160, 18, REGULATORY_CHAN_AFC},
1341 	[CHAN_6535_6875_2] = {6535, 6875, 160, 30, REGULATORY_CHAN_AFC},
1342 	[CHAN_6875_7115_1] = {6875, 7115, 160, 18, REGULATORY_CHAN_INDOOR_ONLY},
1343 	[CHAN_6875_7115_2] = {6875, 7115, 160, 24, REGULATORY_CHAN_INDOOR_ONLY},
1344 #endif
1345 };
1346 
1347 
1348 const struct regdomain regdomains_5g[] = {
1349 
1350 	[FCC1] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 3, {CHAN_5170_5250_1,
1351 							  CHAN_5250_5330_1,
1352 							  CHAN_5735_5835_2} },
1353 
1354 	[FCC2] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 3, {CHAN_5170_5250_2,
1355 							  CHAN_5250_5330_1,
1356 							  CHAN_5735_5835_2} },
1357 
1358 	[FCC3] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_5,
1359 							  CHAN_5250_5330_7,
1360 							  CHAN_5490_5730_1,
1361 							  CHAN_5735_5895_1} },
1362 
1363 	[FCC4] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_4940_4990_1,
1364 							  CHAN_5170_5250_1,
1365 							  CHAN_5250_5330_7,
1366 							  CHAN_5735_5835_2} },
1367 
1368 	[FCC5] = {CTL_FCC, DFS_UNINIT_REGION, 2, 80, 6, 2, {CHAN_5170_5250_4,
1369 							    CHAN_5735_5835_2} },
1370 
1371 	[FCC6] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 5, {CHAN_5170_5250_5,
1372 							  CHAN_5250_5330_7,
1373 							  CHAN_5490_5590_1,
1374 							  CHAN_5650_5730_1,
1375 							  CHAN_5735_5835_2} },
1376 
1377 	[FCC8] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_4,
1378 							  CHAN_5250_5330_7,
1379 							  CHAN_5490_5730_1,
1380 							  CHAN_5735_5895_1} },
1381 
1382 	[FCC10] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 5, {CHAN_5170_5250_4,
1383 							   CHAN_5250_5330_7,
1384 							   CHAN_5490_5730_1,
1385 							   CHAN_5735_5835_2,
1386 							   CHAN_5850_5925_1} },
1387 
1388 	[FCC11] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_5,
1389 							   CHAN_5250_5330_7,
1390 							   CHAN_5490_5650_2,
1391 							   CHAN_5735_5835_6} },
1392 
1393 	[FCC13] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 4, {CHAN_5170_5330_2,
1394 							      CHAN_5250_5330_10,
1395 							      CHAN_5490_5730_4,
1396 							      CHAN_5735_5835_2}
1397 							      },
1398 
1399 	[FCC14] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 4, {CHAN_5170_5250_4,
1400 							      CHAN_5250_5330_10,
1401 							      CHAN_5490_5730_4,
1402 							      CHAN_5735_5835_2}
1403 							      },
1404 
1405 #ifdef CONFIG_BAND_6GHZ
1406 	[FCC15] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 8, {CHAN_5170_5250_5,
1407 							   CHAN_5250_5330_7,
1408 							   CHAN_5490_5730_1,
1409 							   CHAN_5735_5895_1,
1410 							   CHAN_5935_6435_1,
1411 							   CHAN_6435_6535_1,
1412 							   CHAN_6535_6875_1,
1413 							   CHAN_6875_7115_1} },
1414 
1415 	[FCC16] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 8, {CHAN_5170_5250_4,
1416 							   CHAN_5250_5330_7,
1417 							   CHAN_5490_5730_1,
1418 							   CHAN_5735_5895_1,
1419 							   CHAN_5935_6435_2,
1420 							   CHAN_6435_6535_2,
1421 							   CHAN_6535_6875_2,
1422 							   CHAN_6875_7115_2} },
1423 
1424 	[FCC17] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 6, {CHAN_5170_5250_4,
1425 							   CHAN_5250_5330_7,
1426 							   CHAN_5490_5730_1,
1427 							   CHAN_5735_5835_2,
1428 							   CHAN_5935_6435_2,
1429 							   CHAN_6535_6875_2} },
1430 #endif
1431 	[ETSI1] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 3, {CHAN_5170_5250_8,
1432 							     CHAN_5250_5330_12,
1433 							     CHAN_5490_5710_1}
1434 							     },
1435 
1436 	[ETSI3] = {CTL_ETSI, DFS_ETSI_REGION, 5, 160, 0, 2, {CHAN_5170_5250_2,
1437 							     CHAN_5250_5330_1}
1438 							     },
1439 
1440 	[ETSI4] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 2, {CHAN_5170_5250_6,
1441 							     CHAN_5250_5330_3}
1442 							     },
1443 
1444 	[ETSI8] = {CTL_ETSI, DFS_UNINIT_REGION, 20, 160, 0, 4,
1445 							{CHAN_5170_5250_2,
1446 							 CHAN_5250_5330_5,
1447 							 CHAN_5490_5730_3,
1448 							 CHAN_5735_5835_2} },
1449 
1450 	[ETSI9] = {CTL_ETSI, DFS_ETSI_REGION, 20, 160, 0, 4, {CHAN_5170_5250_2,
1451 							      CHAN_5250_5330_1,
1452 							      CHAN_5490_5710_5,
1453 							      CHAN_5735_5835_6}
1454 							      },
1455 
1456 	[ETSI10] = {CTL_ETSI, DFS_ETSI_REGION, 10, 160, 0, 4,
1457 							{CHAN_5170_5250_7,
1458 							 CHAN_5250_5330_14,
1459 							 CHAN_5490_5710_3,
1460 							 CHAN_5850_5925_2} },
1461 
1462 	[ETSI11] = {CTL_ETSI, DFS_ETSI_REGION, 10, 20, 0, 4, {CHAN_5170_5250_7,
1463 							      CHAN_5250_5330_14,
1464 							      CHAN_5490_5710_3,
1465 							      CHAN_5735_5875_1}
1466 							      },
1467 
1468 	[ETSI12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_7,
1469 							      CHAN_5250_5330_14,
1470 							      CHAN_5490_5730_6,
1471 							      CHAN_5735_5835_8}
1472 							      },
1473 
1474 	[ETSI13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_8,
1475 							      CHAN_5250_5330_12,
1476 							      CHAN_5490_5730_5,
1477 							      CHAN_5735_5875_4}
1478 							      },
1479 
1480 	[ETSI14] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_2,
1481 							      CHAN_5250_5330_1,
1482 							      CHAN_5490_5730_7,
1483 							      CHAN_5735_5875_5}
1484 							      },
1485 
1486 	[ETSI15] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_2,
1487 							      CHAN_5250_5330_1,
1488 							      CHAN_5490_5730_5,
1489 							      CHAN_5735_5815_2}
1490 							      },
1491 
1492 	[APL1] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 80, 0, 1, {CHAN_5735_5835_2}
1493 							     },
1494 
1495 	[APL2] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 20, 0, 1, {CHAN_5735_5815_4}
1496 							     },
1497 
1498 	[APL4] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 80, 0, 2, {CHAN_5170_5250_2,
1499 							     CHAN_5735_5835_1}
1500 							     },
1501 
1502 	[APL6] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 3, {CHAN_5170_5250_3,
1503 							    CHAN_5250_5330_2,
1504 							    CHAN_5735_5835_3} },
1505 
1506 	[APL8] = {CTL_FCC, DFS_ETSI_REGION, 2, 80, 0, 2, {CHAN_5250_5330_4,
1507 							  CHAN_5735_5835_2} },
1508 
1509 	[APL9] = {CTL_MKK, DFS_KR_REGION, 2, 160, 6, 4,   {CHAN_5170_5250_2,
1510 							   CHAN_5250_5330_1,
1511 							   CHAN_5490_5730_6,
1512 							   CHAN_5735_5835_1} },
1513 
1514 	[APL10] = {CTL_ETSI, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_2,
1515 							    CHAN_5250_5330_4,
1516 							    CHAN_5490_5710_1,
1517 							    CHAN_5735_5815_1} },
1518 
1519 	[APL11] = { CTL_ETSI, DFS_FCC_REGION, 2, 40, 0, 4, {CHAN_5170_5250_9,
1520 							    CHAN_5250_5330_13,
1521 							    CHAN_5490_5710_4,
1522 							    CHAN_5735_5875_2} },
1523 
1524 	[APL12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 80, 0, 3, {CHAN_5170_5250_2,
1525 							    CHAN_5490_5570_1,
1526 							    CHAN_5735_5775_1} },
1527 
1528 	[APL13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 3, {CHAN_5170_5250_2,
1529 							     CHAN_5250_5330_1,
1530 							     CHAN_5490_5670_2}
1531 							     },
1532 
1533 	[APL14] = {CTL_MKK, DFS_CN_REGION, 2, 160, 0, 3, {CHAN_5170_5250_2,
1534 							  CHAN_5250_5330_1,
1535 							  CHAN_5735_5835_4} },
1536 
1537 	[APL15] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 3, {CHAN_5170_5250_2,
1538 							      CHAN_5250_5330_5,
1539 							      CHAN_5735_5835_4}
1540 							      },
1541 
1542 	[APL16] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 5, {CHAN_5170_5250_1,
1543 							      CHAN_5250_5330_6,
1544 							      CHAN_5490_5590_2,
1545 							      CHAN_5650_5730_2,
1546 							      CHAN_5735_5835_2}
1547 							      },
1548 
1549 	[APL17] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 5, {CHAN_5170_5250_2,
1550 							      CHAN_5250_5330_8,
1551 							      CHAN_5490_5590_3,
1552 							      CHAN_5650_5730_3,
1553 							      CHAN_5735_5835_7}
1554 							      },
1555 
1556 	[APL19] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 4, {CHAN_5170_5250_4,
1557 							   CHAN_5250_5330_7,
1558 							   CHAN_5490_5730_1,
1559 							   CHAN_5735_5875_3} },
1560 
1561 	[APL20] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_8,
1562 							     CHAN_5250_5330_12,
1563 							     CHAN_5490_5730_5,
1564 							     CHAN_5735_5835_4}
1565 							     },
1566 
1567 	[APL23] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 160, 0, 3,
1568 							{CHAN_5170_5250_7,
1569 							 CHAN_5250_5330_11,
1570 							 CHAN_5735_5835_3} },
1571 
1572 	[APL24] = {CTL_ETSI, DFS_ETSI_REGION, 2, 80, 0, 3, {CHAN_5170_5250_8,
1573 							    CHAN_5250_5330_12,
1574 							    CHAN_5735_5815_3} },
1575 
1576 	[MKK3] = {CTL_MKK, DFS_UNINIT_REGION, 2, 80, 0, 1, {CHAN_5170_5250_3} },
1577 
1578 	[MKK5] = {CTL_MKK, DFS_MKK_REGION, 2, 160, 0, 3, {CHAN_5170_5250_8,
1579 							  CHAN_5250_5330_12,
1580 							  CHAN_5490_5710_7} },
1581 
1582 	[MKK11] = {CTL_MKK, DFS_MKK_REGION, 2, 160, 0, 5, {CHAN_4910_4990_1,
1583 							   CHAN_5170_5250_2,
1584 							   CHAN_5030_5090_1,
1585 							   CHAN_5250_5330_1,
1586 							   CHAN_5490_5710_7} },
1587 
1588 	[MKK16] = {CTL_MKK, DFS_MKK_REGION, 2, 160, 0, 1, {CHAN_5490_5710_6} },
1589 
1590 	[MKK17] = {CTL_MKK, DFS_MKKN_REGION, 2, 160, 0, 3, {CHAN_5170_5250_8,
1591 							    CHAN_5250_5330_12,
1592 							    CHAN_5490_5730_6} },
1593 
1594 	[WORLD_5G_1] = {CTL_NONE, DFS_UNINIT_REGION, 2, 160, 0, 2,
1595 							{CHAN_5170_5330_1,
1596 							 CHAN_5735_5835_5} },
1597 
1598 	[WORLD_5G_2] = {CTL_NONE, DFS_UNINIT_REGION, 2, 160, 0, 3,
1599 							{CHAN_5170_5330_1,
1600 							 CHAN_5490_5730_2,
1601 							 CHAN_5735_5835_5} },
1602 };
1603 
1604 #ifdef CONFIG_REG_CLIENT
1605 const uint32_t reg_2g_sub_dmn_code[REG_DOMAINS_2G_MAX] = {
1606 	[FCCA] = 0x0A10,
1607 	[FCCB] = 0x0B90,
1608 	[WORLD] = 0x0199,
1609 	[MKKA] = 0x0A40,
1610 	[MKKC] = 0x0A50,
1611 	[ETSIC] = 0x0C30,
1612 	[ETSID] = 0x0F30,
1613 	[KRRA] = 0x0A60,
1614 };
1615 
1616 const uint32_t reg_5g_sub_dmn_code[REG_DOMAINS_5G_MAX] = {
1617 	[NULL1] = 0x0198,
1618 	[FCC1] = 0x0110,
1619 	[FCC2] = 0x0120,
1620 	[FCC3] = 0x0160,
1621 	[FCC4] = 0x0165,
1622 	[FCC5] = 0x0510,
1623 	[FCC6] = 0x0610,
1624 	[FCC8] = 0x0810,
1625 	[FCC10] = 0x0B10,
1626 	[FCC11] = 0x0B20,
1627 	[FCC13] = 0x0B60,
1628 	[FCC14] = 0x0B70,
1629 	[ETSI1] = 0x0130,
1630 	[ETSI3] = 0x0330,
1631 	[ETSI4] = 0x0430,
1632 	[ETSI8] = 0x0830,
1633 	[ETSI9] = 0x0930,
1634 	[ETSI10] = 0x0D30,
1635 	[ETSI11] = 0x0E30,
1636 	[ETSI12] = 0x0E38,
1637 	[ETSI13] = 0x0E39,
1638 	[ETSI14] = 0x0E40,
1639 	[ETSI15] = 0x0E41,
1640 	[APL1] = 0x0150,
1641 	[APL2] = 0x0250,
1642 	[APL4] = 0x0450,
1643 	[APL6] = 0x0650,
1644 	[APL8] = 0x0850,
1645 	[APL9] = 0x0950,
1646 	[APL10] = 0x1050,
1647 	[APL11] = 0x1150,
1648 	[APL12] = 0x1160,
1649 	[APL13] = 0x1170,
1650 	[APL14] = 0x1180,
1651 	[APL15] = 0x1190,
1652 	[APL16] = 0x1200,
1653 	[APL17] = 0x1210,
1654 	[APL23] = 0x1280,
1655 	[APL20] = 0x1250,
1656 	[APL23] = 0x1280,
1657 	[MKK3] = 0x0340,
1658 	[MKK5] = 0x0540,
1659 	[MKK11] = 0x1140,
1660 	[MKK16] =  0x1640,
1661 	[MKK17] =  0x1650,
1662 };
1663 #endif
1664 
1665 QDF_STATUS reg_get_num_countries(int *num_countries)
1666 {
1667 	*num_countries = QDF_ARRAY_SIZE(g_all_countries);
1668 
1669 	return QDF_STATUS_SUCCESS;
1670 }
1671 
1672 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn)
1673 {
1674 	*num_reg_dmn = QDF_ARRAY_SIZE(g_reg_dmn_pairs);
1675 
1676 	return QDF_STATUS_SUCCESS;
1677 }
1678 
1679 QDF_STATUS reg_get_default_country(uint16_t *default_country)
1680 {
1681 	*default_country = CTRY_UNITED_STATES;
1682 
1683 	return QDF_STATUS_SUCCESS;
1684 }
1685 
1686 bool reg_etsi13_regdmn(uint8_t reg_dmn)
1687 {
1688 	return reg_dmn == ETSI13;
1689 }
1690 
1691 #ifdef CONFIG_BAND_6GHZ
1692 bool reg_fcc_regdmn(uint8_t reg_dmn)
1693 {
1694 	return ((reg_dmn == FCC3) ||
1695 		(reg_dmn == FCC8) ||
1696 		(reg_dmn == FCC15) ||
1697 		(reg_dmn == FCC16));
1698 }
1699 #else
1700 bool reg_fcc_regdmn(uint8_t reg_dmn)
1701 {
1702 	return (reg_dmn == FCC3 || reg_dmn == FCC8);
1703 }
1704 #endif
1705 
1706 bool reg_en302_502_regdmn(uint16_t regdmn)
1707 {
1708 	return ((regdmn == ETSI11_WORLD) ||
1709 		(regdmn == ETSI12_WORLD) ||
1710 		(regdmn == ETSI14_WORLD) ||
1711 		(regdmn == ETSI15_WORLD));
1712 }
1713