diff --git a/umac/dfs/dispatcher/inc/wlan_dfs_tgt_api.h b/umac/dfs/dispatcher/inc/wlan_dfs_tgt_api.h index 963a5cdc8aef..f56312ffb0dd 100644 --- a/umac/dfs/dispatcher/inc/wlan_dfs_tgt_api.h +++ b/umac/dfs/dispatcher/inc/wlan_dfs_tgt_api.h @@ -394,4 +394,12 @@ QDF_STATUS tgt_dfs_reset_spoof_test(struct wlan_objmgr_pdev *pdev) return QDF_STATUS_SUCCESS; } #endif + +/** + * tgt_dfs_is_pdev_5ghz() - Check if the input pdev is 5GHZ. + * @pdev: Pointer to DFS pdev object. + * + * Return: true if the pdev supports 5GHz, else false. + */ +bool tgt_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev); #endif /* _WLAN_DFS_TGT_API_H_ */ diff --git a/umac/dfs/dispatcher/src/wlan_dfs_init_deinit_api.c b/umac/dfs/dispatcher/src/wlan_dfs_init_deinit_api.c index 91cedc396c05..ceb3518f76ff 100644 --- a/umac/dfs/dispatcher/src/wlan_dfs_init_deinit_api.c +++ b/umac/dfs/dispatcher/src/wlan_dfs_init_deinit_api.c @@ -414,10 +414,6 @@ static void dfs_scan_serialization_comp_info_cb( { struct wlan_dfs *dfs = NULL; struct wlan_objmgr_pdev *pdev; - struct wlan_lmac_if_dfs_tx_ops *dfs_tx_ops; - struct wlan_objmgr_psoc *psoc; - bool is_5ghz = false; - QDF_STATUS status; if (!comp_info) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "comp_info is NULL"); @@ -437,25 +433,7 @@ static void dfs_scan_serialization_comp_info_cb( comp_info->scan_info.is_cac_in_progress = false; - psoc = wlan_pdev_get_psoc(pdev); - if (!psoc) { - dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null psoc"); - return; - } - - dfs_tx_ops = wlan_psoc_get_dfs_txops(psoc); - if (!(dfs_tx_ops && dfs_tx_ops->dfs_is_pdev_5ghz)) { - dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs_tx_ops is null"); - return; - } - - status = dfs_tx_ops->dfs_is_pdev_5ghz(pdev, &is_5ghz); - if (QDF_IS_STATUS_ERROR(status)) { - dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "Failed to get is_5ghz value"); - return; - } - - if (!is_5ghz) + if (!tgt_dfs_is_pdev_5ghz(pdev)) return; dfs = wlan_pdev_get_dfs_obj(pdev); diff --git a/umac/dfs/dispatcher/src/wlan_dfs_tgt_api.c b/umac/dfs/dispatcher/src/wlan_dfs_tgt_api.c index 673cb1b0ddf4..37af6fed2b8c 100644 --- a/umac/dfs/dispatcher/src/wlan_dfs_tgt_api.c +++ b/umac/dfs/dispatcher/src/wlan_dfs_tgt_api.c @@ -38,6 +38,34 @@ wlan_psoc_get_dfs_txops(struct wlan_objmgr_psoc *psoc) return &((psoc->soc_cb.tx_ops.dfs_tx_ops)); } +bool tgt_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev) +{ + struct wlan_lmac_if_dfs_tx_ops *dfs_tx_ops; + struct wlan_objmgr_psoc *psoc; + bool is_5ghz = false; + QDF_STATUS status; + + psoc = wlan_pdev_get_psoc(pdev); + if (!psoc) { + dfs_err(NULL, WLAN_DEBUG_DFS_ALWAYS, "null psoc"); + return false; + } + + dfs_tx_ops = wlan_psoc_get_dfs_txops(psoc); + if (!(dfs_tx_ops && dfs_tx_ops->dfs_is_pdev_5ghz)) { + dfs_err(NULL, WLAN_DEBUG_DFS_ALWAYS, "dfs_tx_ops is null"); + return false; + } + + status = dfs_tx_ops->dfs_is_pdev_5ghz(pdev, &is_5ghz); + if (QDF_IS_STATUS_ERROR(status)) { + dfs_err(NULL, WLAN_DEBUG_DFS_ALWAYS, "Failed to get is_5ghz value"); + return false; + } + + return is_5ghz; +} + QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev, uint16_t dfs_ch_freq, uint64_t dfs_ch_flags, @@ -48,6 +76,9 @@ QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev, { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL"); @@ -216,6 +247,9 @@ QDF_STATUS tgt_dfs_is_precac_timer_running(struct wlan_objmgr_pdev *pdev, { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL"); @@ -232,6 +266,9 @@ QDF_STATUS tgt_dfs_get_radars(struct wlan_objmgr_pdev *pdev) { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL"); @@ -393,6 +430,9 @@ QDF_STATUS tgt_dfs_stop(struct wlan_objmgr_pdev *pdev) { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL"); @@ -523,6 +563,9 @@ QDF_STATUS tgt_dfs_reset_spoof_test(struct wlan_objmgr_pdev *pdev) { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL"); diff --git a/umac/dfs/dispatcher/src/wlan_dfs_ucfg_api.c b/umac/dfs/dispatcher/src/wlan_dfs_ucfg_api.c index bf3172bd6f66..8b46cb7ec0ac 100644 --- a/umac/dfs/dispatcher/src/wlan_dfs_ucfg_api.c +++ b/umac/dfs/dispatcher/src/wlan_dfs_ucfg_api.c @@ -142,6 +142,9 @@ QDF_STATUS ucfg_dfs_get_precac_enable(struct wlan_objmgr_pdev *pdev, { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null dfs"); diff --git a/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c b/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c index 2b0b33dd52b9..2f6e3c5e7ad4 100644 --- a/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c +++ b/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c @@ -1028,9 +1028,12 @@ QDF_STATUS utils_dfs_is_spoof_check_failed(struct wlan_objmgr_pdev *pdev, { struct wlan_dfs *dfs; + if (!tgt_dfs_is_pdev_5ghz(pdev)) + return QDF_STATUS_SUCCESS; + dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev); if (!dfs) { - dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null dfs"); + dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is null"); return QDF_STATUS_E_FAILURE; }