diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-02-08 00:19:51 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-02-08 00:19:51 -0800 |
| commit | 10d305d994eba9737b690d641bc3a9ef1dc35307 (patch) | |
| tree | cc48449bf786da0c001870791e3f3ca937806d8f | |
| parent | d5b620973ddd0cb50c69e90ef12ec0d700d8a26d (diff) | |
| parent | b620c37a791e6f046acb5d73fee8e2f4c422044d (diff) | |
Merge "qcacld-2.0: CL 2759760 - update fw common interface files" into wlan-cld2.driver.lnx.1.0-dev
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 7 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 38 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
4 files changed, 47 insertions, 1 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index 823deefd36ad..bee1b43f34b8 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -781,6 +781,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_request_radio_chan_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_radio_chan_stats, WMITLV_TAG_STRUC_wmi_radio_chan_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_per_config_fixed_param, } WMITLV_TAG_ID; /* @@ -1096,6 +1097,7 @@ typedef enum { OP(WMI_11D_SCAN_START_CMDID) \ OP(WMI_11D_SCAN_STOP_CMDID) \ OP(WMI_REQUEST_RADIO_CHAN_STATS_CMDID) \ + OP(WMI_ROAM_PER_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -1434,6 +1436,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_CMD); 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); +/* Roam PER configure cmd */ +#define WMITLV_TABLE_WMI_ROAM_PER_CONFIG_CMDID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_roam_per_config_fixed_param, wmi_roam_per_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) + +WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_PER_CONFIG_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) \ diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index 72f76ac14d8a..26e769462b46 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -559,6 +559,8 @@ typedef enum { WMI_ROAM_CONFIGURE_MAWC_CMDID, /** configure MultiBand Operation(refer WFA MBO spec) parameter */ WMI_ROAM_SET_MBO_PARAM_CMDID, /* DEPRECATED */ + /** configure packet error rate threshold for triggering roaming */ + WMI_ROAM_PER_CONFIG_CMDID, /** offload scan specific commands */ /** set offload scan AP profile */ @@ -15733,6 +15735,41 @@ typedef struct { } wmi_extscan_configure_mawc_cmd_fixed_param; typedef struct { + /* + * TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_roam_per_config_fixed_param + */ + A_UINT32 tlv_header; + /* Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* enable(1) or disable(0) packet error rate trigger for roaming */ + A_UINT32 enable; + /* high_rate_thresh, low_rate_thresh, pkt_err_rate_thresh_pct: + * If PER monitoring as a trigger for roaming is enabled, + * it is controlled by high_rate_thresh, low_rate_thresh, and + * pkt_err_rate_thresh_pct. + * PER monitoring is performed only when the time-averaged throughput + * is less than high_rate_thresh. + * During PER monitoring, the target keeps track of the PHY rate for + * each of the first N PPDUs within a time window. + * If the number of PPDUs with PHY rate < low_rate_thresh exceeds + * N * pkt_err_rate_thresh_pct / 100, roaming will be triggered. + * + * This PER monitoring as a trigger for roaming is performed + * concurrently but independently for rx and tx. + */ + A_UINT32 high_rate_thresh; /* units = Kbps */ + A_UINT32 low_rate_thresh; /* units = Kbps */ + A_UINT32 pkt_err_rate_thresh_pct; + /* + * rest time after associating to a new AP before + * starting to monitor PER as a roaming trigger, + * (units are seconds) + */ + A_UINT32 per_rest_time; +} wmi_roam_per_config_fixed_param; + +typedef struct { /* TLV tag and len; tag equals * WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param */ A_UINT32 tlv_header; @@ -17700,6 +17737,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID); WMI_RETURN_STRING(WMI_REQUEST_PEER_STATS_INFO_CMDID); WMI_RETURN_STRING(WMI_REQUEST_RADIO_CHAN_STATS_CMDID); + WMI_RETURN_STRING(WMI_ROAM_PER_CONFIG_CMDID); } return "Invalid WMI cmd"; diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index e8f41ba07f07..fab1ea348e2e 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_ 330 +#define __WMI_REVISION_ 331 /** 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 efaa7d84fd1d..63a962a33260 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -731,6 +731,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(WMI_11D_SCAN_START_CMDID); CASE_RETURN_STRING(WMI_11D_SCAN_STOP_CMDID); CASE_RETURN_STRING(WMI_REQUEST_RADIO_CHAN_STATS_CMDID); + CASE_RETURN_STRING(WMI_ROAM_PER_CONFIG_CMDID); } return "Invalid WMI cmd"; } |
