|
@@ -190,9 +190,14 @@ static void scm_scan_post_event(struct wlan_objmgr_vdev *vdev,
|
|
event->requester);
|
|
event->requester);
|
|
qdf_spin_unlock_bh(&scan->lock);
|
|
qdf_spin_unlock_bh(&scan->lock);
|
|
|
|
|
|
|
|
+ scm_listener_duration_init(scan);
|
|
|
|
+
|
|
/* notify all interested handlers */
|
|
/* notify all interested handlers */
|
|
- for (i = 0; i < listeners->count; i++)
|
|
|
|
|
|
+ for (i = 0; i < listeners->count; i++) {
|
|
|
|
+ scm_listener_cb_exe_dur_start(scan, i);
|
|
listeners->cb[i].func(vdev, event, listeners->cb[i].arg);
|
|
listeners->cb[i].func(vdev, event, listeners->cb[i].arg);
|
|
|
|
+ scm_listener_cb_exe_dur_end(scan, i);
|
|
|
|
+ }
|
|
qdf_mem_free(listeners);
|
|
qdf_mem_free(listeners);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1704,6 +1709,12 @@ scm_scan_event_handler(struct scheduler_msg *msg)
|
|
vdev = event_info->vdev;
|
|
vdev = event_info->vdev;
|
|
event = &(event_info->event);
|
|
event = &(event_info->event);
|
|
|
|
|
|
|
|
+ scan = wlan_vdev_get_scan_obj(vdev);
|
|
|
|
+
|
|
|
|
+ scm_duration_init(scan);
|
|
|
|
+
|
|
|
|
+ scm_event_duration_start(scan);
|
|
|
|
+
|
|
scm_debug("vdevid:%d, type:%d, reason:%d, freq:%d, reqstr:%d, scanid:%d",
|
|
scm_debug("vdevid:%d, type:%d, reason:%d, freq:%d, reqstr:%d, scanid:%d",
|
|
event->vdev_id, event->type, event->reason, event->chan_freq,
|
|
event->vdev_id, event->type, event->reason, event->chan_freq,
|
|
event->requester, event->scan_id);
|
|
event->requester, event->scan_id);
|
|
@@ -1757,7 +1768,6 @@ scm_scan_event_handler(struct scheduler_msg *msg)
|
|
goto exit;
|
|
goto exit;
|
|
}
|
|
}
|
|
|
|
|
|
- scan = wlan_vdev_get_scan_obj(vdev);
|
|
|
|
if (scan)
|
|
if (scan)
|
|
scm_scan_update_scan_event(scan, event, scan_start_req);
|
|
scm_scan_update_scan_event(scan, event, scan_start_req);
|
|
|
|
|
|
@@ -1774,12 +1784,16 @@ scm_scan_event_handler(struct scheduler_msg *msg)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ scm_to_post_scan_duration_set(scan);
|
|
/* Notify all interested parties */
|
|
/* Notify all interested parties */
|
|
scm_scan_post_event(vdev, event);
|
|
scm_scan_post_event(vdev, event);
|
|
|
|
|
|
exit:
|
|
exit:
|
|
/* free event info memory */
|
|
/* free event info memory */
|
|
qdf_mem_free(event_info);
|
|
qdf_mem_free(event_info);
|
|
|
|
+
|
|
|
|
+ scm_event_duration_end(scan);
|
|
|
|
+
|
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_SCAN_ID);
|
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_SCAN_ID);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|