From 466382d492cbfa9997f854248449c7ce895c80d0 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Wed, 4 Nov 2020 17:27:29 +0530 Subject: [PATCH] qcacld-3.0: Print roam related info in kmsg The event WMI_ROAM_STATS_EVENTID is received after every roam, once the roam synch complete is sent by the host. This event contains details regarding the btm response. This helps to debug the scenario when roam failure happen. Print the info received related to roam scan type & roam status info into kmsg. Change-Id: Idd688eb4d1e699573fa1e243873c30ffdc5bf96f CRs-Fixed: 2794555 --- .../mlme/dispatcher/inc/wlan_mlme_api.h | 18 ++++++++++++ .../mlme/dispatcher/src/wlan_mlme_api.c | 28 +++++++++++++++++++ core/wma/src/wma_scan_roam.c | 6 ++-- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index c08edf4cbb..629fa3ad53 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -2367,6 +2367,24 @@ wlan_mlme_get_ignore_fw_reg_offload_ind(struct wlan_objmgr_psoc *psoc, */ char *mlme_get_roam_trigger_str(uint32_t roam_scan_trigger); +/** + * mlme_get_roam_scan_type_str() - Get the string for roam sacn type + * @roam_scan_type: roam scan type coming from fw via + * wmi_roam_scan_info tlv + * + * Return: Meaningful string for roam sacn type + */ +char *mlme_get_roam_scan_type_str(uint32_t roam_scan_type); + +/** + * mlme_get_roam_status_str() - Get the string for roam status + * @roam_status: roam status coming from fw via + * wmi_roam_scan_info tlv + * + * Return: Meaningful string for roam status + */ +char *mlme_get_roam_status_str(uint32_t roam_status); + /** * mlme_get_converted_timestamp() - Return time of the day * from timestamp diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 3c5377156c..c4dbdeda52 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -3620,6 +3620,34 @@ wlan_mlme_get_ignore_fw_reg_offload_ind(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } +char *mlme_get_roam_status_str(uint32_t roam_status) +{ + switch (roam_status) { + case 0: + return "SUCCESS"; + case 1: + return "FAILED"; + case 2: + return "NO ROAM"; + default: + return "UNKNOWN"; + } +} + +char *mlme_get_roam_scan_type_str(uint32_t roam_scan_type) +{ + switch (roam_scan_type) { + case 0: + return "PARTIAL"; + case 1: + return "FULL"; + case 2: + return "NO SCAN"; + default: + return "UNKNOWN"; + } +} + char *mlme_get_roam_trigger_str(uint32_t roam_scan_trigger) { switch (roam_scan_trigger) { diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 89c27cd0bf..c4edcc4ae1 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -2012,7 +2012,7 @@ wma_rso_print_scan_info(struct wmi_roam_scan_data *scan, uint8_t vdev_id, mlme_get_converted_timestamp(timestamp, time); wma_info("%s [ROAM_SCAN]: VDEV[%d] Scan_type: %s %s %s", - time, vdev_id, (scan->type ? "FULL" : "PARTIAL"), + time, vdev_id, mlme_get_roam_scan_type_str(scan->type), buf1, buf); wma_log_roam_scan_candidates(scan->ap, scan->num_ap); @@ -2040,13 +2040,13 @@ wma_rso_print_roam_result(struct wmi_roam_result *res, if (!buf) return; - if (!res->status) + if (res->status == 1) qdf_snprint(buf, ROAM_FAILURE_BUF_SIZE, "Reason: %s", mlme_get_roam_fail_reason_str(res->fail_reason)); mlme_get_converted_timestamp(res->timestamp, time); wma_info("%s [ROAM_RESULT]: VDEV[%d] %s %s", - time, vdev_id, (res->status) ? "SUCCESS" : "FAILED", buf); + time, vdev_id, mlme_get_roam_status_str(res->status), buf); qdf_mem_free(buf); }