From 631fd9f12b35d986dbd207fee900e4951cbade49 Mon Sep 17 00:00:00 2001 From: Archana Ramachandran Date: Sun, 19 Mar 2017 18:51:30 -0700 Subject: [PATCH] qcacmn: Policy manager component HDD callback changes Policy manager component HDD callback changes Change-Id: Ib2226a88b27abfff12104c8430245fe384978b9f CRs-Fixed: 2019994 --- inc/wlan_policy_mgr_api.h | 17 +++++++++-- src/wlan_policy_mgr_action.c | 50 ++++++------------------------- src/wlan_policy_mgr_init_deinit.c | 16 ++++++++++ 3 files changed, 40 insertions(+), 43 deletions(-) diff --git a/inc/wlan_policy_mgr_api.h b/inc/wlan_policy_mgr_api.h index ffb157a595aa..0181ca240cc3 100644 --- a/inc/wlan_policy_mgr_api.h +++ b/inc/wlan_policy_mgr_api.h @@ -816,9 +816,11 @@ struct policy_mgr_sme_cbacks { * SAP */ struct policy_mgr_hdd_cbacks { - void (*sap_restart_chan_switch_cb)(uint8_t, - uint32_t, uint32_t); + void (*sap_restart_chan_switch_cb)(struct wlan_objmgr_psoc *psoc, + uint8_t vdev_id, uint32_t channel, + uint32_t channel_bw); QDF_STATUS (*wlan_hdd_get_channel_for_sap_restart)( + struct wlan_objmgr_psoc *psoc, uint8_t vdev_id, uint8_t *channel, uint8_t *sec_ch, struct ch_params_s *ch_params); @@ -1454,6 +1456,17 @@ QDF_STATUS policy_mgr_register_sme_cb(struct wlan_objmgr_psoc *psoc, QDF_STATUS policy_mgr_register_hdd_cb(struct wlan_objmgr_psoc *psoc, struct policy_mgr_hdd_cbacks *hdd_cbacks); +/** + * policy_mgr_deregister_hdd_cb() - Deregister HDD callbacks + * @psoc: PSOC object information + * + * API, allows HDD to deregister callbacks + * + * Return: SUCCESS, + * Failure (if de-registration fails) + */ +QDF_STATUS policy_mgr_deregister_hdd_cb(struct wlan_objmgr_psoc *psoc); + /** * policy_mgr_register_tdls_cb() - register TDLS callbacks * @psoc: PSOC object information diff --git a/src/wlan_policy_mgr_action.c b/src/wlan_policy_mgr_action.c index b57bef7b163f..f713d36da4c8 100644 --- a/src/wlan_policy_mgr_action.c +++ b/src/wlan_policy_mgr_action.c @@ -659,8 +659,13 @@ void policy_mgr_check_sta_ap_concurrent_ch_intf(void *data) if (!policy_mgr_is_restart_sap_allowed(psoc, mcc_to_scc_switch)) goto work_done; + if (!pm_ctx->hdd_cbacks.wlan_hdd_get_channel_for_sap_restart) { + policy_mgr_err("SAP restart get channel callback in NULL"); + goto work_done; + } + status = pm_ctx->hdd_cbacks. - wlan_hdd_get_channel_for_sap_restart( + wlan_hdd_get_channel_for_sap_restart(psoc, cc_intf_work->vdev_id, &channel, &sec_ch, &ch_params); if (status != QDF_STATUS_SUCCESS) { @@ -680,7 +685,7 @@ void policy_mgr_check_sta_ap_concurrent_ch_intf(void *data) if (policy_mgr_is_sap_channel_change_without_restart( mcc_to_scc_switch) && pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb) { - pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb( + pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb(psoc, cc_intf_work->vdev_id, channel, ch_params.ch_width); } @@ -789,8 +794,8 @@ void policy_mgr_change_sap_channel_with_csa(struct wlan_objmgr_psoc *psoc, if (pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb) { policy_mgr_info("SAP change change without restart"); - pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb(vdev_id, - channel, ch_width); + pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb(psoc, + vdev_id, channel, ch_width); } } #endif @@ -892,43 +897,6 @@ QDF_STATUS policy_mgr_restart_opportunistic_timer( return status; } -#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH -QDF_STATUS policy_mgr_register_sap_restart_channel_switch_cb( - struct wlan_objmgr_psoc *psoc, - void (*sap_restart_chan_switch_cb)(uint8_t, uint32_t, uint32_t)) -{ - struct policy_mgr_psoc_priv_obj *policy_mgr_ctx; - - policy_mgr_ctx = policy_mgr_get_context(psoc); - if (!policy_mgr_ctx) { - policy_mgr_err("Invalid context"); - return QDF_STATUS_E_FAILURE; - } - - policy_mgr_ctx->hdd_cbacks.sap_restart_chan_switch_cb = - sap_restart_chan_switch_cb; - - return QDF_STATUS_SUCCESS; -} - -QDF_STATUS policy_mgr_deregister_sap_restart_channel_switch_cb( - struct wlan_objmgr_psoc *psoc) -{ - struct policy_mgr_psoc_priv_obj *policy_mgr_ctx; - - policy_mgr_ctx = policy_mgr_get_context(psoc); - if (!policy_mgr_ctx) { - policy_mgr_err("Invalid context"); - return QDF_STATUS_E_FAILURE; - } - - policy_mgr_ctx->hdd_cbacks.sap_restart_chan_switch_cb = NULL; - - return QDF_STATUS_SUCCESS; -} - -#endif - QDF_STATUS policy_mgr_set_hw_mode_on_channel_switch( struct wlan_objmgr_psoc *psoc, uint8_t session_id) { diff --git a/src/wlan_policy_mgr_init_deinit.c b/src/wlan_policy_mgr_init_deinit.c index ab6dc3a6f408..e81c003f4361 100644 --- a/src/wlan_policy_mgr_init_deinit.c +++ b/src/wlan_policy_mgr_init_deinit.c @@ -436,6 +436,22 @@ QDF_STATUS policy_mgr_register_hdd_cb(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } +QDF_STATUS policy_mgr_deregister_hdd_cb(struct wlan_objmgr_psoc *psoc) +{ + struct policy_mgr_psoc_priv_obj *pm_ctx; + + pm_ctx = policy_mgr_get_context(psoc); + if (!pm_ctx) { + policy_mgr_err("Invalid Context"); + return QDF_STATUS_E_FAILURE; + } + + pm_ctx->hdd_cbacks.sap_restart_chan_switch_cb = NULL; + pm_ctx->hdd_cbacks.wlan_hdd_get_channel_for_sap_restart = NULL; + + return QDF_STATUS_SUCCESS; +} + QDF_STATUS policy_mgr_register_wma_cb(struct wlan_objmgr_psoc *psoc, struct policy_mgr_wma_cbacks *wma_cbacks) {