summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnurag Chouhan <achouhan@codeaurora.org>2016-04-18 17:20:38 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-05-18 16:34:19 -0700
commit90c1a185907cb359d4a884dcce253ef53d91db7e (patch)
tree89efce1cb4c01da8cd7a936fdf7b209914af35f4
parent0e13ab0b1f1e802265fc28244e2fe57a0a9456cc (diff)
qcacld-3.0: CL 1491974 - update fw common interface files
qcacld-2.0 to qcacld-3.0 propagation Add new WMI event for tx power stats. Change-Id: Ic14b1c3c3538f5e1a62b69535c27108152f7076d CRs-Fixed: 865207
-rw-r--r--target/inc/wmi_tlv_defs.h13
-rw-r--r--target/inc/wmi_unified.h67
-rw-r--r--target/inc/wmi_version.h2
3 files changed, 49 insertions, 33 deletions
diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h
index 797c2f89321d..e90ab570599a 100644
--- a/target/inc/wmi_tlv_defs.h
+++ b/target/inc/wmi_tlv_defs.h
@@ -699,6 +699,7 @@ typedef enum {
WMITLV_TAG_STRUC_WMI_HAL_REG_CAPABILITIES_EXT,
WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES,
WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1129,7 +1130,8 @@ typedef enum {
OP(WMI_NDP_END_INDICATION_EVENTID) \
OP(WMI_PDEV_SET_HW_MODE_RESP_EVENTID) \
OP(WMI_PDEV_HW_MODE_TRANSITION_EVENTID) \
- OP(WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID)
+ OP(WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID) \
+ OP(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID)
/* TLV definitions of WMI commands */
@@ -3198,8 +3200,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_LINK_STATS_EVENTID);
#define WMITLV_TABLE_WMI_RADIO_LINK_STATS_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_radio_link_stats_event_fixed_param, wmi_radio_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_link_stats, radio_stats, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_channel_stats, channel_stats, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ext_tx_time_per_power_level, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_channel_stats, channel_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_LINK_STATS_EVENTID);
@@ -3637,6 +3638,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_PS_STATECHG_EVENTID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param, wmi_inst_rssi_stats_resp_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_INST_RSSI_STATS_EVENTID);
+#define WMITLV_TABLE_WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID(id, op, buf, len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param, wmi_tx_power_level_stats_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_time_per_power_level, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID)
+
+
#ifdef __cplusplus
}
#endif
diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h
index 78f198fabf82..61a9185e9f6b 100644
--- a/target/inc/wmi_unified.h
+++ b/target/inc/wmi_unified.h
@@ -1168,9 +1168,12 @@ typedef enum {
/** Event indicating the DIAG logs/events supported by FW */
WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID,
- /* Instantaneous RSSI event */
+ /** Instantaneous RSSI event */
WMI_INST_RSSI_STATS_EVENTID,
+ /** FW update tx power levels event */
+ WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID,
+
/** NLO specific events */
/** NLO match event after the first match */
WMI_NLO_MATCH_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NLO_OFL),
@@ -4425,42 +4428,48 @@ typedef struct {
/** number of channels */
A_UINT32 num_channels;
/*
- * tx time (in milliseconds) per TPC level
- * TPC levels require a board-specific translation to determine what
- * actual power corresponds to each power level.
- * Just as the host has a BDF file available, the host should also have
- * a data file available that provides the
- * power level --> power
- * translations.
+ * tx time per TPC level - DEPRECATED
+ * This field is deprecated.
+ * It is superseded by the WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID
+ * message.
*/
A_UINT32 tx_time_per_tpc[MAX_TPC_LEVELS];
+} wmi_radio_link_stats;
+
+/** tx time per power level statistics */
+typedef struct {
/*
- * number of tx power levels, including both tx_time_per_tpc and
- * ext_tx_time_per_power_level
- * Each power level consumes one A_UINT32.
- * If num_tx_power_levels <= MAX_TPC_LEVELs, only tx_time_per_tpc is
- * used.
- * If num_tx_power_levels > MAX_TPC_LEVELS, the first MAX_TPC_LEVELS
- * values
- * are stored in tx_time_per_tpc, and the remaining
- * (num_tx_power_levels - MAX_TPC_LEVELS) values are stored in
- * ext_tx_time_per_power_level.
+ * TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param
*/
+ A_UINT32 tlv_header;
+ /* total number of tx power levels */
+ A_UINT32 total_num_tx_power_levels;
+ /* number of tx power levels that are carried in this event */
A_UINT32 num_tx_power_levels;
/*
+ * offset of current stats
+ * If ((num_tx_power_levels + power_level_offset)) ==
+ * total_num_tx_power_levels)
+ * this message completes the report of tx time per power levels.
+ * Otherwise, additional WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID
+ * messages will be sent by the target to deliver the remainder of the
+ * tx time per power level stats.
+ */
+ A_UINT32 power_level_offset;
+ /*
* This TLV will be followed by a TLV containing a variable-length
- * array of A_UINT32 with any additional tx time per power level data,
- * if there are more than MAX_TPC_LEVELS elements of tx time per TPC to
- * report. Note that at most one wmi_radio_link_stats object will be
- * present in the WMI_RADIO_LINK_STATS message. Thus, even though there
- * is only one ext_tx_time_per_power_level array in the
- * WMI_RADIO_LINK_STATS message, it only holds the extra data for a
- * single wmi_radio_link_stats object.
- *
- * A_UINT32
- * ext_tx_time_per_power_level[num_tx_power_levels - MAX_TPC_LEVELS]
+ * array of A_UINT32 with tx time per power level data
+ * A_UINT32 tx_time_per_power_level[num_tx_power_levels]
+ * The tx time is in units of milliseconds.
+ * The power levels are board-specific values; a board-specific
+ * translation has to be applied to determine what actual power
+ * corresponds to each power level.
+ * Just as the host has a BDF file available, the host should also have
+ * a data file available that provides the power level to power
+ * translations.
*/
-} wmi_radio_link_stats;
+} wmi_tx_power_level_stats_evt_fixed_param;
/** Radio statistics (once started) do not stop or get reset unless wifi_clear_link_stats is invoked */
typedef struct {
diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h
index 6695b204ad61..8adda0c639d4 100644
--- a/target/inc/wmi_version.h
+++ b/target/inc/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_ 235
+#define __WMI_REVISION_ 236
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work