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