From 3dcc6ff1122ac6489ec15a4a35676569c063e9c3 Mon Sep 17 00:00:00 2001 From: Archana Ramachandran Date: Thu, 23 Mar 2017 23:30:23 -0700 Subject: [PATCH] qcacmn: Fix SME callback for policy manager component Fix SME callback for policy manager component Change-Id: If5c7256fb689e4cdb053aa5012deacac221261f9 CRs-Fixed: 2019994 --- .../policy_mgr/inc/wlan_policy_mgr_api.h | 2 +- .../src/wlan_policy_mgr_get_set_utils.c | 33 ++++++++++--------- .../src/wlan_policy_mgr_init_deinit.c | 4 +-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h index 3c92c8402f2b..cc728643c0e5 100644 --- a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h +++ b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h @@ -758,7 +758,7 @@ struct policy_mgr_sme_cbacks { uint8_t next_action, struct wlan_objmgr_psoc *psoc, enum policy_mgr_conn_update_reason reason); QDF_STATUS (*sme_change_mcc_beacon_interval) (uint8_t session_id); - QDF_STATUS (*sme_get_ap_channel_from_scan_cache) ( + QDF_STATUS (*sme_get_ap_channel_from_scan) ( void *roam_profile, void **scan_cache, uint8_t *channel); diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c index b048579ee4e5..a881839e85b8 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c +++ b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c @@ -1674,15 +1674,16 @@ QDF_STATUS policy_mgr_get_channel_from_scan_result( return QDF_STATUS_E_INVAL; } - if (pm_ctx->sme_cbacks.sme_get_ap_channel_from_scan_cache) { - status = pm_ctx->sme_cbacks.sme_get_ap_channel_from_scan_cache + if (pm_ctx->sme_cbacks.sme_get_ap_channel_from_scan) { + status = pm_ctx->sme_cbacks.sme_get_ap_channel_from_scan (roam_profile, &scan_cache, channel); if (status != QDF_STATUS_SUCCESS) { policy_mgr_err("Get AP channel failed"); return status; } - } else + } else { policy_mgr_err("sme_get_ap_channel_from_scan_cache NULL"); + } if (pm_ctx->sme_cbacks.sme_scan_result_purge) status = pm_ctx->sme_cbacks.sme_scan_result_purge(scan_cache); @@ -1907,17 +1908,18 @@ QDF_STATUS policy_mgr_change_mcc_go_beacon_interval( policy_mgr_info("UPDATE Beacon Params"); if (QDF_SAP_MODE == dev_mode) { - if (!pm_ctx-> - sme_cbacks.sme_change_mcc_beacon_interval) { + if (pm_ctx->sme_cbacks.sme_change_mcc_beacon_interval + ) { + status = pm_ctx->sme_cbacks. + sme_change_mcc_beacon_interval(vdev_id); + if (status == QDF_STATUS_E_FAILURE) { + policy_mgr_err("Failed to update Beacon Params"); + return QDF_STATUS_E_FAILURE; + } + } else { policy_mgr_err("sme_change_mcc_beacon_interval callback is NULL"); return QDF_STATUS_E_FAILURE; } - status = pm_ctx->sme_cbacks. - sme_change_mcc_beacon_interval(vdev_id); - if (status == QDF_STATUS_E_FAILURE) { - policy_mgr_err("Failed to update Beacon Params"); - return QDF_STATUS_E_FAILURE; - } } return QDF_STATUS_SUCCESS; @@ -2137,14 +2139,15 @@ QDF_STATUS policy_mgr_get_nss_for_vdev(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_E_FAILURE; } - if (!pm_ctx->sme_cbacks.sme_get_nss_for_vdev) { + if (pm_ctx->sme_cbacks.sme_get_nss_for_vdev) { + pm_ctx->sme_cbacks.sme_get_nss_for_vdev( + dev_mode, nss_2g, nss_5g); + + } else { policy_mgr_err("sme_get_nss_for_vdev callback is NULL"); return QDF_STATUS_E_FAILURE; } - pm_ctx->sme_cbacks.sme_get_nss_for_vdev( - dev_mode, nss_2g, nss_5g); - return QDF_STATUS_SUCCESS; } diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_init_deinit.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_init_deinit.c index 146e997f545c..63c7b43be190 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_init_deinit.c +++ b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_init_deinit.c @@ -420,8 +420,8 @@ QDF_STATUS policy_mgr_register_sme_cb(struct wlan_objmgr_psoc *psoc, sme_cbacks->sme_soc_set_dual_mac_config; pm_ctx->sme_cbacks.sme_change_mcc_beacon_interval = sme_cbacks->sme_change_mcc_beacon_interval; - pm_ctx->sme_cbacks.sme_get_ap_channel_from_scan_cache = - sme_cbacks->sme_get_ap_channel_from_scan_cache; + pm_ctx->sme_cbacks.sme_get_ap_channel_from_scan = + sme_cbacks->sme_get_ap_channel_from_scan; pm_ctx->sme_cbacks.sme_scan_result_purge = sme_cbacks->sme_scan_result_purge;