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

Change-Id: I78be8874ac31e86d3e72f25e074b063ce2e8eca2
WMI: add GRP_MOTION_DET message defs
CRs-Fixed: 1107600
This commit is contained in:
spuligil 2018-04-25 09:00:36 -07:00
commit 1ab10491bc
4 changed files with 170 additions and 2 deletions

View file

@ -253,6 +253,7 @@ typedef enum {
WMI_SERVICE_VDEV_SWRETRY_PER_AC_CONFIG_SUPPORT=157, /* Support vdev software retries configuration per AC (non aggr retry/aggr retry) */
WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_SCC_SUPPORT=158, /* Support dual beacon on same channel on single MAC */
WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_MCC_SUPPORT=159, /* Support dual beacon on different channel on single MAC */
WMI_SERVICE_MOTION_DET=160, /* support for motion detection config */
/******* ADD NEW SERVICES HERE *******/

View file

@ -916,6 +916,12 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_get_tpc_power_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_get_tpc_power_evt_fixed_param,
WMITLV_TAG_STRUC_wmi_dma_buf_release_spectral_meta_data,
WMITLV_TAG_STRUC_wmi_motion_det_config_params_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_motion_det_base_line_config_params_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_motion_det_start_stop_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_motion_det_base_line_start_stop_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_motion_det_event,
WMITLV_TAG_STRUC_wmi_motion_det_base_line_event,
} WMITLV_TAG_ID;
/*
@ -1289,6 +1295,10 @@ typedef enum {
OP(WMI_PEER_TID_CONFIGURATIONS_CMDID) \
OP(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID) \
OP(WMI_GET_TPC_POWER_CMDID) \
OP(WMI_MOTION_DET_CONFIG_PARAM_CMDID) \
OP(WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID) \
OP(WMI_MOTION_DET_START_STOP_CMDID) \
OP(WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID) \
/* add new CMD_LIST elements above this line */
@ -1496,6 +1506,8 @@ typedef enum {
OP(WMI_TWT_RESUME_DIALOG_COMPLETE_EVENTID) \
OP(WMI_ROAM_SCAN_STATS_EVENTID) \
OP(WMI_GET_TPC_POWER_EVENTID) \
OP(WMI_MOTION_DET_HOST_EVENTID) \
OP(WMI_MOTION_DET_BASE_LINE_HOST_EVENTID) \
/* add new EVT_LIST elements above this line */
@ -3649,6 +3661,23 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_BTM_CONFIG_CMDID);
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);
/* Motion detection cmd */
#define WMITLV_TABLE_WMI_MOTION_DET_CONFIG_PARAM_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_config_params_cmd_fixed_param, wmi_motion_det_config_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_CONFIG_PARAM_CMDID);
#define WMITLV_TABLE_WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_base_line_config_params_cmd_fixed_param, wmi_motion_det_base_line_config_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID);
#define WMITLV_TABLE_WMI_MOTION_DET_START_STOP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_start_stop_cmd_fixed_param, wmi_motion_det_start_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_START_STOP_CMDID);
#define WMITLV_TABLE_WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_base_line_start_stop_cmd_fixed_param, wmi_motion_det_base_line_start_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID);
/* Pdev Set AC TX Queue Optimized Cmd */
#define WMITLV_TABLE_WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -3982,7 +4011,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_FRAME_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hb_ind_event_fixed_param, hb_indevt, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, wow_gtkigtk, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_oic_ping_handoff_event, wow_oic_ping_handoff, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dhcp_lease_renew_event, wow_dhcp_lease_renew, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dhcp_lease_renew_event, wow_dhcp_lease_renew, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_motion_det_event, md_indevt, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_motion_det_base_line_event, bl_indevt, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_WOW_WAKEUP_HOST_EVENTID);
#define WMITLV_TABLE_WMI_WOW_INITIAL_WAKEUP_EVENTID(id,op,buf,len) \
@ -4996,6 +5027,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_RESUME_DIALOG_COMPLETE_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rssi, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_STATS_EVENTID);
/* Motion detection events */
#define WMITLV_TABLE_WMI_MOTION_DET_HOST_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_event, wmi_motion_det_event, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_HOST_EVENTID);
#define WMITLV_TABLE_WMI_MOTION_DET_BASE_LINE_HOST_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_base_line_event, wmi_motion_det_base_line_event, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_BASE_LINE_HOST_EVENTID);
#ifdef __cplusplus
}

View file

