fw-api: CL 3446431 - update fw common interface files

WLM latency configuration WMI message defs

Change-Id: I670771cfe23f86b2f08e3e69ea33a31261f399e9
CRs-Fixed: 1107600
This commit is contained in:
spuligil 2017-09-12 09:02:19 -07:00
parent 3e76aba92c
commit eb685beddd
4 changed files with 124 additions and 1 deletions

View File

@ -214,6 +214,7 @@ typedef enum {
WMI_SERVICE_WLAN_OIC_PING_OFFLOAD=132, /* Support for wlan OIC ping service */
WMI_SERVICE_WLAN_DHCP_RENEW=133, /* Support for wlan DHCP Renew service */
WMI_SERVICE_MAWC_SUPPORT = 134, /* Support for MAWC service */
WMI_SERVICE_VDEV_LATENCY_CONFIG=135, /* support for vdev latency config */
/******* ADD NEW SERVICES HERE *******/

View File

@ -854,6 +854,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_dhcp_lease_renew_event,
WMITLV_TAG_STRUC_wmi_btm_config_fixed_param,
WMITLV_TAG_STRUC_wmi_debug_mesg_fw_data_stall_param,
WMITLV_TAG_STRUC_wmi_wlm_config_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@ -1196,6 +1197,7 @@ typedef enum {
OP(WMI_HB_OIC_PING_OFFLOAD_SET_ENABLE_CMDID) \
OP(WMI_HB_DHCP_LEASE_RENEW_OFFLOAD_CMDID) \
OP(WMI_ROAM_BTM_CONFIG_CMDID) \
OP(WMI_WLM_CONFIG_CMDID) \
/* add new CMD_LIST elements above this line */
@ -3427,6 +3429,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HB_DHCP_LEASE_RENEW_OFFLOAD_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_btm_config_fixed_param, wmi_btm_config_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_BTM_CONFIG_CMDID);
/* vdev latency config cmd */
#define WMITLV_TABLE_WMI_WLM_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlm_config_cmd_fixed_param, wmi_wlm_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_WLM_CONFIG_CMDID);
/************************** TLV definitions of WMI events *******************************/

View File

@ -240,6 +240,7 @@ typedef enum {
WMI_GRP_MONITOR, /* 0x39 */
WMI_GRP_REGULATORY, /* 0x3a */
WMI_GRP_HW_DATA_FILTER, /* 0x3b */
WMI_GRP_WLM, /* 0x3c WLAN Latency Manager */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@ -1065,6 +1066,9 @@ typedef enum {
/** WMI commands related to HW data filtering **/
WMI_HW_DATA_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_HW_DATA_FILTER),
/** WMI commands related to WLAN latency module **/
WMI_WLM_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_WLM),
} WMI_CMD_ID;
typedef enum {
@ -19917,6 +19921,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID);
WMI_RETURN_STRING(WMI_VDEV_LIMIT_OFFCHAN_CMDID);
WMI_RETURN_STRING(WMI_ROAM_BTM_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_WLM_CONFIG_CMDID);
}
return "Invalid WMI cmd";
@ -20328,6 +20333,116 @@ typedef struct {
*/
} wmi_unit_test_event_fixed_param;
/* Definition of latency levels */
typedef enum {
WMI_WLM_LL_NORMAL = 0x0,
WMI_WLM_LL_MODERATE = 0x1,
WMI_WLM_LL_LOW = 0x2,
WMI_WLM_LL_ULTRA_LOW = 0x3,
} WMI_WLM_LATENCY_LEVEL;
/*
* Lay out of flags in wmi_wlm_config_cmd_fixed_param
*
* |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 |
* +------+------+------+------+------+------+------+-----+-----+
* | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP |
* +------+-------------+-------------+-------------------------+
* | WAL | PS | Roam | Scan |
*
*/
/* bit 0-3 of flags is used for scan operation */
/* bit 0: WLM_FLAGS_SCAN_SUPPRESS, suppress all scan and other bits would be ignored if bit is set */
#define WLM_FLAGS_SCAN_SUPPRESS 1 /* suppress all scan request */
/* bit 1: WLM_FLAGS_SCAN_SKIP_DFS, skip dfs channel if bit is set */
#define WLM_FLAGS_SCAN_SKIP_DFS 1 /* skip dfs channel operation */
/* bit 2-3: define policy of dwell time/duration of each foreign channel
(b2 b3)
(0 0 ): Default dwell time
(0 1 ): WLM_FLAGS_STICK_SCAN_DWELL_TIME : Stick to original active/passive dwell time, but split
foreign channel dwell times into fitting into min (dl_latency, ul_latency). Note it can increase
overall scan duration.
(1 0 ): WLM_FLAGS_SHRINK_SCAN_DWELL_TIME: Shrink active/passive dwell time to
min(dl_latency, ul_latency, dwell_time). It may reduce overall scan duration, but it may decrease
the accuracy of scan result.
(1 1 ): reserved
*/
#define WLM_FLAGS_DEFAULT_SCAN_DWELL_TIME 0 /* Default scan dwell time */
#define WLM_FLAGS_STICK_SCAN_DWELL_TIME 1 /* Shrink off channel time but extend overall scan duration */
#define WLM_FLAGS_SHRINK_SCAN_DWELL_TIME 2 /* Shrink scan off channel time */
/* bit 4-5: reserved for scan */
/* bit 6-7 of flags is used for roaming operation */
/* bit 6-7: define roaming policy:
(b6 b7)
(0 0 ): WLM_FLAGS_ROAM_ALLOW: Default behavior, allow roaming in all scenarios
(0 1 ): WLM_FLAGS_ROAM_SUPPRESS: Disallow all roaming
(1 0 ): WLM_FLAGS_ALLOW_FINAL_BMISS_ROAM: Allow final bmiss roaming only
(1 1 ): reserved
*/
#define WLM_FLAGS_ROAM_ALLOW 0
#define WLM_FLAGS_ROAM_SUPPRESS 1
#define WLM_FLAGS_ALLOW_FINAL_BMISS_ROAM 2
/* bit 8-9: reserved for roaming */
/* bit 10-11 of flags is used for powersave operation */
/* bit 10: WLM_FLAGS_PS_DISABLE_CSS_COLLAPSE, disable css power collapse if bit is set */
#define WLM_FLAGS_PS_DISABLE_CSS_COLLAPSE 1 /* disable css power collapse */
/* bit 11: WLM_FLAGS_PS_DISABLE_SYS_SLEEP, disable sys sleep if bit is set */
#define WLM_FLAGS_PS_DISABLE_SYS_SLEEP 1 /* disable sys sleep */
/* bit 12-31 of flags is reserved for powersave and WAL */
#define WLM_FLAGS_SCAN_IS_SUPPRESS(flag) WMI_GET_BITS(flag, 0, 1)
#define WLM_FLAGS_SCAN_SET_SUPPRESS(flag, val) WMI_SET_BITS(flag, 0, 1, val)
#define WLM_FLAGS_SCAN_IS_SKIP_DFS(flag) WMI_GET_BITS(flag, 1, 1)
#define WLM_FLAGS_SCAN_SET_SKIP_DFS(flag, val) WMI_SET_BITS(flag, 1, 1, val)
#define WLM_FLAGS_SCAN_GET_DWELL_TIME_POLICY(flag) WMI_GET_BITS(flag, 2, 2)
#define WLM_FLAGS_SCAN_SET_DWELL_TIME_POLICY(flag, val) WMI_SET_BITS(flag, 2, 2, val)
#define WLM_FLAGS_ROAM_GET_POLICY(flag) WMI_GET_BITS(flag, 6, 2)
#define WLM_FLAGS_ROAM_SET_POLICY(flag, val) WMI_SET_BITS(flag, 6, 2, val)
#define WLM_FLAGS_PS_IS_CSS_CLPS_DISABLED(flag) WMI_GET_BITS(flag, 10, 1)
#define WLM_FLAGS_PS_SET_CSS_CLPS_DISABLE(flag, val) WMI_SET_BITS(flag, 10, 1, val)
#define WLM_FLAGS_PS_IS_SYS_SLP_DISABLED(flag) WMI_GET_BITS(flag, 11, 1)
#define WLM_FLAGS_PS_SET_SYS_SLP_DISABLE(flag, val) WMI_SET_BITS(flag, 11, 1, val)
typedef struct {
/** TLV tag and len; tag equals
* WMI_WLM_CONFIG_CMD_fixed_param */
A_UINT32 tlv_header;
/* VDEV identifier */
A_UINT32 vdev_id;
/* Refer to WMI_WLM_LATENCY_LEVEL
* Once latency change detected, WLM will notify modules e.g. STAPS or SCAN/ROAM,
* who subscribed this event. And subscribers, like SCAN, may disable/cutoff offchan
* operation to support lower latency of WLAN.
*/
A_UINT32 latency_level;
/* represent uplink latency in ms
* This parameter will be used by STAPS module to decide timing parameters, like
* ITO or SPEC wakeup interval. For SCAN/ROAM, it may used to calculate offchan
* durations.
*/
A_UINT32 ul_latency;
/* represent downlink latency in ms
* Similar usage as ul_latency
*/
A_UINT32 dl_latency;
/* flags for each client of WLM, refer to WLM_FLAGS_ definitions above */
A_UINT32 flags;
} wmi_wlm_config_cmd_fixed_param;
/* ADD NEW DEFS HERE */

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