From 68429e32a0539ce7fe3b35caba1c2eeaf4df3e65 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Tue, 21 Mar 2017 15:04:13 -0700 Subject: [PATCH] qcacmn: Invoke NAN APIs from dispatcher Invoke NAN init/deinit and psoc enable/disable APIs from dispatcher component. Change-Id: I45a42d6601b4852e00fb9e3dd13510c8ea87ce5a CRs-Fixed: 2014795 --- .../dispatcher/src/dispatcher_init_deinit.c | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/init_deinit/dispatcher/src/dispatcher_init_deinit.c b/init_deinit/dispatcher/src/dispatcher_init_deinit.c index c8e73323e199..be6d3e9cc01c 100644 --- a/init_deinit/dispatcher/src/dispatcher_init_deinit.c +++ b/init_deinit/dispatcher/src/dispatcher_init_deinit.c @@ -35,6 +35,9 @@ #ifdef WIFI_POS_CONVERGED #include "wifi_pos_api.h" #endif /* WIFI_POS_CONVERGED */ +#ifdef WLAN_FEATURE_NAN_CONVERGENCE +#include "wlan_nan_api.h" +#endif /* WLAN_FEATURE_NAN_CONVERGENCE */ /** * DOC: This file provides various init/deinit trigger point for new @@ -312,6 +315,48 @@ static QDF_STATUS dispatcher_wifi_pos_disable(struct wlan_objmgr_psoc *psoc) } #endif +#ifdef WLAN_FEATURE_NAN_CONVERGENCE +static QDF_STATUS dispatcher_init_nan(void) +{ + return nan_init(); +} + +static QDF_STATUS dispatcher_deinit_nan(void) +{ + return nan_deinit(); +} + +static QDF_STATUS dispatcher_nan_psoc_enable(struct wlan_objmgr_psoc *psoc) +{ + return nan_psoc_enable(psoc); +} + +static QDF_STATUS dispatcher_nan_psoc_disable(struct wlan_objmgr_psoc *psoc) +{ + return nan_psoc_disable(psoc); +} +#else +static QDF_STATUS dispatcher_init_nan(void) +{ + return QDF_STATUS_SUCCESS; +} + +static QDF_STATUS dispatcher_deinit_nan(void) +{ + return QDF_STATUS_SUCCESS; +} + +static QDF_STATUS dispatcher_nan_psoc_enable(struct wlan_objmgr_psoc *psoc) +{ + return QDF_STATUS_SUCCESS; +} + +static QDF_STATUS dispatcher_nan_psoc_disable(struct wlan_objmgr_psoc *psoc) +{ + return QDF_STATUS_SUCCESS; +} +#endif + QDF_STATUS dispatcher_init(void) { if (QDF_STATUS_SUCCESS != wlan_objmgr_global_obj_init()) @@ -347,8 +392,13 @@ QDF_STATUS dispatcher_init(void) if (QDF_STATUS_SUCCESS != dispatcher_init_wifi_pos()) goto wifi_pos_init_fail; + if (QDF_STATUS_SUCCESS != dispatcher_init_nan()) + goto nan_init_fail; + return QDF_STATUS_SUCCESS; +nan_init_fail: + dispatcher_deinit_wifi_pos(); wifi_pos_init_fail: dispatcher_deinit_atf(); atf_init_fail: @@ -377,6 +427,8 @@ EXPORT_SYMBOL(dispatcher_init); QDF_STATUS dispatcher_deinit(void) { + QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_deinit_nan()); + QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_deinit_wifi_pos()); QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_deinit_atf()); @@ -472,8 +524,13 @@ QDF_STATUS dispatcher_psoc_enable(struct wlan_objmgr_psoc *psoc) if (QDF_STATUS_SUCCESS != dispatcher_wifi_pos_enable(psoc)) goto wifi_pos_psoc_enable_fail; + if (QDF_STATUS_SUCCESS != dispatcher_nan_psoc_enable(psoc)) + goto nan_psoc_enable_fail; + return QDF_STATUS_SUCCESS; +nan_psoc_enable_fail: + dispatcher_wifi_pos_disable(psoc); wifi_pos_psoc_enable_fail: atf_psoc_disable(psoc); atf_psoc_enable_fail: @@ -492,6 +549,8 @@ EXPORT_SYMBOL(dispatcher_psoc_enable); QDF_STATUS dispatcher_psoc_disable(struct wlan_objmgr_psoc *psoc) { + QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_nan_psoc_disable(psoc)); + QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_wifi_pos_disable(psoc)); QDF_BUG(QDF_STATUS_SUCCESS == atf_psoc_disable(psoc));