qcacld-3.0: CL 1446198 update fw common interface files

Added One tuple control flag bit WMI_FLAGS_IS_IPV6_ANYCAST and
added one parameter 'num_ns_ext_tuples_cfg' in wmi_resource_config
RTT definitions updated
Add wmi interface for MBO(MultiBand Operation) feature.

Change-Id: If698fc104e9ac39d6b58c88a542a30c2ba59d52b
CRs-fixed: 865207
This commit is contained in:
Govind Singh 2016-02-01 14:03:37 +05:30
commit 8618029254
4 changed files with 91 additions and 4 deletions

View file

@ -769,6 +769,7 @@ static uint8_t *get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_FWTEST_CMDID);
CASE_RETURN_STRING(WMI_QBOOST_CFG_CMDID);
CASE_RETURN_STRING(WMI_PDEV_GET_NFCAL_POWER_CMDID);
CASE_RETURN_STRING(WMI_ROAM_SET_MBO_PARAM_CMDID);
}
return "Invalid WMI cmd";
}

View file

@ -657,6 +657,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum,
WMITLV_TAG_STRUC_wmi_mu_report_total_mu,
WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param,
} WMITLV_TAG_ID;
@ -922,7 +923,8 @@ typedef enum {
OP(WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID) \
OP(WMI_PEER_ATF_REQUEST_CMDID) \
OP(WMI_FWTEST_CMDID) \
OP(WMI_QBOOST_CFG_CMDID)
OP(WMI_QBOOST_CFG_CMDID) \
OP(WMI_ROAM_SET_MBO_PARAM_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
@ -1211,6 +1213,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CHAN_LIST);
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_CMD);
/* Roam mbo configuration */
#define WMITLV_TABLE_WMI_ROAM_SET_MBO_PARAM_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param, wmi_roam_set_mbo_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, cellular_cap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_supported_operating_class_param, supp_op_class_param, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, supp_op_class_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_mbo_non_preferred_channel_report_param, non_prefer_ch_param, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, non_prefer_ch_attr, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SET_MBO_PARAM_CMDID);
#define WMITLV_TABLE_WMI_VDEV_PLMREQ_START_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, wmi_vdev_plmreq_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR)

View file

@ -357,8 +357,8 @@ typedef enum {
/* TSF timestamp action for specified vdev */
WMI_VDEV_TSF_TSTAMP_ACTION_CMDID,
/*
* set the capabilties IE, e.g. for extended caps in probe
* requests, assoc req etc for frames FW locally generates
* set the additional IEs in probe requests for scan or
* assoc req etc for frames FW locally generates
*/
WMI_VDEV_SET_IE_CMDID,
@ -498,6 +498,8 @@ typedef enum {
WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID,
/** configure thresholds for MAWC */
WMI_ROAM_CONFIGURE_MAWC_CMDID,
/** configure MultiBand Operation(refer WFA MBO spec) parameter */
WMI_ROAM_SET_MBO_PARAM_CMDID,
/** offload scan specific commands */
/** set offload scan AP profile */
@ -2134,6 +2136,12 @@ typedef struct {
* 0 - Don't allocate fragment descriptor for data packet.
*/
A_UINT32 alloc_frag_desc_for_data_pkt;
/*
* how much space to allocate for NDP NS (neighbor solicitation)
* specs
*/
A_UINT32 num_ns_ext_tuples_cfg;
} wmi_resource_config;
#define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \
@ -7931,6 +7939,8 @@ typedef struct {
#define WMI_NSOFF_FLAGS_VALID (1 << 0) /* the tuple entry is valid */
#define WMI_NSOFF_FLAGS_MAC_VALID (1 << 1) /* the target mac address is valid */
#define WMI_NSOFF_FLAGS_REMOTE_IP_VALID (1 << 2) /* remote IP field is valid */
/* whether the configured IPv6 address is anycast */
#define WMI_NSOFF_FLAGS_IS_IPV6_ANYCAST (1 << 3)
#define WMI_NSOFF_MAX_TARGET_IPS 2
@ -12664,6 +12674,69 @@ typedef struct {
A_UINT32 sensor_status;
} wmi_mawc_sensor_report_ind_cmd_fixed_param;
/* MBO flag field definition */
/*
* Bit 0: 0 - Allow to connect to both MBO and non-MBO AP
* 1 - Allow to connect to MBO AP only
* Bit 1-31 : reserved.
*/
#define WMI_ROAM_MBO_FLAG_MBO_ONLY_MODE (1<<0)
typedef struct {
/*
* TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param
*/
A_UINT32 tlv_header;
/** vdev id */
A_UINT32 vdev_id;
/** enable or disable MBO */
A_UINT32 enable;
/** MBO flags, refer to definition of MBO flags*/
A_UINT32 flags;
} wmi_roam_set_mbo_fixed_param;
typedef struct {
/*
* TLV tag and len; tag equals
* WMITLV_TAG_ARRAY_STRUC
*/
A_UINT32 tlv_header;
/** Current operating class number */
A_UINT32 cur_op_class;
/*
* Country string of current reg domain,
* the expected value should be same as country str defined
* in country IE.
* 3 octets (COUNTRY_STR) + 1 octet (always 0)
* The ordering of this array must be maintained,
* even when a big-endian host's WMI messages undergo
* automatic byte reordering for conversion to the
* little-endian ordering required by the target.
* On big-endian hosts, this array may need to be byte-swapped
* by the host, so the subsequent automatic byte-swap
* will result in the correct final byte order.
* global operating class: set country_str[0]=0
*/
A_UINT8 country_str[4];
/** Supported operating class number in current regdomain */
A_UINT32 supp_op_class_num;
/* The TLVs will follow. */
/* A_UINT32 supp_op_class_list[] */
} wmi_supported_operating_class_param;
typedef struct {
/*
* TLV tag and len; tag equals
* WMITLV_TAG_ARRAY_STRUC
*/
A_UINT32 tlv_header;
/** non preferred channel attribute length */
A_UINT32 non_prefer_ch_attr_len;
/* The TLVs will follow. */
/** A_UINT8 non_prefer_ch_attr[];*/
} wmi_mbo_non_preferred_channel_report_param;
typedef struct {
/* TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param */

View file

@ -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_ 198
#define __WMI_REVISION_ 200
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work