qcacmn: Support stop-start cmd enqueue mlme ops
Add change to support mlme ops to enable enqueuing stop-start cmd to serialization queue when CSA is triggered for a DFS channel. Change-Id: I9f2dca3bc4ccfe40bd40c7e04b3ce035df56d19d CRs-Fixed: 2825760
This commit is contained in:
@@ -532,6 +532,8 @@ struct vdev_mlme_ops {
|
||||
QDF_STATUS (*mlme_vdev_ext_peer_delete_all_rsp)(
|
||||
struct vdev_mlme_obj *vdev_mlme,
|
||||
struct peer_delete_all_response *rsp);
|
||||
QDF_STATUS (*mlme_vdev_replace_csa_with_stop_start)(
|
||||
struct vdev_mlme_obj *vdev_mlme);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -1413,7 +1413,8 @@ static bool mlme_vdev_subst_suspend_csa_restart_event(void *ctx,
|
||||
mlme_vdev_sm_deliver_event(vdev_mlme,
|
||||
WLAN_VDEV_SM_EV_RESTART_REQ,
|
||||
event_data_len, event_data);
|
||||
} else {
|
||||
} else if (mlme_vdev_replace_csa_with_stop_start(vdev_mlme) ==
|
||||
QDF_STATUS_E_NOSUPPORT) {
|
||||
mlme_vdev_sm_transition_to
|
||||
(vdev_mlme,
|
||||
WLAN_VDEV_SS_SUSPEND_SUSPEND_RESTART);
|
||||
|
@@ -580,6 +580,27 @@ static inline QDF_STATUS mlme_vdev_is_newchan_no_cac(
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* mlme_vdev_replace_csa_with_stop_start - Support to use stop-start instead of
|
||||
* multivdev restart in CSA with DFS chan
|
||||
* @vdev_mlme_obj: VDEV MLME comp object
|
||||
*
|
||||
* Return: NO_SUPPORT if the callback is not supported.
|
||||
* SUCCESS if stop-start is enqueued, else FAILURE.
|
||||
*/
|
||||
static inline QDF_STATUS mlme_vdev_replace_csa_with_stop_start(
|
||||
struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
QDF_STATUS ret = QDF_STATUS_E_NOSUPPORT;
|
||||
|
||||
if ((vdev_mlme->ops) &&
|
||||
vdev_mlme->ops->mlme_vdev_replace_csa_with_stop_start)
|
||||
ret = vdev_mlme->ops->mlme_vdev_replace_csa_with_stop_start(
|
||||
vdev_mlme);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef VDEV_SM_LOCK_SUPPORT
|
||||
/**
|
||||
* mlme_vdev_sm_spinlock_create - Create VDEV MLME spinlock
|
||||
|
Reference in New Issue
Block a user