summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-09-16 06:48:41 -0700
committerLinux Build Service Account <lnxbuild@localhost>2018-09-16 06:48:41 -0700
commit76a3a8856b7c6d26b8d61abcdb186fe528b88495 (patch)
tree04e02c4b9754f04d83be1fd6fae5c6bb6152d829
parent8bf061fe0acfb81880f6ceb39957284485921c60 (diff)
parent134733eeadff834aa482bb6747c364be6bb4f327 (diff)
Merge 134733eeadff834aa482bb6747c364be6bb4f327 on remote branch
Change-Id: I30ee2a26f04ab01fa608965f9d3d2b89484661a6
-rw-r--r--fw/htt.h57
-rw-r--r--fw/htt_stats.h4
-rwxr-xr-xfw/wmi_services.h5
-rwxr-xr-xfw/wmi_tlv_defs.h16
-rwxr-xr-xfw/wmi_unified.h112
-rwxr-xr-xfw/wmi_version.h2
6 files changed, 185 insertions, 11 deletions
diff --git a/fw/htt.h b/fw/htt.h
index 1523359afd65..7143337e3f5a 100644
--- a/fw/htt.h
+++ b/fw/htt.h
@@ -168,9 +168,11 @@
* 3.51 Add SW peer ID and TID num to HTT TX WBM COMPLETION
* 3.52 Add HTT_T2H FLOW_POOL_RESIZE msg def
* 3.53 Update HTT_T2H FLOW_POOL_RESIZE msg def
+ * 3.54 Define mcast and mcast_valid flags within htt_tx_wbm_transmit_status
+ * 3.55 Add initiator / responder flags to RX_DELBA indication
*/
#define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 53
+#define HTT_CURRENT_VERSION_MINOR 55
#define HTT_NUM_TX_FRAG_DESC 1024
@@ -2341,7 +2343,11 @@ PREPACK struct htt_tx_wbm_transmit_status {
* If this "valid" flag is not set, the
* sw_peer_id and tid_num fields must be ignored.
*/
- reserved0: 10;
+ mcast: 1,
+ mcast_valid: 1, /* If this "mcast_valid" is set, the mcast field
+ * contains valid data.
+ */
+ reserved0: 8;
A_UINT32
reserved1: 32;
} POSTPACK;
@@ -2359,6 +2365,10 @@ PREPACK struct htt_tx_wbm_transmit_status {
#define HTT_TX_WBM_COMPLETION_V2_TID_NUM_S 16
#define HTT_TX_WBM_COMPLETION_V2_VALID_M 0x00200000
#define HTT_TX_WBM_COMPLETION_V2_VALID_S 21
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_M 0x00400000
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_S 22
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_M 0x00800000
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S 23
/* DWORD 4 */
#define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_GET(_var) \
@@ -2412,6 +2422,26 @@ PREPACK struct htt_tx_wbm_transmit_status {
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_VALID_S)); \
} while (0)
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_GET(_var) \
+ (((_var) & HTT_TX_WBM_COMPLETION_V2_MCAST_M) >> \
+ HTT_TX_WBM_COMPLETION_V2_MCAST_S)
+
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_SET(_var, _val) \
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_MCAST, _val); \
+ ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_MCAST_S)); \
+ } while (0)
+
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_GET(_var) \
+ (((_var) & HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_M) >> \
+ HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S)
+
+#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_SET(_var, _val) \
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_MCAST_VALID, _val); \
+ ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S)); \
+ } while (0)
+
/**
* @brief HTT TX WBM reinject status from firmware to host
* @details
@@ -7780,9 +7810,9 @@ PREPACK struct htt_chan_info_t
* The following diagram shows the format of the rx DELBA message sent
* from the target to the host:
*
- * |31 20|19 16|15 8|7 0|
+ * |31 20|19 16|15 10|9 8|7 0|
* |---------------------------------------------------------------------|
- * | peer ID | TID | reserved | msg type |
+ * | peer ID | TID | reserved | IR| msg type |
* |---------------------------------------------------------------------|
*
* The following field definitions describe the format of the rx ADDBA
@@ -7791,6 +7821,15 @@ PREPACK struct htt_chan_info_t
* Bits 7:0
* Purpose: identifies this as an rx ADDBA or DELBA message
* Value: ADDBA -> 0x5, DELBA -> 0x6
+ * - IR (initiator / recipient)
+ * Bits 9:8 (DELBA only)
+ * Purpose: specify whether the DELBA handshake was initiated by the
+ * local STA/AP, or by the peer STA/AP
+ * Value:
+ * 0 - unspecified
+ * 1 - initiator (a.k.a. originator)
+ * 2 - recipient (a.k.a. responder)
+ * 3 - unused / reserved
* - WIN_SIZE
* Bits 15:8 (ADDBA only)
* Purpose: Specifies the length of the block ack window (max = 64).
@@ -7843,6 +7882,8 @@ PREPACK struct htt_chan_info_t
#define HTT_RX_ADDBA_BYTES 4
+#define HTT_RX_DELBA_INITIATOR_M 0x00000300
+#define HTT_RX_DELBA_INITIATOR_S 8
#define HTT_RX_DELBA_TID_M HTT_RX_ADDBA_TID_M
#define HTT_RX_DELBA_TID_S HTT_RX_ADDBA_TID_S
#define HTT_RX_DELBA_PEER_ID_M HTT_RX_ADDBA_PEER_ID_M
@@ -7853,6 +7894,14 @@ PREPACK struct htt_chan_info_t
#define HTT_RX_DELBA_PEER_ID_SET HTT_RX_ADDBA_PEER_ID_SET
#define HTT_RX_DELBA_PEER_ID_GET HTT_RX_ADDBA_PEER_ID_GET
+#define HTT_RX_DELBA_INITIATOR_SET(word, value) \
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value); \
+ (word) |= (value) << HTT_RX_DELBA_INITIATOR_S; \
+ } while (0)
+#define HTT_RX_DELBA_INITIATOR_GET(word) \
+ (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S)
+
#define HTT_RX_DELBA_BYTES 4
/**
diff --git a/fw/htt_stats.h b/fw/htt_stats.h
index 447d0f0b36ef..1da4a55e849b 100644
--- a/fw/htt_stats.h
+++ b/fw/htt_stats.h
@@ -613,8 +613,8 @@ typedef struct {
*/
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */
A_UINT32 hist_bin_size;
+ A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */
} htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v;
/* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_TX
@@ -1384,9 +1384,9 @@ typedef struct {
* */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
+ A_UINT32 hist_bin_size;
/* Histogram of number of mpdus on tried mpdu */
A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_HWQ_TRIED_MPDU_CNT_HIST */
- A_UINT32 hist_bin_size;
} htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v;
#define HTT_TX_HWQ_TXOP_USED_CNT_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
diff --git a/fw/wmi_services.h b/fw/wmi_services.h
index cd02da96c3e9..49e8623ad25d 100755
--- a/fw/wmi_services.h
+++ b/fw/wmi_services.h
@@ -257,7 +257,10 @@ typedef enum {
WMI_SERVICE_INFRA_MBSSID=161, /* support infra multi-BSSID feature */
WMI_SERVICE_OBSS_SPATIAL_REUSE=162, /* support spatial reuse feature */
WMI_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT=163, /* Support different beacon intervals on different VDEVs */
-
+ WMI_SERVICE_NAN_DBS_SUPPORT=164, /* Support DBS for NAN discovery interface */
+ WMI_SERVICE_NDI_DBS_SUPPORT=165, /* Support DBS for NAN data interface */
+ WMI_SERVICE_NAN_SAP_SUPPORT=166, /* Support SAP Concurrency for NAN Discovery interface */
+ WMI_SERVICE_NDI_SAP_SUPPORT=167, /* Support SAP Concurrency for NAN Data interface */
/******* ADD NEW SERVICES HERE *******/
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index dfe45b4ef8b2..44ac30532a07 100755
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -924,6 +924,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_motion_det_base_line_event,
WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param,
WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_nan_host_config_param,
+ WMITLV_TAG_STRUC_wmi_spectral_bin_scaling_params,
} WMITLV_TAG_ID;
/*
@@ -1511,6 +1514,7 @@ typedef enum {
OP(WMI_GET_TPC_POWER_EVENTID) \
OP(WMI_MOTION_DET_HOST_EVENTID) \
OP(WMI_MOTION_DET_BASE_LINE_HOST_EVENTID) \
+ OP(WMI_ESP_ESTIMATE_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -2932,7 +2936,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID);
/* NaN Request */
#define WMITLV_TABLE_WMI_NAN_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_cmd_param, wmi_nan_cmd_param, fixed_param, WMITLV_SIZE_FIX) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_host_config_param, host_config, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID);
/* NAN Data Get Capabilities Cmd */
@@ -3782,7 +3787,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_AVAILABLE_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_CAPABILITY, mac_phy_chainmask_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_OEM_DMA_RING_CAPABILITIES, oem_dma_ring_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SAR_CAPABILITIES, WMI_SAR_CAPABILITIES, sar_caps, WMITLV_SIZE_FIX) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_DMA_RING_CAPABILITIES, dma_ring_caps, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_DMA_RING_CAPABILITIES, dma_ring_caps, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_spectral_bin_scaling_params, wmi_bin_scaling_params, WMITLV_SIZE_VAR)
+
WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID);
/* Ready event */
@@ -5052,6 +5059,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_HOST_EVENTID);
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);
+#define WMITLV_TABLE_WMI_ESP_ESTIMATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param, wmi_esp_estimate_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_ESP_ESTIMATE_EVENTID);
+
+
#ifdef __cplusplus
}
#endif
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index 7ff381b07919..17027f23574d 100755
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -150,7 +150,7 @@ static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index,
}
/** 2 word representation of MAC addr */
-typedef struct {
+typedef struct _wmi_mac_addr {
/** upper 4 bytes of MAC address */
A_UINT32 mac_addr31to0;
/** lower 2 bytes of MAC address */
@@ -178,6 +178,16 @@ typedef struct {
} while (0)
/*
+ * The below function declarations are for implementations on some
+ * platforms of the above macros, but in function form, to save code
+ * memory by avoiding macro-inlining of a non-trivial amount of code.
+ * These function versions of the above macros may not be available
+ * on all host and target platforms.
+ */
+void wmi_mac_addr_to_char_array(wmi_mac_addr *pwmi_mac_addr, A_UINT8 *c_macaddr);
+void wmi_char_array_to_mac_addr(A_UINT8 *c_macaddr, wmi_mac_addr *pwmi_mac_addr);
+
+/*
* wmi command groups.
*/
typedef enum {
@@ -245,6 +255,7 @@ typedef enum {
WMI_GRP_TWT, /* 0x3e TWT (Target Wake Time) for STA and AP */
WMI_GRP_MOTION_DET, /* 0x3f */
WMI_GRP_SPATIAL_REUSE, /* 0x40 */
+ WMI_GRP_ESP, /* 0x41 Estimate Service Parameters (802.11mc) */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -1704,6 +1715,9 @@ typedef enum {
/** 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 events related to Estimation of Service Parameters (802.11mc) */
+ WMI_ESP_ESTIMATE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_ESP),
} WMI_EVT_ID;
/* defines for OEM message sub-types */
@@ -2769,6 +2783,20 @@ typedef struct {
#define WMI_RSRC_CFG_FLAG_EAPOL_REKEY_MINRATE_SUPPORT_ENABLE_S 14
#define WMI_RSRC_CFG_FLAG_EAPOL_REKEY_MINRATE_SUPPORT_ENABLE_M 0x4000
+ #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_S 15
+ #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_M 0x8000
+
+ /*
+ * If the AC override valid bit is set then this field will specify the
+ * access category to use for EAPOL frames
+ * 0 - WMM_AC_BE
+ * 1 - WMM_AC_BK
+ * 2 - WMM_AC_VI
+ * 3 - WMM_AC_VO
+ */
+ #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_S 16
+ #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_M 0x30000
+
A_UINT32 flag1;
/** @brief smart_ant_cap - Smart Antenna capabilities information
@@ -2977,6 +3005,16 @@ typedef struct {
#define WMI_RSRC_CFG_FLAG_EAPOL_REKEY_MINRATE_SUPPORT_ENABLE_GET(word32) \
WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_REKEY_MINRATE_SUPPORT_ENABLE)
+#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_SET(word32, value) \
+ WMI_RSRC_CFG_FLAG_SET((word32), EAPOL_AC_OVERRIDE_VALID, (value))
+#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_GET(word32) \
+ WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_AC_OVERRIDE_VALID)
+
+#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_SET(word32, value) \
+ WMI_RSRC_CFG_FLAG_SET((word32), EAPOL_AC_OVERRIDE, (value))
+#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_GET(word32) \
+ WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_AC_OVERRIDE)
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
@@ -5104,6 +5142,15 @@ typedef enum {
* >21: invalid value (ignored)
*/
WMI_PDEV_PARAM_MWSCOEX_SET_5GNR_PWR_LIMIT, /* 0xA5 */
+ /** Set max msdus available for cong ctrl in target */
+ WMI_PDEV_PARAM_SET_CONG_CTRL_MAX_MSDUS, /* 0xA6 */
+ /*
+ * Configures the Estimated Throughput Calculation indication (802.11mc) settings.
+ * The accompanying A_UINT32 parameter, in units of seconds, specifies how often FW needs to send the ESP estimation indication to the host.
+ * Value 0: Disable this feature
+ * Non zero Value: Periodicity (seconds)
+ */
+ WMI_PDEV_PARAM_ESP_INDICATION_PERIOD, /* 0xA7 */
} WMI_PDEV_PARAM;
typedef struct {
@@ -5181,6 +5228,35 @@ typedef struct {
*/
} wmi_pdev_update_ctltable_request_fixed_param;
+#define WMI_ESP_ESTIMATE_GET_BE(airtime) WMI_GET_BITS(airtime, 0, 8)
+#define WMI_ESP_ESTIMATE_SET_BE(airtime, value) WMI_SET_BITS(airtime, 0, 8, value)
+
+#define WMI_ESP_ESTIMATE_GET_BK(airtime) WMI_GET_BITS(airtime, 8, 8)
+#define WMI_ESP_ESTIMATE_SET_BK(airtime, value) WMI_SET_BITS(airtime, 8, 8, value)
+
+#define WMI_ESP_ESTIMATE_GET_VI(airtime) WMI_GET_BITS(airtime, 16, 8)
+#define WMI_ESP_ESTIMATE_SET_VI(airtime, value) WMI_SET_BITS(airtime, 16, 8, value)
+
+#define WMI_ESP_ESTIMATE_GET_VO(airtime) WMI_GET_BITS(airtime, 24, 8)
+#define WMI_ESP_ESTIMATE_SET_VO(airtime, value) WMI_SET_BITS(airtime, 24, 8, value)
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param */
+ /** pdev_id for identifying the MAC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ * In non-DBDC case host should set it to 0
+ */
+ A_UINT32 pdev_id;
+ /*
+ * Percentage of air time available for each AC
+ * BIT[0-7] : AC_BE
+ * BIT[8-15] : AC_BK
+ * BIT[16-23] : AC_VI
+ * BIT[24-31] : AC_VO
+ */
+ A_UINT32 ac_airtime_percentage;
+} wmi_esp_estimate_event_fixed_param;
+
#define WMI_FAST_DIVERSITY_BIT_OFFSET 0
#define WMI_SLOW_DIVERSITY_BIT_OFFSET 1
@@ -9028,6 +9104,8 @@ typedef struct {
A_UINT32 csa_event_bitmap;
/** offset (in octets/bytes) of MBSSID IE in beacon frame */
A_UINT32 mbssid_ie_offset;
+ /** offset (in octets/bytes) of ESP IE in beacon frame */
+ A_UINT32 esp_ie_offset;
/*
* The TLVs follows:
@@ -11274,6 +11352,8 @@ typedef struct {
A_UINT32 wmm_caps;
A_UINT32 mcsset[ROAM_OFFLOAD_NUM_MCS_SET>>2]; /* since this 4 byte aligned, we don't declare it as tlv array */
A_UINT32 handoff_delay_for_rx; /* In msec. Delay Hand-Off by this duration to receive pending Rx frames from current BSS */
+ A_UINT32 max_mlme_sw_retries; /* maximum number of software retries for preauth and reassoc req */
+ A_UINT32 no_ack_timeout; /* In msec. duration to wait before another SW retry made if no ack seen for previous frame */
} wmi_roam_offload_tlv_param;
@@ -15857,6 +15937,12 @@ typedef struct {
} wmi_nan_cmd_param;
typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_host_config_param */
+ A_UINT32 nan_2g_disc_disable:1; /** This bit when set to 1 indicate NAN 2G discovery should be disabled */
+ A_UINT32 nan_5g_disc_disable:1; /** This bit when set to 1 indicate NAN 5G discovery should be disabled */
+} wmi_nan_host_config_param;
+
+typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_event_hdr */
A_UINT32 data_len; /** length in byte of data[]. */
/* This structure is used to send REQ binary blobs
@@ -21992,6 +22078,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
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);
+ WMI_RETURN_STRING(WMI_SAR_LIMITS_CMDID);
+ WMI_RETURN_STRING(WMI_SAR_GET_LIMITS_CMDID);
}
return "Invalid WMI cmd";
@@ -22911,6 +22999,28 @@ typedef struct {
A_INT32 noise_floor[WMI_MAX_CHAINS];
} wmi_dma_buf_release_spectral_meta_data;
+typedef enum {
+ NO_SCALING = 0, /* No bin scaling*/
+ /**
+ * scaled_bin_mag = bin_mag *
+ * sqrt(10^(max(legacy_max_gain - default_agc_max_gain + low_level_offset - RSSI_corr,
+ * (agc_total_gain_db < default_agc_max_gain) * high_level_offset)/10)) *
+ * 2^(DET{0,1,2}_SPECTRAL_SCAN_BIN_SCALE - legacy_spectral_scan_bin_scale)
+ */
+ AGC_GAIN_RSSI_CORR_BASED = 1,
+} WMI_SPECTRAL_SCALING_FORMULA_ID;
+
+typedef struct
+{
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_spectral_bin_scaling_params */
+ A_UINT32 pdev_id; /* ID of pdev to which the scaling parameters are to be applied */
+ WMI_SPECTRAL_SCALING_FORMULA_ID formula_id; /* Represets the formula to be used */
+ A_UINT32 low_level_offset; /* low level offset for fine tuning the scaling factor based on RSSI and AGC gain */
+ A_UINT32 high_level_offset; /* high level offset for fine tuning the scaling factor based on RSSI and AGC gain */
+ A_UINT32 rssi_thr; /* RSSI threshold to be used to adjust the inband power of the given spectral report */
+ A_UINT32 default_agc_max_gain;/* DEFAULT AGC MAX GAIN used. Fetched from register RXTD_RADAR_SBS_CTRL_1_L bits20:13 */
+} wmi_spectral_bin_scaling_params;
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_runtime_dpd_recal_cmd_fixed_param */
A_UINT32 enable; /* Enable/disable */
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index 1336842ac4db..5ca527a3e227 100755
--- a/fw/wmi_version.h
+++ b/fw/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_ 558
+#define __WMI_REVISION_ 564
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work