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