summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfw/wmi_services.h7
-rwxr-xr-xfw/wmi_tlv_defs.h44
-rwxr-xr-xfw/wmi_unified.h328
-rwxr-xr-xfw/wmi_version.h4
4 files changed, 377 insertions, 6 deletions
diff --git a/fw/wmi_services.h b/fw/wmi_services.h
index 09abe29ad6b1..53b6c571278e 100755
--- a/fw/wmi_services.h
+++ b/fw/wmi_services.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -369,6 +369,11 @@ typedef enum {
WMI_SERVICE_BSS_COLOR_SWITCH_COUNT = 184, /* Firmware supports bss-color switch count handling */
WMI_SERVICE_HTT_PEER_STATS_SUPPORT = 185, /* Supports the feature where FW sends peer stats autonomously to Host via the HTT_T2H PEER_STATS_IND message */
WMI_SERVICE_UL_RU26_ALLOWED = 186, /* indicates support for RU26 in UL OFDMA */
+ WMI_SERVICE_GET_MWS_COEX_STATE = 187, /* FW provides MWS Coex info */
+ WMI_SERVICE_GET_MWS_DPWB_STATE = 188, /* FW provides LTE-Coex Dynamic Power Back-off info */
+ WMI_SERVICE_GET_MWS_TDM_STATE = 189, /* FW provides LTE-Coex TDM info */
+ WMI_SERVICE_GET_MWS_IDRX_STATE = 190, /* FW provides LTE-Coex IDRx info */
+ WMI_SERVICE_GET_MWS_ANTENNA_SHARING_STATE = 191, /* FW provides LTE-Coex Antenna sharing info */
/******* ADD NEW SERVICES HERE *******/
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index 74f05b838e7d..dc48cd2b6eb7 100755
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2010-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -956,6 +956,12 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_roam_bss_load_config_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_blacklist_event_fixed_param,
WMITLV_TAG_STRUC_wmi_csc_vdev_list,
+ WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_info_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_state_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_dpwb_state_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_tdm_state_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_idrx_state_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_antenna_sharing_state_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1347,6 +1353,7 @@ typedef enum {
OP(WMI_PEER_TX_PN_REQUEST_CMDID) \
OP(WMI_PEER_UNMAP_RESPONSE_CMDID) \
OP(WMI_ROAM_BSS_LOAD_CONFIG_CMDID) \
+ OP(WMI_VDEV_GET_MWS_COEX_INFO_CMDID) \
/* add new CMD_LIST elements above this line */
@@ -1563,6 +1570,11 @@ typedef enum {
OP(WMI_PEER_TX_PN_RESPONSE_EVENTID) \
OP(WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID) \
OP(WMI_ROAM_BLACKLIST_EVENTID) \
+ OP(WMI_VDEV_GET_MWS_COEX_STATE_EVENTID) \
+ OP(WMI_VDEV_GET_MWS_COEX_DPWB_STATE_EVENTID) \
+ OP(WMI_VDEV_GET_MWS_COEX_TDM_STATE_EVENTID) \
+ OP(WMI_VDEV_GET_MWS_COEX_IDRX_STATE_EVENTID) \
+ OP(WMI_VDEV_GET_MWS_COEX_ANTENNA_SHARING_STATE_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -3645,6 +3657,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MNT_FILTER_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_chip_power_stats_cmd_fixed_param, wmi_pdev_get_chip_power_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_CHIP_POWER_STATS_CMDID);
+/* WLAN GET mws conflict */
+#define WMITLV_TABLE_WMI_VDEV_GET_MWS_COEX_INFO_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_info_cmd_fixed_param, wmi_vdev_get_mws_coex_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_MWS_COEX_INFO_CMDID);
+
/* WLAN GET beacon reception Stats*/
#define WMITLV_TABLE_WMI_VDEV_GET_BCN_RECEPTION_STATS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_bcn_recv_stats_fixed_param, wmi_vdev_get_bcn_recv_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -4904,6 +4921,31 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHIP_POWER_STATS_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_bcn_recv_stats_event_fixed_param, wmi_vdev_bcn_recv_stats_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_BCN_RECEPTION_STATS_EVENTID);
+/* WLAN GET mws coex state */
+#define WMITLV_TABLE_WMI_VDEV_GET_MWS_COEX_STATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_state_fixed_param, wmi_vdev_get_mws_coex_state_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_MWS_COEX_STATE_EVENTID);
+
+/* WLAN GET Dynamic power back-off state */
+#define WMITLV_TABLE_WMI_VDEV_GET_MWS_COEX_DPWB_STATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_dpwb_state_fixed_param, wmi_vdev_get_mws_coex_dpwb_state_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_MWS_COEX_DPWB_STATE_EVENTID);
+
+/* WLAN GET TDM state */
+#define WMITLV_TABLE_WMI_VDEV_GET_MWS_COEX_TDM_STATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_tdm_state_fixed_param, wmi_vdev_get_mws_coex_tdm_state_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_MWS_COEX_TDM_STATE_EVENTID);
+
+/* WLAN GET Idrx state */
+#define WMITLV_TABLE_WMI_VDEV_GET_MWS_COEX_IDRX_STATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_idrx_state_fixed_param, wmi_vdev_get_mws_coex_idrx_state_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_MWS_COEX_IDRX_STATE_EVENTID);
+
+/* WLAN GET antenna sharing state */
+#define WMITLV_TABLE_WMI_VDEV_GET_MWS_COEX_ANTENNA_SHARING_STATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_antenna_sharing_state_fixed_param, wmi_vdev_get_mws_coex_antenna_sharing_state_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_MWS_COEX_ANTENNA_SHARING_STATE_EVENTID);
+
#define WMITLV_TABLE_WMI_PDEV_ANI_OFDM_LEVEL_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param, wmi_ani_ofdm_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ANI_OFDM_LEVEL_EVENTID);
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index 9ae1aa919c1a..bc7bcb74727a 100755
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2010-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -474,6 +474,8 @@ typedef enum {
WMI_VDEV_CHAINMASK_CONFIG_CMDID,
WMI_VDEV_GET_BCN_RECEPTION_STATS_CMDID,
+ /* request LTE-Coex info */
+ WMI_VDEV_GET_MWS_COEX_INFO_CMDID,
/* peer specific commands */
@@ -1321,6 +1323,22 @@ typedef enum {
WMI_VDEV_BCN_RECEPTION_STATS_EVENTID,
+ /* provide LTE-Coex state */
+ WMI_VDEV_GET_MWS_COEX_STATE_EVENTID,
+
+ /* provide LTE-Coex Dynamic Power Back-off info */
+ WMI_VDEV_GET_MWS_COEX_DPWB_STATE_EVENTID,
+
+ /* provide LTE-Coex TDM info */
+ WMI_VDEV_GET_MWS_COEX_TDM_STATE_EVENTID,
+
+ /* provide LTE-Coex IDRx info */
+ WMI_VDEV_GET_MWS_COEX_IDRX_STATE_EVENTID,
+
+ /* provide LTE-Coex antenna sharing info */
+ WMI_VDEV_GET_MWS_COEX_ANTENNA_SHARING_STATE_EVENTID,
+
+
/* peer specific events */
/** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */
WMI_PEER_STA_KICKOUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PEER),
@@ -21328,6 +21346,25 @@ typedef struct {
A_UINT32 vdev_id;
} wmi_vdev_get_bcn_recv_stats_cmd_fixed_param;
+/*
+ * wmi mws-coex command IDs
+ */
+typedef enum {
+ WMI_MWS_COEX_STATE = 0x01,
+ WMI_MWS_COEX_DPWB_STATE,
+ WMI_MWS_COEX_TDM_STATE,
+ WMI_MWS_COEX_IDRX_STATE,
+ WMI_MWS_COEX_ANTENNA_SHARING_STATE,
+} wmi_mws_coex_cmd_id;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_state_cmd_fixed_param */
+ /** VDEV identifier */
+ A_UINT32 vdev_id;
+ /** Command ID (type: wmi_mws_coex_cmd_id) */
+ A_UINT32 cmd_id;
+} wmi_vdev_get_mws_coex_info_cmd_fixed_param;
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param */
/** pdev_id for identifying the MAC
@@ -21445,6 +21482,292 @@ typedef struct {
A_UINT32 bmiss_bitmap[8];
} wmi_vdev_bcn_recv_stats_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_state_fixed_param */
+ A_UINT32 vdev_id;
+
+ /* LTE-WLAN coexistence scheme bitmap
+ * Indicates the final schemes applied for the currrent Coex scenario.
+ * Bit 0 - TDM policy
+ * Bit 1 - Forced TDM policy
+ * Bit 2 - Dynamic Power Back-off policy
+ * Bit 3 - Channel Avoidance policy
+ * Bit 4 - Static Power Back-off policy
+ */
+ A_UINT32 coex_scheme_bitmap;
+
+ /* Active conflict count
+ * Indicates the number of Active conflicts for the current WLAN and LTE frequency combinations.
+ */
+ A_UINT32 active_conflict_count;
+
+ /* Potential conflict count
+ * Indicates the number of Potential conflicts for the current WLAN and LTE frequency combinations.
+ */
+ A_UINT32 potential_conflict_count;
+
+ /* Bitmap of the group-0 WLAN channels to be avoided during LTE-WLAN coex operation.
+ * Indicates the WLAN channels to be avoided in b/w WLAN CH-1 and WLAN CH-14.
+ */
+ A_UINT32 chavd_group0_bitmap;
+
+ /* Bitmap of the group-1 WLAN channels to be avoided during LTE-WLAN coex operation.
+ * Indicates the WLAN channels to be avoided in b/w WLAN CH-36 and WLAN CH-64.
+ */
+ A_UINT32 chavd_group1_bitmap;
+
+ /* Bitmap of the group-2 WLAN channels to be avoided during LTE-WLAN coex operation.
+ * Indicates the WLAN channels to be avoided in b/w WLAN CH-100 and WLAN CH-140.
+ */
+ A_UINT32 chavd_group2_bitmap;
+
+ /* Bitmap of the group-3 WLAN channels to be avoided during LTE-WLAN coex operation.
+ * Indicates the WLAN channels to be avoided in b/w WLAN CH-149 and WLAN CH-165.
+ */
+ A_UINT32 chavd_group3_bitmap;
+} wmi_vdev_get_mws_coex_state_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_dpwb_state_fixed_param */
+ A_UINT32 vdev_id;
+
+ /* Current state of the Dynamic Power Back-off state machine
+ * MWSCOEX_PWB_UNINIT_STATE = 0, PWB state machine is in un-intialized state.
+ * MWSCOEX_PWB_WLAN_ON_SINR_START_STATE = 1, SINR measurement starts when WLAN is on
+ * MWSCOEX_PWB_WLAN_ON_WAIT_RESP_STATE = 2, Waiting for SINR response when WLAN is on
+ * MWSCOEX_PWB_WLAN_OFF_AWAIT_STATE = 3, WLAN off state for buffer between SINR on/off measurement.
+ * MWSCOEX_PWB_WLAN_OFF_SINR_START_STATE = 4, SINR measurement starts when WLAN is off
+ * MWSCOEX_PWB_WLAN_OFF_WAIT_RESP_STATE = 5, Waiting for SINR response when WLAN is off
+ * MWSCOEX_PWB_WLAN_OFF_SINR_STOP_STATE = 6, SINR measurement stops when WLAN is off
+ * MWSCOEX_PWB_FORCED_TDM_STATE = 7, Entered Forced TDM state.
+ * MWSCOEX_PWB_HALTED_STATE = 8, Power back-off algorithm halted.
+ * MWSCOEX_PWB_WLAN_ALWAYS_ON_SINR_START_STATE = 9, SINR measurement starts in WLAN always on state.
+ * MWSCOEX_PWB_WLAN_ALWAYS_ON_SINR_STOP_STATE = 10, SINR measurement stops in WLAN always on state.
+ */
+ A_UINT32 current_dpwb_state;
+
+ /* P(N+1) value in dBm i.e. Tx power to be applied in the next Dynamic Power Back-off cycle,
+ * where P(N) is the power applied during current cycle.
+ * ranges from 3dBm to 21 dBM
+ */
+ A_INT32 pnp1_value;
+
+ /* Indicates the duty cycle of current LTE frame.
+ * Duty cycle: Number of UL slots with uplink data and allocated RBs.
+ */
+ A_UINT32 lte_dutycycle;
+
+ /* LTE SINR value in dB, when WLAN is ON. */
+ A_INT32 sinr_wlan_on;
+
+ /* LTE SINR value in dB, when WLAN is OFF. */
+ A_INT32 sinr_wlan_off;
+
+ /* LTE blocks with error for the current bler report.
+ * Number of LTE blocks with error for a given number (block_count) of LTE blocks.
+ */
+ A_UINT32 bler_count;
+
+ /* Number of LTE blocks considered for bler count report.
+ * Bler repot will be generated after the reception of every "block_count" number of blocks.
+ */
+ A_UINT32 block_count;
+
+ /* WLAN RSSI level
+ * WLAN RSSI is devided in to 3 levels i.e. Good/Moderate/Low (configurable inside f/w)
+ * 0-Good, 1-Moderate, 2-Low
+ */
+ A_UINT32 wlan_rssi_level;
+
+ /* WLAN RSSI value in dBm considered in Dynamic Power back-off algorithm
+ * Dynamic power back-off algorithm considers either Rx data frame RSSI/Beacon RSSI based on some constraints.
+ */
+ A_INT32 wlan_rssi;
+
+ /* Indicates whether any TDM policy triggered from Dynamic power back-off policy.
+ * 1 - TDM triggered.
+ * 0 - TDM not triggered.
+ */
+ A_UINT32 is_tdm_running;
+} wmi_vdev_get_mws_coex_dpwb_state_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_tdm_state_fixed_param */
+ A_UINT32 vdev_id;
+ /* Time Division Multiplexing (TDM) LTE-Coex Policy type.
+ * There are totally 4 types of TDM policies(1-SINR TDM, 2-RSSI TDM, 3-LOW RX RATE TDM, 4-STICKY TDM)
+ * Bit 0 - SINR TDM policy.
+ * Bit 1 - RSSI TDM policy.
+ * Bit 2 - Low Rx rate TDM policy
+ * Bit 3 - Sticky TDM policy
+ */
+ A_UINT32 tdm_policy_bitmap;
+
+ /* TDM LTE/WLAN sub-frame bitmap
+ * Indicates the bitmap of LTE/WLAN sub-frames.
+ * value 0: WLAN slot.
+ * value 1: LTE slot.
+ */
+ A_UINT32 tdm_sf_bitmap;
+} wmi_vdev_get_mws_coex_tdm_state_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_idrx_state_fixed_param */
+ A_UINT32 vdev_id;
+
+ /* SUB0 LTE-coex tech.
+ *------------------------
+ * TECH TECH_ID
+ *------------------------
+ * LTE 0
+ * TDSCDMA 1
+ * GSM1 2
+ * ONEX 3
+ * HDR 4
+ * WCDMA 5
+ * GSM2 6
+ * GSM3 7
+ * WCDMA2 8
+ * LTE2 9
+ * Indicates the type of WWAN technology used as SUB0 i.e. SIM slot 1
+ */
+ A_UINT32 sub0_techid;
+
+ /* SUB0 mitigation policy.
+ * Indicates the mitigation policy used to coexist with WLAN.
+ * 1 - Tx blanking
+ * 2 - Static power back-off
+ */
+ A_UINT32 sub0_policy;
+
+ /* Set if SUB0 is in link critical state.
+ * Link critical will be set, if continuous page miss happens or RSSI is below -100 dBm at LTE side.
+ */
+ A_UINT32 sub0_is_link_critical;
+
+ /* LTE SUB0 imposed static power applied to WLAN due to LTE-WLAN coex.
+ * Value of static power applied during LTE page cycle ranges from 3-21 dBm.
+ */
+ A_INT32 sub0_static_power;
+
+ /* LTE SUB0 RSSI value in dBm */
+ A_INT32 sub0_rssi;
+
+ /* SUB1 LTE-coex tech.
+ *------------------------
+ * TECH TECH_ID
+ *------------------------
+ * LTE 0
+ * TDSCDMA 1
+ * GSM1 2
+ * ONEX 3
+ * HDR 4
+ * WCDMA 5
+ * GSM2 6
+ * GSM3 7
+ * WCDMA2 8
+ * LTE2 9
+ * Indicates the type of WWAN technology used as SUB1 i.e. SIM slot 2
+ */
+ A_UINT32 sub1_techid;
+
+ /* SUB1 mitigation policy.
+ * Indicates the mitigation policy used to coexist with WLAN.
+ * 1 - Tx blanking
+ * 2 - Static power back-off
+ */
+ A_UINT32 sub1_policy;
+
+ /* Set if SUB1 is in link critical state.
+ * Link critical will be set, if continuous page miss happens or RSSI is below -100 dBm at LTE side.
+ */
+ A_UINT32 sub1_is_link_critical;
+
+ /* LTE SUB1 imposed static power applied to WLAN due to LTE-WLAN coex.
+ * Value of static power applied during LTE page cycle ranges from 3-21 dBm.
+ */
+ A_INT32 sub1_static_power;
+
+ /* LTE SUB1 RSSI value in dBm */
+ A_INT32 sub1_rssi;
+} wmi_vdev_get_mws_coex_idrx_state_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_mws_coex_antenna_sharing_state_fixed_param */
+ A_UINT32 vdev_id;
+
+ /* BDF values of Coex flags.
+ * coexflag 0x1 = MWS Coex enabled
+ * coexflag 0x3 = MWS Coex enabled + Antenna sharing enabled for WLAN operating in 2.4GHz band.
+ */
+ A_UINT32 coex_flags;
+
+ /* BDF values of Coex Antenna sharing config
+ * coex_config 0x0 = no Antenna sharing
+ * coexconfig 0x1 = switched based Antenna sharing
+ * coexconfig 0x2 = splitter based Antenna sharing
+ */
+ A_UINT32 coex_config;
+
+ /* Tx Chain mask value
+ * Bit 0: Tx chain-0
+ * Bit 1: Tx Chain-1
+ * value: 0x1 - Operating in 1X1
+ * value: 0x3 - Operating in 2X2
+ */
+ A_UINT32 tx_chain_mask;
+
+ /* Rx Chain mask value
+ * Bit 0: Rx chain-0
+ * Bit 1: Rx Chain-1
+ * value: 0x1 - Operating in 1X1
+ * value: 0x3 - Operating in 2X2
+ */
+ A_UINT32 rx_chain_mask;
+
+ /* Currently active Rx Spatial streams
+ * Bit 0: Rx Spatial Stream-0
+ * Bit 1: Rx Spatial Stream-1
+ */
+ A_UINT32 rx_nss;
+
+ /* Forced MRC policy type
+ * BTC_FORCED (0x01)
+ * RSSI_FORCED (0x02)
+ * MODEM_ACQ_FORCED (0x04)
+ */
+ A_UINT32 force_mrc;
+
+ /* RSSI value considered for MRC
+ * 1: Data RSSI
+ * 2: Beacon RSSI
+ */
+ A_UINT32 rssi_type;
+
+ /* RSSI value measured at Chain-0 in dBm */
+ A_INT32 chain0_rssi;
+
+ /* RSSI value measured at Chain-1 in dBm */
+ A_INT32 chain1_rssi;
+
+ /* RSSI value of two chains combined in dBm */
+ A_INT32 combined_rssi;
+
+ /* Absolute imbalance between two Rx chains in dB */
+ A_UINT32 imbalance;
+
+ /* RSSI threshold defined for the above imbalance value in dBm.
+ * Based on the degree of imbalance between the rx chains, different
+ * RSSI thresholds are used to determine whether MRC (Maximum-Ratio
+ * Combining) use of multiple rx chains is suitable.
+ * This field shows the RSSI threshold below which MRC is used.
+ */
+ A_INT32 mrc_threshold;
+
+ /* Antenna grant duration to WLAN, in milliseconds */
+ A_UINT32 grant_duration;
+} wmi_vdev_get_mws_coex_antenna_sharing_state_fixed_param;
+
typedef enum wmi_chip_power_save_failure_reason_code_type {
WMI_PROTOCOL_POWER_SAVE_FAILURE_REASON,
WMI_HW_POWER_SAVE_FAILURE_REASON,
@@ -22910,6 +23233,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_VDEV_GET_BCN_RECEPTION_STATS_CMDID);
WMI_RETURN_STRING(WMI_PEER_TX_PN_REQUEST_CMDID);
WMI_RETURN_STRING(WMI_ROAM_BSS_LOAD_CONFIG_CMDID);
+ WMI_RETURN_STRING(WMI_VDEV_GET_MWS_COEX_INFO_CMDID);
}
return "Invalid WMI cmd";
@@ -24041,7 +24365,7 @@ typedef struct {
*/
A_UINT32 mode;
A_UINT32 rate; /* rate index */
- A_UINT32 nss; /* number of spacial stream */
+ A_UINT32 nss; /* number of spatial stream */
A_UINT32 beamforming; /* beamforming parameter 0:disabled, 1:enabled */
A_UINT32 chain_mask; /* mask for the antenna set to get power */
A_UINT32 chain_index; /* index for the antenna */
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index a8d57353eada..75b52f903a17 100755
--- a/fw/wmi_version.h
+++ b/fw/wmi_version.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -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_ 613
+#define __WMI_REVISION_ 614
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work