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_5735_5895_1, 1233 CHAN_5835_5855_1, 1234 CHAN_5855_5875_1, 1235 CHAN_5850_5925_1, 1236 CHAN_5850_5925_2, 1237 #ifdef CONFIG_BAND_6GHZ 1238 CHAN_5935_6435_1, 1239 CHAN_5935_6435_2, 1240 CHAN_6435_6535_1, 1241 CHAN_6435_6535_2, 1242 CHAN_6535_6875_1, 1243 CHAN_6535_6875_2, 1244 CHAN_6875_7115_1, 1245 CHAN_6875_7115_2, 1246 #endif 1247 }; 1248 1249 const struct regulatory_rule reg_rules_5g[] = { 1250 1251 [CHAN_4910_4990_1] = {4910, 4990, 20, 20, 0}, 1252 [CHAN_4940_4990_1] = {4940, 4990, 20, 33, 0}, 1253 [CHAN_5030_5090_1] = {5030, 5090, 20, 20, 0}, 1254 [CHAN_5170_5250_1] = {5170, 5250, 80, 17, 0}, 1255 [CHAN_5170_5250_2] = {5170, 5250, 80, 23, 0}, 1256 [CHAN_5170_5250_3] = {5170, 5250, 80, 20, 0}, 1257 [CHAN_5170_5250_4] = {5170, 5250, 80, 30, 0}, 1258 [CHAN_5170_5250_5] = {5170, 5250, 80, 24, 0}, 1259 [CHAN_5170_5250_6] = {5170, 5250, 80, 18, 0}, 1260 [CHAN_5170_5250_7] = {5170, 5250, 80, 20, REGULATORY_CHAN_INDOOR_ONLY}, 1261 [CHAN_5170_5250_8] = {5170, 5250, 80, 23, REGULATORY_CHAN_INDOOR_ONLY}, 1262 [CHAN_5170_5250_9] = {5170, 5250, 40, 30, 0}, 1263 [CHAN_5170_5250_10] = {5170, 5250, 20, 20, REGULATORY_CHAN_INDOOR_ONLY}, 1264 [CHAN_5170_5330_1] = {5170, 5330, 160, 20, REGULATORY_CHAN_NO_IR}, 1265 [CHAN_5170_5330_2] = {5170, 5330, 160, 24, 0}, 1266 [CHAN_5250_5330_1] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR}, 1267 [CHAN_5250_5330_2] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR}, 1268 [CHAN_5250_5330_3] = {5250, 5330, 80, 18, REGULATORY_CHAN_RADAR}, 1269 [CHAN_5250_5330_4] = {5250, 5330, 80, 30, REGULATORY_CHAN_RADAR}, 1270 [CHAN_5250_5330_5] = {5250, 5330, 80, 23, 0}, 1271 [CHAN_5250_5330_6] = {5250, 5330, 80, 30, 0}, 1272 [CHAN_5250_5330_7] = {5250, 5330, 80, 24, REGULATORY_CHAN_RADAR}, 1273 [CHAN_5250_5330_8] = {5250, 5330, 80, 36, 0}, 1274 [CHAN_5250_5330_9] = {5250, 5330, 80, 20, 0}, 1275 [CHAN_5250_5330_10] = {5250, 5330, 80, 24, 0}, 1276 [CHAN_5250_5330_11] = {5250, 5330, 80, 20, REGULATORY_CHAN_INDOOR_ONLY}, 1277 [CHAN_5250_5330_12] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR | 1278 REGULATORY_CHAN_INDOOR_ONLY}, 1279 [CHAN_5250_5330_13] = {5250, 5330, 40, 30, REGULATORY_CHAN_RADAR}, 1280 [CHAN_5250_5330_14] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR | 1281 REGULATORY_CHAN_INDOOR_ONLY}, 1282 [CHAN_5250_5330_15] = {5250, 5330, 20, 20, REGULATORY_CHAN_RADAR | 1283 REGULATORY_CHAN_INDOOR_ONLY}, 1284 [CHAN_5250_5330_16] = {5250, 5330, 80, 23, REGULATORY_CHAN_INDOOR_ONLY}, 1285 [CHAN_5490_5730_1] = {5490, 5730, 160, 24, REGULATORY_CHAN_RADAR}, 1286 [CHAN_5490_5730_2] = {5490, 5730, 160, 20, REGULATORY_CHAN_NO_IR}, 1287 [CHAN_5490_5730_3] = {5490, 5730, 160, 30, 0}, 1288 [CHAN_5490_5730_4] = {5490, 5730, 160, 24, 0}, 1289 [CHAN_5490_5730_5] = {5490, 5730, 160, 30, REGULATORY_CHAN_RADAR}, 1290 [CHAN_5490_5730_6] = {5490, 5730, 160, 23, REGULATORY_CHAN_RADAR}, 1291 [CHAN_5490_5730_7] = {5490, 5730, 160, 20, REGULATORY_CHAN_RADAR}, 1292 [CHAN_5490_5710_1] = {5490, 5710, 160, 30, REGULATORY_CHAN_RADAR}, 1293 [CHAN_5490_5710_2] = {5490, 5710, 160, 20, REGULATORY_CHAN_RADAR}, 1294 [CHAN_5490_5710_3] = {5490, 5710, 160, 27, REGULATORY_CHAN_RADAR}, 1295 [CHAN_5490_5710_4] = {5490, 5710, 40, 30, REGULATORY_CHAN_RADAR}, 1296 [CHAN_5490_5710_5] = {5490, 5710, 160, 24, REGULATORY_CHAN_RADAR}, 1297 [CHAN_5490_5710_6] = {5490, 5710, 160, 26, REGULATORY_CHAN_RADAR}, 1298 [CHAN_5490_5710_7] = {5490, 5710, 160, 23, REGULATORY_CHAN_RADAR}, 1299 [CHAN_5490_5710_8] = {5490, 5710, 20, 27, REGULATORY_CHAN_RADAR}, 1300 [CHAN_5490_5590_1] = {5490, 5590, 80, 24, REGULATORY_CHAN_RADAR}, 1301 [CHAN_5490_5590_2] = {5490, 5590, 80, 30, 0}, 1302 [CHAN_5490_5590_3] = {5490, 5590, 80, 36, 0}, 1303 [CHAN_5490_5570_1] = {5490, 5570, 80, 30, REGULATORY_CHAN_RADAR}, 1304 [CHAN_5490_5650_2] = {5490, 5650, 160, 24, REGULATORY_CHAN_RADAR}, 1305 [CHAN_5490_5670_1] = {5490, 5670, 160, 20, REGULATORY_CHAN_RADAR}, 1306 [CHAN_5490_5670_2] = {5490, 5670, 160, 23, REGULATORY_CHAN_RADAR}, 1307 [CHAN_5490_5630_1] = {5490, 5630, 80, 30, REGULATORY_CHAN_RADAR}, 1308 [CHAN_5650_5730_1] = {5650, 5730, 80, 24, REGULATORY_CHAN_RADAR}, 1309 [CHAN_5650_5730_2] = {5650, 5730, 80, 30, 0}, 1310 [CHAN_5650_5730_3] = {5650, 5730, 80, 36, 0}, 1311 [CHAN_5735_5835_1] = {5735, 5835, 80, 23, 0}, 1312 [CHAN_5735_5835_2] = {5735, 5835, 80, 30, 0}, 1313 [CHAN_5735_5835_3] = {5735, 5835, 80, 20, 0}, 1314 [CHAN_5735_5835_4] = {5735, 5835, 80, 33, 0}, 1315 [CHAN_5735_5835_5] = {5735, 5835, 80, 20, REGULATORY_CHAN_NO_IR}, 1316 [CHAN_5735_5835_6] = {5735, 5835, 80, 24, 0}, 1317 [CHAN_5735_5835_7] = {5735, 5835, 80, 36, 0}, 1318 [CHAN_5735_5835_8] = {5735, 5835, 80, 23, REGULATORY_CHAN_RADAR}, 1319 [CHAN_5735_5835_9] = {5735, 5835, 80, 30, REGULATORY_CHAN_RADAR}, 1320 [CHAN_5735_5875_1] = {5735, 5875, 20, 27, REGULATORY_CHAN_RADAR}, 1321 [CHAN_5735_5875_2] = {5735, 5875, 20, 30, 0}, 1322 [CHAN_5735_5875_3] = {5735, 5875, 80, 30, 0}, 1323 [CHAN_5735_5875_4] = {5735, 5875, 80, 14, 0}, 1324 [CHAN_5735_5875_5] = {5735, 5875, 80, 20, REGULATORY_CHAN_RADAR}, 1325 [CHAN_5735_5815_1] = {5735, 5815, 80, 30, 0}, 1326 [CHAN_5735_5815_2] = {5735, 5815, 80, 30, REGULATORY_CHAN_RADAR}, 1327 [CHAN_5735_5815_3] = {5735, 5815, 80, 23, REGULATORY_CHAN_INDOOR_ONLY}, 1328 [CHAN_5735_5815_4] = {5735, 5815, 20, 20, 0}, 1329 [CHAN_5735_5775_1] = {5735, 5775, 40, 23, 0}, 1330 [CHAN_5735_5895_1] = {5735, 5895, 160, 30, 0}, 1331 [CHAN_5835_5855_1] = {5835, 5855, 20, 30, 0}, 1332 [CHAN_5855_5875_1] = {5855, 5875, 20, 30, 0}, 1333 [CHAN_5850_5925_1] = {5850, 5925, 20, 24, 0}, 1334 [CHAN_5850_5925_2] = {5850, 5925, 20, 30, 0}, 1335 #ifdef CONFIG_BAND_6GHZ 1336 [CHAN_5935_6435_1] = {5935, 6435, 160, 18, REGULATORY_CHAN_AFC}, 1337 [CHAN_5935_6435_2] = {5935, 6435, 160, 30, REGULATORY_CHAN_AFC}, 1338 [CHAN_6435_6535_1] = {6435, 6535, 100, 18, REGULATORY_CHAN_INDOOR_ONLY}, 1339 [CHAN_6435_6535_2] = {6435, 6535, 100, 24, REGULATORY_CHAN_INDOOR_ONLY}, 1340 [CHAN_6535_6875_1] = {6535, 6875, 160, 18, REGULATORY_CHAN_AFC}, 1341 [CHAN_6535_6875_2] = {6535, 6875, 160, 30, REGULATORY_CHAN_AFC}, 1342 [CHAN_6875_7115_1] = {6875, 7115, 160, 18, REGULATORY_CHAN_INDOOR_ONLY}, 1343 [CHAN_6875_7115_2] = {6875, 7115, 160, 24, REGULATORY_CHAN_INDOOR_ONLY}, 1344 #endif 1345 }; 1346 1347 1348 const struct regdomain regdomains_5g[] = { 1349 1350 [FCC1] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 3, {CHAN_5170_5250_1, 1351 CHAN_5250_5330_1, 1352 CHAN_5735_5835_2} }, 1353 1354 [FCC2] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 3, {CHAN_5170_5250_2, 1355 CHAN_5250_5330_1, 1356 CHAN_5735_5835_2} }, 1357 1358 [FCC3] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_5, 1359 CHAN_5250_5330_7, 1360 CHAN_5490_5730_1, 1361 CHAN_5735_5895_1} }, 1362 1363 [FCC4] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_4940_4990_1, 1364 CHAN_5170_5250_1, 1365 CHAN_5250_5330_7, 1366 CHAN_5735_5835_2} }, 1367 1368 [FCC5] = {CTL_FCC, DFS_UNINIT_REGION, 2, 80, 6, 2, {CHAN_5170_5250_4, 1369 CHAN_5735_5835_2} }, 1370 1371 [FCC6] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 5, {CHAN_5170_5250_5, 1372 CHAN_5250_5330_7, 1373 CHAN_5490_5590_1, 1374 CHAN_5650_5730_1, 1375 CHAN_5735_5835_2} }, 1376 1377 [FCC8] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_4, 1378 CHAN_5250_5330_7, 1379 CHAN_5490_5730_1, 1380 CHAN_5735_5895_1} }, 1381 1382 [FCC10] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 5, {CHAN_5170_5250_4, 1383 CHAN_5250_5330_7, 1384 CHAN_5490_5730_1, 1385 CHAN_5735_5835_2, 1386 CHAN_5850_5925_1} }, 1387 1388 [FCC11] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_5, 1389 CHAN_5250_5330_7, 1390 CHAN_5490_5650_2, 1391 CHAN_5735_5835_6} }, 1392 1393 [FCC13] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 4, {CHAN_5170_5330_2, 1394 CHAN_5250_5330_10, 1395 CHAN_5490_5730_4, 1396 CHAN_5735_5835_2} 1397 }, 1398 1399 [FCC14] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 4, {CHAN_5170_5250_4, 1400 CHAN_5250_5330_10, 1401 CHAN_5490_5730_4, 1402 CHAN_5735_5835_2} 1403 }, 1404 1405 #ifdef CONFIG_BAND_6GHZ 1406 [FCC15] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 8, {CHAN_5170_5250_5, 1407 CHAN_5250_5330_7, 1408 CHAN_5490_5730_1, 1409 CHAN_5735_5895_1, 1410 CHAN_5935_6435_1, 1411 CHAN_6435_6535_1, 1412 CHAN_6535_6875_1, 1413 CHAN_6875_7115_1} }, 1414 1415 [FCC16] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 8, {CHAN_5170_5250_4, 1416 CHAN_5250_5330_7, 1417 CHAN_5490_5730_1, 1418 CHAN_5735_5895_1, 1419 CHAN_5935_6435_2, 1420 CHAN_6435_6535_2, 1421 CHAN_6535_6875_2, 1422 CHAN_6875_7115_2} }, 1423 1424 [FCC17] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 6, {CHAN_5170_5250_4, 1425 CHAN_5250_5330_7, 1426 CHAN_5490_5730_1, 1427 CHAN_5735_5835_2, 1428 CHAN_5935_6435_2, 1429 CHAN_6535_6875_2} }, 1430 #endif 1431 [ETSI1] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 3, {CHAN_5170_5250_8, 1432 CHAN_5250_5330_12, 1433 CHAN_5490_5710_1} 1434 }, 1435 1436 [ETSI3] = {CTL_ETSI, DFS_ETSI_REGION, 5, 160, 0, 2, {CHAN_5170_5250_2, 1437 CHAN_5250_5330_1} 1438 }, 1439 1440 [ETSI4] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 2, {CHAN_5170_5250_6, 1441 CHAN_5250_5330_3} 1442 }, 1443 1444 [ETSI8] = {CTL_ETSI, DFS_UNINIT_REGION, 20, 160, 0, 4, 1445 {CHAN_5170_5250_2, 1446 CHAN_5250_5330_5, 1447 CHAN_5490_5730_3, 1448 CHAN_5735_5835_2} }, 1449 1450 [ETSI9] = {CTL_ETSI, DFS_ETSI_REGION, 20, 160, 0, 4, {CHAN_5170_5250_2, 1451 CHAN_5250_5330_1, 1452 CHAN_5490_5710_5, 1453 CHAN_5735_5835_6} 1454 }, 1455 1456 [ETSI10] = {CTL_ETSI, DFS_ETSI_REGION, 10, 160, 0, 4, 1457 {CHAN_5170_5250_7, 1458 CHAN_5250_5330_14, 1459 CHAN_5490_5710_3, 1460 CHAN_5850_5925_2} }, 1461 1462 [ETSI11] = {CTL_ETSI, DFS_ETSI_REGION, 10, 20, 0, 4, {CHAN_5170_5250_7, 1463 CHAN_5250_5330_14, 1464 CHAN_5490_5710_3, 1465 CHAN_5735_5875_1} 1466 }, 1467 1468 [ETSI12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_7, 1469 CHAN_5250_5330_14, 1470 CHAN_5490_5730_6, 1471 CHAN_5735_5835_8} 1472 }, 1473 1474 [ETSI13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_8, 1475 CHAN_5250_5330_12, 1476 CHAN_5490_5730_5, 1477 CHAN_5735_5875_4} 1478 }, 1479 1480 [ETSI14] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_2, 1481 CHAN_5250_5330_1, 1482 CHAN_5490_5730_7, 1483 CHAN_5735_5875_5} 1484 }, 1485 1486 [ETSI15] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_2, 1487 CHAN_5250_5330_1, 1488 CHAN_5490_5730_5, 1489 CHAN_5735_5815_2} 1490 }, 1491 1492 [APL1] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 80, 0, 1, {CHAN_5735_5835_2} 1493 }, 1494 1495 [APL2] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 20, 0, 1, {CHAN_5735_5815_4} 1496 }, 1497 1498 [APL4] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 80, 0, 2, {CHAN_5170_5250_2, 1499 CHAN_5735_5835_1} 1500 }, 1501 1502 [APL6] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 3, {CHAN_5170_5250_3, 1503 CHAN_5250_5330_2, 1504 CHAN_5735_5835_3} }, 1505 1506 [APL8] = {CTL_FCC, DFS_ETSI_REGION, 2, 80, 0, 2, {CHAN_5250_5330_4, 1507 CHAN_5735_5835_2} }, 1508 1509 [APL9] = {CTL_MKK, DFS_KR_REGION, 2, 160, 6, 4, {CHAN_5170_5250_2, 1510 CHAN_5250_5330_1, 1511 CHAN_5490_5730_6, 1512 CHAN_5735_5835_1} }, 1513 1514 [APL10] = {CTL_ETSI, DFS_FCC_REGION, 2, 160, 6, 4, {CHAN_5170_5250_2, 1515 CHAN_5250_5330_4, 1516 CHAN_5490_5710_1, 1517 CHAN_5735_5815_1} }, 1518 1519 [APL11] = { CTL_ETSI, DFS_FCC_REGION, 2, 40, 0, 4, {CHAN_5170_5250_9, 1520 CHAN_5250_5330_13, 1521 CHAN_5490_5710_4, 1522 CHAN_5735_5875_2} }, 1523 1524 [APL12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 80, 0, 3, {CHAN_5170_5250_2, 1525 CHAN_5490_5570_1, 1526 CHAN_5735_5775_1} }, 1527 1528 [APL13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 3, {CHAN_5170_5250_2, 1529 CHAN_5250_5330_1, 1530 CHAN_5490_5670_2} 1531 }, 1532 1533 [APL14] = {CTL_MKK, DFS_CN_REGION, 2, 160, 0, 3, {CHAN_5170_5250_2, 1534 CHAN_5250_5330_1, 1535 CHAN_5735_5835_4} }, 1536 1537 [APL15] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 3, {CHAN_5170_5250_2, 1538 CHAN_5250_5330_5, 1539 CHAN_5735_5835_4} 1540 }, 1541 1542 [APL16] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 5, {CHAN_5170_5250_1, 1543 CHAN_5250_5330_6, 1544 CHAN_5490_5590_2, 1545 CHAN_5650_5730_2, 1546 CHAN_5735_5835_2} 1547 }, 1548 1549 [APL17] = {CTL_FCC, DFS_UNINIT_REGION, 2, 160, 0, 5, {CHAN_5170_5250_2, 1550 CHAN_5250_5330_8, 1551 CHAN_5490_5590_3, 1552 CHAN_5650_5730_3, 1553 CHAN_5735_5835_7} 1554 }, 1555 1556 [APL19] = {CTL_FCC, DFS_FCC_REGION, 2, 160, 0, 4, {CHAN_5170_5250_4, 1557 CHAN_5250_5330_7, 1558 CHAN_5490_5730_1, 1559 CHAN_5735_5875_3} }, 1560 1561 [APL20] = {CTL_ETSI, DFS_ETSI_REGION, 2, 160, 0, 4, {CHAN_5170_5250_8, 1562 CHAN_5250_5330_12, 1563 CHAN_5490_5730_5, 1564 CHAN_5735_5835_4} 1565 }, 1566 1567 [APL23] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 160, 0, 3, 1568 {CHAN_5170_5250_7, 1569 CHAN_5250_5330_11, 1570 CHAN_5735_5835_3} }, 1571 1572 [APL24] = {CTL_ETSI, DFS_ETSI_REGION, 2, 80, 0, 3, {CHAN_5170_5250_8, 1573 CHAN_5250_5330_12, 1574 CHAN_5735_5815_3} }, 1575 1576 [MKK3] = {CTL_MKK, DFS_UNINIT_REGION, 2, 80, 0, 1, {CHAN_5170_5250_3} }, 1577 1578 [MKK5] = {CTL_MKK, DFS_MKK_REGION, 2, 160, 0, 3, {CHAN_5170_5250_8, 1579 CHAN_5250_5330_12, 1580 CHAN_5490_5710_7} }, 1581 1582 [MKK11] = {CTL_MKK, DFS_MKK_REGION, 2, 160, 0, 5, {CHAN_4910_4990_1, 1583 CHAN_5170_5250_2, 1584 CHAN_5030_5090_1, 1585 CHAN_5250_5330_1, 1586 CHAN_5490_5710_7} }, 1587 1588 [MKK16] = {CTL_MKK, DFS_MKK_REGION, 2, 160, 0, 1, {CHAN_5490_5710_6} }, 1589 1590 [MKK17] = {CTL_MKK, DFS_MKKN_REGION, 2, 160, 0, 3, {CHAN_5170_5250_8, 1591 CHAN_5250_5330_12, 1592 CHAN_5490_5730_6} }, 1593 1594 [WORLD_5G_1] = {CTL_NONE, DFS_UNINIT_REGION, 2, 160, 0, 2, 1595 {CHAN_5170_5330_1, 1596 CHAN_5735_5835_5} }, 1597 1598 [WORLD_5G_2] = {CTL_NONE, DFS_UNINIT_REGION, 2, 160, 0, 3, 1599 {CHAN_5170_5330_1, 1600 CHAN_5490_5730_2, 1601 CHAN_5735_5835_5} }, 1602 }; 1603 1604 #ifdef CONFIG_REG_CLIENT 1605 const uint32_t reg_2g_sub_dmn_code[REG_DOMAINS_2G_MAX] = { 1606 [FCCA] = 0x0A10, 1607 [FCCB] = 0x0B90, 1608 [WORLD] = 0x0199, 1609 [MKKA] = 0x0A40, 1610 [MKKC] = 0x0A50, 1611 [ETSIC] = 0x0C30, 1612 [ETSID] = 0x0F30, 1613 [KRRA] = 0x0A60, 1614 }; 1615 1616 const uint32_t reg_5g_sub_dmn_code[REG_DOMAINS_5G_MAX] = { 1617 [NULL1] = 0x0198, 1618 [FCC1] = 0x0110, 1619 [FCC2] = 0x0120, 1620 [FCC3] = 0x0160, 1621 [FCC4] = 0x0165, 1622 [FCC5] = 0x0510, 1623 [FCC6] = 0x0610, 1624 [FCC8] = 0x0810, 1625 [FCC10] = 0x0B10, 1626 [FCC11] = 0x0B20, 1627 [FCC13] = 0x0B60, 1628 [FCC14] = 0x0B70, 1629 [ETSI1] = 0x0130, 1630 [ETSI3] = 0x0330, 1631 [ETSI4] = 0x0430, 1632 [ETSI8] = 0x0830, 1633 [ETSI9] = 0x0930, 1634 [ETSI10] = 0x0D30, 1635 [ETSI11] = 0x0E30, 1636 [ETSI12] = 0x0E38, 1637 [ETSI13] = 0x0E39, 1638 [ETSI14] = 0x0E40, 1639 [ETSI15] = 0x0E41, 1640 [APL1] = 0x0150, 1641 [APL2] = 0x0250, 1642 [APL4] = 0x0450, 1643 [APL6] = 0x0650, 1644 [APL8] = 0x0850, 1645 [APL9] = 0x0950, 1646 [APL10] = 0x1050, 1647 [APL11] = 0x1150, 1648 [APL12] = 0x1160, 1649 [APL13] = 0x1170, 1650 [APL14] = 0x1180, 1651 [APL15] = 0x1190, 1652 [APL16] = 0x1200, 1653 [APL17] = 0x1210, 1654 [APL23] = 0x1280, 1655 [APL20] = 0x1250, 1656 [APL23] = 0x1280, 1657 [MKK3] = 0x0340, 1658 [MKK5] = 0x0540, 1659 [MKK11] = 0x1140, 1660 [MKK16] = 0x1640, 1661 [MKK17] = 0x1650, 1662 }; 1663 #endif 1664 1665 QDF_STATUS reg_get_num_countries(int *num_countries) 1666 { 1667 *num_countries = QDF_ARRAY_SIZE(g_all_countries); 1668 1669 return QDF_STATUS_SUCCESS; 1670 } 1671 1672 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn) 1673 { 1674 *num_reg_dmn = QDF_ARRAY_SIZE(g_reg_dmn_pairs); 1675 1676 return QDF_STATUS_SUCCESS; 1677 } 1678 1679 QDF_STATUS reg_get_default_country(uint16_t *default_country) 1680 { 1681 *default_country = CTRY_UNITED_STATES; 1682 1683 return QDF_STATUS_SUCCESS; 1684 } 1685 1686 bool reg_etsi13_regdmn(uint8_t reg_dmn) 1687 { 1688 return reg_dmn == ETSI13; 1689 } 1690 1691 #ifdef CONFIG_BAND_6GHZ 1692 bool reg_fcc_regdmn(uint8_t reg_dmn) 1693 { 1694 return ((reg_dmn == FCC3) || 1695 (reg_dmn == FCC8) || 1696 (reg_dmn == FCC15) || 1697 (reg_dmn == FCC16)); 1698 } 1699 #else 1700 bool reg_fcc_regdmn(uint8_t reg_dmn) 1701 { 1702 return (reg_dmn == FCC3 || reg_dmn == FCC8); 1703 } 1704 #endif 1705 1706 bool reg_en302_502_regdmn(uint16_t regdmn) 1707 { 1708 return ((regdmn == ETSI11_WORLD) || 1709 (regdmn == ETSI12_WORLD) || 1710 (regdmn == ETSI14_WORLD) || 1711 (regdmn == ETSI15_WORLD)); 1712 } 1713