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