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