diff --git a/core/hdd/src/wlan_hdd_conc_ut.c b/core/hdd/src/wlan_hdd_conc_ut.c index 11cf37bb9408..fb523447e112 100644 --- a/core/hdd/src/wlan_hdd_conc_ut.c +++ b/core/hdd/src/wlan_hdd_conc_ut.c @@ -637,7 +637,7 @@ void wlan_hdd_one_connection_scenario(struct hdd_context *hdd_ctx) QDF_STATUS ret; struct policy_mgr_sme_cbacks sme_cbacks; - sme_cbacks.sme_get_valid_channels = sme_get_cfg_valid_channels; + sme_cbacks.sme_get_valid_channels = sme_get_valid_channels; sme_cbacks.sme_get_nss_for_vdev = sme_get_vdev_type_nss; /* flush the entire table first */ ret = policy_mgr_psoc_enable(hdd_ctx->hdd_psoc); @@ -697,7 +697,7 @@ void wlan_hdd_two_connections_scenario(struct hdd_context *hdd_ctx, sub_type < PM_MAX_NUM_OF_MODE; sub_type++) { type = wlan_hdd_valid_type_of_persona(sub_type); - sme_cbacks.sme_get_valid_channels = sme_get_cfg_valid_channels; + sme_cbacks.sme_get_valid_channels = sme_get_valid_channels; sme_cbacks.sme_get_nss_for_vdev = sme_get_vdev_type_nss; /* flush the entire table first */ ret = policy_mgr_psoc_enable(hdd_ctx->hdd_psoc); @@ -734,7 +734,8 @@ void wlan_hdd_two_connections_scenario(struct hdd_context *hdd_ctx, pcl_len = 0; pcl_type = policy_mgr_get_pcl_from_second_conn_table( second_index, next_sub_type, system_pref, - policy_mgr_is_hw_dbs_capable(hdd_ctx->hdd_psoc)); + policy_mgr_is_hw_dbs_capable( + hdd_ctx->hdd_psoc)); /* check PCL for second connection is correct or no */ policy_mgr_get_pcl(hdd_ctx->hdd_psoc, next_sub_type, pcl, &pcl_len, @@ -802,7 +803,7 @@ void wlan_hdd_three_connections_scenario(struct hdd_context *hdd_ctx, type_1 = wlan_hdd_valid_type_of_persona(sub_type_1); - sme_cbacks.sme_get_valid_channels = sme_get_cfg_valid_channels; + sme_cbacks.sme_get_valid_channels = sme_get_valid_channels; sme_cbacks.sme_get_nss_for_vdev = sme_get_vdev_type_nss; /* flush the entire table first */ ret = policy_mgr_psoc_enable(hdd_ctx->hdd_psoc); diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index e0e67f2f0dcb..3b70e1fc4151 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -1682,4 +1682,17 @@ QDF_STATUS sme_get_chain_rssi(tHalHandle hal, struct get_chain_rssi_req_params *input, get_chain_rssi_callback callback, void *context); + +/** + * sme_get_valid_channels() - sme api to get valid channels for + * current regulatory domain + * @chan_list: list of the valid channels + * @list_len: length of the channel list + * + * This function will get valid channels for current regulatory + * domain + * + * Return: QDF_STATUS_SUCCESS or non-zero on failure + */ +QDF_STATUS sme_get_valid_channels(uint8_t *chan_list, uint32_t *list_len); #endif /* #if !defined( __SME_API_H ) */ diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 965de62014a6..c65d632b3a94 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -1318,6 +1318,24 @@ QDF_STATUS sme_hdd_ready_ind(tHalHandle hHal) return status; } +QDF_STATUS sme_get_valid_channels(uint8_t *chan_list, uint32_t *list_len) +{ + tpAniSirGlobal mac_ctx = sme_get_mac_context(); + QDF_STATUS status = QDF_STATUS_SUCCESS; + + if (NULL == mac_ctx) { + QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, + FL("Invalid MAC context")); + return QDF_STATUS_E_FAILURE; + } + + if (eSIR_SUCCESS != wlan_cfg_get_str(mac_ctx, + WNI_CFG_VALID_CHANNEL_LIST, chan_list, list_len)) + status = QDF_STATUS_E_INVAL; + + return status; +} + /*-------------------------------------------------------------------------- \brief sme_start() - Put all SME modules at ready state. @@ -1346,7 +1364,7 @@ QDF_STATUS sme_start(tHalHandle hHal) break; } sme_cbacks.sme_get_nss_for_vdev = sme_get_vdev_type_nss; - sme_cbacks.sme_get_valid_channels = sme_get_cfg_valid_channels; + sme_cbacks.sme_get_valid_channels = sme_get_valid_channels; sme_cbacks.sme_nss_update_request = sme_nss_update_request; sme_cbacks.sme_pdev_set_hw_mode = sme_pdev_set_hw_mode; sme_cbacks.sme_pdev_set_pcl = sme_pdev_set_pcl;