qcacld-3.0: Fix timestamp values for BTM connectivity logs
Firmware timestamp values are not printed for BTM_QUERY & BTM_REQ events and wrong value for BTM_RSP. This is because the timestamp values is read from wrong structures. Read the firmware timestamp values from correct wmi structure to fill the connectivity diag event Change-Id: I568e87ee3e4bb66d3f73d353df794ced92b418c1 CRs-Fixed: 3788350
Šī revīzija ir iekļauta:

revīziju iesūtīja
Ravindra Konda

vecāks
5d70722fa2
revīzija
404d297834
@@ -6955,7 +6955,7 @@ cm_roam_btm_query_event(struct wmi_neighbor_report_data *btm_data,
|
||||
qdf_mem_zero(&wlan_diag_event, sizeof(wlan_diag_event));
|
||||
|
||||
populate_diag_cmn(&wlan_diag_event.diag_cmn, vdev_id,
|
||||
(uint64_t)btm_data->timestamp, NULL);
|
||||
(uint64_t)btm_data->req_time, NULL);
|
||||
|
||||
wlan_diag_event.subtype = WLAN_CONN_DIAG_BTM_QUERY_EVENT;
|
||||
wlan_diag_event.version = DIAG_BTM_VERSION_2;
|
||||
@@ -7076,7 +7076,7 @@ cm_roam_btm_resp_event(struct wmi_roam_trigger_info *trigger_info,
|
||||
qdf_mem_zero(&wlan_diag_event, sizeof(wlan_diag_event));
|
||||
|
||||
populate_diag_cmn(&wlan_diag_event.diag_cmn, vdev_id,
|
||||
(uint64_t)trigger_info->timestamp,
|
||||
(uint64_t)btm_data->timestamp,
|
||||
&btm_data->target_bssid);
|
||||
|
||||
wlan_diag_event.version = DIAG_BTM_VERSION_2;
|
||||
@@ -7124,7 +7124,8 @@ cm_roam_btm_candidate_event(struct wmi_btm_req_candidate_info *btm_data,
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
cm_roam_btm_req_event(struct wmi_roam_btm_trigger_data *btm_data,
|
||||
cm_roam_btm_req_event(struct wmi_neighbor_report_data *neigh_rpt,
|
||||
struct wmi_roam_btm_trigger_data *btm_data,
|
||||
struct wmi_roam_trigger_info *trigger_info,
|
||||
uint8_t vdev_id, bool is_wtc)
|
||||
{
|
||||
@@ -7145,9 +7146,13 @@ cm_roam_btm_req_event(struct wmi_roam_btm_trigger_data *btm_data,
|
||||
btm_data->disassoc_timer)
|
||||
return status;
|
||||
|
||||
populate_diag_cmn(&wlan_diag_event.diag_cmn, vdev_id,
|
||||
(uint64_t)btm_data->timestamp,
|
||||
NULL);
|
||||
if (neigh_rpt->resp_time)
|
||||
populate_diag_cmn(&wlan_diag_event.diag_cmn, vdev_id,
|
||||
(uint64_t)neigh_rpt->resp_time, NULL);
|
||||
else
|
||||
populate_diag_cmn(&wlan_diag_event.diag_cmn, vdev_id,
|
||||
(uint64_t)trigger_info->timestamp, NULL);
|
||||
|
||||
|
||||
wlan_diag_event.subtype = WLAN_CONN_DIAG_BTM_REQ_EVENT;
|
||||
wlan_diag_event.version = DIAG_BTM_VERSION_2;
|
||||
|
@@ -603,15 +603,17 @@ cm_roam_mgmt_frame_event(struct wlan_objmgr_vdev *vdev,
|
||||
|
||||
/**
|
||||
* cm_roam_btm_req_event - Send BTM request related logging event
|
||||
* @vdev_id: Vdev id
|
||||
* @neigh_rpt: Neighbor report/BTM request related data
|
||||
* @btm_data: BTM trigger related data
|
||||
* @trigger_info: Roam trigger related info
|
||||
* @vdev_id: vdev id
|
||||
* @is_wtc: Is WTC or BTM response
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_roam_btm_req_event(struct wmi_roam_btm_trigger_data *btm_data,
|
||||
cm_roam_btm_req_event(struct wmi_neighbor_report_data *neigh_rpt,
|
||||
struct wmi_roam_btm_trigger_data *btm_data,
|
||||
struct wmi_roam_trigger_info *trigger_info,
|
||||
uint8_t vdev_id, bool is_wtc);
|
||||
|
||||
@@ -696,7 +698,8 @@ cm_roam_mgmt_frame_event(struct wlan_objmgr_vdev *vdev,
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
cm_roam_btm_req_event(struct wmi_roam_btm_trigger_data *btm_data,
|
||||
cm_roam_btm_req_event(struct wmi_neighbor_report_data *neigh_rpt,
|
||||
struct wmi_roam_btm_trigger_data *btm_data,
|
||||
struct wmi_roam_trigger_info *trigger_info,
|
||||
uint8_t vdev_id, bool is_wtc)
|
||||
{
|
||||
|
@@ -2899,6 +2899,7 @@ cm_roam_scan_ch_list_event_handler(struct cm_roam_scan_ch_resp *data)
|
||||
/**
|
||||
* cm_roam_stats_get_trigger_detail_str - Return roam trigger string from the
|
||||
* enum roam_trigger_reason
|
||||
* @neigh_rpt: Neighbor report/BTM request related data
|
||||
* @ptr: Pointer to the roam trigger info
|
||||
* @buf: Destination buffer to write the reason string
|
||||
* @is_full_scan: Is roam scan partial scan or all channels scan
|
||||
@@ -2907,7 +2908,8 @@ cm_roam_scan_ch_list_event_handler(struct cm_roam_scan_ch_resp *data)
|
||||
* Return: None
|
||||
*/
|
||||
static void
|
||||
cm_roam_stats_get_trigger_detail_str(struct wmi_roam_trigger_info *ptr,
|
||||
cm_roam_stats_get_trigger_detail_str(struct wmi_neighbor_report_data *neigh_rpt,
|
||||
struct wmi_roam_trigger_info *ptr,
|
||||
char *buf, bool is_full_scan,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
@@ -2938,7 +2940,8 @@ cm_roam_stats_get_trigger_detail_str(struct wmi_roam_trigger_info *ptr,
|
||||
case ROAM_TRIGGER_REASON_UNIT_TEST:
|
||||
break;
|
||||
case ROAM_TRIGGER_REASON_BTM:
|
||||
cm_roam_btm_req_event(&ptr->btm_trig_data, ptr, vdev_id, false);
|
||||
cm_roam_btm_req_event(neigh_rpt, &ptr->btm_trig_data, ptr,
|
||||
vdev_id, false);
|
||||
buf_cons = qdf_snprint(
|
||||
temp, buf_left,
|
||||
"Req_mode: %d Disassoc_timer: %d",
|
||||
@@ -3030,6 +3033,7 @@ cm_roam_stats_get_trigger_detail_str(struct wmi_roam_trigger_info *ptr,
|
||||
/**
|
||||
* cm_roam_stats_print_trigger_info - Roam trigger related details
|
||||
* @psoc: Pointer to PSOC object
|
||||
* @neigh_rpt: Neighbor report/BTM request related data
|
||||
* @data: Pointer to the roam trigger data
|
||||
* @scan_data: Roam scan data pointer
|
||||
* @vdev_id: Vdev ID
|
||||
@@ -3042,6 +3046,7 @@ cm_roam_stats_get_trigger_detail_str(struct wmi_roam_trigger_info *ptr,
|
||||
*/
|
||||
static void
|
||||
cm_roam_stats_print_trigger_info(struct wlan_objmgr_psoc *psoc,
|
||||
struct wmi_neighbor_report_data *neigh_rpt,
|
||||
struct wmi_roam_trigger_info *data,
|
||||
struct wmi_roam_scan_data *scan_data,
|
||||
uint8_t vdev_id, bool is_full_scan)
|
||||
@@ -3054,7 +3059,8 @@ cm_roam_stats_print_trigger_info(struct wlan_objmgr_psoc *psoc,
|
||||
if (!buf)
|
||||
return;
|
||||
|
||||
cm_roam_stats_get_trigger_detail_str(data, buf, is_full_scan, vdev_id);
|
||||
cm_roam_stats_get_trigger_detail_str(neigh_rpt, data, buf,
|
||||
is_full_scan, vdev_id);
|
||||
mlme_get_converted_timestamp(data->timestamp, time);
|
||||
|
||||
/* Update roam trigger info to userspace */
|
||||
@@ -3604,7 +3610,8 @@ cm_roam_handle_btm_stats(struct wlan_objmgr_psoc *psoc,
|
||||
*/
|
||||
if (stats_info->scan[i].present &&
|
||||
stats_info->scan[i].type == ROAM_STATS_SCAN_TYPE_NO_SCAN) {
|
||||
cm_roam_btm_req_event(&stats_info->trigger[i].btm_trig_data,
|
||||
cm_roam_btm_req_event(&stats_info->data_11kv[i],
|
||||
&stats_info->trigger[i].btm_trig_data,
|
||||
&stats_info->trigger[i],
|
||||
stats_info->vdev_id, false);
|
||||
log_btm_frames_only = true;
|
||||
@@ -3616,7 +3623,9 @@ cm_roam_handle_btm_stats(struct wlan_objmgr_psoc *psoc,
|
||||
stats_info->scan[i].type;
|
||||
|
||||
/* BTM request diag log event will be sent from inside below */
|
||||
cm_roam_stats_print_trigger_info(psoc, &stats_info->trigger[i],
|
||||
cm_roam_stats_print_trigger_info(psoc,
|
||||
&stats_info->data_11kv[i],
|
||||
&stats_info->trigger[i],
|
||||
&stats_info->scan[i],
|
||||
stats_info->vdev_id,
|
||||
is_full_scan);
|
||||
@@ -4384,7 +4393,8 @@ cm_roam_stats_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
|
||||
cm_roam_stats_print_trigger_info(
|
||||
psoc, &stats_info->trigger[i],
|
||||
psoc, &stats_info->data_11kv[i],
|
||||
&stats_info->trigger[i],
|
||||
&stats_info->scan[i],
|
||||
stats_info->vdev_id, is_full_scan);
|
||||
|
||||
@@ -4469,9 +4479,10 @@ cm_roam_stats_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||
ROAM_TRIGGER_REASON_WTC_BTM)
|
||||
is_wtc = true;
|
||||
|
||||
cm_roam_btm_req_event(&stats_info->trigger[0].btm_trig_data,
|
||||
&stats_info->trigger[0],
|
||||
stats_info->vdev_id, is_wtc);
|
||||
cm_roam_btm_req_event(&stats_info->data_11kv[0],
|
||||
&stats_info->trigger[0].btm_trig_data,
|
||||
&stats_info->trigger[0],
|
||||
stats_info->vdev_id, is_wtc);
|
||||
}
|
||||
|
||||
if (stats_info->scan[0].present &&
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user