mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
Merge "qcacmn: Add flush callback for scan module"
This commit is contained in:
commit
ebeeeef745
4 changed files with 117 additions and 0 deletions
|
|
@ -600,3 +600,75 @@ exit:
|
|||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS scm_scan_event_flush_callback(struct scheduler_msg *msg)
|
||||
{
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
struct scan_event_info *event_info;
|
||||
|
||||
if (!msg || !msg->bodyptr) {
|
||||
scm_err("msg: %p, bodyptr: %p", msg, msg->bodyptr);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
event_info = msg->bodyptr;
|
||||
vdev = event_info->vdev;
|
||||
|
||||
/* free event info memory */
|
||||
qdf_mem_free(event_info);
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_SCAN_ID);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS scm_bcn_probe_flush_callback(struct scheduler_msg *msg)
|
||||
{
|
||||
struct scan_bcn_probe_event *bcn;
|
||||
|
||||
bcn = msg->bodyptr;
|
||||
|
||||
if (!bcn) {
|
||||
scm_err("bcn is NULL");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
if (bcn->psoc)
|
||||
wlan_objmgr_psoc_release_ref(bcn->psoc, WLAN_SCAN_ID);
|
||||
if (bcn->rx_data)
|
||||
qdf_mem_free(bcn->rx_data);
|
||||
if (bcn->buf)
|
||||
qdf_nbuf_free(bcn->buf);
|
||||
qdf_mem_free(bcn);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS scm_scan_start_flush_callback(struct scheduler_msg *msg)
|
||||
{
|
||||
struct scan_start_request *req;
|
||||
|
||||
if (!msg || !msg->bodyptr) {
|
||||
scm_err("msg: 0x%p, bodyptr: 0x%p", msg, msg->bodyptr);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
req = msg->bodyptr;
|
||||
wlan_objmgr_vdev_release_ref(req->vdev, WLAN_SCAN_ID);
|
||||
scm_scan_free_scan_request_mem(req);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS scm_scan_cancel_flush_callback(struct scheduler_msg *msg)
|
||||
{
|
||||
struct scan_cancel_request *req;
|
||||
|
||||
if (!msg || !msg->bodyptr) {
|
||||
scm_err("msg: 0x%p, bodyptr: 0x%p", msg, msg->bodyptr);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
req = msg->bodyptr;
|
||||
wlan_objmgr_vdev_release_ref(req->vdev, WLAN_SCAN_ID);
|
||||
/* Free cancel request memory */
|
||||
qdf_mem_free(req);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,4 +85,44 @@ QDF_STATUS scm_scan_event_handler(struct scheduler_msg *msg);
|
|||
*/
|
||||
QDF_STATUS scm_scan_free_scan_request_mem(struct scan_start_request *req);
|
||||
|
||||
/**
|
||||
* scm_scan_event_flush_callback() - flush scan event
|
||||
* @msg: scheduler message object containing scan event
|
||||
*
|
||||
* This function call is invoked when scheduler thread is going down
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS scm_scan_event_flush_callback(struct scheduler_msg *msg);
|
||||
|
||||
/**
|
||||
* scm_bcn_probe_flush_callback() - flush beacon/probe response
|
||||
* @msg: scheduler message object containing scan event
|
||||
*
|
||||
* This function call is invoked when scheduler thread is going down
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS scm_bcn_probe_flush_callback(struct scheduler_msg *msg);
|
||||
|
||||
/**
|
||||
* scm_scan_start_flush_callback() - flush scan start request
|
||||
* @msg: scheduler message object containing scan event
|
||||
*
|
||||
* This function call is invoked when scheduler thread is going down
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS scm_scan_start_flush_callback(struct scheduler_msg *msg);
|
||||
|
||||
/**
|
||||
* scm_scan_cancel_flush_callback() - flush scan cancel request
|
||||
* @msg: scheduler message object containing scan event
|
||||
*
|
||||
* This function call is invoked when scheduler thread is going down
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS scm_scan_cancel_flush_callback(struct scheduler_msg *msg);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -209,6 +209,7 @@ tgt_scan_event_handler(struct wlan_objmgr_psoc *psoc,
|
|||
}
|
||||
msg.bodyptr = event_info;
|
||||
msg.callback = scm_scan_event_handler;
|
||||
msg.flush_callback = scm_scan_event_flush_callback;
|
||||
|
||||
status = scheduler_post_msg(QDF_MODULE_ID_TARGET_IF, &msg);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
|
|
@ -269,6 +270,7 @@ QDF_STATUS tgt_scan_bcn_probe_rx_callback(struct wlan_objmgr_psoc *psoc,
|
|||
|
||||
msg.bodyptr = bcn;
|
||||
msg.callback = scm_handle_bcn_probe;
|
||||
msg.flush_callback = scm_bcn_probe_flush_callback;
|
||||
|
||||
status = scheduler_post_msg(QDF_MODULE_ID_TARGET_IF, &msg);
|
||||
|
||||
|
|
@ -279,6 +281,7 @@ QDF_STATUS tgt_scan_bcn_probe_rx_callback(struct wlan_objmgr_psoc *psoc,
|
|||
qdf_mem_free(bcn);
|
||||
qdf_nbuf_free(buf);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -358,6 +358,7 @@ ucfg_scan_start(struct scan_start_request *req)
|
|||
|
||||
msg.bodyptr = req;
|
||||
msg.callback = scm_scan_start_req;
|
||||
msg.flush_callback = scm_scan_start_flush_callback;
|
||||
|
||||
status = scheduler_post_msg(QDF_MODULE_ID_OS_IF, &msg);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
|
|
@ -393,6 +394,7 @@ ucfg_scan_cancel(struct scan_cancel_request *req)
|
|||
|
||||
msg.bodyptr = req;
|
||||
msg.callback = scm_scan_cancel_req;
|
||||
msg.flush_callback = scm_scan_cancel_flush_callback;
|
||||
|
||||
status = scheduler_post_msg(QDF_MODULE_ID_OS_IF, &msg);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue