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:
@@ -461,8 +461,7 @@ enum vdev_start_resp_type {
|
|||||||
* @mlme_vdev_is_newchan_no_cac: callback to check CAC is required
|
* @mlme_vdev_is_newchan_no_cac: callback to check CAC is required
|
||||||
* @mlme_vdev_ext_peer_delete_all_rsp: callback to initiate actions for
|
* @mlme_vdev_ext_peer_delete_all_rsp: callback to initiate actions for
|
||||||
* vdev mlme peer delete all response
|
* vdev mlme peer delete all response
|
||||||
* @mlme_vdev_replace_csa_with_stop_start: callback to replace CSA restart
|
* @mlme_vdev_dfs_cac_wait_notify: callback to notify about CAC state
|
||||||
* request with stop-start
|
|
||||||
* @mlme_vdev_csa_complete: callback to indicate CSA complete
|
* @mlme_vdev_csa_complete: callback to indicate CSA complete
|
||||||
*/
|
*/
|
||||||
struct vdev_mlme_ops {
|
struct vdev_mlme_ops {
|
||||||
@@ -535,7 +534,7 @@ 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)(
|
QDF_STATUS (*mlme_vdev_dfs_cac_wait_notify)(
|
||||||
struct vdev_mlme_obj *vdev_mlme);
|
struct vdev_mlme_obj *vdev_mlme);
|
||||||
QDF_STATUS (*mlme_vdev_csa_complete)(
|
QDF_STATUS (*mlme_vdev_csa_complete)(
|
||||||
struct vdev_mlme_obj *vdev_mlme);
|
struct vdev_mlme_obj *vdev_mlme);
|
||||||
|
@@ -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
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* 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) {
|
switch (event) {
|
||||||
case WLAN_VDEV_SM_EV_DFS_CAC_WAIT:
|
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
|
/* DFS timer should have started already, then only this event
|
||||||
* could have been triggered
|
* 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,
|
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 if (mlme_vdev_replace_csa_with_stop_start(vdev_mlme) ==
|
} else {
|
||||||
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);
|
||||||
|
@@ -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
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* 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
|
* mlme_vdev_dfs_cac_wait_notify - Notifies DFS CAC wait state
|
||||||
* multivdev restart in CSA with DFS chan
|
|
||||||
* @vdev_mlme_obj: VDEV MLME comp object
|
* @vdev_mlme_obj: VDEV MLME comp object
|
||||||
*
|
*
|
||||||
* Return: NO_SUPPORT if the callback is not supported.
|
* 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)
|
struct vdev_mlme_obj *vdev_mlme)
|
||||||
{
|
{
|
||||||
QDF_STATUS ret = QDF_STATUS_E_NOSUPPORT;
|
QDF_STATUS ret = QDF_STATUS_E_NOSUPPORT;
|
||||||
|
|
||||||
if ((vdev_mlme->ops) &&
|
if ((vdev_mlme->ops) && vdev_mlme->ops->mlme_vdev_dfs_cac_wait_notify)
|
||||||
vdev_mlme->ops->mlme_vdev_replace_csa_with_stop_start)
|
ret = vdev_mlme->ops->mlme_vdev_dfs_cac_wait_notify(vdev_mlme);
|
||||||
ret = vdev_mlme->ops->mlme_vdev_replace_csa_with_stop_start(
|
|
||||||
vdev_mlme);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user