diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index 0a6113734d..2da9e34ec1 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/umac/mlme/include/wlan_vdev_mlme.h @@ -461,8 +461,7 @@ enum vdev_start_resp_type { * @mlme_vdev_is_newchan_no_cac: callback to check CAC is required * @mlme_vdev_ext_peer_delete_all_rsp: callback to initiate actions for * vdev mlme peer delete all response - * @mlme_vdev_replace_csa_with_stop_start: callback to replace CSA restart - * request with stop-start + * @mlme_vdev_dfs_cac_wait_notify: callback to notify about CAC state * @mlme_vdev_csa_complete: callback to indicate CSA complete */ struct vdev_mlme_ops { @@ -535,7 +534,7 @@ 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)( + QDF_STATUS (*mlme_vdev_dfs_cac_wait_notify)( struct vdev_mlme_obj *vdev_mlme); QDF_STATUS (*mlme_vdev_csa_complete)( struct vdev_mlme_obj *vdev_mlme); diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c b/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c index 06c1e78752..b3ba2d8297 100644 --- a/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c +++ b/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -335,6 +335,10 @@ static bool mlme_vdev_state_dfs_cac_wait_event(void *ctx, uint16_t event, switch (event) { case WLAN_VDEV_SM_EV_DFS_CAC_WAIT: + /* Notify MLME about CAC wait state, MLME can perform + * unblocking of some commands + */ + mlme_vdev_dfs_cac_wait_notify(vdev_mlme); /* DFS timer should have started already, then only this event * could have been triggered */ @@ -1413,8 +1417,7 @@ 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 if (mlme_vdev_replace_csa_with_stop_start(vdev_mlme) == - QDF_STATUS_E_NOSUPPORT) { + } else { mlme_vdev_sm_transition_to (vdev_mlme, WLAN_VDEV_SS_SUSPEND_SUSPEND_RESTART); diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.h b/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.h index 68edf73c7b..b6052be7f4 100644 --- a/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.h +++ b/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -581,22 +581,19 @@ static inline QDF_STATUS mlme_vdev_is_newchan_no_cac( } /** - * mlme_vdev_replace_csa_with_stop_start - Support to use stop-start instead of - * multivdev restart in CSA with DFS chan + * mlme_vdev_dfs_cac_wait_notify - Notifies DFS CAC wait state * @vdev_mlme_obj: VDEV MLME comp object * * Return: NO_SUPPORT if the callback is not supported. - * SUCCESS if stop-start is enqueued, else FAILURE. + * SUCCESS if DFS CAC Wait notification handled by caller */ -static inline QDF_STATUS mlme_vdev_replace_csa_with_stop_start( +static inline QDF_STATUS mlme_vdev_dfs_cac_wait_notify( 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); + if ((vdev_mlme->ops) && vdev_mlme->ops->mlme_vdev_dfs_cac_wait_notify) + ret = vdev_mlme->ops->mlme_vdev_dfs_cac_wait_notify(vdev_mlme); return ret; }