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)(
|
QDF_STATUS (*mlme_vdev_ext_peer_delete_all_rsp)(
|
||||||
struct vdev_mlme_obj *vdev_mlme,
|
struct vdev_mlme_obj *vdev_mlme,
|
||||||
struct peer_delete_all_response *rsp);
|
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,
|
mlme_vdev_sm_deliver_event(vdev_mlme,
|
||||||
WLAN_VDEV_SM_EV_RESTART_REQ,
|
WLAN_VDEV_SM_EV_RESTART_REQ,
|
||||||
event_data_len, event_data);
|
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
|
mlme_vdev_sm_transition_to
|
||||||
(vdev_mlme,
|
(vdev_mlme,
|
||||||
WLAN_VDEV_SS_SUSPEND_SUSPEND_RESTART);
|
WLAN_VDEV_SS_SUSPEND_SUSPEND_RESTART);
|
||||||
|
@@ -580,6 +580,27 @@ static inline QDF_STATUS mlme_vdev_is_newchan_no_cac(
|
|||||||
return ret;
|
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
|
#ifdef VDEV_SM_LOCK_SUPPORT
|
||||||
/**
|
/**
|
||||||
* mlme_vdev_sm_spinlock_create - Create VDEV MLME spinlock
|
* mlme_vdev_sm_spinlock_create - Create VDEV MLME spinlock
|
||||||
|
Reference in New Issue
Block a user