qcacld-3.0: Make regdomain code linux style
Fix the data structures of regdomain code; to make it linux style.
Change-Id: If8123370f4ce370adba1a49636b42449c2644144
CRs-Fixed: 961806
diff --git a/core/cds/inc/cds_reg_service.h b/core/cds/inc/cds_reg_service.h
index 65f3f9d..5eef8b3 100644
--- a/core/cds/inc/cds_reg_service.h
+++ b/core/cds/inc/cds_reg_service.h
@@ -287,10 +287,10 @@
bool cds_is_dsrc_channel(uint16_t);
enum channel_state cds_get_bonded_channel_state(uint32_t chan_num,
- enum channel_width chan_width);
+ enum channel_width chan_width);
enum channel_width cds_get_max_channel_bw(uint32_t chan_num);
QDF_STATUS cds_set_reg_domain(void *client_ctxt, v_REGDOMAIN_t reg_domain);
-
QDF_STATUS cds_put_default_country(uint8_t *def_country);
+
#endif /* __CDS_REG_SERVICE_H */
diff --git a/core/cds/inc/cds_regdomain.h b/core/cds/inc/cds_regdomain.h
index 519f4e8..0c4f157 100644
--- a/core/cds/inc/cds_regdomain.h
+++ b/core/cds/inc/cds_regdomain.h
@@ -68,8 +68,8 @@
*
*/
-#ifndef REGULATORY_H
-#define REGULATORY_H
+#ifndef __CDS_REGDOMAIN_H
+#define __CDS_REGDOMAIN_H
#define MAX_CHANNELS_PER_OPERATING_CLASS 25
#define CTRY_DEBUG 0x1ff
@@ -79,7 +79,7 @@
#define DEF_REGDMN FCC3_FCCA
#define CDS_MAX_SUPP_OPER_CLASSES 32
-enum EnumRd {
+enum reg_domain {
NO_ENUMRD = 0x00,
NULL1_WORLD = 0x03,
NULL1_ETSIB = 0x07,
@@ -89,7 +89,6 @@
FCC4_FCCA = 0x12,
FCC5_FCCA = 0x13,
FCC6_FCCA = 0x14,
-
FCC2_FCCA = 0x20,
FCC2_WORLD = 0x21,
FCC2_ETSIC = 0x22,
@@ -148,11 +147,9 @@
WOR3_WORLD = 0x63,
WOR4_WORLD = 0x64,
WOR5_ETSIC = 0x65,
-
WOR01_WORLD = 0x66,
WOR02_WORLD = 0x67,
EU1_WORLD = 0x68,
-
WOR9_WORLD = 0x69,
WORA_WORLD = 0x6A,
WORB_WORLD = 0x6B,
@@ -161,51 +158,40 @@
MKK3_MKKB = 0x80,
MKK3_MKKA2 = 0x81,
MKK3_MKKC = 0x82,
-
MKK4_MKKB = 0x83,
MKK4_MKKA2 = 0x84,
MKK4_MKKC = 0x85,
-
MKK5_MKKB = 0x86,
MKK5_MKKA2 = 0x87,
MKK5_MKKC = 0x88,
MKK5_MKKA = 0x99,
MKK5_FCCA = 0x9A,
-
MKK6_MKKB = 0x89,
MKK6_MKKA2 = 0x8A,
MKK6_MKKC = 0x8B,
-
MKK7_MKKB = 0x8C,
MKK7_MKKA2 = 0x8D,
MKK7_MKKC = 0x8E,
-
MKK8_MKKB = 0x8F,
MKK8_MKKA2 = 0x90,
MKK8_MKKC = 0x91,
-
MKK14_MKKA1 = 0x92,
MKK15_MKKA1 = 0x93,
-
MKK10_FCCA = 0xD0,
MKK10_MKKA1 = 0xD1,
MKK10_MKKC = 0xD2,
MKK10_MKKA2 = 0xD3,
-
MKK11_MKKA = 0xD4,
MKK11_FCCA = 0xD5,
MKK11_MKKA1 = 0xD6,
MKK11_MKKC = 0xD7,
MKK11_MKKA2 = 0xD8,
-
MKK12_MKKA = 0xD9,
MKK12_FCCA = 0xDA,
MKK12_MKKA1 = 0xDB,
MKK12_MKKC = 0xDC,
MKK12_MKKA2 = 0xDD,
-
MKK13_MKKB = 0xDE,
-
MKK3_MKKA = 0xF0,
MKK3_MKKA1 = 0xF1,
MKK3_FCCA = 0xF2,
@@ -281,42 +267,14 @@
DEBUG_REG_DMN = 0x01ff,
};
-enum {
+enum ctl_val {
FCC = 0x10,
MKK = 0x40,
ETSI = 0x30,
NO_CTL = 0xff
};
-
-/* These defines should match the table from ah_internal.h */
-enum HAL_DFS_DOMAIN {
- DFS_UNINIT_DOMAIN = 0, /* Uninitialized dfs domain */
- DFS_FCC_DOMAIN = 1, /* FCC3 dfs domain */
- DFS_ETSI_DOMAIN = 2, /* ETSI dfs domain */
- DFS_MKK4_DOMAIN = 3 /* Japan dfs domain */
-};
-
-typedef struct reg_dmn_pair_mapping {
- uint16_t regDmnEnum;
- uint16_t regDmn5GHz;
- uint16_t regDmn2GHz;
- uint16_t singleCC;
-} REG_DMN_PAIR_MAPPING;
-
-typedef struct {
- uint16_t countryCode;
- uint16_t regDmnEnum;
- const char *isoName;
- const char *name;
-} COUNTRY_CODE_TO_ENUM_RD;
-
-typedef struct reg_domain {
- uint16_t regDmnEnum;
- uint8_t conformance_test_limit;
-} REG_DOMAIN;
-
-enum CountryCode {
+enum country_code {
CTRY_AFGHANISTAN = 4,
CTRY_ALBANIA = 8,
CTRY_ALGERIA = 12,
@@ -529,268 +487,25 @@
CTRY_JAPAN56 = 4056,
};
-typedef struct ath_hal_reg_dmn_tables {
- const REG_DMN_PAIR_MAPPING *regDomainPairs;
- const COUNTRY_CODE_TO_ENUM_RD *allCountries;
- const REG_DOMAIN *regDomains;
- uint16_t regDomainPairsCt;
- uint16_t allCountriesCt;
- uint16_t regDomainsCt;
-} HAL_REG_DMN_TABLES;
-
-
-static const REG_DMN_PAIR_MAPPING ah_cmn_reg_domain_pairs[] = {
- {NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN, 0},
- {NULL1_WORLD, NULL1, WORLD, 0},
- {NULL1_ETSIB, NULL1, ETSIB, 0},
- {NULL1_ETSIC, NULL1, ETSIC, 0},
- {FCC2_FCCA, FCC2, FCCA, 0},
- {FCC2_WORLD, FCC2, WORLD, 0},
- {FCC2_ETSIC, FCC2, ETSIC, 0},
- {FCC3_FCCA, FCC3, FCCA, 0},
- {FCC3_WORLD, FCC3, WORLD, 0},
- {FCC3_ETSIC, FCC3, ETSIC, 0},
- {FCC4_FCCA, FCC4, FCCA, 0},
- {FCC5_FCCA, FCC5, FCCA, 0},
- {FCC6_FCCA, FCC6, FCCA, 0},
- {FCC6_WORLD, FCC6, WORLD, 0},
- {ETSI1_WORLD, ETSI1, WORLD, 0},
- {ETSI2_WORLD, ETSI2, WORLD, 0},
- {ETSI3_WORLD, ETSI3, WORLD, 0},
- {ETSI4_WORLD, ETSI4, WORLD, 0},
- {ETSI5_WORLD, ETSI5, WORLD, 0},
- {ETSI6_WORLD, ETSI6, WORLD, 0},
- {ETSI8_WORLD, ETSI8, WORLD, 0},
- {ETSI9_WORLD, ETSI9, WORLD, 0},
- {ETSI3_ETSIA, ETSI3, WORLD, 0},
- {FRANCE_RES, ETSI3, WORLD, 0},
- {FCC1_WORLD, FCC1, WORLD, 0},
- {FCC1_FCCA, FCC1, FCCA, 0},
- {APL1_WORLD, APL1, WORLD, 0},
- {APL2_WORLD, APL2, WORLD, 0},
- {APL2_FCCA, APL2, FCCA, 0},
- {APL3_WORLD, APL3, WORLD, 0},
- {APL4_WORLD, APL4, WORLD, 0},
- {APL5_WORLD, APL5, WORLD, 0},
- {APL6_WORLD, APL6, WORLD, 0},
- {APL7_FCCA, APL7, FCCA, 0},
- {APL8_WORLD, APL8, WORLD, 0},
- {APL9_MKKC, APL9, MKKC, 0},
- {APL10_MKKC, APL10, MKKC, 0},
- {APL3_FCCA, APL3, FCCA, 0},
- {APL1_ETSIC, APL1, ETSIC, 0},
- {APL2_ETSIC, APL2, ETSIC, 0},
- {MKK3_MKKA, MKK3, MKKA, CTRY_JAPAN25},
- {MKK3_MKKB, MKK3, MKKA, CTRY_JAPAN7},
- {MKK3_MKKA1, MKK3, MKKA, CTRY_JAPAN26},
- {MKK3_MKKA2, MKK3, MKKA, CTRY_JAPAN8},
- {MKK3_MKKC, MKK3, MKKC, CTRY_JAPAN9},
- {MKK3_FCCA, MKK3, FCCA, CTRY_JAPAN27},
- {MKK4_MKKA, MKK4, MKKA, CTRY_JAPAN36},
- {MKK4_MKKB, MKK4, MKKA, CTRY_JAPAN10},
- {MKK4_MKKA1, MKK4, MKKA, CTRY_JAPAN28},
- {MKK4_MKKA2, MKK4, MKKA, CTRY_JAPAN11},
- {MKK4_MKKC, MKK4, MKKC, CTRY_JAPAN12},
- {MKK4_FCCA, MKK4, FCCA, CTRY_JAPAN29},
- {MKK5_MKKB, MKK5, MKKA, CTRY_JAPAN13},
- {MKK5_MKKA2, MKK5, MKKA, CTRY_JAPAN14},
- {MKK5_MKKC, MKK5, MKKC, CTRY_JAPAN15},
- {MKK5_FCCA, MKK5, FCCA, CTRY_JAPAN56},
- {MKK9_MKKA, MKK9, MKKA, CTRY_JAPAN34},
- {MKK9_FCCA, MKK9, FCCA, CTRY_JAPAN37},
- {MKK9_MKKA1, MKK9, MKKA, CTRY_JAPAN38},
- {MKK9_MKKA2, MKK9, MKKA, CTRY_JAPAN40},
- {MKK9_MKKC, MKK9, MKKC, CTRY_JAPAN39},
- {MKK10_MKKA, MKK10, MKKA, CTRY_JAPAN35},
- {MKK10_FCCA, MKK10, FCCA, CTRY_JAPAN41},
- {MKK10_MKKA1, MKK10, MKKA, CTRY_JAPAN42},
- {MKK10_MKKA2, MKK10, MKKA, CTRY_JAPAN44},
- {MKK10_MKKC, MKK10, MKKC, CTRY_JAPAN43},
- {MKK11_MKKA, MKK11, MKKA, CTRY_JAPAN45},
- {MKK11_FCCA, MKK11, FCCA, CTRY_JAPAN46},
- {MKK11_MKKA1, MKK11, MKKA, CTRY_JAPAN47},
- {MKK11_MKKA2, MKK11, MKKA, CTRY_JAPAN49},
- {MKK11_MKKC, MKK11, MKKC, CTRY_JAPAN48},
-
- {WOR0_WORLD, WOR0_WORLD, WOR0_WORLD, 0},
- {WOR1_WORLD, WOR1_WORLD, WOR1_WORLD, 0},
- {WOR2_WORLD, WOR2_WORLD, WOR2_WORLD, 0},
- {WOR3_WORLD, WOR3_WORLD, WOR3_WORLD, 0},
- {WOR4_WORLD, WOR4_WORLD, WOR4_WORLD, 0},
- {WOR5_ETSIC, WOR5_ETSIC, WOR5_ETSIC, 0},
- {WOR01_WORLD, WOR01_WORLD, WOR01_WORLD, 0},
- {WOR02_WORLD, WOR02_WORLD, WOR02_WORLD, 0},
- {EU1_WORLD, EU1_WORLD, EU1_WORLD, 0},
- {WOR9_WORLD, WOR9_WORLD, WOR9_WORLD, 0},
- {WORA_WORLD, WORA_WORLD, WORA_WORLD, 0},
- {WORB_WORLD, WORB_WORLD, WORB_WORLD, 0},
- {WORC_WORLD, WORC_WORLD, WORC_WORLD, 0},
+enum dfs_domain {
+ DFS_UNINIT_DOMAIN = 0,
+ DFS_FCC_DOMAIN = 1,
+ DFS_ETSI_DOMAIN = 2,
+ DFS_MKK4_DOMAIN = 3
};
-static const COUNTRY_CODE_TO_ENUM_RD ah_cmn_all_countries[] = {
- {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG"},
- {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET"},
- {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA"},
- {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA"},
- {CTRY_ARGENTINA, FCC3_WORLD, "AR", "ARGENTINA"},
- {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA"},
- {CTRY_ARUBA, ETSI1_WORLD, "AW", "ARUBA"},
- {CTRY_AUSTRALIA, FCC3_WORLD, "AU", "AUSTRALIA"},
- {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA"},
- {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN"},
- {CTRY_BAHAMAS, FCC3_WORLD, "BS", "BAHAMAS"},
- {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN"},
- {CTRY_BANGLADESH, NULL1_WORLD, "BD", "BANGLADESH"},
- {CTRY_BARBADOS, FCC2_WORLD, "BB", "BARBADOS"},
- {CTRY_BELARUS, ETSI1_WORLD, "BY", "BELARUS"},
- {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM"},
- {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE"},
- {CTRY_BERMUDA, FCC3_FCCA, "BM", "BERMUDA"},
- {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLIVIA"},
- {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", "BOSNIA AND HERZEGOVINA"},
- {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL"},
- {CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", "BRUNEI DARUSSALAM"},
- {CTRY_BULGARIA, ETSI1_WORLD, "BG", "BULGARIA"},
- {CTRY_CAMBODIA, ETSI1_WORLD, "KH", "CAMBODIA"},
- {CTRY_CANADA, FCC3_FCCA, "CA", "CANADA"},
- {CTRY_CHILE, APL6_WORLD, "CL", "CHILE"},
- {CTRY_CHINA, APL1_WORLD, "CN", "CHINA"},
- {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA"},
- {CTRY_COSTA_RICA, FCC1_WORLD, "CR", "COSTA RICA"},
- {CTRY_CROATIA, ETSI1_WORLD, "HR", "CROATIA"},
- {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS"},
- {CTRY_CZECH, ETSI1_WORLD, "CZ", "CZECH REPUBLIC"},
- {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK"},
- {CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO", "DOMINICAN REPUBLIC"},
- {CTRY_ECUADOR, FCC1_WORLD, "EC", "ECUADOR"},
- {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT"},
- {CTRY_EL_SALVADOR, FCC1_WORLD, "SV", "EL SALVADOR"},
- {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA"},
- {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND"},
- {CTRY_FRANCE, ETSI1_WORLD, "FR", "FRANCE"},
- {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA"},
- {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY"},
- {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE"},
- {CTRY_GREENLAND, ETSI1_WORLD, "GL", "GREENLAND"},
- {CTRY_GRENADA, FCC3_FCCA, "GD", "GRENADA"},
- {CTRY_GUAM, FCC1_FCCA, "GU", "GUAM"},
- {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA"},
- {CTRY_HAITI, ETSI1_WORLD, "HT", "HAITI"},
- {CTRY_HONDURAS, FCC3_WORLD, "HN", "HONDURAS"},
- {CTRY_HONG_KONG, FCC3_WORLD, "HK", "HONG KONG"},
- {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY"},
- {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND"},
- {CTRY_INDIA, APL6_WORLD, "IN", "INDIA"},
- {CTRY_INDONESIA, APL2_WORLD, "ID", "INDONESIA"},
- {CTRY_IRAN, APL1_WORLD, "IR", "IRAN"},
- {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND"},
- {CTRY_ISRAEL, ETSI3_WORLD, "IL", "ISRAEL"},
- {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY"},
- {CTRY_JAMAICA, FCC3_WORLD, "JM", "JAMAICA"},
- {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN"},
- {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7"},
- {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8"},
- {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9"},
- {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10"},
- {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11"},
- {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12"},
- {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13"},
- {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14"},
- {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15"},
- {CTRY_JAPAN25, MKK3_MKKA, "JP", "JAPAN25"},
- {CTRY_JAPAN26, MKK3_MKKA1, "JP", "JAPAN26"},
- {CTRY_JAPAN27, MKK3_FCCA, "JP", "JAPAN27"},
- {CTRY_JAPAN28, MKK4_MKKA1, "JP", "JAPAN28"},
- {CTRY_JAPAN29, MKK4_FCCA, "JP", "JAPAN29"},
- {CTRY_JAPAN34, MKK9_MKKA, "JP", "JAPAN34"},
- {CTRY_JAPAN35, MKK10_MKKA, "JP", "JAPAN35"},
- {CTRY_JAPAN36, MKK4_MKKA, "JP", "JAPAN36"},
- {CTRY_JAPAN37, MKK9_FCCA, "JP", "JAPAN37"},
- {CTRY_JAPAN38, MKK9_MKKA1, "JP", "JAPAN38"},
- {CTRY_JAPAN39, MKK9_MKKC, "JP", "JAPAN39"},
- {CTRY_JAPAN40, MKK9_MKKA2, "JP", "JAPAN40"},
- {CTRY_JAPAN41, MKK10_FCCA, "JP", "JAPAN41"},
- {CTRY_JAPAN42, MKK10_MKKA1, "JP", "JAPAN42"},
- {CTRY_JAPAN43, MKK10_MKKC, "JP", "JAPAN43"},
- {CTRY_JAPAN44, MKK10_MKKA2, "JP", "JAPAN44"},
- {CTRY_JAPAN45, MKK11_MKKA, "JP", "JAPAN45"},
- {CTRY_JAPAN46, MKK11_FCCA, "JP", "JAPAN46"},
- {CTRY_JAPAN47, MKK11_MKKA1, "JP", "JAPAN47"},
- {CTRY_JAPAN48, MKK11_MKKC, "JP", "JAPAN48"},
- {CTRY_JAPAN49, MKK11_MKKA2, "JP", "JAPAN49"},
- {CTRY_JAPAN55, MKK5_MKKA, "JP", "JAPAN55"},
- {CTRY_JAPAN56, MKK5_FCCA, "JP", "JAPAN56"},
- {CTRY_JORDAN, ETSI2_WORLD, "JO", "JORDAN"},
- {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN"},
- {CTRY_KENYA, APL1_WORLD, "KE", "KENYA"},
- {CTRY_KOREA_NORTH, APL9_MKKC, "KP", "NORTH KOREA"},
- {CTRY_KOREA_ROC, APL10_MKKC, "KR", "KOREA REPUBLIC"},
- {CTRY_KOREA_ROC_AP, APL9_MKKC, "KR", "KOREA REPUBLIC3"},
- {CTRY_KUWAIT, ETSI3_WORLD, "KW", "KUWAIT"},
- {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA"},
- {CTRY_LEBANON, APL1_WORLD, "LB", "LEBANON"},
- {CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", "LIECHTENSTEIN"},
- {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA"},
- {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG"},
- {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU SAR"},
- {CTRY_MACEDONIA, ETSI1_WORLD, "MK", "MACEDONIA, FYRO"},
- {CTRY_MALAYSIA, FCC1_WORLD, "MY", "MALAYSIA"},
- {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA"},
- {CTRY_MAURITIUS, ETSI1_WORLD, "MU", "MAURITIUS"},
- {CTRY_MEXICO, FCC1_WORLD, "MX", "MEXICO"},
- {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO"},
- {CTRY_MOROCCO, APL4_WORLD, "MA", "MOROCCO"},
- {CTRY_NEPAL, APL1_WORLD, "NP", "NEPAL"},
- {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS"},
- {CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", "NETHERLANDS ANTILLES"},
- {CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", "NEW ZEALAND"},
- {CTRY_NICARAGUA, FCC3_FCCA, "NI", "NICARAGUA"},
- {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY"},
- {CTRY_OMAN, FCC3_WORLD, "OM", "OMAN"},
- {CTRY_PAKISTAN, APL1_WORLD, "PK", "PAKISTAN"},
- {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA"},
- {CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG", "PAPUA NEW GUINEA"},
- {CTRY_PARAGUAY, FCC3_WORLD, "PY", "PARAGUAY"},
- {CTRY_PERU, FCC3_WORLD, "PE", "PERU"},
- {CTRY_PHILIPPINES, FCC3_WORLD, "PH", "PHILIPPINES"},
- {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND"},
- {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL"},
- {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO"},
- {CTRY_QATAR, APL1_WORLD, "QA", "QATAR"},
- {CTRY_ROMANIA, ETSI1_WORLD, "RO", "ROMANIA"},
- {CTRY_RUSSIA, ETSI8_WORLD, "RU", "RUSSIA"},
- {CTRY_RWANDA, APL1_WORLD, "RW", "RWANDA"},
- {CTRY_SAUDI_ARABIA, FCC2_WORLD, "SA", "SAUDI ARABIA"},
- {CTRY_SERBIA, ETSI1_WORLD, "RS", "REPUBLIC OF SERBIA"},
- {CTRY_MONTENEGRO, ETSI1_WORLD, "ME", "MONTENEGRO"},
- {CTRY_SINGAPORE, FCC3_WORLD, "SG", "SINGAPORE"},
- {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAKIA"},
- {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA"},
- {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", "SOUTH AFRICA"},
- {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN"},
- {CTRY_SRI_LANKA, FCC3_WORLD, "LK", "SRI LANKA"},
- {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN"},
- {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND"},
- {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIAN ARAB REPUBLIC"},
- {CTRY_TAIWAN, APL7_FCCA, "TW", "TAIWAN"},
- {CTRY_TANZANIA, APL1_WORLD, "TZ", "TANZANIA"},
- {CTRY_THAILAND, FCC3_WORLD, "TH", "THAILAND"},
- {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", "TRINIDAD AND TOBAGO"},
- {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA"},
- {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY"},
- {CTRY_UGANDA, FCC3_WORLD, "UG", "UGANDA"},
- {CTRY_UKRAINE, ETSI9_WORLD, "UA", "UKRAINE"},
- {CTRY_UAE, ETSI1_WORLD, "AE", "UNITED ARAB EMIRATES"},
- {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", "UNITED KINGDOM"},
- {CTRY_UNITED_STATES, FCC3_FCCA, "US", "UNITED STATES"},
- {CTRY_UNITED_STATES_AP, FCC6_FCCA, "US", "UNITED STATES2"},
- {CTRY_UNITED_STATES_PS, FCC4_FCCA, "PS", "US PUBLIC SAFETY"},
- {CTRY_URUGUAY, FCC3_WORLD, "UY", "URUGUAY"},
- {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN"},
- {CTRY_VENEZUELA, FCC1_WORLD, "VE", "VENEZUELA"},
- {CTRY_VIET_NAM, ETSI3_WORLD, "VN", "VIETNAM"},
- {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN"},
- {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE"}
+struct reg_dmn_pair {
+ uint16_t reg_dmn_enum;
+ uint16_t reg_dmn_5ghz;
+ uint16_t reg_dmn_2ghz;
+ uint16_t single_cc;
+};
+
+struct country_code_to_reg_dmn {
+ uint16_t country_code;
+ uint16_t reg_dmn_enum;
+ const char *iso_name;
+ const char *name;
};
/**
@@ -825,107 +540,54 @@
uint8_t center_freq_seg1;
};
-static const REG_DOMAIN ah_cmn_reg_domains[] = {
- {DEBUG_REG_DMN, FCC},
- {APL1, FCC},
- {APL2, FCC},
- {APL3, FCC},
- {APL4, FCC},
- {APL5, FCC},
- {APL6, ETSI},
- {APL7, FCC},
- {APL8, ETSI},
- {APL9, ETSI},
- {APL10, ETSI},
- {APL11, ETSI},
- {APL12, ETSI},
- {ETSI1, ETSI},
- {ETSI2, ETSI},
- {ETSI3, ETSI},
- {ETSI4, ETSI},
- {ETSI5, ETSI},
- {ETSI6, ETSI},
- {ETSI8, ETSI},
- {ETSI9, ETSI},
- {FCC1, FCC},
- {FCC2, FCC},
- {FCC3, FCC},
- {FCC4, FCC},
- {FCC5, FCC},
- {FCC6, FCC},
- {MKK1, MKK},
- {MKK2, MKK},
- {MKK3, MKK},
- {MKK4, MKK},
- {MKK5, MKK},
- {MKK6, MKK},
- {MKK7, MKK},
- {MKK8, MKK},
- {MKK9, MKK},
- {MKK10, MKK},
- {MKK11, MKK},
- {MKK12, MKK},
- {MKK13, MKK},
- {MKK14, MKK},
- {MKK15, MKK},
- {APLD, NO_CTL},
- {ETSIA, NO_CTL},
- {ETSIB, ETSI},
- {ETSIC, ETSI},
- {FCCA, FCC},
- {MKKA, MKK},
- {MKKC, MKK},
- {WORLD, ETSI},
- {WOR0_WORLD, NO_CTL},
- {WOR01_WORLD, NO_CTL},
- {WOR02_WORLD, NO_CTL},
- {EU1_WORLD, NO_CTL},
- {WOR1_WORLD, NO_CTL},
- {WOR2_WORLD, NO_CTL},
- {WOR3_WORLD, NO_CTL},
- {WOR4_WORLD, NO_CTL},
- {WOR5_ETSIC, NO_CTL},
- {WOR9_WORLD, NO_CTL},
- {WORA_WORLD, NO_CTL},
- {WORB_WORLD, NO_CTL},
- {WORC_WORLD, NO_CTL},
- {NULL1, NO_CTL},
+struct reg_dmn {
+ uint16_t reg_dmn;
+ uint8_t conformance_test_limit;
};
-typedef enum offset {
+enum offset_t {
BW20 = 0,
BW40_LOW_PRIMARY = 1,
BW40_HIGH_PRIMARY = 3,
BW80,
BWALL
-} offset_t;
+};
-typedef struct _regdm_op_class_map {
+struct reg_dmn_op_class_map_t {
uint8_t op_class;
uint8_t ch_spacing;
- offset_t offset;
+ enum offset_t offset;
uint8_t channels[MAX_CHANNELS_PER_OPERATING_CLASS];
-} regdm_op_class_map_t;
+};
-typedef struct _regdm_supp_op_classes {
+struct reg_dmn_supp_op_classes {
uint8_t num_classes;
uint8_t classes[CDS_MAX_SUPP_OPER_CLASSES];
-} regdm_supp_op_classes;
+};
+struct reg_dmn_tables {
+ const struct reg_dmn_pair *reg_dmn_pairs;
+ const struct country_code_to_reg_dmn *all_countries;
+ const struct reg_dmn *reg_dmns;
+ uint16_t reg_dmn_pairs_cnt;
+ uint16_t all_countries_cnt;
+ uint16_t reg_dmns_cnt;
+};
int32_t cds_fill_some_regulatory_info(struct regulatory *reg);
-void cds_fill_and_send_ctl_to_fw(struct regulatory *reg);
int32_t cds_get_country_from_alpha2(uint8_t *alpha2);
-void cds_fill_send_ctl_info_to_fw(struct regulatory *reg);
+void cds_fill_and_send_ctl_to_fw(struct regulatory *reg);
void cds_set_wma_dfs_region(uint8_t dfs_region);
+
void cds_set_ch_params(uint8_t ch, uint32_t phy_mode,
struct ch_params_s *ch_params);
+uint16_t cds_reg_dmn_get_opclass_from_channel(uint8_t *country,
+ uint8_t channel,
+ uint8_t offset);
+uint16_t cds_reg_dmn_get_chanwidth_from_opclass(uint8_t *country,
+ uint8_t channel,
+ uint8_t opclass);
+uint16_t cds_reg_dmn_set_curr_opclasses(uint8_t num_classes, uint8_t *class);
+uint16_t cds_reg_dmn_get_curr_opclasses(uint8_t *num_classes, uint8_t *class);
-uint16_t cds_regdm_get_opclass_from_channel(uint8_t *country, uint8_t channel,
- uint8_t offset);
-uint16_t cds_regdm_get_chanwidth_from_opclass(uint8_t *country, uint8_t channel,
- uint8_t opclass);
-uint16_t cds_regdm_set_curr_opclasses(uint8_t num_classes, uint8_t *class);
-uint16_t cds_regdm_get_curr_opclasses(uint8_t *num_classes, uint8_t *class);
-
-#endif /* REGULATORY_H */
+#endif /* __CDS_REGDOMAIN_H */
diff --git a/core/cds/src/cds_regdomain.c b/core/cds/src/cds_regdomain.c
index 20c056b..19a9131 100644
--- a/core/cds/src/cds_regdomain.c
+++ b/core/cds/src/cds_regdomain.c
@@ -69,10 +69,9 @@
#include "wma.h"
#include "cds_regdomain.h"
-static regdm_supp_op_classes regdm_curr_supp_opp_classes = { 0 };
+static struct reg_dmn_supp_op_classes reg_dmn_curr_supp_opp_classes = { 0 };
-/* Global Operating Classes */
-regdm_op_class_map_t global_op_class[] = {
+static const struct reg_dmn_op_class_map_t global_op_class[] = {
{81, 25, BW20, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} },
{82, 25, BW20, {14} },
{83, 40, BW40_LOW_PRIMARY, {1, 2, 3, 4, 5, 6, 7, 8, 9} },
@@ -96,12 +95,11 @@
{0, 0, 0, {0} },
};
-/* Operating Classes in US */
-regdm_op_class_map_t us_op_class[] = {
+static const struct reg_dmn_op_class_map_t us_op_class[] = {
{1, 20, BW20, {36, 40, 44, 48} },
{2, 20, BW20, {52, 56, 60, 64} },
{4, 20, BW20, {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140,
- 144} },
+ 144} },
{5, 20, BW20, {149, 153, 157, 161, 165} },
{12, 25, BW20, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} },
{22, 40, BW40_LOW_PRIMARY, {36, 44} },
@@ -115,13 +113,12 @@
{32, 40, BW40_LOW_PRIMARY, {1, 2, 3, 4, 5, 6, 7} },
{33, 40, BW40_HIGH_PRIMARY, {5, 6, 7, 8, 9, 10, 11} },
{128, 80, BW80, {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108,
- 112, 116, 120, 124, 128, 132, 136, 140, 144,
- 149, 153, 157, 161} },
+ 112, 116, 120, 124, 128, 132, 136, 140, 144,
+ 149, 153, 157, 161} },
{0, 0, 0, {0} },
};
-/* Operating Classes in Europe */
-regdm_op_class_map_t euro_op_class[] = {
+static const struct reg_dmn_op_class_map_t euro_op_class[] = {
{1, 20, BW20, {36, 40, 44, 48} },
{2, 20, BW20, {52, 56, 60, 64} },
{3, 20, BW20, {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140} },
@@ -136,17 +133,17 @@
{12, 40, BW40_HIGH_PRIMARY, {5, 6, 7, 8, 9, 10, 11, 12, 13} },
{17, 20, BW20, {149, 153, 157, 161, 165, 169} },
{128, 80, BW80, {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112,
- 116, 120, 124, 128} },
+ 116, 120, 124, 128} },
{0, 0, 0, {0} },
};
-/* Operating Classes in Japan */
-regdm_op_class_map_t japan_op_class[] = {
+static const struct reg_dmn_op_class_map_t japan_op_class[] = {
{1, 20, BW20, {36, 40, 44, 48} },
{30, 25, BW20, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} },
{31, 25, BW20, {14} },
{32, 20, BW20, {52, 56, 60, 64} },
- {34, 20, BW20, {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140} },
+ {34, 20, BW20,
+ {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140} },
{36, 40, BW40_LOW_PRIMARY, {36, 44} },
{37, 40, BW40_LOW_PRIMARY, {52, 60} },
{39, 40, BW40_LOW_PRIMARY, {100, 108, 116, 124, 132} },
@@ -154,22 +151,339 @@
{42, 40, BW40_HIGH_PRIMARY, {56, 64} },
{44, 40, BW40_HIGH_PRIMARY, {104, 112, 120, 128, 136} },
{128, 80, BW80, {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112,
- 116, 120, 124, 128} },
+ 116, 120, 124, 128} },
{0, 0, 0, {0} },
};
-/*
- * By default, the regdomain tables reference the common tables
- * from regdomain_common.h. These default tables can be replaced
- * by calls to populate_regdomain_tables functions.
- */
-HAL_REG_DMN_TABLES ol_regdmn_rdt = {
- ah_cmn_reg_domain_pairs, /* regDomainPairs */
- ah_cmn_all_countries, /* allCountries */
- ah_cmn_reg_domains, /* allRegDomains */
- QDF_ARRAY_SIZE(ah_cmn_reg_domain_pairs), /* regDomainPairsCt */
- QDF_ARRAY_SIZE(ah_cmn_all_countries), /* allCountriesCt */
- QDF_ARRAY_SIZE(ah_cmn_reg_domains), /* allRegDomainCt */
+static const struct reg_dmn_pair g_reg_dmn_pairs[] = {
+ {NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN, 0},
+ {NULL1_WORLD, NULL1, WORLD, 0},
+ {NULL1_ETSIB, NULL1, ETSIB, 0},
+ {NULL1_ETSIC, NULL1, ETSIC, 0},
+ {FCC2_FCCA, FCC2, FCCA, 0},
+ {FCC2_WORLD, FCC2, WORLD, 0},
+ {FCC2_ETSIC, FCC2, ETSIC, 0},
+ {FCC3_FCCA, FCC3, FCCA, 0},
+ {FCC3_WORLD, FCC3, WORLD, 0},
+ {FCC3_ETSIC, FCC3, ETSIC, 0},
+ {FCC4_FCCA, FCC4, FCCA, 0},
+ {FCC5_FCCA, FCC5, FCCA, 0},
+ {FCC6_FCCA, FCC6, FCCA, 0},
+ {FCC6_WORLD, FCC6, WORLD, 0},
+ {ETSI1_WORLD, ETSI1, WORLD, 0},
+ {ETSI2_WORLD, ETSI2, WORLD, 0},
+ {ETSI3_WORLD, ETSI3, WORLD, 0},
+ {ETSI4_WORLD, ETSI4, WORLD, 0},
+ {ETSI5_WORLD, ETSI5, WORLD, 0},
+ {ETSI6_WORLD, ETSI6, WORLD, 0},
+ {ETSI8_WORLD, ETSI8, WORLD, 0},
+ {ETSI9_WORLD, ETSI9, WORLD, 0},
+ {ETSI3_ETSIA, ETSI3, WORLD, 0},
+ {FRANCE_RES, ETSI3, WORLD, 0},
+ {FCC1_WORLD, FCC1, WORLD, 0},
+ {FCC1_FCCA, FCC1, FCCA, 0},
+ {APL1_WORLD, APL1, WORLD, 0},
+ {APL2_WORLD, APL2, WORLD, 0},
+ {APL2_FCCA, APL2, FCCA, 0},
+ {APL3_WORLD, APL3, WORLD, 0},
+ {APL4_WORLD, APL4, WORLD, 0},
+ {APL5_WORLD, APL5, WORLD, 0},
+ {APL6_WORLD, APL6, WORLD, 0},
+ {APL7_FCCA, APL7, FCCA, 0},
+ {APL8_WORLD, APL8, WORLD, 0},
+ {APL9_MKKC, APL9, MKKC, 0},
+ {APL10_MKKC, APL10, MKKC, 0},
+ {APL3_FCCA, APL3, FCCA, 0},
+ {APL1_ETSIC, APL1, ETSIC, 0},
+ {APL2_ETSIC, APL2, ETSIC, 0},
+ {MKK3_MKKA, MKK3, MKKA, CTRY_JAPAN25},
+ {MKK3_MKKB, MKK3, MKKA, CTRY_JAPAN7},
+ {MKK3_MKKA1, MKK3, MKKA, CTRY_JAPAN26},
+ {MKK3_MKKA2, MKK3, MKKA, CTRY_JAPAN8},
+ {MKK3_MKKC, MKK3, MKKC, CTRY_JAPAN9},
+ {MKK3_FCCA, MKK3, FCCA, CTRY_JAPAN27},
+ {MKK4_MKKA, MKK4, MKKA, CTRY_JAPAN36},
+ {MKK4_MKKB, MKK4, MKKA, CTRY_JAPAN10},
+ {MKK4_MKKA1, MKK4, MKKA, CTRY_JAPAN28},
+ {MKK4_MKKA2, MKK4, MKKA, CTRY_JAPAN11},
+ {MKK4_MKKC, MKK4, MKKC, CTRY_JAPAN12},
+ {MKK4_FCCA, MKK4, FCCA, CTRY_JAPAN29},
+ {MKK5_MKKB, MKK5, MKKA, CTRY_JAPAN13},
+ {MKK5_MKKA2, MKK5, MKKA, CTRY_JAPAN14},
+ {MKK5_MKKC, MKK5, MKKC, CTRY_JAPAN15},
+ {MKK5_FCCA, MKK5, FCCA, CTRY_JAPAN56},
+ {MKK9_MKKA, MKK9, MKKA, CTRY_JAPAN34},
+ {MKK9_FCCA, MKK9, FCCA, CTRY_JAPAN37},
+ {MKK9_MKKA1, MKK9, MKKA, CTRY_JAPAN38},
+ {MKK9_MKKA2, MKK9, MKKA, CTRY_JAPAN40},
+ {MKK9_MKKC, MKK9, MKKC, CTRY_JAPAN39},
+ {MKK10_MKKA, MKK10, MKKA, CTRY_JAPAN35},
+ {MKK10_FCCA, MKK10, FCCA, CTRY_JAPAN41},
+ {MKK10_MKKA1, MKK10, MKKA, CTRY_JAPAN42},
+ {MKK10_MKKA2, MKK10, MKKA, CTRY_JAPAN44},
+ {MKK10_MKKC, MKK10, MKKC, CTRY_JAPAN43},
+ {MKK11_MKKA, MKK11, MKKA, CTRY_JAPAN45},
+ {MKK11_FCCA, MKK11, FCCA, CTRY_JAPAN46},
+ {MKK11_MKKA1, MKK11, MKKA, CTRY_JAPAN47},
+ {MKK11_MKKA2, MKK11, MKKA, CTRY_JAPAN49},
+ {MKK11_MKKC, MKK11, MKKC, CTRY_JAPAN48},
+
+ {WOR0_WORLD, WOR0_WORLD, WOR0_WORLD, 0},
+ {WOR1_WORLD, WOR1_WORLD, WOR1_WORLD, 0},
+ {WOR2_WORLD, WOR2_WORLD, WOR2_WORLD, 0},
+ {WOR3_WORLD, WOR3_WORLD, WOR3_WORLD, 0},
+ {WOR4_WORLD, WOR4_WORLD, WOR4_WORLD, 0},
+ {WOR5_ETSIC, WOR5_ETSIC, WOR5_ETSIC, 0},
+ {WOR01_WORLD, WOR01_WORLD, WOR01_WORLD, 0},
+ {WOR02_WORLD, WOR02_WORLD, WOR02_WORLD, 0},
+ {EU1_WORLD, EU1_WORLD, EU1_WORLD, 0},
+ {WOR9_WORLD, WOR9_WORLD, WOR9_WORLD, 0},
+ {WORA_WORLD, WORA_WORLD, WORA_WORLD, 0},
+ {WORB_WORLD, WORB_WORLD, WORB_WORLD, 0},
+ {WORC_WORLD, WORC_WORLD, WORC_WORLD, 0},
+};
+
+static const struct country_code_to_reg_dmn g_all_countries[] = {
+ {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG"},
+ {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET"},
+ {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA"},
+ {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA"},
+ {CTRY_ARGENTINA, FCC3_WORLD, "AR", "ARGENTINA"},
+ {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA"},
+ {CTRY_ARUBA, ETSI1_WORLD, "AW", "ARUBA"},
+ {CTRY_AUSTRALIA, FCC3_WORLD, "AU", "AUSTRALIA"},
+ {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA"},
+ {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN"},
+ {CTRY_BAHAMAS, FCC3_WORLD, "BS", "BAHAMAS"},
+ {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN"},
+ {CTRY_BANGLADESH, NULL1_WORLD, "BD", "BANGLADESH"},
+ {CTRY_BARBADOS, FCC2_WORLD, "BB", "BARBADOS"},
+ {CTRY_BELARUS, ETSI1_WORLD, "BY", "BELARUS"},
+ {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM"},
+ {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE"},
+ {CTRY_BERMUDA, FCC3_FCCA, "BM", "BERMUDA"},
+ {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLIVIA"},
+ {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", "BOSNIA AND HERZEGOVINA"},
+ {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL"},
+ {CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", "BRUNEI DARUSSALAM"},
+ {CTRY_BULGARIA, ETSI1_WORLD, "BG", "BULGARIA"},
+ {CTRY_CAMBODIA, ETSI1_WORLD, "KH", "CAMBODIA"},
+ {CTRY_CANADA, FCC3_FCCA, "CA", "CANADA"},
+ {CTRY_CHILE, APL6_WORLD, "CL", "CHILE"},
+ {CTRY_CHINA, APL1_WORLD, "CN", "CHINA"},
+ {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA"},
+ {CTRY_COSTA_RICA, FCC1_WORLD, "CR", "COSTA RICA"},
+ {CTRY_CROATIA, ETSI1_WORLD, "HR", "CROATIA"},
+ {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS"},
+ {CTRY_CZECH, ETSI1_WORLD, "CZ", "CZECH REPUBLIC"},
+ {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK"},
+ {CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO", "DOMINICAN REPUBLIC"},
+ {CTRY_ECUADOR, FCC1_WORLD, "EC", "ECUADOR"},
+ {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT"},
+ {CTRY_EL_SALVADOR, FCC1_WORLD, "SV", "EL SALVADOR"},
+ {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA"},
+ {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND"},
+ {CTRY_FRANCE, ETSI1_WORLD, "FR", "FRANCE"},
+ {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA"},
+ {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY"},
+ {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE"},
+ {CTRY_GREENLAND, ETSI1_WORLD, "GL", "GREENLAND"},
+ {CTRY_GRENADA, FCC3_FCCA, "GD", "GRENADA"},
+ {CTRY_GUAM, FCC1_FCCA, "GU", "GUAM"},
+ {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA"},
+ {CTRY_HAITI, ETSI1_WORLD, "HT", "HAITI"},
+ {CTRY_HONDURAS, FCC3_WORLD, "HN", "HONDURAS"},
+ {CTRY_HONG_KONG, FCC3_WORLD, "HK", "HONG KONG"},
+ {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY"},
+ {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND"},
+ {CTRY_INDIA, APL6_WORLD, "IN", "INDIA"},
+ {CTRY_INDONESIA, APL2_WORLD, "ID", "INDONESIA"},
+ {CTRY_IRAN, APL1_WORLD, "IR", "IRAN"},
+ {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND"},
+ {CTRY_ISRAEL, ETSI3_WORLD, "IL", "ISRAEL"},
+ {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY"},
+ {CTRY_JAMAICA, FCC3_WORLD, "JM", "JAMAICA"},
+ {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN"},
+ {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7"},
+ {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8"},
+ {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9"},
+ {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10"},
+ {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11"},
+ {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12"},
+ {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13"},
+ {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14"},
+ {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15"},
+ {CTRY_JAPAN25, MKK3_MKKA, "JP", "JAPAN25"},
+ {CTRY_JAPAN26, MKK3_MKKA1, "JP", "JAPAN26"},
+ {CTRY_JAPAN27, MKK3_FCCA, "JP", "JAPAN27"},
+ {CTRY_JAPAN28, MKK4_MKKA1, "JP", "JAPAN28"},
+ {CTRY_JAPAN29, MKK4_FCCA, "JP", "JAPAN29"},
+ {CTRY_JAPAN34, MKK9_MKKA, "JP", "JAPAN34"},
+ {CTRY_JAPAN35, MKK10_MKKA, "JP", "JAPAN35"},
+ {CTRY_JAPAN36, MKK4_MKKA, "JP", "JAPAN36"},
+ {CTRY_JAPAN37, MKK9_FCCA, "JP", "JAPAN37"},
+ {CTRY_JAPAN38, MKK9_MKKA1, "JP", "JAPAN38"},
+ {CTRY_JAPAN39, MKK9_MKKC, "JP", "JAPAN39"},
+ {CTRY_JAPAN40, MKK9_MKKA2, "JP", "JAPAN40"},
+ {CTRY_JAPAN41, MKK10_FCCA, "JP", "JAPAN41"},
+ {CTRY_JAPAN42, MKK10_MKKA1, "JP", "JAPAN42"},
+ {CTRY_JAPAN43, MKK10_MKKC, "JP", "JAPAN43"},
+ {CTRY_JAPAN44, MKK10_MKKA2, "JP", "JAPAN44"},
+ {CTRY_JAPAN45, MKK11_MKKA, "JP", "JAPAN45"},
+ {CTRY_JAPAN46, MKK11_FCCA, "JP", "JAPAN46"},
+ {CTRY_JAPAN47, MKK11_MKKA1, "JP", "JAPAN47"},
+ {CTRY_JAPAN48, MKK11_MKKC, "JP", "JAPAN48"},
+ {CTRY_JAPAN49, MKK11_MKKA2, "JP", "JAPAN49"},
+ {CTRY_JAPAN55, MKK5_MKKA, "JP", "JAPAN55"},
+ {CTRY_JAPAN56, MKK5_FCCA, "JP", "JAPAN56"},
+ {CTRY_JORDAN, ETSI2_WORLD, "JO", "JORDAN"},
+ {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN"},
+ {CTRY_KENYA, APL1_WORLD, "KE", "KENYA"},
+ {CTRY_KOREA_NORTH, APL9_MKKC, "KP", "NORTH KOREA"},
+ {CTRY_KOREA_ROC, APL10_MKKC, "KR", "KOREA REPUBLIC"},
+ {CTRY_KOREA_ROC_AP, APL9_MKKC, "KR", "KOREA REPUBLIC3"},
+ {CTRY_KUWAIT, ETSI3_WORLD, "KW", "KUWAIT"},
+ {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA"},
+ {CTRY_LEBANON, APL1_WORLD, "LB", "LEBANON"},
+ {CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", "LIECHTENSTEIN"},
+ {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA"},
+ {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG"},
+ {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU SAR"},
+ {CTRY_MACEDONIA, ETSI1_WORLD, "MK", "MACEDONIA, FYRO"},
+ {CTRY_MALAYSIA, FCC1_WORLD, "MY", "MALAYSIA"},
+ {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA"},
+ {CTRY_MAURITIUS, ETSI1_WORLD, "MU", "MAURITIUS"},
+ {CTRY_MEXICO, FCC1_WORLD, "MX", "MEXICO"},
+ {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO"},
+ {CTRY_MOROCCO, APL4_WORLD, "MA", "MOROCCO"},
+ {CTRY_NEPAL, APL1_WORLD, "NP", "NEPAL"},
+ {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS"},
+ {CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", "NETHERLANDS ANTILLES"},
+ {CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", "NEW ZEALAND"},
+ {CTRY_NICARAGUA, FCC3_FCCA, "NI", "NICARAGUA"},
+ {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY"},
+ {CTRY_OMAN, FCC3_WORLD, "OM", "OMAN"},
+ {CTRY_PAKISTAN, APL1_WORLD, "PK", "PAKISTAN"},
+ {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA"},
+ {CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG", "PAPUA NEW GUINEA"},
+ {CTRY_PARAGUAY, FCC3_WORLD, "PY", "PARAGUAY"},
+ {CTRY_PERU, FCC3_WORLD, "PE", "PERU"},
+ {CTRY_PHILIPPINES, FCC3_WORLD, "PH", "PHILIPPINES"},
+ {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND"},
+ {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL"},
+ {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO"},
+ {CTRY_QATAR, APL1_WORLD, "QA", "QATAR"},
+ {CTRY_ROMANIA, ETSI1_WORLD, "RO", "ROMANIA"},
+ {CTRY_RUSSIA, ETSI8_WORLD, "RU", "RUSSIA"},
+ {CTRY_RWANDA, APL1_WORLD, "RW", "RWANDA"},
+ {CTRY_SAUDI_ARABIA, FCC2_WORLD, "SA", "SAUDI ARABIA"},
+ {CTRY_SERBIA, ETSI1_WORLD, "RS", "REPUBLIC OF SERBIA"},
+ {CTRY_MONTENEGRO, ETSI1_WORLD, "ME", "MONTENEGRO"},
+ {CTRY_SINGAPORE, FCC3_WORLD, "SG", "SINGAPORE"},
+ {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAKIA"},
+ {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA"},
+ {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", "SOUTH AFRICA"},
+ {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN"},
+ {CTRY_SRI_LANKA, FCC3_WORLD, "LK", "SRI LANKA"},
+ {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN"},
+ {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND"},
+ {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIAN ARAB REPUBLIC"},
+ {CTRY_TAIWAN, APL7_FCCA, "TW", "TAIWAN"},
+ {CTRY_TANZANIA, APL1_WORLD, "TZ", "TANZANIA"},
+ {CTRY_THAILAND, FCC3_WORLD, "TH", "THAILAND"},
+ {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", "TRINIDAD AND TOBAGO"},
+ {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA"},
+ {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY"},
+ {CTRY_UGANDA, FCC3_WORLD, "UG", "UGANDA"},
+ {CTRY_UKRAINE, ETSI9_WORLD, "UA", "UKRAINE"},
+ {CTRY_UAE, ETSI1_WORLD, "AE", "UNITED ARAB EMIRATES"},
+ {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", "UNITED KINGDOM"},
+ {CTRY_UNITED_STATES, FCC3_FCCA, "US", "UNITED STATES"},
+ {CTRY_UNITED_STATES_AP, FCC6_FCCA, "US", "UNITED STATES2"},
+ {CTRY_UNITED_STATES_PS, FCC4_FCCA, "PS", "US PUBLIC SAFETY"},
+ {CTRY_URUGUAY, FCC3_WORLD, "UY", "URUGUAY"},
+ {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN"},
+ {CTRY_VENEZUELA, FCC1_WORLD, "VE", "VENEZUELA"},
+ {CTRY_VIET_NAM, ETSI3_WORLD, "VN", "VIETNAM"},
+ {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN"},
+ {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE"}
+};
+
+static const struct reg_dmn g_reg_dmns[] = {
+ {DEBUG_REG_DMN, FCC},
+ {APL1, FCC},
+ {APL2, FCC},
+ {APL3, FCC},
+ {APL4, FCC},
+ {APL5, FCC},
+ {APL6, ETSI},
+ {APL7, FCC},
+ {APL8, ETSI},
+ {APL9, ETSI},
+ {APL10, ETSI},
+ {APL11, ETSI},
+ {APL12, ETSI},
+ {ETSI1, ETSI},
+ {ETSI2, ETSI},
+ {ETSI3, ETSI},
+ {ETSI4, ETSI},
+ {ETSI5, ETSI},
+ {ETSI6, ETSI},
+ {ETSI8, ETSI},
+ {ETSI9, ETSI},
+ {FCC1, FCC},
+ {FCC2, FCC},
+ {FCC3, FCC},
+ {FCC4, FCC},
+ {FCC5, FCC},
+ {FCC6, FCC},
+ {MKK1, MKK},
+ {MKK2, MKK},
+ {MKK3, MKK},
+ {MKK4, MKK},
+ {MKK5, MKK},
+ {MKK6, MKK},
+ {MKK7, MKK},
+ {MKK8, MKK},
+ {MKK9, MKK},
+ {MKK10, MKK},
+ {MKK11, MKK},
+ {MKK12, MKK},
+ {MKK13, MKK},
+ {MKK14, MKK},
+ {MKK15, MKK},
+ {APLD, NO_CTL},
+ {ETSIA, NO_CTL},
+ {ETSIB, ETSI},
+ {ETSIC, ETSI},
+ {FCCA, FCC},
+ {MKKA, MKK},
+ {MKKC, MKK},
+ {WORLD, ETSI},
+ {WOR0_WORLD, NO_CTL},
+ {WOR01_WORLD, NO_CTL},
+ {WOR02_WORLD, NO_CTL},
+ {EU1_WORLD, NO_CTL},
+ {WOR1_WORLD, NO_CTL},
+ {WOR2_WORLD, NO_CTL},
+ {WOR3_WORLD, NO_CTL},
+ {WOR4_WORLD, NO_CTL},
+ {WOR5_ETSIC, NO_CTL},
+ {WOR9_WORLD, NO_CTL},
+ {WORA_WORLD, NO_CTL},
+ {WORB_WORLD, NO_CTL},
+ {WORC_WORLD, NO_CTL},
+ {NULL1, NO_CTL},
+};
+
+
+struct reg_dmn_tables g_reg_dmn_tbl = {
+ g_reg_dmn_pairs,
+ g_all_countries,
+ g_reg_dmns,
+ QDF_ARRAY_SIZE(g_reg_dmn_pairs),
+ QDF_ARRAY_SIZE(g_all_countries),
+ QDF_ARRAY_SIZE(g_reg_dmns),
};
static uint16_t get_eeprom_rd(uint16_t rd)
@@ -177,177 +491,165 @@
return rd & ~WORLDWIDE_ROAMING_FLAG;
}
-/*
- * Return whether or not the regulatory domain/country in EEPROM
- * is acceptable.
- */
-static bool regdmn_is_eeprom_valid(uint16_t rd)
+static bool reg_dmn_is_eeprom_valid(uint16_t rd)
{
int32_t i;
if (rd & COUNTRY_ERD_FLAG) {
uint16_t cc = rd & ~COUNTRY_ERD_FLAG;
- for (i = 0; i < ol_regdmn_rdt.allCountriesCt; i++)
- if (ol_regdmn_rdt.allCountries[i].countryCode == cc)
+ for (i = 0; i < g_reg_dmn_tbl.all_countries_cnt; i++)
+ if (g_reg_dmn_tbl.all_countries[i].country_code == cc)
return true;
} else {
- for (i = 0; i < ol_regdmn_rdt.regDomainPairsCt; i++)
- if (ol_regdmn_rdt.regDomainPairs[i].regDmnEnum == rd)
+ for (i = 0; i < g_reg_dmn_tbl.reg_dmn_pairs_cnt; i++)
+ if (g_reg_dmn_tbl.reg_dmn_pairs[i].reg_dmn_enum == rd)
return true;
}
- /* TODO: Bring it under debug level */
- qdf_print("%s: invalid regulatory domain/country code 0x%x\n",
- __func__, rd);
+
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "invalid regulatory domain/country code 0x%x", rd);
+
return false;
}
-/*
- * Find the pointer to the country element in the country table
- * corresponding to the country code
- */
-static const COUNTRY_CODE_TO_ENUM_RD *find_country(uint16_t country_code)
+static const struct country_code_to_reg_dmn *find_country(uint16_t country_code)
{
int32_t i;
- for (i = 0; i < ol_regdmn_rdt.allCountriesCt; i++) {
- if (ol_regdmn_rdt.allCountries[i].countryCode == country_code)
- return &ol_regdmn_rdt.allCountries[i];
+ for (i = 0; i < g_reg_dmn_tbl.all_countries_cnt; i++) {
+ if (g_reg_dmn_tbl.all_countries[i].country_code == country_code)
+ return &g_reg_dmn_tbl.all_countries[i];
}
- return NULL; /* Not found */
+
+ return NULL;
}
int32_t cds_get_country_from_alpha2(uint8_t *alpha2)
{
int32_t i;
- for (i = 0; i < ol_regdmn_rdt.allCountriesCt; i++) {
- if (ol_regdmn_rdt.allCountries[i].isoName[0] == alpha2[0] &&
- ol_regdmn_rdt.allCountries[i].isoName[1] == alpha2[1])
- return ol_regdmn_rdt.allCountries[i].countryCode;
+ for (i = 0; i < g_reg_dmn_tbl.all_countries_cnt; i++) {
+ if (g_reg_dmn_tbl.all_countries[i].iso_name[0] == alpha2[0] &&
+ g_reg_dmn_tbl.all_countries[i].iso_name[1] == alpha2[1])
+ return g_reg_dmn_tbl.all_countries[i].country_code;
}
+
return CTRY_DEFAULT;
}
-static uint16_t regdmn_get_default_country(uint16_t rd)
+static uint16_t reg_dmn_get_default_country(uint16_t rd)
{
int32_t i;
+ const struct country_code_to_reg_dmn *country = NULL;
+ uint16_t cc = rd & ~COUNTRY_ERD_FLAG;
if (rd & COUNTRY_ERD_FLAG) {
- const COUNTRY_CODE_TO_ENUM_RD *country = NULL;
- uint16_t cc = rd & ~COUNTRY_ERD_FLAG;
-
country = find_country(cc);
if (country)
return cc;
}
- /*
- * Check reg domains that have only one country
- */
- for (i = 0; i < ol_regdmn_rdt.regDomainPairsCt; i++) {
- if (ol_regdmn_rdt.regDomainPairs[i].regDmnEnum == rd) {
- if (ol_regdmn_rdt.regDomainPairs[i].singleCC != 0)
- return ol_regdmn_rdt.regDomainPairs[i].singleCC;
+ for (i = 0; i < g_reg_dmn_tbl.reg_dmn_pairs_cnt; i++) {
+ if (g_reg_dmn_tbl.reg_dmn_pairs[i].reg_dmn_enum == rd) {
+ if (g_reg_dmn_tbl.reg_dmn_pairs[i].single_cc != 0)
+ return g_reg_dmn_tbl.reg_dmn_pairs[i].single_cc;
else
- i = ol_regdmn_rdt.regDomainPairsCt;
+ i = g_reg_dmn_tbl.reg_dmn_pairs_cnt;
}
}
+
return CTRY_DEFAULT;
}
-static const REG_DMN_PAIR_MAPPING *get_regdmn_pair(uint16_t reg_dmn)
+static const struct reg_dmn_pair *get_reg_dmn_pair(uint16_t reg_dmn)
{
int32_t i;
- for (i = 0; i < ol_regdmn_rdt.regDomainPairsCt; i++) {
- if (ol_regdmn_rdt.regDomainPairs[i].regDmnEnum == reg_dmn)
- return &ol_regdmn_rdt.regDomainPairs[i];
+ for (i = 0; i < g_reg_dmn_tbl.reg_dmn_pairs_cnt; i++) {
+ if (g_reg_dmn_tbl.reg_dmn_pairs[i].reg_dmn_enum == reg_dmn)
+ return &g_reg_dmn_tbl.reg_dmn_pairs[i];
}
+
return NULL;
}
-static const REG_DOMAIN *get_regdmn(uint16_t reg_dmn)
+static const struct reg_dmn *get_reg_dmn(uint16_t reg_dmn)
{
int32_t i;
- for (i = 0; i < ol_regdmn_rdt.regDomainsCt; i++) {
- if (ol_regdmn_rdt.regDomains[i].regDmnEnum == reg_dmn)
- return &ol_regdmn_rdt.regDomains[i];
+ for (i = 0; i < g_reg_dmn_tbl.reg_dmns_cnt; i++) {
+ if (g_reg_dmn_tbl.reg_dmns[i].reg_dmn == reg_dmn)
+ return &g_reg_dmn_tbl.reg_dmns[i];
}
+
return NULL;
}
-static const COUNTRY_CODE_TO_ENUM_RD *get_country_from_rd(uint16_t regdmn)
+static const struct country_code_to_reg_dmn *get_country_from_rd(
+ uint16_t reg_dmn)
{
int32_t i;
- for (i = 0; i < ol_regdmn_rdt.allCountriesCt; i++) {
- if (ol_regdmn_rdt.allCountries[i].regDmnEnum == regdmn)
- return &ol_regdmn_rdt.allCountries[i];
+ for (i = 0; i < g_reg_dmn_tbl.all_countries_cnt; i++) {
+ if (g_reg_dmn_tbl.all_countries[i].reg_dmn_enum == reg_dmn)
+ return &g_reg_dmn_tbl.all_countries[i];
}
- return NULL; /* Not found */
+
+ return NULL;
}
-/*
- * Some users have reported their EEPROM programmed with
- * 0x8000 set, this is not a supported regulatory domain
- * but since we have more than one user with it we need
- * a solution for them. We default to WOR0_WORLD
- */
static void regd_sanitize(struct regulatory *reg)
{
if (reg->reg_domain != COUNTRY_ERD_FLAG)
return;
+
reg->reg_domain = WOR0_WORLD;
}
-/*
- * Returns country string for the given regulatory domain.
- */
int32_t cds_fill_some_regulatory_info(struct regulatory *reg)
{
uint16_t country_code;
- uint16_t regdmn, rd;
- const COUNTRY_CODE_TO_ENUM_RD *country = NULL;
+ uint16_t reg_dmn, rd;
+ const struct country_code_to_reg_dmn *country = NULL;
regd_sanitize(reg);
rd = reg->reg_domain;
- if (!regdmn_is_eeprom_valid(rd))
+ if (!reg_dmn_is_eeprom_valid(rd))
return -EINVAL;
- regdmn = get_eeprom_rd(rd);
+ reg_dmn = get_eeprom_rd(rd);
- country_code = regdmn_get_default_country(regdmn);
- if (country_code == CTRY_DEFAULT && regdmn == CTRY_DEFAULT) {
- /* Set to CTRY_UNITED_STATES for testing */
+ country_code = reg_dmn_get_default_country(reg_dmn);
+ if (country_code == CTRY_DEFAULT && reg_dmn == CTRY_DEFAULT)
country_code = CTRY_UNITED_STATES;
- }
if (country_code != CTRY_DEFAULT) {
country = find_country(country_code);
if (!country) {
- /* TODO: Bring it under debug level */
- qdf_print(KERN_ERR "Not a valid country code\n");
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "not a valid country code");
return -EINVAL;
}
- regdmn = country->regDmnEnum;
+
+ reg_dmn = country->reg_dmn_enum;
}
- reg->regpair = get_regdmn_pair(regdmn);
+ reg->regpair = get_reg_dmn_pair(reg_dmn);
if (!reg->regpair) {
- /* TODO: Bring it under debug level */
- qdf_print(KERN_ERR "No regpair is found, can not proceeed\n");
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "no regpair is found, can not proceeed");
return -EINVAL;
}
+
reg->country_code = country_code;
if (!country)
- country = get_country_from_rd(regdmn);
+ country = get_country_from_rd(reg_dmn);
if (country) {
- reg->alpha2[0] = country->isoName[0];
- reg->alpha2[1] = country->isoName[1];
+ reg->alpha2[0] = country->iso_name[0];
+ reg->alpha2[1] = country->iso_name[1];
} else {
reg->alpha2[0] = '0';
reg->alpha2[1] = '0';
@@ -356,52 +658,57 @@
return 0;
}
-/*
- * Returns regulatory domain for given country string
- */
-int32_t regdmn_get_regdmn_for_country(uint8_t *alpha2)
+int32_t get_reg_dmn_for_country(uint8_t *alpha2)
{
uint8_t i;
- for (i = 0; i < ol_regdmn_rdt.allCountriesCt; i++) {
- if ((ol_regdmn_rdt.allCountries[i].isoName[0] == alpha2[0]) &&
- (ol_regdmn_rdt.allCountries[i].isoName[1] == alpha2[1]))
- return ol_regdmn_rdt.allCountries[i].regDmnEnum;
+ for (i = 0; i < g_reg_dmn_tbl.all_countries_cnt; i++) {
+ if ((g_reg_dmn_tbl.all_countries[i].iso_name[0] == alpha2[0]) &&
+ (g_reg_dmn_tbl.all_countries[i].iso_name[1] == alpha2[1]))
+ return g_reg_dmn_tbl.all_countries[i].reg_dmn_enum;
}
+
return -1;
}
-void cds_fill_send_ctl_info_to_fw(struct regulatory *reg)
+void cds_fill_and_send_ctl_to_fw(struct regulatory *reg)
{
- const REG_DOMAIN *regdomain2G = NULL;
- const REG_DOMAIN *regdomain5G = NULL;
+ const struct reg_dmn *reg_dmn_2g = NULL;
+ const struct reg_dmn *reg_dmn_5g = NULL;
int8_t ctl_2g, ctl_5g;
- const REG_DMN_PAIR_MAPPING *regpair;
+ const struct reg_dmn_pair *regpair;
+ tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
+
+ if (!wma) {
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "unable to get WMA handle");
+ return;
+ }
regpair = reg->regpair;
- regdomain2G = get_regdmn(regpair->regDmn2GHz);
- if (!regdomain2G) {
- qdf_print(KERN_ERR "Failed to get regdmn 2G");
+ reg_dmn_2g = get_reg_dmn(regpair->reg_dmn_2ghz);
+ if (!reg_dmn_2g) {
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "failed to get regdmn 2G");
return;
}
- regdomain5G = get_regdmn(regpair->regDmn5GHz);
- if (!regdomain5G) {
- qdf_print(KERN_ERR "Failed to get regdmn 5G");
+ reg_dmn_5g = get_reg_dmn(regpair->reg_dmn_5ghz);
+ if (!reg_dmn_5g) {
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "failed to get regdmn 5G");
return;
}
- /* find first nible of CTL */
- ctl_2g = regdomain2G->conformance_test_limit;
- ctl_5g = regdomain5G->conformance_test_limit;
+ ctl_2g = reg_dmn_2g->conformance_test_limit;
+ ctl_5g = reg_dmn_5g->conformance_test_limit;
- /* save the ctl information for future reference */
reg->ctl_5g = ctl_5g;
reg->ctl_2g = ctl_2g;
- wma_send_regdomain_info_to_fw(reg->reg_domain, regpair->regDmn2GHz,
- regpair->regDmn5GHz, ctl_2g, ctl_5g);
+ wma_send_regdomain_info_to_fw(reg->reg_domain, regpair->reg_dmn_2ghz,
+ regpair->reg_dmn_5ghz, ctl_2g, ctl_5g);
}
/* cds_set_wma_dfs_region() - to set the dfs region to wma
@@ -415,64 +722,34 @@
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
if (!wma) {
- qdf_print(KERN_ERR "%s: Unable to get WMA handle", __func__);
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "unable to get WMA handle");
return;
}
- qdf_print("%s: dfs_region: %d", __func__, dfs_region);
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_INFO,
+ "dfs_region: %d", dfs_region);
+
wma_set_dfs_region(wma, dfs_region);
}
-void cds_fill_and_send_ctl_to_fw(struct regulatory *reg)
-{
- tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
-
- if (!wma) {
- WMA_LOGE("%s: Unable to get WMA handle", __func__);
- return;
- }
-
- cds_fill_send_ctl_info_to_fw(reg);
- return;
-}
-
-/* get the ctl from regdomain */
-uint8_t cds_get_ctl_for_regdmn(uint32_t reg_dmn)
-{
- uint8_t i;
- uint8_t default_regdmn_ctl = FCC;
-
- if (reg_dmn == CTRY_DEFAULT) {
- return default_regdmn_ctl;
- } else {
- for (i = 0; i < ol_regdmn_rdt.regDomainsCt; i++) {
- if (ol_regdmn_rdt.regDomains[i].regDmnEnum == reg_dmn)
- return ol_regdmn_rdt.regDomains[i].
- conformance_test_limit;
- }
- }
- return -1;
-}
-
-/*
- * Get the 5G reg domain value for reg doamin
- */
-uint16_t cds_get_regdmn_5g(uint32_t reg_dmn)
+uint16_t cds_get_reg_dmn_5g(uint32_t reg_dmn)
{
uint16_t i;
- for (i = 0; i < ol_regdmn_rdt.regDomainPairsCt; i++) {
- if (ol_regdmn_rdt.regDomainPairs[i].regDmnEnum == reg_dmn) {
- return ol_regdmn_rdt.regDomainPairs[i].regDmn5GHz;
- }
+ for (i = 0; i < g_reg_dmn_tbl.reg_dmn_pairs_cnt; i++) {
+ if (g_reg_dmn_tbl.reg_dmn_pairs[i].reg_dmn_enum == reg_dmn)
+ return g_reg_dmn_tbl.reg_dmn_pairs[i].reg_dmn_5ghz;
}
- qdf_print("%s: invalid regulatory domain/country code 0x%x\n",
- __func__, reg_dmn);
+
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "invalid regulatory domain/country code 0x%x",
+ reg_dmn);
return 0;
}
/**
- * cds_regdm_get_chanwidth_from_opclass() - return chan width based on opclass
+ * cds_reg_dmn_get_chanwidth_from_opclass() - return chan width based on opclass
* @country: country name
* @channel: operating channel
* @opclass: operating class
@@ -483,11 +760,11 @@
* Return: channel width
*
*/
-uint16_t cds_regdm_get_chanwidth_from_opclass(uint8_t *country,
+uint16_t cds_reg_dmn_get_chanwidth_from_opclass(uint8_t *country,
uint8_t channel,
uint8_t opclass)
{
- regdm_op_class_map_t *class;
+ const struct reg_dmn_op_class_map_t *class;
uint16_t i;
if (true != qdf_mem_cmp(country, "US", 2))
@@ -511,17 +788,15 @@
}
class++;
}
+
return 0;
}
-/*
- * Get operating class for a given channel
- */
-uint16_t cds_regdm_get_opclass_from_channel(uint8_t *country, uint8_t channel,
+uint16_t cds_reg_dmn_get_opclass_from_channel(uint8_t *country, uint8_t channel,
uint8_t offset)
{
- regdm_op_class_map_t *class = NULL;
+ const struct reg_dmn_op_class_map_t *class = NULL;
uint16_t i = 0;
if (true != qdf_mem_cmp(country, "US", 2)) {
@@ -545,48 +820,43 @@
}
class++;
}
+
return 0;
}
-/*
- * Set current operating classes per country, regdomain
- */
-uint16_t cds_regdm_set_curr_opclasses(uint8_t num_classes, uint8_t *class)
+uint16_t cds_reg_dmn_set_curr_opclasses(uint8_t num_classes, uint8_t *class)
{
uint8_t i;
if (CDS_MAX_SUPP_OPER_CLASSES < num_classes) {
- qdf_print(KERN_ERR "%s: Invalid numClasses (%d)\n",
- __func__, num_classes);
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "invalid num classes %d", num_classes);
return -1;
}
for (i = 0; i < num_classes; i++) {
- regdm_curr_supp_opp_classes.classes[i] = class[i];
+ reg_dmn_curr_supp_opp_classes.classes[i] = class[i];
}
- regdm_curr_supp_opp_classes.num_classes = num_classes;
+
+ reg_dmn_curr_supp_opp_classes.num_classes = num_classes;
return 0;
}
-/*
- * Get current operating classes
- */
-uint16_t cds_regdm_get_curr_opclasses(uint8_t *num_classes, uint8_t *class)
+uint16_t cds_reg_dmn_get_curr_opclasses(uint8_t *num_classes, uint8_t *class)
{
uint8_t i;
if (!num_classes || !class) {
- qdf_print(KERN_ERR "%s: Either num_classes or class is null\n",
- __func__);
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ "either num_classes or class is null");
return -1;
}
- for (i = 0; i < regdm_curr_supp_opp_classes.num_classes; i++) {
- class[i] = regdm_curr_supp_opp_classes.classes[i];
- }
+ for (i = 0; i < reg_dmn_curr_supp_opp_classes.num_classes; i++)
+ class[i] = reg_dmn_curr_supp_opp_classes.classes[i];
- *num_classes = regdm_curr_supp_opp_classes.num_classes;
+ *num_classes = reg_dmn_curr_supp_opp_classes.num_classes;
return 0;
}
diff --git a/core/hdd/src/wlan_hdd_regulatory.c b/core/hdd/src/wlan_hdd_regulatory.c
index 6e36770..9609620 100644
--- a/core/hdd/src/wlan_hdd_regulatory.c
+++ b/core/hdd/src/wlan_hdd_regulatory.c
@@ -139,10 +139,10 @@
static const struct ieee80211_regdomain *hdd_get_world_regrules(
struct regulatory *reg)
{
- REG_DMN_PAIR_MAPPING *regpair =
- (REG_DMN_PAIR_MAPPING *)reg->regpair;
+ struct reg_dmn_pair *regpair =
+ (struct reg_dmn_pair *)reg->regpair;
- switch (regpair->regDmnEnum) {
+ switch (regpair->reg_dmn_enum) {
case 0x60:
case 0x61:
case 0x62:
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index c0bab96..3c60579 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -5544,7 +5544,7 @@
tpDphHashNode psta;
- op_class = cds_regdm_get_opclass_from_channel(
+ op_class = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
new_channel,
ch_bandwidth);
@@ -5591,7 +5591,7 @@
tpPESession session_entry = NULL;
uint8_t session_id;
tLimWiderBWChannelSwitchInfo *wider_bw_ch_switch;
- offset_t ch_offset;
+ enum offset_t ch_offset;
if (msg_buf == NULL) {
lim_log(mac_ctx, LOGE, FL("Buffer is Pointing to NULL"));
diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c
index 5bf81e6..f524a28 100644
--- a/core/mac/src/pe/lim/lim_process_tdls.c
+++ b/core/mac/src/pe/lim/lim_process_tdls.c
@@ -2610,7 +2610,7 @@
}
- op_class = cds_regdm_get_opclass_from_channel(
+ op_class = cds_reg_dmn_get_opclass_from_channel(
pMac->scan.countryCodeCurrent,
psessionEntry->currentOperChannel,
chanOffset);
@@ -2635,7 +2635,7 @@
suppOperClasses->present = 1;
suppOperClasses->classes[0] = op_class;
- cds_regdm_get_curr_opclasses(&numClasses, &classes[0]);
+ cds_reg_dmn_get_curr_opclasses(&numClasses, &classes[0]);
for (i = 0; i < numClasses; i++) {
suppOperClasses->classes[i + 1] = classes[i];
diff --git a/core/mac/src/pe/lim/lim_send_messages.c b/core/mac/src/pe/lim/lim_send_messages.c
index 5741165..c990d54 100644
--- a/core/mac/src/pe/lim/lim_send_messages.c
+++ b/core/mac/src/pe/lim/lim_send_messages.c
@@ -880,10 +880,10 @@
ht40_obss_scanind->obss_activity_threshold =
session->obss_ht40_scanparam.obss_activity_threshold;
ht40_obss_scanind->current_operatingclass =
- cds_regdm_get_opclass_from_channel(
- mac_ctx->scan.countryCodeCurrent,
- session->currentOperChannel,
- session->ch_width);
+ cds_reg_dmn_get_opclass_from_channel(
+ mac_ctx->scan.countryCodeCurrent,
+ session->currentOperChannel,
+ session->ch_width);
channelnum = WNI_CFG_VALID_CHANNEL_LIST_LEN;
if (wlan_cfg_get_str(mac_ctx, WNI_CFG_VALID_CHANNEL_LIST,
chan_list, &channelnum) != eSIR_SUCCESS) {
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
index 17d4492..590d8eb 100644
--- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
@@ -2106,7 +2106,7 @@
} else if (csa_params->ies_present_flag
& lim_xcsa_ie_present) {
chan_space =
- cds_regdm_get_chanwidth_from_opclass(
+ cds_reg_dmn_get_chanwidth_from_opclass(
mac_ctx->scan.countryCodeCurrent,
csa_params->channel,
csa_params->new_op_class);
@@ -2157,7 +2157,7 @@
if (csa_params->ies_present_flag
& lim_xcsa_ie_present) {
chan_space =
- cds_regdm_get_chanwidth_from_opclass(
+ cds_reg_dmn_get_chanwidth_from_opclass(
mac_ctx->scan.countryCodeCurrent,
csa_params->channel,
csa_params->new_op_class);
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index 80c7a66..b41e616 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -256,7 +256,7 @@
ch_offset = session_entry->gLimChannelSwitch.sec_ch_offset;
dot_11_ptr->switch_mode = session_entry->gLimChannelSwitch.switchMode;
- dot_11_ptr->new_reg_class = cds_regdm_get_opclass_from_channel(
+ dot_11_ptr->new_reg_class = cds_reg_dmn_get_opclass_from_channel(
mac_ptr->scan.countryCodeCurrent,
session_entry->gLimChannelSwitch.primaryChannel,
ch_offset);
@@ -320,9 +320,9 @@
}
}
- cds_regdm_get_curr_opclasses(&dot_11_ptr->num_classes,
+ cds_reg_dmn_get_curr_opclasses(&dot_11_ptr->num_classes,
&dot_11_ptr->classes[1]);
- dot_11_ptr->classes[0] = cds_regdm_get_opclass_from_channel(
+ dot_11_ptr->classes[0] = cds_reg_dmn_get_opclass_from_channel(
mac_ptr->scan.countryCodeCurrent,
session_entry->currentOperChannel,
ch_bandwidth);
diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c
index 4e907aa..709719f 100644
--- a/core/sap/src/sap_module.c
+++ b/core/sap/src/sap_module.c
@@ -1430,7 +1430,7 @@
for (; bw >= BW20; bw--) {
uint16_t op_class;
- op_class = cds_regdm_get_opclass_from_channel(
+ op_class = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
channel, bw);
if (!op_class)
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index cdbe608..6840dcf 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -15303,20 +15303,20 @@
* matching 20MHz, else for any BW.
*/
if (bw_offset & (1 << BW_40_OFFSET_BIT)) {
- *opclass = cds_regdm_get_opclass_from_channel(
+ *opclass = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
channel, BW40_LOW_PRIMARY);
if (!(*opclass)) {
- *opclass = cds_regdm_get_opclass_from_channel(
+ *opclass = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
channel, BW40_HIGH_PRIMARY);
}
} else if (bw_offset & (1 << BW_20_OFFSET_BIT)) {
- *opclass = cds_regdm_get_opclass_from_channel(
+ *opclass = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
channel, BW20);
} else {
- *opclass = cds_regdm_get_opclass_from_channel(
+ *opclass = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
channel, BWALL);
}
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 19f173e..3b68d44 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -18413,7 +18413,7 @@
&& *i < (CDS_MAX_SUPP_OPER_CLASSES - 1); idx++) {
for (ch_bandwidth = BW20; ch_bandwidth < BWALL;
ch_bandwidth++) {
- class = cds_regdm_get_opclass_from_channel(
+ class = cds_reg_dmn_get_opclass_from_channel(
mac_ctx->scan.countryCodeCurrent,
channel_info->channelList[idx],
ch_bandwidth);
@@ -18484,7 +18484,7 @@
/* Set the ordered list of op classes in regdomain
* for use by other modules
*/
- cds_regdm_set_curr_opclasses(numClasses, &opClasses[0]);
+ cds_reg_dmn_set_curr_opclasses(numClasses, &opClasses[0]);
}
/**
diff --git a/core/wma/inc/wma_dfs_interface.h b/core/wma/inc/wma_dfs_interface.h
index 6887f11..ae21355 100644
--- a/core/wma/inc/wma_dfs_interface.h
+++ b/core/wma/inc/wma_dfs_interface.h
@@ -260,7 +260,7 @@
int (*ic_dfs_control)(struct ieee80211com *ic,
u_int id, void *indata, uint32_t insize,
void *outdata, uint32_t *outsize);
- enum HAL_DFS_DOMAIN current_dfs_regdomain;
+ enum dfs_domain current_dfs_regdomain;
uint8_t vdev_id;
uint8_t last_radar_found_chan;
int32_t dfs_pri_multiplier;