summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrishna Kumaar Natarajan <kknatara@qca.qualcomm.com>2014-09-16 11:55:30 -0700
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-09-17 13:54:36 -0700
commita337b1e4cea4ce1e24638f18aa69c2865b134abb (patch)
treec09dce5028726a018b975f6792bd6ae189fa18ed
parent0f376cd639e7cabd7e2a479b76c227e67e71524a (diff)
qcacld: CL 1083623 - update fw common interface files
This change set update the fw common interface files associated with the CL 1083623 Change-Id: I4fd7ee796ea83c4aa94564935698cd56108fc185 CRs-Fixed: 725315
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h11
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h122
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
4 files changed, 134 insertions, 2 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index f5812c1c2c26..f70aa168478e 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -505,7 +505,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_ric_request_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param,
- WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param
+ WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_tpc_chainmask_config_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_ric_tspec
} WMITLV_TAG_ID;
/*
@@ -665,6 +667,7 @@ typedef enum {
OP(WMI_OBSS_SCAN_DISABLE_CMDID)\
OP(WMI_PDEV_SET_LED_CONFIG_CMDID)\
OP(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID) \
+ OP(WMI_TPC_CHAINMASK_CONFIG_CMDID) \
OP(WMI_CHAN_AVOID_UPDATE_CMDID) \
OP(WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID) \
OP(WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID) \
@@ -1896,6 +1899,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_LED_CONFIG_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_fixed_param, wmi_host_auto_shutdown_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID);
+/* tpc chainmask config cmd */
+#define WMITLV_TABLE_WMI_TPC_CHAINMASK_CONFIG_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tpc_chainmask_config_cmd_fixed_param, wmi_tpc_chainmask_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tpc_chainmask_config, config_list, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_TPC_CHAINMASK_CONFIG_CMDID);
+
/* Ch avoidance update cmd */
#define WMITLV_TABLE_WMI_CHAN_AVOID_UPDATE_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param, wmi_chan_avoid_update_cmd_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 9a857cbd662e..db4891e979b6 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -563,6 +563,8 @@ typedef enum {
WMI_THERMAL_MGMT_CMDID,
/** set host auto shutdown params **/
WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID,
+ /* set tpc chainmask config command */
+ WMI_TPC_CHAINMASK_CONFIG_CMDID,
/* GPIO Configuration */
WMI_GPIO_CONFIG_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_GPIO),
@@ -1502,6 +1504,11 @@ typedef struct {
* mentions how many such buffer STAs can be supported concurrently.
*/
A_UINT32 max_tdls_concurrent_buffer_sta;
+
+ /**
+ * @brief wmi_send_separate - host configures fw to send the wmi separately
+ */
+ A_UINT32 wmi_send_separate;
} wmi_resource_config;
@@ -7636,6 +7643,121 @@ typedef struct{
} wmi_host_auto_shutdown_event_fixed_param;
+//Support TPC CHAINMASK ADJUSTMENT ACCORDING TO SOME Conditions which host set
+
+#define WMI_TPC_CHAINMASK_CONFIG_BT_ON_OFF 0 /* dont' care the bt status */
+#define WMI_TPC_CHAINMASK_CONFIG_BT_OFF 1 /* apply only when bt off */
+#define WMI_TPC_CHAINMASK_CONFIG_BT_ON 2 /* apply only when bt on */
+#define WMI_TPC_CHAINMASK_CONFIG_BT_RESV1 3 /* reserved */
+
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_DONT_CARE 0 /* don't care the chainmask */
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_CHAIN0 1 /* force to use Chain0 to send */
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_CHAIN1 2 /* force to use Chain1 to send */
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_CHAIN0_CHAIN1 3 /* force to use Chain0 & Chain1 to send */
+
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_ON_OFF 0 /* don't care about stbc */
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_ON 1 /* apply only when stbc on */
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_OFF 2 /* apply only when stbc off */
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_RESV1 3 /* reserved */
+
+#define WMI_TPC_CHAINMASK_CONFIG_BAND_2G 0
+#define WMI_TPC_CHAINMASK_CONFIG_BAND_5G 1
+
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11B_2G 0 /* 11b 2G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11G_2G 1 /* 11g 2G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_2G 2 /* 11n 2G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_11AC_2G 3 /* 11n + 11ac 2G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11A_5G 4 /* 11a 5G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_5G 5 /* 11n 5G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11AC_5G 6 /* 11ac 5G */
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_11AC_5G 7 /* 11n + 11ac 5G */
+
+#define WMI_TPC_CHAINMASK_CONFIG_STREAM_1 0 /* 1 stream */
+#define WMI_TPC_CHAINMASK_CONFIG_STREAM_2 1 /* 2 streams */
+
+//Bit map definition starts
+#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_S 0
+#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET (0xf << WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_S)
+#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET)
+#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_SET(x,z) WMI_F_RMW(x,(z) & 0xf,WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET)
+
+#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_S 4
+#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET (0xf << WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_S)
+#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET)
+#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_SET(x,z) WMI_F_RMW(x, (z) & 0xf, WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET)
+
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_S 8
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK (0x3 << WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_S)
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_CHAINMASK)
+#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_SET(x,z) WMI_F_RMW(x, (z)&0x3, WMI_TPC_CHAINMASK_CONFIG_CHAINMASK)
+
+#define WMI_TPC_CHAINMASK_CONFIG_BT_S 10
+#define WMI_TPC_CHAINMASK_CONFIG_BT (0x3 << WMI_TPC_CHAINMASK_CONFIG_BT_S)
+#define WMI_TPC_CHAINMASK_CONFIG_BT_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_BT)
+#define WMI_TPC_CHAINMASK_CONFIG_BT_SET(x,z) WMI_F_RMW(x, (z)&0x3, WMI_TPC_CHAINMASK_CONFIG_BT)
+
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_S 12
+#define WMI_TPC_CHAINMASK_CONFIG_STBC (0x3 << WMI_TPC_CHAINMASK_CONFIG_STBC_S)
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_STBC)
+#define WMI_TPC_CHAINMASK_CONFIG_STBC_SET(x,z) WMI_F_RMW(x, (z)& 0x3, WMI_TPC_CHAINMASK_CONFIG_STBC)
+
+#define WMI_TPC_CHAINMASK_CONFIG_BAND_S 14
+#define WMI_TPC_CHAINMASK_CONFIG_BAND (0x1 << WMI_TPC_CHAINMASK_CONFIG_BAND_S)
+#define WMI_TPC_CHAINMASK_CONFIG_BAND_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_BAND)
+#define WMI_TPC_CHAINMASK_CONFIG_BAND_SET(x,z) WMI_F_RMW(x, (z) &0x1, WMI_TPC_CHAINMASK_CONFIG_BAND)
+
+#define WMI_TPC_CHAINMASK_CONFIG_STREAM_S 15
+#define WMI_TPC_CHAINMASK_CONFIG_STREAM (0x1 << WMI_TPC_CHAINMASK_CONFIG_STREAM_S)
+#define WMI_TPC_CHAINMASK_CONFIG_STREAM_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_STREAM)
+#define WMI_TPC_CHAINMASK_CONFIG_STREAM_SET(x,z) WMI_F_RMW(x, (z)&0x1, WMI_TPC_CHAINMASK_CONFIG_STREAM)
+
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_S 16
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE (0x7 << WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_S)
+#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_PHY_MODE)
+#define WMI_TPC_CHAINAMSK_CONFIG_PHY_MODE_SET(x,z) WMI_F_RMW(x, (z)&0x7, WMI_TPC_CHAINMASK_CONFIG_PHY_MODE)
+
+#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM_S 19
+#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM (0x1f << WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM_S)
+#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM)
+#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM_SET(x,z) WMI_F_RMW(x, (z)&0x1f, WMI_TPC_CHAINMASK_CONFIG_CHANNEL_NUM)
+
+#define WMI_TPC_CHAINMASK_CONFIG_RATE_NUM_S 24
+#define WMI_TPC_CHAINMASK_CONFIG_RATE_NUM (0x1f << WMI_TPC_CHAINMASK_CONFIG_RATE_NUM_S)
+#define WMI_TPC_CHAINMASK_CONFIG_RATE_NUM_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_RATE_NUM)
+#define WMI_TPC_CHAINMASK_CONFIG_RATE_NUM_SET(x,z) WMI_F_RMW(x, (z)&0x1f, WMI_TPC_CHAINMASK_CONFIG_RATE_NUM)
+//Bit map definition ends
+typedef struct{
+ A_UINT32 tlv_header;
+ //Basic condition defined as bit map above
+ A_UINT32 basic_info;
+
+ //Total 24 channels for 5G
+ //36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165
+ //Total 14 channels for 2G
+ //1 ~ 14
+ A_UINT32 channel;
+
+ //Legacy rates , 11b, 11g, 11A
+ //11n one stream ( ht20, ht40 ) 8+8
+ //11n two streams ( ht20, ht40 ) 8+8
+ //11ac one stream ( vht20, vht40, vht80 ) 10+10+10
+ //11ac two streams (vht20, vht40, vht80 ) 10+10+10
+ A_UINT32 rate0;
+
+ //only used for "11n/11ac", in this case, 11n rates begins on rate0, while 11ac rates begins on rate1
+ A_UINT32 rate1;
+} wmi_tpc_chainmask_config;
+
+#define WMI_TPC_CHAINMASK_CONFIG_DISABLE 0 /* control the off for the tpc & chainmask*/
+#define WMI_TPC_CHAINMASK_CONFIG_ENABLE 1 /* control the on for the tpc & chainmask*/
+
+typedef struct{
+ A_UINT32 tlv_header;
+ A_UINT32 enable;
+ A_UINT32 valid_num;
+ //following this structure is multiple wmi_tpc_chainmask_config
+} wmi_tpc_chainmask_config_cmd_fixed_param;
+
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_cmd_param */
A_UINT32 data_len; /** length in byte of data[]. */
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index f6aaf6544c6e..4fd149955451 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_ 63
+#define __WMI_REVISION_ 64
/** 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 bb1ea6a0df6a..297e09b35f8b 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -585,6 +585,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_ROAM_SET_RIC_REQUEST_CMDID);
CASE_RETURN_STRING(WMI_PDEV_GET_TEMPERATURE_CMDID);
CASE_RETURN_STRING(WMI_SET_DHCP_SERVER_OFFLOAD_CMDID);
+ CASE_RETURN_STRING(WMI_TPC_CHAINMASK_CONFIG_CMDID);
}
return "Invalid WMI cmd";
}