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