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