diff --git a/init_deinit/dispatcher/src/dispatcher_init_deinit.c b/init_deinit/dispatcher/src/dispatcher_init_deinit.c index 2d6664c3809b..75e9fe03857a 100644 --- a/init_deinit/dispatcher/src/dispatcher_init_deinit.c +++ b/init_deinit/dispatcher/src/dispatcher_init_deinit.c @@ -64,6 +64,11 @@ #ifdef CONVERGED_TDLS_ENABLE #include "wlan_tdls_ucfg_api.h" #endif + +#ifdef WLAN_SUPPORT_SPLITMAC +#include +#endif + /** * DOC: This file provides various init/deinit trigger point for new * components. @@ -629,6 +634,28 @@ static QDF_STATUS dispatcher_offchan_txrx_deinit(void) } #endif /*WLAN_OFFCHAN_TXRX_ENABLE*/ +#ifdef WLAN_SUPPORT_SPLITMAC +static QDF_STATUS dispatcher_splitmac_init(void) +{ + return wlan_splitmac_init(); +} + +static QDF_STATUS dispatcher_splitmac_deinit(void) +{ + return wlan_splitmac_deinit(); +} +#else +static QDF_STATUS dispatcher_splitmac_init(void) +{ + return QDF_STATUS_SUCCESS; +} + +static QDF_STATUS dispatcher_splitmac_deinit(void) +{ + return QDF_STATUS_SUCCESS; +} +#endif /* WLAN_SUPPORT_SPLITMAC */ + QDF_STATUS dispatcher_init(void) { if (QDF_STATUS_SUCCESS != wlan_objmgr_global_obj_init()) @@ -682,6 +709,9 @@ QDF_STATUS dispatcher_init(void) if (QDF_STATUS_SUCCESS != dispatcher_init_son()) goto son_init_fail; + if (QDF_STATUS_SUCCESS != dispatcher_splitmac_init()) + goto splitmac_init_fail; + /* * scheduler INIT has to be the last as each component's * initialization has to happen first and then at the end @@ -693,6 +723,8 @@ QDF_STATUS dispatcher_init(void) return QDF_STATUS_SUCCESS; scheduler_init_fail: + dispatcher_splitmac_deinit(); +splitmac_init_fail: dispatcher_deinit_son(); son_init_fail: dispatcher_offchan_txrx_deinit(); @@ -740,6 +772,8 @@ QDF_STATUS dispatcher_deinit(void) */ QDF_BUG(QDF_STATUS_SUCCESS == scheduler_deinit()); + QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_splitmac_deinit()); + QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_deinit_son()); QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_offchan_txrx_deinit()); diff --git a/umac/cmn_services/inc/wlan_cmn.h b/umac/cmn_services/inc/wlan_cmn.h index 64d6e736a02c..36ba1ccfeb21 100644 --- a/umac/cmn_services/inc/wlan_cmn.h +++ b/umac/cmn_services/inc/wlan_cmn.h @@ -117,6 +117,7 @@ * @WLAN_UMAC_COMP_SPECTRAL: Spectral * @WLAN_UMAC_COMP_ID_MAX: Maximum components in UMAC * @WLAN_UMAC_COMP_OFFCHAN_TXRX: Offchan TxRx + * @WLAN_UMAC_COMP_SPLITMAC: SplitMAC * * This id is static. * On Adding new component, new id has to be assigned @@ -141,6 +142,7 @@ enum wlan_umac_comp_id { WLAN_UMAC_COMP_OFFCHAN_TXRX, WLAN_UMAC_COMP_SON, WLAN_UMAC_COMP_SPECTRAL, + WLAN_UMAC_COMP_SPLITMAC, WLAN_UMAC_COMP_ID_MAX, }; diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h index 5add6c470825..df4a0a30d2a3 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h @@ -177,6 +177,7 @@ typedef void (*wlan_objmgr_peer_status_handler)( * @WLAN_REGULATORY_NB_ID: NB regulatory operations * @WLAN_POLICY_MGR_ID: Policy Manager operations * @WLAN_SPECTRAL_ID: Spectral operations + * @WLAN_SPLITMAC_ID SplitMac * @WLAN_REF_ID_MAX: Max id used to generate ref count tracking array */ /* New value added to the enum must also be reflected in function @@ -211,6 +212,7 @@ typedef enum { WLAN_SON_ID = 25, WLAN_SA_API_ID = 26, WLAN_SPECTRAL_ID = 27, + WLAN_SPLITMAC_ID = 28, WLAN_REF_ID_MAX, } wlan_objmgr_ref_dbgid;