summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-04-25 09:43:32 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-25 09:43:32 -0700
commit8cbbedf99674ae8f4a1a2f82c656b362cd626552 (patch)
treec0cd6952b8a32e84637776056f15fa72f5c61082
parenta1143fedba6d3d07543b734071d22f65430bbfc5 (diff)
parent52a34437f68a41f860e24c88d85eb694d49357cf (diff)
Merge "qcacld-2.0: CL 2969188 - update fw common interface files" into wlan-cld2.driver.lnx.1.0-dev
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h7
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h61
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
4 files changed, 63 insertions, 8 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index ee11514d6cf4..df5c0d906668 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -812,6 +812,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_tx_send_params,
WMITLV_TAG_STRUC_wmi_he_rate_set,
WMITLV_TAG_STRUC_wmi_congestion_stats,
+ WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1140,6 +1141,7 @@ typedef enum {
OP(WMI_VDEV_GET_ARP_STAT_CMDID) \
OP(WMI_VDEV_GET_TX_POWER_CMDID) \
OP(WMI_OFFCHAN_DATA_TX_SEND_CMDID) \
+ OP(WMI_SET_INIT_COUNTRY_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -3224,6 +3226,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_PEER_STATS_INFO_CMDID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, wmi_set_current_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SET_CURRENT_COUNTRY_CMDID);
+/* Host sets the init country code */
+#define WMITLV_TABLE_WMI_SET_INIT_COUNTRY_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param, wmi_set_init_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_SET_INIT_COUNTRY_CMDID);
+
/* Start 11d scan in FW */
#define WMITLV_TABLE_WMI_11D_SCAN_START_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param, wmi_11d_scan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 06dd21a2657e..8a95b1257b44 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -1027,6 +1027,7 @@ typedef enum {
WMI_SET_CURRENT_COUNTRY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_REGULATORY),
WMI_11D_SCAN_START_CMDID,
WMI_11D_SCAN_STOP_CMDID,
+ WMI_SET_INIT_COUNTRY_CMDID,
/**
* Nan Data commands
@@ -18975,6 +18976,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID);
WMI_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID);
WMI_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID);
+ WMI_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID);
}
return "Invalid WMI cmd";
@@ -18986,9 +18988,32 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
/** Host indicating current country code to FW */
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param */
+ A_UINT32 pdev_id;
A_UINT32 new_alpha2; /** alpha2 characters representing the country code */
} wmi_set_current_country_cmd_fixed_param;
+typedef enum {
+ WMI_COUNTRYCODE_ALPHA2,
+ WMI_COUNTRYCODE_COUNTRY_ID,
+ WMI_COUNTRYCODE_DOMAIN_CODE,
+} WMI_COUNTRYCODE_TYPE;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param */
+ A_UINT32 pdev_id;
+ A_UINT32 countrycode_type; /* WMI_COUNTRYCODE_TYPE */
+ union {
+ struct {
+ /* Three character for alpha2. The first two is ISO name for country the last one
+ present if it is indoor and out door. First char in bits 7:0 and second char in bits 15:8 ... */
+ A_UINT32 alpha2:24,
+ unused:8;
+ };
+ A_UINT32 country_id; /* Country ID */
+ A_UINT32 domain_code; /* Domain code */
+ } country_code;
+} wmi_set_init_country_cmd_fixed_param;
+
/* Freq units in MHz */
#define WMI_REG_RULE_START_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16)
#define WMI_REG_RULE_START_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 0, 16, value)
@@ -18996,11 +19021,14 @@ typedef struct {
#define WMI_REG_RULE_END_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 16, 16, value)
/* BW in MHz */
-#define WMI_REG_RULE_MAX_BW_GET(bw_info) WMI_GET_BITS(bw_info, 0, 16)
-#define WMI_REG_RULE_MAX_BW_SET(bw_info, value) WMI_SET_BITS(bw_info, 0, 16, value)
+#define WMI_REG_RULE_MAX_BW_GET(bw_pwr_info) WMI_GET_BITS(bw_pwr_info, 0, 16)
+#define WMI_REG_RULE_MAX_BW_SET(bw_pwr_info, value) WMI_SET_BITS(bw_pwr_info, 0, 16, value)
/* regpower in dBm */
-#define WMI_REG_RULE_REG_POWER_GET(bw_info) WMI_GET_BITS(bw_info, 16, 8)
-#define WMI_REG_RULE_REG_POWER_SET(bw_info, value) WMI_SET_BITS(bw_info, 16, 8, value)
+#define WMI_REG_RULE_REG_POWER_GET(bw_pwr_info) WMI_GET_BITS(bw_pwr_info, 16, 8)
+#define WMI_REG_RULE_REG_POWER_SET(bw_pwr_info, value) WMI_SET_BITS(bw_pwr_info, 16, 8, value)
+/* antenna gain */
+#define WMI_REG_RULE_ANTENNA_GAIN_GET(bw_pwr_info) WMI_GET_BITS(bw_pwr_info, 24, 8)
+#define WMI_REG_RULE_ANTENNA_GAIN_SET(bw_pwr_info, value) WMI_SET_BITS(bw_pwr_info, 24, 8, value)
typedef enum {
WMI_REG_FLAG_CHAN_NO_IR = 0x0001, /* passive channel */
@@ -19014,9 +19042,14 @@ typedef enum {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_rule_struct */
- A_UINT32 freq_info; /* u16 start_freq, u16 end_freq */
- A_UINT32 bw_info; /* u16 max_bw, u8 reg_power, u8 reserved */
- A_UINT32 power_flag_info; /* u16 flags, u16 reserved */
+ A_UINT32 freq_info; /* bits 15:0 = u16 start_freq,
+ * bits 31:16 = u16 end_freq
+ * (both in MHz units) */
+ A_UINT32 bw_pwr_info; /* bits 15:0 = u16 max_bw (MHz units),
+ bits 23:16 = u8 reg_power (dBm units),
+ bits 31:24 = u8 ant_gain (dB units) */
+ A_UINT32 flag_info; /* bits 15:0 = u16 flags,
+ bits 31:16 reserved */
} wmi_regulatory_rule_struct;
typedef enum {
@@ -19040,9 +19073,23 @@ typedef enum {
WMI_REGULATORY_PHYMODE_NO11AX = 0x0020, /* NO 11AX */
} WMI_REGULATORY_PHYBITMAP;
+typedef enum {
+ WMI_REG_SET_CC_STATUS_PASS = 0,
+ WMI_REG_CURRENT_ALPHA2_NOT_FOUND = 1,
+ WMI_REG_INIT_ALPHA2_NOT_FOUND = 2,
+ WMI_REG_SET_CC_CHANGE_NOT_ALLOWED = 3,
+ WMI_REG_SET_CC_STATUS_NO_MEMORY = 4,
+ WMI_REG_SET_CC_STATUS_FAIL = 5,
+} WMI_REG_SET_CC_STATUS_CODE;
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param */
+ A_UINT32 status_code; /* WMI_REG_SET_CC_STATUS_CODE */
+ A_UINT32 phy_id;
A_UINT32 alpha2;
+ A_UINT32 num_phy;
+ A_UINT32 country_id;
+ A_UINT32 domain_code;
A_UINT32 dfs_region; /* WMI_REG_DFS_REGION */
A_UINT32 phybitmap; /* WMI_REGULATORY_PHYBITMAP */
A_UINT32 min_bw_2g; /* BW in MHz */
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index e9203e3c11b5..6375e585c3e5 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/wmi_version.h
@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */
-#define __WMI_REVISION_ 373
+#define __WMI_REVISION_ 374
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 4b5bae5a9441..a98982f19b10 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -745,6 +745,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID);
CASE_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID);
CASE_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID);
+ CASE_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID);
}
return "Invalid WMI cmd";
}