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