diff options
author | Amarnath Hullur Subramanyam <amarnath@codeaurora.org> | 2018-05-07 14:45:33 -0700 |
---|---|---|
committer | Ahmed ElArabawy <arabawy@google.com> | 2019-01-17 16:10:51 -0800 |
commit | edce94e1efb03b818254d6564e04df210591e3d1 (patch) | |
tree | a795b1392e3d3e6357058e9c00f22779c052df48 /qcwcn | |
parent | e6d70cf900d3de62750577d035353e2b2a5adbdb (diff) | |
download | wlan-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.cpp | 69 |
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; |