qcacmn: Add states events and API declarations for RCAC SM

As part of the Rolling CAC State Machine, introduce three state
enums (INIT, RUNNING and COMPLETE) and the corresponding state
events.

Introduce generic APIs such as dfs_rcac_sm_create,
dfs_rcac_sm_destroy and dfs_rcac_sm_deliver_evt for rolling
CAC State machine operations.

CRs-Fixed: 2659666
Change-Id: I528db71aa7d21dced7e47ff4f9cccfbfe94c8c21
这个提交包含在:
Vignesh Mohan
2020-04-09 11:28:32 +05:30
提交者 nshrivas
父节点 31004de4c2
当前提交 a23f9384c4
修改 8 个文件,包含 158 行新增0 行删除

查看文件

@@ -198,6 +198,9 @@ static QDF_STATUS dfs_psoc_obj_create_notification(struct wlan_objmgr_psoc *psoc
/* Initialize Rolling CAC timer */
dfs_rcac_timer_init(dfs_soc_obj);
/* DFS Rolling CAC SM initialization */
dfs_rcac_sm_create(dfs_soc_obj);
dfs_debug(NULL, WLAN_DEBUG_DFS1,
"DFS obj attach to psoc successfully");
@@ -225,6 +228,9 @@ static QDF_STATUS dfs_psoc_obj_destroy_notification(struct wlan_objmgr_psoc *pso
return QDF_STATUS_E_FAILURE;
}
/* Delete DFS Rolling CAC SM */
dfs_rcac_sm_destroy(dfs_soc_obj);
dfs_rcac_timer_deinit(dfs_soc_obj);
dfs_zero_cac_timer_detach(dfs_soc_obj);

查看文件

@@ -1618,3 +1618,27 @@ void utils_dfs_reset_dfs_prevchan(struct wlan_objmgr_pdev *pdev)
dfs_reset_dfs_prevchan(dfs);
}
#ifdef QCA_SUPPORT_ADFS_RCAC
void utils_dfs_rcac_sm_deliver_evt(struct wlan_objmgr_pdev *pdev,
enum dfs_rcac_sm_evt event,
uint16_t event_data_len,
void *event_data)
{
struct wlan_dfs *dfs;
if (!tgt_dfs_is_pdev_5ghz(pdev))
return;
dfs = wlan_pdev_get_dfs_obj(pdev);
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is null");
return;
}
dfs_rcac_sm_deliver_evt(dfs->dfs_soc_obj,
event,
event_data_len,
event_data);
}
#endif /* QCA_SUPPORT_ADFS_RCAC */