qcacld-3.0: Refactor support to get per chain rssi stats

Propagation from qcacld-2.0 to qcacld-3.0.

Add sanity check based on TLV len in addition to the check
based on TLV tag id to ensure that if fw does not support or
is not sending rssi stats then HOST does not process it at all.

Change-Id: I92b197f9578aa003bf622617c363fea7334dbcb2
CRs-Fixed: 1023179
This commit is contained in:
Himanshu Agarwal
2016-07-21 14:59:50 +05:30
committed by qcabuildsw
parent 37e4241cf0
commit cd8a84ad46

View File

@@ -1550,8 +1550,10 @@ int wma_stats_event_handler(void *handle, uint8_t *cmd_param_info,
rssi_event = (wmi_per_chain_rssi_stats *) param_buf->chain_stats; rssi_event = (wmi_per_chain_rssi_stats *) param_buf->chain_stats;
if (rssi_event) { if (rssi_event) {
if ((rssi_event->tlv_header & 0xFFFF0000) >> 16 == if (((rssi_event->tlv_header & 0xFFFF0000) >> 16 ==
WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats) { WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats) &&
((rssi_event->tlv_header & 0x0000FFFF) ==
WMITLV_GET_STRUCT_TLVLEN(wmi_per_chain_rssi_stats))) {
WMA_LOGD("%s: num_rssi_stats %u", __func__, WMA_LOGD("%s: num_rssi_stats %u", __func__,
rssi_event->num_per_chain_rssi_stats); rssi_event->num_per_chain_rssi_stats);
if (rssi_event->num_per_chain_rssi_stats > 0) { if (rssi_event->num_per_chain_rssi_stats > 0) {