@ -243,6 +243,7 @@ typedef enum {
WMI_GRP_WLM, /* 0x3c WLAN Latency Manager */
WMI_GRP_11K_OFFLOAD, /* 0x3d */
WMI_GRP_TWT, /* 0x3e TWT (Target Wake Time) for STA and AP */
WMI_GRP_MOTION_DET, /* 0x3f */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@ -1132,6 +1133,12 @@ typedef enum {
WMI_TWT_DEL_DIALOG_CMDID,
WMI_TWT_PAUSE_DIALOG_CMDID,
WMI_TWT_RESUME_DIALOG_CMDID,
/** WMI commands related to motion detection **/
WMI_MOTION_DET_CONFIG_PARAM_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MOTION_DET),
WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID,
WMI_MOTION_DET_START_STOP_CMDID,
WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID,
} WMI_CMD_ID;
typedef enum {
@ -1689,6 +1696,10 @@ typedef enum {
WMI_NDP_END_INDICATION_EVENTID,
WMI_WLAN_COEX_BT_ACTIVITY_EVENTID,
WMI_NDL_SCHEDULE_UPDATE_EVENTID,
/** WMI events related to motion detection */
WMI_MOTION_DET_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MOTION_DET),
WMI_MOTION_DET_BASE_LINE_HOST_EVENTID,
} WMI_EVT_ID;
/* defines for OEM message sub-types */
@ -11837,6 +11848,8 @@ typedef enum wake_reason_e {
WOW_REASON_SAP_OBSS_DETECTION,
WOW_REASON_BSS_COLOR_COLLISION_DETECT,
WOW_REASON_TKIP_MIC_ERR_FRAME_RECVD_DETECT,
WOW_REASON_WLAN_MD, /* motion detected */
WOW_REASON_WLAN_BL, /* baselining done */
WOW_REASON_DEBUG_TEST = 0xFF,
} WOW_WAKE_REASON_TYPE;
@ -21687,6 +21700,10 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_PEER_TID_CONFIGURATIONS_CMDID);
WMI_RETURN_STRING(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID);
WMI_RETURN_STRING(WMI_GET_TPC_POWER_CMDID);
WMI_RETURN_STRING(WMI_MOTION_DET_CONFIG_PARAM_CMDID);
WMI_RETURN_STRING(WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID);
WMI_RETURN_STRING(WMI_MOTION_DET_START_STOP_CMDID);
WMI_RETURN_STRING(WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID);
}
return "Invalid WMI cmd";
@ -22755,6 +22772,117 @@ typedef struct {
A_INT32 tx_power; /* TX power for the specified HALPHY parameters in half dBm unit */
} wmi_get_tpc_power_evt_fixed_param;
/* below structures are related to Motion Detection. */
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_motion_det_config_params_cmd_fixed_param */
A_UINT32 tlv_header; /** TLV Header */
A_UINT32 vdev_id; /** Vdev ID */
A_UINT32 time_t1; /** Time gap of successive bursts of
* measurement frames during coarse
* motion detection (in ms) */
A_UINT32 time_t2; /** Time gap of successive bursts of
* measurement frames during fine
* motion detection (in ms) */
A_UINT32 n1; /** number of measurement frames in one
* burst, for coarse detection */
A_UINT32 n2; /** number of measurement frames in one
* burst, for fine detection */
A_UINT32 time_t1_gap; /** gap between measurement frames in
* course detection (in ms) */
A_UINT32 time_t2_gap; /** gap between measurement frames in
* fine detection (in ms) */
A_UINT32 coarse_K; /** number of times motion detection has to
* be performed for coarse detection */
A_UINT32 fine_K; /** number of times motion detection has to
* be performed for fine detection */
A_UINT32 coarse_Q; /** number of times motion is expected
* to be detected for success case in
* coarse detection */
A_UINT32 fine_Q; /** number of times motion is expected
* to be detected for success case in
* fine detection */
A_UINT32 md_coarse_thr_high; /** higher threshold value (in percent)
* from host to FW, which will be used in
* coarse detection phase of motion detection.
* This is the threshold for the correlation
* of the old RF local-scattering environment
* with the current RF local-scattering
* environment. A value of 100(%) indicates
* that neither the transceiver nor any
* nearby objects have changed position. */
A_UINT32 md_fine_thr_high; /** higher threshold value (in percent)
* from host to FW, which will be used in
* fine detection phase of motion detection.
* This is the threshold for correlation
* between the old and current RF environments,
* as explained above. */
A_UINT32 md_coarse_thr_low; /** lower threshold value (in percent)
* for immediate detection of motion in
* coarse detection phase.
* This is the threshold for correlation
* between the old and current RF environments,
* as explained above. */
A_UINT32 md_fine_thr_low; /** lower threshold value (in percent)
* for immediate detection of motion in
* fine detection phase.
* This is the threshold for correlation
* between the old and current RF environments,
* as explained above. */
} wmi_motion_det_config_params_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_motion_det_base_line_config_params_cmd_fixed_param */
A_UINT32 tlv_header; /** TLV Header */
A_UINT32 vdev_id; /** Vdev ID */
A_UINT32 bl_time_t; /** time T for baseline (in ms)
* Every bl_time_t, bl_n packets are sent */
A_UINT32 bl_packet_gap; /** gap between measurement frames for baseline
* (in ms) */
A_UINT32 bl_n; /** number of measurement frames to be sent
* during one baseline */
A_UINT32 bl_num_meas; /** number of times the baseline measurement
* to be done */
} wmi_motion_det_base_line_config_params_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_motion_det_start_stop_cmd_fixed_param */
A_UINT32 tlv_header; /** TLV Header */
A_UINT32 vdev_id; /** Vdev ID */
A_UINT32 enable; /** start = 1, stop =0 */
} wmi_motion_det_start_stop_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_motion_det_base_line_start_stop_cmd_fixed_param */
A_UINT32 tlv_header; /** TLV Header */
A_UINT32 vdev_id; /** Vdev ID */
A_UINT32 enable; /** start = 1, stop =0 */
} wmi_motion_det_base_line_start_stop_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_motion_det_event */
A_UINT32 tlv_header; /** TLV Header */
A_UINT32 vdev_id; /** Vdev ID */
A_UINT32 status; /** status = 1 -> motion detected */
} wmi_motion_det_event;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_motion_det_base_line_event */
A_UINT32 tlv_header; /** TLV Header */
A_UINT32 vdev_id; /** Vdev ID */
A_UINT32 bl_baseline_value; /** baseline correlation value calculated
* during baselining phase (in %) */
A_UINT32 bl_max_corr_reserved; /** max corr value obtained during baselining
* phase (in %); reserved for future */
A_UINT32 bl_min_corr_reserved; /** min corr value obtained during baselining
* phase (in %); reserved for future */
} wmi_motion_det_base_line_event;
/* 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_ 533
#define __WMI_REVISION_ 534
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work