diff options
| author | Krishna Kumaar Natarajan <kknatara@qca.qualcomm.com> | 2014-09-16 11:55:30 -0700 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-09-17 13:54:36 -0700 |
| commit | a337b1e4cea4ce1e24638f18aa69c2865b134abb (patch) | |
| tree | c09dce5028726a018b975f6792bd6ae189fa18ed | |
| parent | 0f376cd639e7cabd7e2a479b76c227e67e71524a (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.h | 11 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 122 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
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"; } |
