diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 8b177ea88a63..25bf692e2073 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -4018,9 +4018,50 @@ int wma_roam_stats_event_handler(WMA_HANDLE handle, uint8_t *event, goto err; } + status = wmi_unified_extract_roam_trigger_stats( + wma->wmi_handle, event, + &roam_info->trigger, 0); + if (QDF_IS_STATUS_ERROR(status)) { + wma_debug_rl("Extract roam trigger stats failed vdev %d", + vdev_id); + qdf_mem_free(roam_info); + return -EINVAL; + } + + status = wmi_unified_extract_roam_scan_stats(wma->wmi_handle, + event, + &roam_info->scan, + 0, 0, 0); + if (QDF_IS_STATUS_ERROR(status)) { + wma_debug_rl("Roam scan stats extract failed vdev %d", + vdev_id); + qdf_mem_free(roam_info); + return -EINVAL; + } + + status = wlan_cm_roam_extract_btm_response(wma->wmi_handle, + event, + &roam_info->btm_rsp, + 0); + if (QDF_IS_STATUS_ERROR(status)) { + wma_debug_rl("Roam btm rsp stats extract fail vdev %d", + vdev_id); + qdf_mem_free(roam_info); + return -EINVAL; + } if (roam_info->data_11kv.present) wma_rso_print_11kv_info(&roam_info->data_11kv, vdev_id); + if (roam_info->trigger.present) + wma_rso_print_trigger_info(&roam_info->trigger, + vdev_id); + if (roam_info->scan.present && roam_info->trigger.present) + wma_rso_print_scan_info(&roam_info->scan, vdev_id, + roam_info->trigger.trigger_reason, + roam_info->trigger.timestamp); + if (roam_info->btm_rsp.present) + wma_rso_print_btm_rsp_info(&roam_info->btm_rsp, + vdev_id); qdf_mem_free(roam_info); return 0; }