qcacmn: Notify MLME about DFS CAC WAIT state

This change notifies MLME about DFS CAC WAIT state,
and removes code, which releases PDEV RESTART and
enqueues STOP-START command

Change-Id: Iaaf4b657c4f95330e3ac383adc74211b23006718
CRs-Fixed: 2862724
This commit is contained in:
Srinivas Pitla
2021-01-20 13:13:10 -08:00
committed by snandini
parent 7d38880a19
commit ef51b2343f
3 changed files with 14 additions and 15 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;
}