summaryrefslogtreecommitdiff
path: root/qcwcn
diff options
context:
space:
mode:
authorAmarnath Hullur Subramanyam <amarnath@codeaurora.org>2018-05-07 14:45:33 -0700
committerAhmed ElArabawy <arabawy@google.com>2019-01-17 16:10:51 -0800
commitedce94e1efb03b818254d6564e04df210591e3d1 (patch)
treea795b1392e3d3e6357058e9c00f22779c052df48 /qcwcn
parente6d70cf900d3de62750577d035353e2b2a5adbdb (diff)
downloadwlan-edce94e1efb03b818254d6564e04df210591e3d1.tar.gz
Wifi-HAL: Treat wake counter related stats from driver as optional
Earlier, all the attributes of wakestats were considered mandatory to be present from driver. This commit addresses that wake counter related stats to be treated as optional. If these attributes are not present in the message from driver then it is reported as zero instead of discarding the whole message. Bug: 121156966 Test: Regression CRs-Fixed: 2218700 Change-Id: I51137a5104537edae9529e2b6b62f5f07e10c67a
Diffstat (limited to 'qcwcn')
-rw-r--r--qcwcn/wifi_hal/wifilogger.cpp69
1 files changed, 33 insertions, 36 deletions
diff --git a/qcwcn/wifi_hal/wifilogger.cpp b/qcwcn/wifi_hal/wifilogger.cpp
index 87653f5..38aad86 100644
--- a/qcwcn/wifi_hal/wifilogger.cpp
+++ b/qcwcn/wifi_hal/wifilogger.cpp
@@ -1165,59 +1165,56 @@ int WifiLoggerCommand::handleResponse(WifiEvent &reply) {
if (!tbVendor[
QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_CMD_EVENT_WAKE]) {
- ALOGE("%s: TOTAL_CMD_EVENT_WAKE not found", __FUNCTION__);
- break;
+ mGetWakeStats->total_cmd_event_wake = 0;
+ } else {
+ mGetWakeStats->total_cmd_event_wake = nla_get_u32(
+ tbVendor[QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_CMD_EVENT_WAKE]);
}
- mGetWakeStats->total_cmd_event_wake = nla_get_u32(
- tbVendor[QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_CMD_EVENT_WAKE]);
if (mGetWakeStats->total_cmd_event_wake &&
mGetWakeStats->cmd_event_wake_cnt) {
if (!tbVendor[
QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR]) {
- ALOGE("%s: CMD_EVENT_WAKE_CNT_PTR not found", __FUNCTION__);
- break;
+ mGetWakeStats->cmd_event_wake_cnt_used = 0;
+ } else {
+ len = nla_len(tbVendor[
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR]);
+ mGetWakeStats->cmd_event_wake_cnt_used =
+ (len < mGetWakeStats->cmd_event_wake_cnt_sz) ? len :
+ mGetWakeStats->cmd_event_wake_cnt_sz;
+ memcpy(mGetWakeStats->cmd_event_wake_cnt,
+ nla_data(tbVendor[
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR]),
+ (mGetWakeStats->cmd_event_wake_cnt_used * sizeof(int)));
}
- len = nla_len(tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR]);
- mGetWakeStats->cmd_event_wake_cnt_used =
- (len < mGetWakeStats->cmd_event_wake_cnt_sz) ? len :
- mGetWakeStats->cmd_event_wake_cnt_sz;
- memcpy(mGetWakeStats->cmd_event_wake_cnt,
- nla_data(tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR]),
- (mGetWakeStats->cmd_event_wake_cnt_used * sizeof(int)));
} else
mGetWakeStats->cmd_event_wake_cnt_used = 0;
if (!tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE])
- {
- ALOGE("%s: TOTAL_DRIVER_FW_LOCAL_WAKE not found", __FUNCTION__);
- break;
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE]) {
+ mGetWakeStats->total_driver_fw_local_wake = 0;
+ } else {
+ mGetWakeStats->total_driver_fw_local_wake = nla_get_u32(tbVendor[
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE]);
}
- mGetWakeStats->total_driver_fw_local_wake = nla_get_u32(tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE]);
if (mGetWakeStats->total_driver_fw_local_wake &&
mGetWakeStats->driver_fw_local_wake_cnt) {
if (!tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR])
- {
- ALOGE("%s: DRIVER_FW_LOCAL_WAKE_CNT_PTR not found",
- __FUNCTION__);
- break;
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR]) {
+ mGetWakeStats->driver_fw_local_wake_cnt_used = 0;
+ } else {
+ len = nla_len(tbVendor[
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR]);
+ mGetWakeStats->driver_fw_local_wake_cnt_used =
+ (len < mGetWakeStats->driver_fw_local_wake_cnt_sz) ? len :
+ mGetWakeStats->driver_fw_local_wake_cnt_sz;
+
+ memcpy(mGetWakeStats->driver_fw_local_wake_cnt,
+ nla_data(tbVendor[
+ QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR]),
+ (mGetWakeStats->driver_fw_local_wake_cnt_used * sizeof(int)));
}
- len = nla_len(tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR]);
- mGetWakeStats->driver_fw_local_wake_cnt_used =
- (len < mGetWakeStats->driver_fw_local_wake_cnt_sz) ? len :
- mGetWakeStats->driver_fw_local_wake_cnt_sz;
-
- memcpy(mGetWakeStats->driver_fw_local_wake_cnt,
- nla_data(tbVendor[
- QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR]),
- (mGetWakeStats->driver_fw_local_wake_cnt_used * sizeof(int)));
} else
mGetWakeStats->driver_fw_local_wake_cnt_used = 0;