164064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************
264064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
364064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
464064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
564064216a8433360745f69edddce19a606659163The Android Open Source Project**| All rights reserved.                                                  |**
664064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
764064216a8433360745f69edddce19a606659163The Android Open Source Project**| Redistribution and use in source and binary forms, with or without    |**
864064216a8433360745f69edddce19a606659163The Android Open Source Project**| modification, are permitted provided that the following conditions    |**
964064216a8433360745f69edddce19a606659163The Android Open Source Project**| are met:                                                              |**
1064064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
1164064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions of source code must retain the above copyright     |**
1264064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer.      |**
1364064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Redistributions in binary form must reproduce the above copyright  |**
1464064216a8433360745f69edddce19a606659163The Android Open Source Project**|    notice, this list of conditions and the following disclaimer in    |**
1564064216a8433360745f69edddce19a606659163The Android Open Source Project**|    the documentation and/or other materials provided with the         |**
1664064216a8433360745f69edddce19a606659163The Android Open Source Project**|    distribution.                                                      |**
1764064216a8433360745f69edddce19a606659163The Android Open Source Project**|  * Neither the name Texas Instruments nor the names of its            |**
1864064216a8433360745f69edddce19a606659163The Android Open Source Project**|    contributors may be used to endorse or promote products derived    |**
1964064216a8433360745f69edddce19a606659163The Android Open Source Project**|    from this software without specific prior written permission.      |**
2064064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
2164064216a8433360745f69edddce19a606659163The Android Open Source Project**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
2264064216a8433360745f69edddce19a606659163The Android Open Source Project**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
2364064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
2464064216a8433360745f69edddce19a606659163The Android Open Source Project**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
2564064216a8433360745f69edddce19a606659163The Android Open Source Project**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
2664064216a8433360745f69edddce19a606659163The Android Open Source Project**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
2764064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
2864064216a8433360745f69edddce19a606659163The Android Open Source Project**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
2964064216a8433360745f69edddce19a606659163The Android Open Source Project**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
3064064216a8433360745f69edddce19a606659163The Android Open Source Project**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
3164064216a8433360745f69edddce19a606659163The Android Open Source Project**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
3264064216a8433360745f69edddce19a606659163The Android Open Source Project**|                                                                       |**
3364064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+**
3464064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/
3564064216a8433360745f69edddce19a606659163The Android Open Source Project
3664064216a8433360745f69edddce19a606659163The Android Open Source Project/** \file configMgr.c
3764064216a8433360745f69edddce19a606659163The Android Open Source Project *  \brief Driver interface to OS abstraction layer
3864064216a8433360745f69edddce19a606659163The Android Open Source Project *
3964064216a8433360745f69edddce19a606659163The Android Open Source Project *  \see srcApi.h
4064064216a8433360745f69edddce19a606659163The Android Open Source Project */
4164064216a8433360745f69edddce19a606659163The Android Open Source Project
4264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "osTIType.h"
4364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "osApi.h"
4464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "paramOut.h"
4564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "paramIn.h"
4664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "srcApi.h"
4764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "report.h"
4864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "whalCtrl_api.h"
4964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "connApi.h"
5064064216a8433360745f69edddce19a606659163The Android Open Source Project#include "siteMgrApi.h"
5164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "smeSmApi.h"
5264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "utils.h"
5364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "fsm.h"
5464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "configMgr.h"
5564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "DataCtrl_Api.h"
5664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "rsnApi.h"
5764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "scrApi.h"
5864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "MacServices_api.h"
5964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "ScanCncnApi.h"
6064064216a8433360745f69edddce19a606659163The Android Open Source Project#include "scanMngrApi.h"
6164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "regulatoryDomainApi.h"
6264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "measurementMgrApi.h"
6364064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED
6464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "excMngr.h"
6564064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
6664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "SoftGeminiApi.h"
6764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "roamingMngrApi.h"
6864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "qosMngr_API.h"
6964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "whalCtrl.h"
7064064216a8433360745f69edddce19a606659163The Android Open Source Project#include "TrafficMonitor.h"
7164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "PowerMgr_API.h"
7264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "EvHandler.h"
7364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "apConn.h"
7464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "currBss.h"
7564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "SwitchChannelApi.h"
7664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "ScanCncnAppApi.h"
7764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "healthMonitor.h"
7864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "wspVer.h"
7964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "Ethernet.h"
8064064216a8433360745f69edddce19a606659163The Android Open Source Project#include "Core_AdaptTx.h"
8164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "TNETW_Driver_api.h"
8264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "rx.h"
8364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "Ctrl.h"
8464064216a8433360745f69edddce19a606659163The Android Open Source Project
8564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "recoveryMgr_API.h"
8664064216a8433360745f69edddce19a606659163The Android Open Source Project
8764064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************/
8864064216a8433360745f69edddce19a606659163The Android Open Source Project/*      Local Functions                             */
8964064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************/
9064064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic configMgr_t *createDriver(TI_HANDLE hOs,void *pWLAN_Images, initTable_t *pInitTable);
9164064216a8433360745f69edddce19a606659163The Android Open Source Project
9264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void configMgr_config (TI_HANDLE  hConfigManager);
9364064216a8433360745f69edddce19a606659163The Android Open Source Project
9464064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic int createCore(configMgr_t *pConfigManager, TI_HANDLE hOs, initTable_t *pInitTable);
9564064216a8433360745f69edddce19a606659163The Android Open Source Project
9664064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic  void configMgr_RetrieveFWInfo(configMgr_t *pConfigManager, initTable_t *pInitTable, whalCtrl_chip_t *pChip_Version);
9764064216a8433360745f69edddce19a606659163The Android Open Source Project
9864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic TI_STATUS configCore(configMgr_t *pConfigManager, whalCtrl_chip_t *pChipVer);
9964064216a8433360745f69edddce19a606659163The Android Open Source Project
10064064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void release_module(configMgr_t *pConfigManager);
10164064216a8433360745f69edddce19a606659163The Android Open Source Project
10264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void configParamsAccessTable(configMgr_t *pConfigManager);
10364064216a8433360745f69edddce19a606659163The Android Open Source Project
10464064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_RegisterEvent(TI_HANDLE  hConfigMgr, PUCHAR pData, ULONG Length)
10564064216a8433360745f69edddce19a606659163The Android Open Source Project{
10664064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager= (configMgr_t *)hConfigMgr;
10764064216a8433360745f69edddce19a606659163The Android Open Source Project
10864064216a8433360745f69edddce19a606659163The Android Open Source Project    return EvHandlerRegisterEvent(pConfigManager->hEvHandler,pData,Length);
10964064216a8433360745f69edddce19a606659163The Android Open Source Project}
11064064216a8433360745f69edddce19a606659163The Android Open Source Project
11164064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_UnRegisterEvent(TI_HANDLE hConfigMgr, TI_HANDLE uEventID)
11264064216a8433360745f69edddce19a606659163The Android Open Source Project{
11364064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager= (configMgr_t *)hConfigMgr;
11464064216a8433360745f69edddce19a606659163The Android Open Source Project
11564064216a8433360745f69edddce19a606659163The Android Open Source Project    return EvHandlerUnRegisterEvent(pConfigManager->hEvHandler,uEventID);
11664064216a8433360745f69edddce19a606659163The Android Open Source Project}
11764064216a8433360745f69edddce19a606659163The Android Open Source Project
11864064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_GetEventData(TI_HANDLE hConfigMgr, PUCHAR pData, ULONG* pLength)
11964064216a8433360745f69edddce19a606659163The Android Open Source Project{
12064064216a8433360745f69edddce19a606659163The Android Open Source Project   configMgr_t *pConfigManager= (configMgr_t *)hConfigMgr;
12164064216a8433360745f69edddce19a606659163The Android Open Source Project
12264064216a8433360745f69edddce19a606659163The Android Open Source Project   return EvHandlerGetEventData(pConfigManager->hEvHandler,pData,pLength);
12364064216a8433360745f69edddce19a606659163The Android Open Source Project}
12464064216a8433360745f69edddce19a606659163The Android Open Source Project
12564064216a8433360745f69edddce19a606659163The Android Open Source Project
12664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************/
12764064216a8433360745f69edddce19a606659163The Android Open Source Project/*      Interface Functions Implementation          */
12864064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************/
12964064216a8433360745f69edddce19a606659163The Android Open Source Project
13064064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************
13164064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_create                              *
13264064216a8433360745f69edddce19a606659163The Android Open Source Project ************************************************************************
13364064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION: Driver creation & configuration function, called by the OS abstraction layer, performs the following:
13464064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Create the driver
13564064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Configure the driver
13664064216a8433360745f69edddce19a606659163The Android Open Source Project
13764064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:      hOs -           Handle to OS
13864064216a8433360745f69edddce19a606659163The Android Open Source Project            pInitTable -    Pointer to the init table as received from the OS abstraction layer
13964064216a8433360745f69edddce19a606659163The Android Open Source Project
14064064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:     pMac- MAC address of the device as read from the chip
14164064216a8433360745f69edddce19a606659163The Android Open Source Project
14264064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:     Handle to the driver
14364064216a8433360745f69edddce19a606659163The Android Open Source Project
14464064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
14564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE configMgr_create (TI_HANDLE         hOs,
14664064216a8433360745f69edddce19a606659163The Android Open Source Project                            void             *pWLAN_Images,
14764064216a8433360745f69edddce19a606659163The Android Open Source Project                            initTable_t      *pInitTable,
14864064216a8433360745f69edddce19a606659163The Android Open Source Project                            macAddress_t     *pMac)
14964064216a8433360745f69edddce19a606659163The Android Open Source Project{
15064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t  *pConfigManager;
15164064216a8433360745f69edddce19a606659163The Android Open Source Project
15264064216a8433360745f69edddce19a606659163The Android Open Source Project    /****************
15364064216a8433360745f69edddce19a606659163The Android Open Source Project    Create the Driver
15464064216a8433360745f69edddce19a606659163The Android Open Source Project    *****************/
15564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager = createDriver(hOs, pWLAN_Images, pInitTable);
15664064216a8433360745f69edddce19a606659163The Android Open Source Project
15764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager == NULL)
15864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
15964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Configuration manager creation failure \n"));
16064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NULL;
16164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
16264064216a8433360745f69edddce19a606659163The Android Open Source Project
16364064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_INIT(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
16464064216a8433360745f69edddce19a606659163The Android Open Source Project        ("CREATED DRIVER\n"));
16564064216a8433360745f69edddce19a606659163The Android Open Source Project
16664064216a8433360745f69edddce19a606659163The Android Open Source Project    return (TI_HANDLE)pConfigManager;
16764064216a8433360745f69edddce19a606659163The Android Open Source Project}
16864064216a8433360745f69edddce19a606659163The Android Open Source Project
16964064216a8433360745f69edddce19a606659163The Android Open Source Project
17064064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************
17164064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_init                                *
17264064216a8433360745f69edddce19a606659163The Android Open Source Project ************************************************************************
17364064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION: FW Code Download in partition
17464064216a8433360745f69edddce19a606659163The Android Open Source Project
17564064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:      hOs -           Handle to OS
17664064216a8433360745f69edddce19a606659163The Android Open Source Project            TI_HANDLE       hConfigManager
17764064216a8433360745f69edddce19a606659163The Android Open Source Project            pInitTable -    Pointer to the init table as received from the OS abstraction layer
17864064216a8433360745f69edddce19a606659163The Android Open Source Project
17964064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:     pMac- MAC address of the device as read from the chip
18064064216a8433360745f69edddce19a606659163The Android Open Source Project
18164064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:     Handle to the driver
18264064216a8433360745f69edddce19a606659163The Android Open Source Project
18364064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
18464064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE configMgr_init (TI_HANDLE     hOs,
18564064216a8433360745f69edddce19a606659163The Android Open Source Project                          TI_HANDLE     hConfigManager,
18664064216a8433360745f69edddce19a606659163The Android Open Source Project                          void         *pWLAN_Images,
18764064216a8433360745f69edddce19a606659163The Android Open Source Project                          initTable_t  *pInitTable,
18864064216a8433360745f69edddce19a606659163The Android Open Source Project                          macAddress_t *pMacAddr)
18964064216a8433360745f69edddce19a606659163The Android Open Source Project{
19064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t  *pConfigManager = (configMgr_t *)hConfigManager;
19164064216a8433360745f69edddce19a606659163The Android Open Source Project
19264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->pInitTable = pInitTable;
19364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->pMacAddr = pMacAddr;
19464064216a8433360745f69edddce19a606659163The Android Open Source Project
19564064216a8433360745f69edddce19a606659163The Android Open Source Project    /*
19664064216a8433360745f69edddce19a606659163The Android Open Source Project     * Init the module and Download the FW code in partition
19764064216a8433360745f69edddce19a606659163The Android Open Source Project     * At this stage it is very important that the pConfigManager has been created and linked to the HAL Ctrl
19864064216a8433360745f69edddce19a606659163The Android Open Source Project     * so that if the first DMA ends before the user returns to wait for the end of DMA
19964064216a8433360745f69edddce19a606659163The Android Open Source Project     * then the pConfigManager will have a valid value
20064064216a8433360745f69edddce19a606659163The Android Open Source Project     */
20164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (TnetwDrv_Init (pConfigManager->hTnetwDrv,
20264064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hReport,
20364064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hMemMgr,
20464064216a8433360745f69edddce19a606659163The Android Open Source Project                       hConfigManager,
20564064216a8433360745f69edddce19a606659163The Android Open Source Project                       pWLAN_Images,
20664064216a8433360745f69edddce19a606659163The Android Open Source Project                       &pInitTable->TnetwDrv_InitParams,
20764064216a8433360745f69edddce19a606659163The Android Open Source Project                       configMgr_config) == TNETWIF_ERROR)
20864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
20964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....TNETW_Driver_Initialize: TNETW_Driver_Init failure \n"));
21064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NULL;
21164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
21264064216a8433360745f69edddce19a606659163The Android Open Source Project
21364064216a8433360745f69edddce19a606659163The Android Open Source Project    return pConfigManager->hTnetwDrv;
21464064216a8433360745f69edddce19a606659163The Android Open Source Project}
21564064216a8433360745f69edddce19a606659163The Android Open Source Project
21664064216a8433360745f69edddce19a606659163The Android Open Source Project
21764064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************
21864064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION: Driver creation & configuration function, called by the OS abstraction layer, performs the following:
21964064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Create the driver
22064064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Configure the driver
22164064216a8433360745f69edddce19a606659163The Android Open Source Project
22264064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:      hOs -           Handle to OS
22364064216a8433360745f69edddce19a606659163The Android Open Source Project            pInitTable -    Pointer to the init table as received from the OS abstraction layer
22464064216a8433360745f69edddce19a606659163The Android Open Source Project
22564064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:     pMac- MAC address of the device as read from the chip
22664064216a8433360745f69edddce19a606659163The Android Open Source Project
22764064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:     Handle to the driver
22864064216a8433360745f69edddce19a606659163The Android Open Source Project
22964064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
23064064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void configMgr_config (TI_HANDLE  hConfigManager)
23164064216a8433360745f69edddce19a606659163The Android Open Source Project{
23264064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t     *pConfigManager = (configMgr_t *)hConfigManager;
23364064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrl_chip_t  chipVer;
23464064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT8           *pMac;
23564064216a8433360745f69edddce19a606659163The Android Open Source Project
23664064216a8433360745f69edddce19a606659163The Android Open Source Project    /****************
23764064216a8433360745f69edddce19a606659163The Android Open Source Project    Config the Driver
23864064216a8433360745f69edddce19a606659163The Android Open Source Project    *****************/
23964064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Config Manager...\n"));
24064064216a8433360745f69edddce19a606659163The Android Open Source Project
24164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (configCore (pConfigManager, &chipVer) == NOK)
24264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
24364064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Configuration manager configuration failure\n"));
24464064216a8433360745f69edddce19a606659163The Android Open Source Project        release_module (pConfigManager);
24564064216a8433360745f69edddce19a606659163The Android Open Source Project        return;
24664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
24764064216a8433360745f69edddce19a606659163The Android Open Source Project
24864064216a8433360745f69edddce19a606659163The Android Open Source Project    pMac = (UINT8 *)chipVer.macAddress.addr;
24964064216a8433360745f69edddce19a606659163The Android Open Source Project
25064064216a8433360745f69edddce19a606659163The Android Open Source Project    os_memoryCopy (pConfigManager->hOs,
25164064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->pMacAddr,
25264064216a8433360745f69edddce19a606659163The Android Open Source Project                   (void *)pConfigManager->pInitTable->ctrlDataInitParams.ctrlDataDeviceMacAddress.addr,
25364064216a8433360745f69edddce19a606659163The Android Open Source Project                   MAC_ADDR_LEN);
25464064216a8433360745f69edddce19a606659163The Android Open Source Project
25564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->state = CFG_MGR_STATE_IDLE;
25664064216a8433360745f69edddce19a606659163The Android Open Source Project
25764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Print the driver and firmware version and the mac address */
25864064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("\n"));
25964064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("--------------------------------------------------------------------\n"));
26064064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Driver Version  : %s\n", SW_VERSION_STR));
26164064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Firmware Version: %s\n", chipVer.fwVer));
26264064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Station ID      : %02X-%02X-%02X-%02X-%02X-%02X\n",
26364064216a8433360745f69edddce19a606659163The Android Open Source Project                    pMac[0], pMac[1], pMac[2], pMac[3], pMac[4], pMac[5]));
26464064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("--------------------------------------------------------------------\n"));
26564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("\n"));
26664064216a8433360745f69edddce19a606659163The Android Open Source Project}
26764064216a8433360745f69edddce19a606659163The Android Open Source Project
26864064216a8433360745f69edddce19a606659163The Android Open Source Project
26964064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************
27064064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_start                               *
27164064216a8433360745f69edddce19a606659163The Android Open Source Project ************************************************************************
27264064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION: Driver start function, called by the OS abstraction layer in
27364064216a8433360745f69edddce19a606659163The Android Open Source Project            order to start the driver after creation.
27464064216a8433360745f69edddce19a606659163The Android Open Source Project            It enables the ISR and sends a start event to the driver's main state machine
27564064216a8433360745f69edddce19a606659163The Android Open Source Project            If the the driver was in IDLE state, it sends a 'WakeUp' command to the chip.
27664064216a8433360745f69edddce19a606659163The Android Open Source Project
27764064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:      hConfigMgr -    Handle to the driver
27864064216a8433360745f69edddce19a606659163The Android Open Source Project
27964064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
28064064216a8433360745f69edddce19a606659163The Android Open Source Project
28164064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:     OK on success, NOK on failure
28264064216a8433360745f69edddce19a606659163The Android Open Source Project
28364064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
28464064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_start(TI_HANDLE hConfigMgr)
28564064216a8433360745f69edddce19a606659163The Android Open Source Project{
28664064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_STATUS  status = PARAM_VALUE_NOT_VALID;
28764064216a8433360745f69edddce19a606659163The Android Open Source Project
28864064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
28964064216a8433360745f69edddce19a606659163The Android Open Source Project
29064064216a8433360745f69edddce19a606659163The Android Open Source Project    switch (pConfigManager->state)
29164064216a8433360745f69edddce19a606659163The Android Open Source Project   {
29264064216a8433360745f69edddce19a606659163The Android Open Source Project    case CFG_MGR_STATE_IDLE :
29364064216a8433360745f69edddce19a606659163The Android Open Source Project        pConfigManager->state = CFG_MGR_STATE_RUNNING;
29464064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
29564064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_IDLE, EVENT_START> --> STATE_RUNNING\n\n"));
29664064216a8433360745f69edddce19a606659163The Android Open Source Project        status = smeSm_start(pConfigManager->hSmeSm);
29764064216a8433360745f69edddce19a606659163The Android Open Source Project
29864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef SDIO_INTERRUPT_HANDLING_ON
29964064216a8433360745f69edddce19a606659163The Android Open Source Project        whalCtr_SlaveAckMaskNotification(pConfigManager->hHalCtrl);
30064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
30164064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
30264064216a8433360745f69edddce19a606659163The Android Open Source Project
30364064216a8433360745f69edddce19a606659163The Android Open Source Project
30464064216a8433360745f69edddce19a606659163The Android Open Source Project   case CFG_MGR_STATE_RUNNING :
30564064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
30664064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("Got start command while not in RUNNING, ignoring the command"));
30764064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
30864064216a8433360745f69edddce19a606659163The Android Open Source Project
30964064216a8433360745f69edddce19a606659163The Android Open Source Project
31064064216a8433360745f69edddce19a606659163The Android Open Source Project   case CFG_MGR_STATE_STOPPED:
31164064216a8433360745f69edddce19a606659163The Android Open Source Project        pConfigManager->state = CFG_MGR_STATE_RUNNING;
31264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
31364064216a8433360745f69edddce19a606659163The Android Open Source Project                         ("<STATE_STOPPED, EVENT_START> --> STATE_RUNNING\n\n"));
31464064216a8433360745f69edddce19a606659163The Android Open Source Project        status = smeSm_start(pConfigManager->hSmeSm);
31564064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
31664064216a8433360745f69edddce19a606659163The Android Open Source Project
31764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
31864064216a8433360745f69edddce19a606659163The Android Open Source Project
31964064216a8433360745f69edddce19a606659163The Android Open Source Project    return status;
32064064216a8433360745f69edddce19a606659163The Android Open Source Project}
32164064216a8433360745f69edddce19a606659163The Android Open Source Project
32264064216a8433360745f69edddce19a606659163The Android Open Source Project
32364064216a8433360745f69edddce19a606659163The Android Open Source Project/************************************************************************
32464064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_stop                                *
32564064216a8433360745f69edddce19a606659163The Android Open Source Project ************************************************************************
32664064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION: Driver stop function, called by the OS abstraction layer in
32764064216a8433360745f69edddce19a606659163The Android Open Source Project            order to stop the driver.
32864064216a8433360745f69edddce19a606659163The Android Open Source Project            It sends a stop event to the driver main state mmachine
32964064216a8433360745f69edddce19a606659163The Android Open Source Project            If the the driver was in RUNNING state, it sends a 'Sleep' command to the chip.
33064064216a8433360745f69edddce19a606659163The Android Open Source Project
33164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:      hConfigMgr -    Handle to the driver
33264064216a8433360745f69edddce19a606659163The Android Open Source Project
33364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
33464064216a8433360745f69edddce19a606659163The Android Open Source Project
33564064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:     OK on success, NOK on failure
33664064216a8433360745f69edddce19a606659163The Android Open Source Project
33764064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
33864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_stop(TI_HANDLE hConfigMgr)
33964064216a8433360745f69edddce19a606659163The Android Open Source Project{
34064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
34164064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_STATUS   status  = PARAM_VALUE_NOT_VALID;
34264064216a8433360745f69edddce19a606659163The Android Open Source Project
34364064216a8433360745f69edddce19a606659163The Android Open Source Project
34464064216a8433360745f69edddce19a606659163The Android Open Source Project   switch (pConfigManager->state)
34564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
34664064216a8433360745f69edddce19a606659163The Android Open Source Project    case CFG_MGR_STATE_IDLE :
34764064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
34864064216a8433360745f69edddce19a606659163The Android Open Source Project                         ("<STATE_IDLE, EVENT_STOP> --> STATE_IDLE\n\n"));
34964064216a8433360745f69edddce19a606659163The Android Open Source Project        status = STATION_IS_NOT_RUNNING;
35064064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
35164064216a8433360745f69edddce19a606659163The Android Open Source Project
35264064216a8433360745f69edddce19a606659163The Android Open Source Project   case CFG_MGR_STATE_RUNNING :
35364064216a8433360745f69edddce19a606659163The Android Open Source Project        pConfigManager->state = CFG_MGR_STATE_STOPPED;
35464064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
35564064216a8433360745f69edddce19a606659163The Android Open Source Project                         ("<STATE_RUNNING, EVENT_STOP> --> STATE_STOPPED\n\n"));
35664064216a8433360745f69edddce19a606659163The Android Open Source Project        smeSm_stop(pConfigManager->hSmeSm);
35764064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
35864064216a8433360745f69edddce19a606659163The Android Open Source Project
35964064216a8433360745f69edddce19a606659163The Android Open Source Project   case CFG_MGR_STATE_STOPPED:
36064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
36164064216a8433360745f69edddce19a606659163The Android Open Source Project                         ("<STATE_STOPPED, EVENT_STOP> --> STATE_STOPPED\n\n"));
36264064216a8433360745f69edddce19a606659163The Android Open Source Project        status = STATION_IS_NOT_RUNNING;
36364064216a8433360745f69edddce19a606659163The Android Open Source Project        break;
36464064216a8433360745f69edddce19a606659163The Android Open Source Project
36564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
36664064216a8433360745f69edddce19a606659163The Android Open Source Project
36764064216a8433360745f69edddce19a606659163The Android Open Source Project   return status;
36864064216a8433360745f69edddce19a606659163The Android Open Source Project}
36964064216a8433360745f69edddce19a606659163The Android Open Source Project
37064064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
37164064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_setParam                                            *
37264064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
37364064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to set a parameter the driver.
37464064216a8433360745f69edddce19a606659163The Android Open Source Project                If the parameter can not be set from outside the driver it returns a fialure status
37564064216a8433360745f69edddce19a606659163The Android Open Source Project                The parameters is set to the module that uses as its father in the system
37664064216a8433360745f69edddce19a606659163The Android Open Source Project                (refer to the file paramOut.h for more explanations)
37764064216a8433360745f69edddce19a606659163The Android Open Source Project                If the father returns a RE_SCAN_NEEDED status, it restarts the main
37864064216a8433360745f69edddce19a606659163The Android Open Source Project                state machine of the driver.
37964064216a8433360745f69edddce19a606659163The Android Open Source Project
38064064216a8433360745f69edddce19a606659163The Android Open Source Project
38164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr -    Handle to the driver
38264064216a8433360745f69edddce19a606659163The Android Open Source Project                pParam  -       Pointer to the parameter
38364064216a8433360745f69edddce19a606659163The Android Open Source Project
38464064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
38564064216a8433360745f69edddce19a606659163The Android Open Source Project
38664064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
38764064216a8433360745f69edddce19a606659163The Android Open Source Project
38864064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
38964064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_setParam(TI_HANDLE hConfigMgr, paramInfo_t *pParam)
39064064216a8433360745f69edddce19a606659163The Android Open Source Project{
39164064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
39264064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_STATUS    status;
39364064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32       moduleNumber;
39464064216a8433360745f69edddce19a606659163The Android Open Source Project
39564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
39664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
39764064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_SET_PARAM while in IDLE state \n\n"));
39864064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
39964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
40064064216a8433360745f69edddce19a606659163The Android Open Source Project
40164064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
40264064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_SET_PARAM> --> STATE_RUNNING\n\n"));
40364064216a8433360745f69edddce19a606659163The Android Open Source Project
40464064216a8433360745f69edddce19a606659163The Android Open Source Project
40564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!EXTERNAL_SET_ENABLE(pParam->paramType))
40664064216a8433360745f69edddce19a606659163The Android Open Source Project        return EXTERNAL_SET_PARAM_DENIED;
40764064216a8433360745f69edddce19a606659163The Android Open Source Project
40864064216a8433360745f69edddce19a606659163The Android Open Source Project    moduleNumber = GET_PARAM_MODULE_NUMBER(pParam->paramType);
40964064216a8433360745f69edddce19a606659163The Android Open Source Project
41064064216a8433360745f69edddce19a606659163The Android Open Source Project    if  (moduleNumber > MAX_PARAM_MODULE_NUMBER)
41164064216a8433360745f69edddce19a606659163The Android Open Source Project        return PARAM_MODULE_NUMBER_INVALID;
41264064216a8433360745f69edddce19a606659163The Android Open Source Project
41364064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
41464064216a8433360745f69edddce19a606659163The Android Open Source Project                   ("ParamType=0x%x ModuleNumber=0x%x\n\n",pParam->paramType));
41564064216a8433360745f69edddce19a606659163The Android Open Source Project
41664064216a8433360745f69edddce19a606659163The Android Open Source Project    status = pConfigManager->paramAccessTable[moduleNumber - 1].set(pConfigManager->paramAccessTable[moduleNumber - 1].handle, pParam);
41764064216a8433360745f69edddce19a606659163The Android Open Source Project
41864064216a8433360745f69edddce19a606659163The Android Open Source Project    if(status == RE_SCAN_NEEDED)
41964064216a8433360745f69edddce19a606659163The Android Open Source Project        return smeSm_reselect(pConfigManager->hSmeSm);
42064064216a8433360745f69edddce19a606659163The Android Open Source Project    else
42164064216a8433360745f69edddce19a606659163The Android Open Source Project        return status;
42264064216a8433360745f69edddce19a606659163The Android Open Source Project
42364064216a8433360745f69edddce19a606659163The Android Open Source Project}
42464064216a8433360745f69edddce19a606659163The Android Open Source Project
42564064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
42664064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_getParam                                            *
42764064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
42864064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to get a parameter the driver.
42964064216a8433360745f69edddce19a606659163The Android Open Source Project                If the parameter can not be get from outside the driver it returns a fialure status
43064064216a8433360745f69edddce19a606659163The Android Open Source Project                The parameters is get from the module that uses as its father in the system
43164064216a8433360745f69edddce19a606659163The Android Open Source Project                (refer to the file paramOut.h for more explanations)
43264064216a8433360745f69edddce19a606659163The Android Open Source Project
43364064216a8433360745f69edddce19a606659163The Android Open Source Project
43464064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr -    Handle to the driver
43564064216a8433360745f69edddce19a606659163The Android Open Source Project                pParam  -       Pointer to the parameter
43664064216a8433360745f69edddce19a606659163The Android Open Source Project
43764064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
43864064216a8433360745f69edddce19a606659163The Android Open Source Project
43964064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
44064064216a8433360745f69edddce19a606659163The Android Open Source Project
44164064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
44264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_getParam (TI_HANDLE hConfigMgr, paramInfo_t *pParam)
44364064216a8433360745f69edddce19a606659163The Android Open Source Project
44464064216a8433360745f69edddce19a606659163The Android Open Source Project{
44564064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
44664064216a8433360745f69edddce19a606659163The Android Open Source Project    UINT32       moduleNumber;
44764064216a8433360745f69edddce19a606659163The Android Open Source Project
44864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* This is a unique parameter, it checks the driver running status, therefore we handle it here. */
44964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pParam->paramType == DRIVER_STATUS_PARAM)
45064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
45164064216a8433360745f69edddce19a606659163The Android Open Source Project        if (pConfigManager->state == CFG_MGR_STATE_RUNNING)
45264064216a8433360745f69edddce19a606659163The Android Open Source Project            pParam->content.driverStatus = DRIVER_STATUS_RUNNING;
45364064216a8433360745f69edddce19a606659163The Android Open Source Project        else
45464064216a8433360745f69edddce19a606659163The Android Open Source Project            pParam->content.driverStatus = DRIVER_STATUS_IDLE;
45564064216a8433360745f69edddce19a606659163The Android Open Source Project        return OK;
45664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
45764064216a8433360745f69edddce19a606659163The Android Open Source Project
45864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
45964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
46064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_GET_PARAM while in IDLE state \n\n"));
46164064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
46264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
46364064216a8433360745f69edddce19a606659163The Android Open Source Project
46464064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
46564064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_GET_PARAM> --> STATE_RUNNING\n\n"));
46664064216a8433360745f69edddce19a606659163The Android Open Source Project
46764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!EXTERNAL_GET_ENABLE(pParam->paramType))
46864064216a8433360745f69edddce19a606659163The Android Open Source Project        return EXTERNAL_GET_PARAM_DENIED;
46964064216a8433360745f69edddce19a606659163The Android Open Source Project
47064064216a8433360745f69edddce19a606659163The Android Open Source Project    moduleNumber = GET_PARAM_MODULE_NUMBER(pParam->paramType);
47164064216a8433360745f69edddce19a606659163The Android Open Source Project
47264064216a8433360745f69edddce19a606659163The Android Open Source Project    if  (moduleNumber > MAX_PARAM_MODULE_NUMBER)
47364064216a8433360745f69edddce19a606659163The Android Open Source Project        return PARAM_MODULE_NUMBER_INVALID;
47464064216a8433360745f69edddce19a606659163The Android Open Source Project
47564064216a8433360745f69edddce19a606659163The Android Open Source Project    return pConfigManager->paramAccessTable[moduleNumber - 1].get(pConfigManager->paramAccessTable[moduleNumber - 1].handle, pParam);
47664064216a8433360745f69edddce19a606659163The Android Open Source Project}
47764064216a8433360745f69edddce19a606659163The Android Open Source Project
47864064216a8433360745f69edddce19a606659163The Android Open Source Project
47964064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
48064064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_checkTxQueueSize                                            *
48164064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
48264064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Check Tx queue size
48364064216a8433360745f69edddce19a606659163The Android Open Source Project
48464064216a8433360745f69edddce19a606659163The Android Open Source Project
48564064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
48664064216a8433360745f69edddce19a606659163The Android Open Source Project
48764064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
48864064216a8433360745f69edddce19a606659163The Android Open Source Project
48964064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on queue full
49064064216a8433360745f69edddce19a606659163The Android Open Source Project
49164064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
49264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_checkTxQueueSize(TI_HANDLE hConfigMgr,UINT8 qIndex)
49364064216a8433360745f69edddce19a606659163The Android Open Source Project{
49464064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
49564064216a8433360745f69edddce19a606659163The Android Open Source Project    return txData_checkQueueSize(pConfigManager->hTxData, qIndex);
49664064216a8433360745f69edddce19a606659163The Android Open Source Project}
49764064216a8433360745f69edddce19a606659163The Android Open Source Project
49864064216a8433360745f69edddce19a606659163The Android Open Source Project
49964064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
50064064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_printTxQueues                                            *
50164064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
50264064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Tx queues print
50364064216a8433360745f69edddce19a606659163The Android Open Source Project
50464064216a8433360745f69edddce19a606659163The Android Open Source Project
50564064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
50664064216a8433360745f69edddce19a606659163The Android Open Source Project
50764064216a8433360745f69edddce19a606659163The Android Open Source Project
50864064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
50964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
51064064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid configMgr_printTxQueuesAndMemPolls(TI_HANDLE hConfigMgr)
51164064216a8433360745f69edddce19a606659163The Android Open Source Project{
51264064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
51364064216a8433360745f69edddce19a606659163The Android Open Source Project    txData_printTxQosCounters(pConfigManager->hTxData);
51464064216a8433360745f69edddce19a606659163The Android Open Source Project    txData_fullPrintDataMsduList(pConfigManager->hTxData);
51564064216a8433360745f69edddce19a606659163The Android Open Source Project    memMngrPrint(pConfigManager->hMemMgr);
51664064216a8433360745f69edddce19a606659163The Android Open Source Project}
51764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
51864064216a8433360745f69edddce19a606659163The Android Open Source Project
51964064216a8433360745f69edddce19a606659163The Android Open Source Project
52064064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
52164064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_sendMsdu                                            *
52264064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
52364064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstract in layer in order to send a MSDU to the wlan network.
52464064216a8433360745f69edddce19a606659163The Android Open Source Project
52564064216a8433360745f69edddce19a606659163The Android Open Source Project
52664064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
52764064216a8433360745f69edddce19a606659163The Android Open Source Project                pMsdu       -   Pointer to the MSDU
52864064216a8433360745f69edddce19a606659163The Android Open Source Project                packet_DTag -   NDIS packet user priority tag
52964064216a8433360745f69edddce19a606659163The Android Open Source Project
53064064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
53164064216a8433360745f69edddce19a606659163The Android Open Source Project
53264064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
53364064216a8433360745f69edddce19a606659163The Android Open Source Project
53464064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
53564064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_sendMsdu (TI_HANDLE      hConfigMgr,
53664064216a8433360745f69edddce19a606659163The Android Open Source Project                              mem_MSDU_T    *pMsdu,
53764064216a8433360745f69edddce19a606659163The Android Open Source Project                              UINT8          packet_DTag)
53864064216a8433360745f69edddce19a606659163The Android Open Source Project{
53964064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
54064064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_STATUS  status = OK;
54164064216a8433360745f69edddce19a606659163The Android Open Source Project
54264064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
54364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Add time stamp */
54464064216a8433360745f69edddce19a606659163The Android Open Source Project    wlan_memMngrAddTimeStamp (pConfigManager->hMemMgr, pMsdu);
54564064216a8433360745f69edddce19a606659163The Android Open Source Project
54664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
54764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
54864064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_SEND_MSDU while in IDLE state \n\n"));
54964064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
55064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
55164064216a8433360745f69edddce19a606659163The Android Open Source Project
55264064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
55364064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_SEND_MSDU> --> STATE_RUNNING\n\n"));
55464064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
55564064216a8433360745f69edddce19a606659163The Android Open Source Project
55664064216a8433360745f69edddce19a606659163The Android Open Source Project   WLAN_REPORT_DEBUG_TX(pConfigManager->hReport,("configMgr_sendMsdu Sending packet Lenght\n",pMsdu->dataLen));
55764064216a8433360745f69edddce19a606659163The Android Open Source Project   status =  txData_sendPktToWlan(pConfigManager->hTxData, pMsdu, packet_DTag);
55864064216a8433360745f69edddce19a606659163The Android Open Source Project   return status;
55964064216a8433360745f69edddce19a606659163The Android Open Source Project}
56064064216a8433360745f69edddce19a606659163The Android Open Source Project
56164064216a8433360745f69edddce19a606659163The Android Open Source Project
56264064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
56364064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_PollApPackets                                           *
56464064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
56564064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to send VAD frame.
56664064216a8433360745f69edddce19a606659163The Android Open Source Project                Calls the txData module corresponding function.
56764064216a8433360745f69edddce19a606659163The Android Open Source Project
56864064216a8433360745f69edddce19a606659163The Android Open Source Project
56964064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
57064064216a8433360745f69edddce19a606659163The Android Open Source Project
57164064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
57264064216a8433360745f69edddce19a606659163The Android Open Source Project
57364064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
57464064216a8433360745f69edddce19a606659163The Android Open Source Project
57564064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
57664064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_PollApPackets(TI_HANDLE     hConfigMgr)
57764064216a8433360745f69edddce19a606659163The Android Open Source Project{
57864064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
57964064216a8433360745f69edddce19a606659163The Android Open Source Project
58064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
58164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
58264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_SEND_MSDU while in IDLE state \n\n"));
58364064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
58464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
58564064216a8433360745f69edddce19a606659163The Android Open Source Project
58664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
58764064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_SEND_VAD_FRAME> --> STATE_RUNNING\n\n"));
58864064216a8433360745f69edddce19a606659163The Android Open Source Project
58964064216a8433360745f69edddce19a606659163The Android Open Source Project    return txData_sendVadFrame(pConfigManager->hTxData, POLL_AP_PACKETS_FORCE_PS_POLL);
59064064216a8433360745f69edddce19a606659163The Android Open Source Project}
59164064216a8433360745f69edddce19a606659163The Android Open Source Project
59264064216a8433360745f69edddce19a606659163The Android Open Source Project
59364064216a8433360745f69edddce19a606659163The Android Open Source Project
59464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
59564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_HandleBusTxn_Complete                                    *
59664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
59764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order notify the driver that the DMA has finished
59864064216a8433360745f69edddce19a606659163The Android Open Source Project
59964064216a8433360745f69edddce19a606659163The Android Open Source Project
60064064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
60164064216a8433360745f69edddce19a606659163The Android Open Source Project
60264064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
60364064216a8433360745f69edddce19a606659163The Android Open Source Project
60464064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
60564064216a8433360745f69edddce19a606659163The Android Open Source Project
60664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
60764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_HandleBusTxn_Complete(TI_HANDLE hConfigMgr)
60864064216a8433360745f69edddce19a606659163The Android Open Source Project{
60964064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
61064064216a8433360745f69edddce19a606659163The Android Open Source Project
61164064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrl_HandleBusTxn_Complete(pConfigManager->hHalCtrl);
61264064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
61364064216a8433360745f69edddce19a606659163The Android Open Source Project}
61464064216a8433360745f69edddce19a606659163The Android Open Source Project
61564064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
61664064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_handleInterrupts                                    *
61764064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
61864064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order notify the driver that a ISR arrived
61964064216a8433360745f69edddce19a606659163The Android Open Source Project
62064064216a8433360745f69edddce19a606659163The Android Open Source Project
62164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
62264064216a8433360745f69edddce19a606659163The Android Open Source Project
62364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
62464064216a8433360745f69edddce19a606659163The Android Open Source Project
62564064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
62664064216a8433360745f69edddce19a606659163The Android Open Source Project
62764064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
62864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_handleInterrupts(TI_HANDLE hConfigMgr)
62964064216a8433360745f69edddce19a606659163The Android Open Source Project{
63064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
63164064216a8433360745f69edddce19a606659163The Android Open Source Project
63264064216a8433360745f69edddce19a606659163The Android Open Source Project    return (TI_STATUS)whalCtrl_HandleInterrupts(pConfigManager->hHalCtrl);
63364064216a8433360745f69edddce19a606659163The Android Open Source Project}
63464064216a8433360745f69edddce19a606659163The Android Open Source Project
63564064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
63664064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_enableInterrupts                                    *
63764064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
63864064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to enable interrupts
63964064216a8433360745f69edddce19a606659163The Android Open Source Project
64064064216a8433360745f69edddce19a606659163The Android Open Source Project
64164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
64264064216a8433360745f69edddce19a606659163The Android Open Source Project
64364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
64464064216a8433360745f69edddce19a606659163The Android Open Source Project
64564064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
64664064216a8433360745f69edddce19a606659163The Android Open Source Project
64764064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
64864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_enableInterrupts(TI_HANDLE hConfigMgr)
64964064216a8433360745f69edddce19a606659163The Android Open Source Project{
65064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
65164064216a8433360745f69edddce19a606659163The Android Open Source Project
65264064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrl_EnableInterrupts(pConfigManager->hHalCtrl);
65364064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
65464064216a8433360745f69edddce19a606659163The Android Open Source Project}
65564064216a8433360745f69edddce19a606659163The Android Open Source Project
65664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
65764064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_disableInterrupts                                   *
65864064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
65964064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to disable interrupts
66064064216a8433360745f69edddce19a606659163The Android Open Source Project
66164064216a8433360745f69edddce19a606659163The Android Open Source Project
66264064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
66364064216a8433360745f69edddce19a606659163The Android Open Source Project
66464064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
66564064216a8433360745f69edddce19a606659163The Android Open Source Project
66664064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
66764064216a8433360745f69edddce19a606659163The Android Open Source Project
66864064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
66964064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_disableInterrupts(TI_HANDLE hConfigMgr)
67064064216a8433360745f69edddce19a606659163The Android Open Source Project{
67164064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
67264064216a8433360745f69edddce19a606659163The Android Open Source Project
67364064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrl_DisableInterrupts(pConfigManager->hHalCtrl);
67464064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
67564064216a8433360745f69edddce19a606659163The Android Open Source Project}
67664064216a8433360745f69edddce19a606659163The Android Open Source Project
67764064216a8433360745f69edddce19a606659163The Android Open Source Project
67864064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
67964064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_disableRadio                                    *
68064064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
68164064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to disable Radio
68264064216a8433360745f69edddce19a606659163The Android Open Source Project
68364064216a8433360745f69edddce19a606659163The Android Open Source Project
68464064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
68564064216a8433360745f69edddce19a606659163The Android Open Source Project
68664064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
68764064216a8433360745f69edddce19a606659163The Android Open Source Project
68864064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
68964064216a8433360745f69edddce19a606659163The Android Open Source Project
69064064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
69164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_disableRadio(TI_HANDLE hConfigMgr)
69264064216a8433360745f69edddce19a606659163The Android Open Source Project{
69364064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
69464064216a8433360745f69edddce19a606659163The Android Open Source Project
69564064216a8433360745f69edddce19a606659163The Android Open Source Project
69664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
69764064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_DISABLE_RADIO> --> STATE_RUNNING\n\n"));
69864064216a8433360745f69edddce19a606659163The Android Open Source Project
69964064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Disable radio command is no longer active, and should be directed to the SME module. */
70064064216a8433360745f69edddce19a606659163The Android Open Source Project    /* whalCtrl_DisableRadio(pConfigManager->hHalCtrl); */
70164064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
70264064216a8433360745f69edddce19a606659163The Android Open Source Project
70364064216a8433360745f69edddce19a606659163The Android Open Source Project}
70464064216a8433360745f69edddce19a606659163The Android Open Source Project
70564064216a8433360745f69edddce19a606659163The Android Open Source Project
70664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
70764064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_checkInterrupts                                     *
70864064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
70964064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to let the driver check if
71064064216a8433360745f69edddce19a606659163The Android Open Source Project                the receive interrupt is a driver's ISR.
71164064216a8433360745f69edddce19a606659163The Android Open Source Project
71264064216a8433360745f69edddce19a606659163The Android Open Source Project
71364064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
71464064216a8433360745f69edddce19a606659163The Android Open Source Project
71564064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
71664064216a8433360745f69edddce19a606659163The Android Open Source Project
71764064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
71864064216a8433360745f69edddce19a606659163The Android Open Source Project
71964064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
72064064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_checkInterrupts(TI_HANDLE hConfigMgr)
72164064216a8433360745f69edddce19a606659163The Android Open Source Project{
72264064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
72364064216a8433360745f69edddce19a606659163The Android Open Source Project
72464064216a8433360745f69edddce19a606659163The Android Open Source Project    return whalCtrl_CheckInterrupts(pConfigManager->hHalCtrl);
72564064216a8433360745f69edddce19a606659163The Android Open Source Project}
72664064216a8433360745f69edddce19a606659163The Android Open Source Project
72764064216a8433360745f69edddce19a606659163The Android Open Source Project
72864064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
72964064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_ReadMacRegister                                     *
73064064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
73164064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    API function for registers read/write
73264064216a8433360745f69edddce19a606659163The Android Open Source Project
73364064216a8433360745f69edddce19a606659163The Android Open Source Project
73464064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
73564064216a8433360745f69edddce19a606659163The Android Open Source Project
73664064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
73764064216a8433360745f69edddce19a606659163The Android Open Source Project
73864064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:
73964064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
74064064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_ReadMacRegister(TI_HANDLE hConfigMgr, UINT32   addr)
74164064216a8433360745f69edddce19a606659163The Android Open Source Project{
74264064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
74364064216a8433360745f69edddce19a606659163The Android Open Source Project
74464064216a8433360745f69edddce19a606659163The Android Open Source Project    return whalCtrlReadMacReg(pConfigManager->hHalCtrl, addr);
74564064216a8433360745f69edddce19a606659163The Android Open Source Project}
74664064216a8433360745f69edddce19a606659163The Android Open Source Project
74764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid  configMgr_WriteMacRegister(TI_HANDLE hConfigMgr, UINT32   addr, UINT32    val)
74864064216a8433360745f69edddce19a606659163The Android Open Source Project{
74964064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
75064064216a8433360745f69edddce19a606659163The Android Open Source Project
75164064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrlWriteMacReg(pConfigManager->hHalCtrl, addr, val);
75264064216a8433360745f69edddce19a606659163The Android Open Source Project}
75364064216a8433360745f69edddce19a606659163The Android Open Source Project
75464064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_ReadPhyRegister(TI_HANDLE hConfigMgr, UINT32   addr)
75564064216a8433360745f69edddce19a606659163The Android Open Source Project{
75664064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
75764064216a8433360745f69edddce19a606659163The Android Open Source Project
75864064216a8433360745f69edddce19a606659163The Android Open Source Project        return whalCtrlReadPhyReg(pConfigManager->hHalCtrl, addr);
75964064216a8433360745f69edddce19a606659163The Android Open Source Project}
76064064216a8433360745f69edddce19a606659163The Android Open Source Project
76164064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid configMgr_WritePhyRegister(TI_HANDLE hConfigMgr, UINT32    addr, UINT32    val)
76264064216a8433360745f69edddce19a606659163The Android Open Source Project{
76364064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
76464064216a8433360745f69edddce19a606659163The Android Open Source Project
76564064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrlWritePhyReg(pConfigManager->hHalCtrl, addr, val);
76664064216a8433360745f69edddce19a606659163The Android Open Source Project}
76764064216a8433360745f69edddce19a606659163The Android Open Source Project
76864064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
76964064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_isCardExist                                         *
77064064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
77164064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to check if the card is inserted.
77264064216a8433360745f69edddce19a606659163The Android Open Source Project
77364064216a8433360745f69edddce19a606659163The Android Open Source Project
77464064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
77564064216a8433360745f69edddce19a606659163The Android Open Source Project
77664064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
77764064216a8433360745f69edddce19a606659163The Android Open Source Project
77864064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
77964064216a8433360745f69edddce19a606659163The Android Open Source Project
78064064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
78164064216a8433360745f69edddce19a606659163The Android Open Source ProjectBOOL configMgr_isCardExist(TI_HANDLE hConfigMgr)
78264064216a8433360745f69edddce19a606659163The Android Open Source Project{
78364064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
78464064216a8433360745f69edddce19a606659163The Android Open Source Project
78564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (whalCtrl_isCardIn(pConfigManager->hHalCtrl) == TRUE)
78664064216a8433360745f69edddce19a606659163The Android Open Source Project        return TRUE;
78764064216a8433360745f69edddce19a606659163The Android Open Source Project    else
78864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
78964064216a8433360745f69edddce19a606659163The Android Open Source Project        wlan_memMngrFreeAllOsAlocatesBuffer(pConfigManager->hMemMgr);
79064064216a8433360745f69edddce19a606659163The Android Open Source Project        return FALSE;
79164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
79264064216a8433360745f69edddce19a606659163The Android Open Source Project}
79364064216a8433360745f69edddce19a606659163The Android Open Source Project
79464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
79564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_areInputsFromOsDisabled                                         *
79664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
79764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstractin layer in order to
79864064216a8433360745f69edddce19a606659163The Android Open Source Project                check if Inputs From OS are Disabled.
79964064216a8433360745f69edddce19a606659163The Android Open Source Project
80064064216a8433360745f69edddce19a606659163The Android Open Source Project
80164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
80264064216a8433360745f69edddce19a606659163The Android Open Source Project
80364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
80464064216a8433360745f69edddce19a606659163The Android Open Source Project
80564064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         TRUE  - recovery is in process,
80664064216a8433360745f69edddce19a606659163The Android Open Source Project                FALSE - recovery is not in process
80764064216a8433360745f69edddce19a606659163The Android Open Source Project
80864064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
80964064216a8433360745f69edddce19a606659163The Android Open Source ProjectBOOL configMgr_areInputsFromOsDisabled(TI_HANDLE hConfigMgr)
81064064216a8433360745f69edddce19a606659163The Android Open Source Project{
81164064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
81264064216a8433360745f69edddce19a606659163The Android Open Source Project
81364064216a8433360745f69edddce19a606659163The Android Open Source Project    return (recoveryMgr_areInputsFromOsDisabled(pConfigManager->hRecoveryMgr));
81464064216a8433360745f69edddce19a606659163The Android Open Source Project}
81564064216a8433360745f69edddce19a606659163The Android Open Source Project
81664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
81764064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_allocBDs                                            *
81864064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
81964064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction in order to allocate BDs from the memory manager pool.
82064064216a8433360745f69edddce19a606659163The Android Open Source Project                Calls the memory manager corresponding function.
82164064216a8433360745f69edddce19a606659163The Android Open Source Project
82264064216a8433360745f69edddce19a606659163The Android Open Source Project
82364064216a8433360745f69edddce19a606659163The Android Open Source Project
82464064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
82564064216a8433360745f69edddce19a606659163The Android Open Source Project                bdNumber -      Number of BDs to allocate
82664064216a8433360745f69edddce19a606659163The Android Open Source Project
82764064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:         bdPtr    -      Pointer to return the link list of allocated BDs.
82864064216a8433360745f69edddce19a606659163The Android Open Source Project
82964064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
83064064216a8433360745f69edddce19a606659163The Android Open Source Project
83164064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
83264064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_allocBDs(TI_HANDLE  hConfigMgr,
83364064216a8433360745f69edddce19a606659163The Android Open Source Project                             UINT32     bdNumber,
83464064216a8433360745f69edddce19a606659163The Android Open Source Project                             mem_BD_T** bdPtr)
83564064216a8433360745f69edddce19a606659163The Android Open Source Project{
83664064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
83764064216a8433360745f69edddce19a606659163The Android Open Source Project    TI_STATUS Status;
83864064216a8433360745f69edddce19a606659163The Android Open Source Project
83964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
84064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
84164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
84264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_ERROR(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_ALLOC_BDS while in IDLE state \n\n"));
84364064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
84464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
84564064216a8433360745f69edddce19a606659163The Android Open Source Project
84664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
84764064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_ALLOC_BDS> --> STATE_RUNNING\n\n"));
84864064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
84964064216a8433360745f69edddce19a606659163The Android Open Source Project
85064064216a8433360745f69edddce19a606659163The Android Open Source Project    Status = wlan_memMngrAllocBDs(pConfigManager->hMemMgr, bdNumber, bdPtr);
85164064216a8433360745f69edddce19a606659163The Android Open Source Project    return Status;
85264064216a8433360745f69edddce19a606659163The Android Open Source Project}
85364064216a8433360745f69edddce19a606659163The Android Open Source Project
85464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
85564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_allocMSDU                                           *
85664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
85764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to allocate a MSDU and its associated
85864064216a8433360745f69edddce19a606659163The Android Open Source Project                BDs and data buffers.
85964064216a8433360745f69edddce19a606659163The Android Open Source Project                Calls the memory manager corresponding function.
86064064216a8433360745f69edddce19a606659163The Android Open Source Project
86164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
86264064216a8433360745f69edddce19a606659163The Android Open Source Project                len         -   the length of the required data buffer
86364064216a8433360745f69edddce19a606659163The Android Open Source Project                module      -   The module that requests the allocation.
86464064216a8433360745f69edddce19a606659163The Android Open Source Project
86564064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:         MSDUPtr  -      Pointer to return he allocated MSDU.
86664064216a8433360745f69edddce19a606659163The Android Open Source Project
86764064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
86864064216a8433360745f69edddce19a606659163The Android Open Source Project
86964064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
87064064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_allocMSDU(TI_HANDLE    hConfigMgr,
87164064216a8433360745f69edddce19a606659163The Android Open Source Project                              mem_MSDU_T** MSDUPtr,
87264064216a8433360745f69edddce19a606659163The Android Open Source Project                              UINT32       len,
87364064216a8433360745f69edddce19a606659163The Android Open Source Project                              allocatingModule_e module)
87464064216a8433360745f69edddce19a606659163The Android Open Source Project{
87564064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
87664064216a8433360745f69edddce19a606659163The Android Open Source Project
87764064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
87864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
87964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
88064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_ALLOC_MSDU while in IDLE state \n\n"));
88164064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
88264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
88364064216a8433360745f69edddce19a606659163The Android Open Source Project
88464064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
88564064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_ALLOC_MSDU> --> STATE_RUNNING\n\n"));
88664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
88764064216a8433360745f69edddce19a606659163The Android Open Source Project
88864064216a8433360745f69edddce19a606659163The Android Open Source Project    return wlan_memMngrAllocMSDU(pConfigManager->hMemMgr, MSDUPtr, len, OS_ABS_TX_MODULE);
88964064216a8433360745f69edddce19a606659163The Android Open Source Project}
89064064216a8433360745f69edddce19a606659163The Android Open Source Project
89164064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
89264064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_allocMSDUBufferOnly                                         *
89364064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
89464064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to allocate a MSDU only.
89564064216a8433360745f69edddce19a606659163The Android Open Source Project                Calls the memory manager corresponding function.
89664064216a8433360745f69edddce19a606659163The Android Open Source Project
89764064216a8433360745f69edddce19a606659163The Android Open Source Project
89864064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
89964064216a8433360745f69edddce19a606659163The Android Open Source Project                module      -   The module that requests the allocation.
90064064216a8433360745f69edddce19a606659163The Android Open Source Project
90164064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:         MSDUPtr  -      Pointer to return he allocated MSDU.
90264064216a8433360745f69edddce19a606659163The Android Open Source Project
90364064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
90464064216a8433360745f69edddce19a606659163The Android Open Source Project
90564064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
90664064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_allocMSDUBufferOnly(TI_HANDLE    hConfigMgr,
90764064216a8433360745f69edddce19a606659163The Android Open Source Project                                        mem_MSDU_T** MSDUPtr,
90864064216a8433360745f69edddce19a606659163The Android Open Source Project                                        allocatingModule_e module)
90964064216a8433360745f69edddce19a606659163The Android Open Source Project{
91064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
91164064216a8433360745f69edddce19a606659163The Android Open Source Project
91264064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
91364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->state != CFG_MGR_STATE_RUNNING)
91464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
91564064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,  ("State machine error, EVENT_ALLOC_MSDU_BUFFER_ONLY while in IDLE state \n\n"));
91664064216a8433360745f69edddce19a606659163The Android Open Source Project        return STATION_IS_NOT_RUNNING;
91764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
91864064216a8433360745f69edddce19a606659163The Android Open Source Project
91964064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
92064064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_ALLOC_MSDU_BUFFER_ONLY> --> STATE_RUNNING\n\n"));
92164064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
92264064216a8433360745f69edddce19a606659163The Android Open Source Project
92364064216a8433360745f69edddce19a606659163The Android Open Source Project    return wlan_memMngrAllocMSDUBufferOnly(pConfigManager->hMemMgr, MSDUPtr, OS_ABS_TX_MODULE);
92464064216a8433360745f69edddce19a606659163The Android Open Source Project}
92564064216a8433360745f69edddce19a606659163The Android Open Source Project
92664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
92764064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_memMngrFreeMSDU                                         *
92864064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
92964064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by the OS abstraction layer in order to free a MSDU.
93064064216a8433360745f69edddce19a606659163The Android Open Source Project                Calls the memory manager corresponding function.
93164064216a8433360745f69edddce19a606659163The Android Open Source Project
93264064216a8433360745f69edddce19a606659163The Android Open Source Project
93364064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
93464064216a8433360745f69edddce19a606659163The Android Open Source Project                handle      -   handle of the MSDU.
93564064216a8433360745f69edddce19a606659163The Android Open Source Project
93664064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
93764064216a8433360745f69edddce19a606659163The Android Open Source Project
93864064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
93964064216a8433360745f69edddce19a606659163The Android Open Source Project
94064064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
94164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_memMngrFreeMSDU(TI_HANDLE hConfigMgr, UINT32 handle)
94264064216a8433360745f69edddce19a606659163The Android Open Source Project{
94364064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigMgr;
94464064216a8433360745f69edddce19a606659163The Android Open Source Project
94564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG
94664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_SM(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
94764064216a8433360745f69edddce19a606659163The Android Open Source Project                              ("<STATE_RUNNING, EVENT_FREE_MSDU> --> STATE_RUNNING\n\n"));
94864064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
94964064216a8433360745f69edddce19a606659163The Android Open Source Project
95064064216a8433360745f69edddce19a606659163The Android Open Source Project    wlan_memMngrFreeMSDU(pConfigManager->hMemMgr, handle);
95164064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
95264064216a8433360745f69edddce19a606659163The Android Open Source Project}
95364064216a8433360745f69edddce19a606659163The Android Open Source Project
95464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
95564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_unLoad                                              *
95664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
95764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Driver unload function
95864064216a8433360745f69edddce19a606659163The Android Open Source Project
95964064216a8433360745f69edddce19a606659163The Android Open Source Project
96064064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
96164064216a8433360745f69edddce19a606659163The Android Open Source Project
96264064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
96364064216a8433360745f69edddce19a606659163The Android Open Source Project
96464064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
96564064216a8433360745f69edddce19a606659163The Android Open Source Project
96664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
96764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_unLoad(TI_HANDLE hConfigMgr)
96864064216a8433360745f69edddce19a606659163The Android Open Source Project{
96964064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t     *pConfigManager = (configMgr_t *)hConfigMgr;
97064064216a8433360745f69edddce19a606659163The Android Open Source Project
97164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!pConfigManager)
97264064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
97364064216a8433360745f69edddce19a606659163The Android Open Source Project
97464064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrl_Stop(pConfigManager->hHalCtrl);
97564064216a8433360745f69edddce19a606659163The Android Open Source Project
97664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("\nCONFIG_MGR,  UNLOAD:   *****  DESTROYING THE DRIVER  *****\n\n\n"));
97764064216a8433360745f69edddce19a606659163The Android Open Source Project    release_module(pConfigManager);
97864064216a8433360745f69edddce19a606659163The Android Open Source Project
97964064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
98064064216a8433360745f69edddce19a606659163The Android Open Source Project}
98164064216a8433360745f69edddce19a606659163The Android Open Source Project
98264064216a8433360745f69edddce19a606659163The Android Open Source Project
98364064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
98464064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_InitiateUnload                                              *
98564064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
98664064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Driver unload function
98764064216a8433360745f69edddce19a606659163The Android Open Source Project
98864064216a8433360745f69edddce19a606659163The Android Open Source Project
98964064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
99064064216a8433360745f69edddce19a606659163The Android Open Source Project
99164064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
99264064216a8433360745f69edddce19a606659163The Android Open Source Project
99364064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
99464064216a8433360745f69edddce19a606659163The Android Open Source Project
99564064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
99664064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_InitiateUnload(TI_HANDLE hConfigMgr)
99764064216a8433360745f69edddce19a606659163The Android Open Source Project{
99864064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t     *pConfigManager = (configMgr_t *)hConfigMgr;
99964064216a8433360745f69edddce19a606659163The Android Open Source Project
100064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!pConfigManager)
100164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
100264064216a8433360745f69edddce19a606659163The Android Open Source Project
100364064216a8433360745f69edddce19a606659163The Android Open Source Project    smeSm_stopAndShutdown(pConfigManager->hSmeSm);
100464064216a8433360745f69edddce19a606659163The Android Open Source Project
100564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("\nCONFIG_MGR,  UNLOAD:   *****  DESTROYING THE DRIVER  *****\n\n\n"));
100664064216a8433360745f69edddce19a606659163The Android Open Source Project
100764064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
100864064216a8433360745f69edddce19a606659163The Android Open Source Project}
100964064216a8433360745f69edddce19a606659163The Android Open Source Project
101064064216a8433360745f69edddce19a606659163The Android Open Source Project
101164064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
101264064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_UnloadModules                                              *
101364064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
101464064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Driver unload function
101564064216a8433360745f69edddce19a606659163The Android Open Source Project
101664064216a8433360745f69edddce19a606659163The Android Open Source Project
101764064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
101864064216a8433360745f69edddce19a606659163The Android Open Source Project
101964064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
102064064216a8433360745f69edddce19a606659163The Android Open Source Project
102164064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
102264064216a8433360745f69edddce19a606659163The Android Open Source Project
102364064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
102464064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS configMgr_UnloadModules(TI_HANDLE hConfigMgr)
102564064216a8433360745f69edddce19a606659163The Android Open Source Project{
102664064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t     *pConfigManager = (configMgr_t *)hConfigMgr;
102764064216a8433360745f69edddce19a606659163The Android Open Source Project
102864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (!pConfigManager)
102964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
103064064216a8433360745f69edddce19a606659163The Android Open Source Project
103164064216a8433360745f69edddce19a606659163The Android Open Source Project    release_module(pConfigManager);
103264064216a8433360745f69edddce19a606659163The Android Open Source Project
103364064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
103464064216a8433360745f69edddce19a606659163The Android Open Source Project}
103564064216a8433360745f69edddce19a606659163The Android Open Source Project
103664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
103764064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_DriverShutdownStatus                                              *
103864064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
103964064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    return status of driver shutdown process
104064064216a8433360745f69edddce19a606659163The Android Open Source Project
104164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
104264064216a8433360745f69edddce19a606659163The Android Open Source Project
104364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
104464064216a8433360745f69edddce19a606659163The Android Open Source Project
104564064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
104664064216a8433360745f69edddce19a606659163The Android Open Source Project
104764064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
104864064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT8 configMgr_DriverShutdownStatus(TI_HANDLE hConfigMgr)
104964064216a8433360745f69edddce19a606659163The Android Open Source Project{
105064064216a8433360745f69edddce19a606659163The Android Open Source Project   configMgr_t     *pConfigManager = (configMgr_t *)hConfigMgr;
105164064216a8433360745f69edddce19a606659163The Android Open Source Project
105264064216a8433360745f69edddce19a606659163The Android Open Source Project   return smeSm_getDriverShutdownStatus(pConfigManager->hSmeSm);
105364064216a8433360745f69edddce19a606659163The Android Open Source Project}
105464064216a8433360745f69edddce19a606659163The Android Open Source Project
105564064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
105664064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_SlaveAckMaskNotification                                   *
105764064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
105864064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:
105964064216a8433360745f69edddce19a606659163The Android Open Source Project
106064064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
106164064216a8433360745f69edddce19a606659163The Android Open Source Project
106264064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
106364064216a8433360745f69edddce19a606659163The Android Open Source Project
106464064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         void
106564064216a8433360745f69edddce19a606659163The Android Open Source Project
106664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
106764064216a8433360745f69edddce19a606659163The Android Open Source Project
106864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid configMgr_SlaveAckMaskNotification(TI_HANDLE hConfigMgr)
106964064216a8433360745f69edddce19a606659163The Android Open Source Project{
107064064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t     *pConfigManager = (configMgr_t *)hConfigMgr;
107164064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtr_SlaveAckMaskNotification(pConfigManager->hHalCtrl);
107264064216a8433360745f69edddce19a606659163The Android Open Source Project}
107364064216a8433360745f69edddce19a606659163The Android Open Source Project
107464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
107564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_getPacketHeaderLength                                   *
107664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
107764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called by os to know reserved space for WLAN header.
107864064216a8433360745f69edddce19a606659163The Android Open Source Project
107964064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hConfigMgr  -   Handle to the driver
108064064216a8433360745f69edddce19a606659163The Android Open Source Project                data        -   pointer to packet
108164064216a8433360745f69edddce19a606659163The Android Open Source Project                txFlags     -   whether this frame is data or management
108264064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
108364064216a8433360745f69edddce19a606659163The Android Open Source Project
108464064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         void
108564064216a8433360745f69edddce19a606659163The Android Open Source Project
108664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
108764064216a8433360745f69edddce19a606659163The Android Open Source Project
108864064216a8433360745f69edddce19a606659163The Android Open Source ProjectUINT32 configMgr_getPacketHeaderLength(TI_HANDLE      hConfigMgr,
108964064216a8433360745f69edddce19a606659163The Android Open Source Project                                       void           *pData,
109064064216a8433360745f69edddce19a606659163The Android Open Source Project                                       UINT32         txFlags)
109164064216a8433360745f69edddce19a606659163The Android Open Source Project{
109264064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t          *pConfigManager = (configMgr_t *)hConfigMgr;
109364064216a8433360745f69edddce19a606659163The Android Open Source Project
109464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* returns TxDescriptor size + reserved place for the bus txn operation + actual header length */
109564064216a8433360745f69edddce19a606659163The Android Open Source Project    return TX_TOTAL_OFFSET_BEFORE_DATA +
109664064216a8433360745f69edddce19a606659163The Android Open Source Project        txData_GetWlanHeaderLength (pConfigManager->hTxData, pData, txFlags);
109764064216a8433360745f69edddce19a606659163The Android Open Source Project}
109864064216a8433360745f69edddce19a606659163The Android Open Source Project
109964064216a8433360745f69edddce19a606659163The Android Open Source Project
110064064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************/
110164064216a8433360745f69edddce19a606659163The Android Open Source Project/*      Local Functions Implementations             */
110264064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************/
110364064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
110464064216a8433360745f69edddce19a606659163The Android Open Source Project *                        createDriver                                              *
110564064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
110664064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Driver creation function. Performs the following:
110764064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Calls the create function of each module.
110864064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Each module returns a handle if successful and NULL otherwise.
110964064216a8433360745f69edddce19a606659163The Android Open Source Project                -   If the creation of all the modules succeeded, the driver main handle is configured with the
111064064216a8433360745f69edddce19a606659163The Android Open Source Project                        modules handles. Then the driver main handle is returned to the caller.
111164064216a8433360745f69edddce19a606659163The Android Open Source Project                -   If one of the modules fails in creation, the function calls the release function of the driver
111264064216a8433360745f69edddce19a606659163The Android Open Source Project                    and all the modules handles are free, including the driver main handle.
111364064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Some of the modules are called with an init table as a parameter.
111464064216a8433360745f69edddce19a606659163The Android Open Source Project                -   The callbacks table is filled with the callbacks returned from the core, in the configuration phase,
111564064216a8433360745f69edddce19a606659163The Android Open Source Project                    the HAL is configured with those callbacks.
111664064216a8433360745f69edddce19a606659163The Android Open Source Project
111764064216a8433360745f69edddce19a606659163The Android Open Source Project
111864064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          hOs        -    Handle to the OS
111964064216a8433360745f69edddce19a606659163The Android Open Source Project                pInitTable -    Pointer to the init table as read from registry
112064064216a8433360745f69edddce19a606659163The Android Open Source Project                pCoreCallbacks   -  Table of core callbacks functions to filled by the CORE
112164064216a8433360745f69edddce19a606659163The Android Open Source Project
112264064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:         Main Handle to the driver.
112364064216a8433360745f69edddce19a606659163The Android Open Source Project
112464064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         Handle to the driver on success, NOK on failure
112564064216a8433360745f69edddce19a606659163The Android Open Source Project
112664064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
112764064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic configMgr_t *createDriver(TI_HANDLE hOs, void *pWLAN_Images, initTable_t *pInitTable)
112864064216a8433360745f69edddce19a606659163The Android Open Source Project{
112964064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t             *pConfigManager;
113064064216a8433360745f69edddce19a606659163The Android Open Source Project
113164064216a8433360745f69edddce19a606659163The Android Open Source Project    /************************
113264064216a8433360745f69edddce19a606659163The Android Open Source Project    Create the Config Manager
113364064216a8433360745f69edddce19a606659163The Android Open Source Project    *************************/
113464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager = os_memoryAlloc(hOs, sizeof(configMgr_t));
113564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager == NULL)
113664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
113764064216a8433360745f69edddce19a606659163The Android Open Source Project        return NULL;
113864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
113964064216a8433360745f69edddce19a606659163The Android Open Source Project    os_memoryZero (hOs, pConfigManager, sizeof(configMgr_t));
114064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hOs = hOs;
114164064216a8433360745f69edddce19a606659163The Android Open Source Project
114264064216a8433360745f69edddce19a606659163The Android Open Source Project    /**************************
114364064216a8433360745f69edddce19a606659163The Android Open Source Project    Create all the CORE modules
114464064216a8433360745f69edddce19a606659163The Android Open Source Project    ***************************/
114564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (createCore (pConfigManager ,hOs,  pInitTable) != OK)
114664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
114764064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n createCore() Failed!!! \n"));
114864064216a8433360745f69edddce19a606659163The Android Open Source Project        release_module(pConfigManager);
114964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NULL;
115064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
115164064216a8433360745f69edddce19a606659163The Android Open Source Project
115264064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_INIT_REPORT(("\n createDriver(): pConfigManager->hOs %x pConfigManager->hMemMgr %x!!! :\n\n",pConfigManager->hOs,pConfigManager->hMemMgr));
115364064216a8433360745f69edddce19a606659163The Android Open Source Project
115464064216a8433360745f69edddce19a606659163The Android Open Source Project    /**************************
115564064216a8433360745f69edddce19a606659163The Android Open Source Project    Configure the Report module
115664064216a8433360745f69edddce19a606659163The Android Open Source Project    ***************************/
115764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (report_config(pConfigManager->hReport, hOs, &pInitTable->TnetwDrv_InitParams.reportParams) != OK)
115864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
115964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n Report configuration failure \n"));
116064064216a8433360745f69edddce19a606659163The Android Open Source Project        release_module(pConfigManager);
116164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NULL;
116264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
116364064216a8433360745f69edddce19a606659163The Android Open Source Project
116464064216a8433360745f69edddce19a606659163The Android Open Source Project    /**********************
116564064216a8433360745f69edddce19a606659163The Android Open Source Project    Create the TNETW Driver
116664064216a8433360745f69edddce19a606659163The Android Open Source Project    ***********************/
116764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hTnetwDrv = TnetwDrv_Create(hOs);
116864064216a8433360745f69edddce19a606659163The Android Open Source Project
116964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hTnetwDrv == NULL)
117064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
117164064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n createDriver() !!! TnetwDrv_Create failed !!! \n"));
117264064216a8433360745f69edddce19a606659163The Android Open Source Project        release_module(pConfigManager);
117364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NULL;
117464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
117564064216a8433360745f69edddce19a606659163The Android Open Source Project
117664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_INIT_REPORT(("\n createDriver(): pConfigManager %x pConfigManager->hTnetwDrv %x!!! :\n\n",pConfigManager,pConfigManager->hTnetwDrv));
117764064216a8433360745f69edddce19a606659163The Android Open Source Project
117864064216a8433360745f69edddce19a606659163The Android Open Source Project    /***************************************************************
117964064216a8433360745f69edddce19a606659163The Android Open Source Project    TEMPORARY!!  -  get TNETW-Driver internal modules handles untill
118064064216a8433360745f69edddce19a606659163The Android Open Source Project                    the new TNETW-Driver architecture is completed!!
118164064216a8433360745f69edddce19a606659163The Android Open Source Project    ****************************************************************/
118264064216a8433360745f69edddce19a606659163The Android Open Source Project    TnetwDrv_TEMP_GetHandles (pConfigManager->hTnetwDrv,
118364064216a8433360745f69edddce19a606659163The Android Open Source Project                              &pConfigManager->hHalCtrl,
118464064216a8433360745f69edddce19a606659163The Android Open Source Project                              &pConfigManager->hMacServices);
118564064216a8433360745f69edddce19a606659163The Android Open Source Project
118664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_INIT_REPORT(("\nCONFIG_MGR,  INIT:       *****   CREATION SUCCESS    *****\n\n\n"));
118764064216a8433360745f69edddce19a606659163The Android Open Source Project
118864064216a8433360745f69edddce19a606659163The Android Open Source Project    return pConfigManager;
118964064216a8433360745f69edddce19a606659163The Android Open Source Project}
119064064216a8433360745f69edddce19a606659163The Android Open Source Project
119164064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
119264064216a8433360745f69edddce19a606659163The Android Open Source Project *                        createCore                                   *
119364064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
119464064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:   Called by the CreateDriver to
119564064216a8433360745f69edddce19a606659163The Android Open Source Project                        - Create the CORE modules
119664064216a8433360745f69edddce19a606659163The Android Open Source Project                        - Create the CORE Adapter module
119764064216a8433360745f69edddce19a606659163The Android Open Source Project                        - Config the CORE Adapter module by giving it CORE callbacks
119864064216a8433360745f69edddce19a606659163The Android Open Source Project
119964064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          TI_HANDLE hOs  -   Handle to OS
120064064216a8433360745f69edddce19a606659163The Android Open Source Project                initTable_t *pInitTable - pointer to the Init table filled by the registry
120164064216a8433360745f69edddce19a606659163The Android Open Source Project                coreCallbacks_t *pCoreCallbacks  - pointer to the CORE callbacks to be used by each module to fll it (Scan,CtrlData ..)
120264064216a8433360745f69edddce19a606659163The Android Open Source Project
120364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:         TI_STATUS - OK on success else NOK
120464064216a8433360745f69edddce19a606659163The Android Open Source Project
120564064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         void
120664064216a8433360745f69edddce19a606659163The Android Open Source Project
120764064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
120864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic int createCore(configMgr_t *pConfigManager, TI_HANDLE hOs, initTable_t *pInitTable)
120964064216a8433360745f69edddce19a606659163The Android Open Source Project{
121064064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Report module */
121164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hReport = report_create(hOs);
121264064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hReport == NULL)
121364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
121464064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
121564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
121664064216a8433360745f69edddce19a606659163The Android Open Source Project
121764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* SCR module */
121864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hSCR = scr_create(hOs);
121964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSCR == NULL)
122064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
122164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
122264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
122364064216a8433360745f69edddce19a606659163The Android Open Source Project
122464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Event Handler module */
122564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hEvHandler = EvHandlerInit(hOs);
122664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hEvHandler == NULL)
122764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
122864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
122964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
123064064216a8433360745f69edddce19a606659163The Android Open Source Project
123164064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Connection module */
123264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hConn = conn_create(hOs);
123364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hConn == NULL)
123464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
123564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
123664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
123764064216a8433360745f69edddce19a606659163The Android Open Source Project
123864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Scan Concentrator module */
123964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hScanCncn = scanConcentrator_create(hOs);
124064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hScanCncn == NULL)
124164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
124264064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
124364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
124464064216a8433360745f69edddce19a606659163The Android Open Source Project
124564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* SME state machine module */
124664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hSmeSm = smeSm_create(hOs);
124764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSmeSm == NULL)
124864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
124964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
125064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
125164064216a8433360745f69edddce19a606659163The Android Open Source Project
125264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Site manager module */
125364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hSiteMgr = siteMgr_create(hOs);
125464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSiteMgr == NULL)
125564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
125664064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
125764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
125864064216a8433360745f69edddce19a606659163The Android Open Source Project
125964064216a8433360745f69edddce19a606659163The Android Open Source Project    /* MLME SM module */
126064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hMlmeSm = mlme_create(hOs);
126164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hMlmeSm == NULL)
126264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
126364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
126464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
126564064216a8433360745f69edddce19a606659163The Android Open Source Project
126664064216a8433360745f69edddce19a606659163The Android Open Source Project    /* AUTH module */
126764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hAuth = auth_create(hOs);
126864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hAuth == NULL)
126964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
127064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
127164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
127264064216a8433360745f69edddce19a606659163The Android Open Source Project
127364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* ASSOC module */
127464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hAssoc = assoc_create(hOs);
127564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hAssoc == NULL)
127664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
127764064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
127864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
127964064216a8433360745f69edddce19a606659163The Android Open Source Project
128064064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Rx data module */
128164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hRxData = rxData_create(hOs);
128264064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRxData == NULL)
128364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
128464064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
128564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
128664064216a8433360745f69edddce19a606659163The Android Open Source Project
128764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Tx data module */
128864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hTxData = txData_create (&pInitTable->txDataInitParams, hOs);
128964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hTxData == NULL)
129064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
129164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
129264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
129364064216a8433360745f69edddce19a606659163The Android Open Source Project
129464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Ctrl data module */
129564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hCtrlData = ctrlData_create(hOs);
129664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hCtrlData == NULL)
129764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
129864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
129964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
130064064216a8433360745f69edddce19a606659163The Android Open Source Project
130164064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Traffic Monitor  */
130264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hTrafficMon = TrafficMonitor_create(hOs);
130364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hTrafficMon == NULL)
130464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
130564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
130664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
130764064216a8433360745f69edddce19a606659163The Android Open Source Project
130864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Memory Manager */
130964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hMemMgr = wlan_memMngrInit(hOs);
131064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hMemMgr == NULL)
131164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
131264064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
131364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
131464064216a8433360745f69edddce19a606659163The Android Open Source Project
131564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* RSN create code */
131664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hRsn = rsn_create(hOs);
131764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRsn == NULL)
131864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
131964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
132064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
132164064216a8433360745f69edddce19a606659163The Android Open Source Project
132264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Regulatory Domain module */
132364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hRegulatoryDomain = regulatoryDomain_create(hOs);
132464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRegulatoryDomain == NULL)
132564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
132664064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
132764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
132864064216a8433360745f69edddce19a606659163The Android Open Source Project
132964064216a8433360745f69edddce19a606659163The Android Open Source Project    /* MeasurementMgr module */
133064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hMeasurementMgr = measurementMgr_create(hOs);
133164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hMeasurementMgr == NULL)
133264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
133364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
133464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
133564064216a8433360745f69edddce19a606659163The Android Open Source Project
133664064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Soft Gemini module */
133764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hSoftGemini = SoftGemini_create(hOs);
133864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSoftGemini == NULL)
133964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
134064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
134164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
134264064216a8433360745f69edddce19a606659163The Android Open Source Project
134364064216a8433360745f69edddce19a606659163The Android Open Source Project
134464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED
134564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hExcMngr = excMngr_create(hOs);
134664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hExcMngr == NULL)
134764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
134864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
134964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
135064064216a8433360745f69edddce19a606659163The Android Open Source Project#else
135164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hExcMngr = NULL;
135264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
135364064216a8433360745f69edddce19a606659163The Android Open Source Project
135464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hRoamingMngr = roamingMngr_create(hOs);
135564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRoamingMngr == NULL)
135664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
135764064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
135864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
135964064216a8433360745f69edddce19a606659163The Android Open Source Project
136064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hAPConnection = apConn_create(hOs);
136164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hAPConnection == NULL)
136264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
136364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
136464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
136564064216a8433360745f69edddce19a606659163The Android Open Source Project
136664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hCurrBss = currBSS_create(hOs);
136764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hCurrBss == NULL)
136864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
136964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
137064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
137164064216a8433360745f69edddce19a606659163The Android Open Source Project
137264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hQosMngr = qosMngr_create(hOs);
137364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hQosMngr == NULL)
137464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
137564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
137664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
137764064216a8433360745f69edddce19a606659163The Android Open Source Project
137864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hPowerMgr = PowerMgr_create(hOs);
137964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hPowerMgr == NULL)
138064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
138164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
138264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
138364064216a8433360745f69edddce19a606659163The Android Open Source Project
138464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hSwitchChannel = switchChannel_create(hOs);
138564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSwitchChannel == NULL)
138664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
138764064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
138864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
138964064216a8433360745f69edddce19a606659163The Android Open Source Project
139064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hScanMngr = scanMngr_create(hOs);
139164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (NULL == pConfigManager->hScanMngr)
139264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
139364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
139464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
139564064216a8433360745f69edddce19a606659163The Android Open Source Project
139664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hHealthMonitor = healthMonitor_create(hOs);
139764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (NULL == pConfigManager->hHealthMonitor)
139864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
139964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
140064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
140164064216a8433360745f69edddce19a606659163The Android Open Source Project
140264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* CORE ADAPTER CREATION */
140364064216a8433360745f69edddce19a606659163The Android Open Source Project
140464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* ADD CORE ADAPTER Tx CREATION */
140564064216a8433360745f69edddce19a606659163The Android Open Source Project    CORE_AdaptTx_handle = CORE_AdaptTx_Create(hOs);
140664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (CORE_AdaptTx_handle == NULL)
140764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
140864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
140964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
141064064216a8433360745f69edddce19a606659163The Android Open Source Project
141164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->hRecoveryMgr = recoveryMgr_create(hOs);
141264064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef USE_RECOVERY
141364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (NULL == pConfigManager->hRecoveryMgr)
141464064216a8433360745f69edddce19a606659163The Android Open Source Project    {
141564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
141664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
141764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
141864064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_INIT_REPORT(("\nCONFIG_MGR,  INIT:       *****   CORE CREATION SUCCESS    *****\n\n\n"));
141964064216a8433360745f69edddce19a606659163The Android Open Source Project
142064064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
142164064216a8433360745f69edddce19a606659163The Android Open Source Project}
142264064216a8433360745f69edddce19a606659163The Android Open Source Project
142364064216a8433360745f69edddce19a606659163The Android Open Source Project
142464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
142564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configCore                                              *
142664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
142764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Core configuration function. Performs the following:
142864064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Calls the config Params Access function.
142964064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Calls the config function of each module.
143064064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Each module is configured with the following parameters:
143164064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   List of handles to other modules that supply him services
143264064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Init table (optional).
143364064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Callbacks to be used (in the HAL cases)
143464064216a8433360745f69edddce19a606659163The Android Open Source Project                -   In addition, the following parameters are read from the chip by the HAL and forwarded to the CORE:
143564064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Chip MAC Address
143664064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Chip regulatory domain
143764064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Chip preamble
143864064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Chip FW version and EEPROM version
143964064216a8433360745f69edddce19a606659163The Android Open Source Project                    -   Radio type
144064064216a8433360745f69edddce19a606659163The Android Open Source Project
144164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          pConfigManager     -    Driver main handle
144264064216a8433360745f69edddce19a606659163The Android Open Source Project                pInitTable          -   Pointer to the init table as read from registry
144364064216a8433360745f69edddce19a606659163The Android Open Source Project
144464064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
144564064216a8433360745f69edddce19a606659163The Android Open Source Project
144664064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
144764064216a8433360745f69edddce19a606659163The Android Open Source Project
144864064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
144964064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic TI_STATUS configCore (configMgr_t *pConfigManager, whalCtrl_chip_t *pChipVer)
145064064216a8433360745f69edddce19a606659163The Android Open Source Project{
145164064216a8433360745f69edddce19a606659163The Android Open Source Project    /************************/
145264064216a8433360745f69edddce19a606659163The Android Open Source Project    /*      CONFIGURATION   */
145364064216a8433360745f69edddce19a606659163The Android Open Source Project    /************************/
145464064216a8433360745f69edddce19a606659163The Android Open Source Project    /*radioDisableParams_t    radioDisableParams;*/
145564064216a8433360745f69edddce19a606659163The Android Open Source Project    Core_AdaptTx_config_t   Core_AdaptTx_config;
145664064216a8433360745f69edddce19a606659163The Android Open Source Project
145764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* we first initialize the setParamTable & getParamTable based on the moduleParam_e */
145864064216a8433360745f69edddce19a606659163The Android Open Source Project    configParamsAccessTable (pConfigManager);
145964064216a8433360745f69edddce19a606659163The Android Open Source Project
146064064216a8433360745f69edddce19a606659163The Android Open Source Project    /*
146164064216a8433360745f69edddce19a606659163The Android Open Source Project     * Retrieve FW information from HAL
146264064216a8433360745f69edddce19a606659163The Android Open Source Project     */
146364064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_RetrieveFWInfo (pConfigManager, pConfigManager->pInitTable, pChipVer);
146464064216a8433360745f69edddce19a606659163The Android Open Source Project
146564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* CORE Adapter configuration is setting callback to each module */
146664064216a8433360745f69edddce19a606659163The Android Open Source Project
146764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* CORE ADAPTER TX module */
146864064216a8433360745f69edddce19a606659163The Android Open Source Project    Core_AdaptTx_config.hMemMgr = pConfigManager->hMemMgr;
146964064216a8433360745f69edddce19a606659163The Android Open Source Project    Core_AdaptTx_config.hReport = pConfigManager->hReport;
147064064216a8433360745f69edddce19a606659163The Android Open Source Project    Core_AdaptTx_config.hTnetwDrv = pConfigManager->hTnetwDrv;
147164064216a8433360745f69edddce19a606659163The Android Open Source Project    Core_AdaptTx_config.hTxData = pConfigManager->hTxData;
147264064216a8433360745f69edddce19a606659163The Android Open Source Project    Core_AdaptTx_config.hCtrlData = pConfigManager->hCtrlData;
147364064216a8433360745f69edddce19a606659163The Android Open Source Project
147464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* sendPacketComplete event callback */
147564064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Core_AdaptTx_config.TxCmplt_CB = pCoreCallbacks->ctrlData_TxCompleteStatusCB;*/
147664064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Core_AdaptTx_config.TxCmplt_CB_handle = pConfigManager->hCtrlData;*/
147764064216a8433360745f69edddce19a606659163The Android Open Source Project
147864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* sendPacketTransfer event callback */
147964064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Core_AdaptTx_config.PacketTranfer_CB = pCoreCallbacks->txData_SendPacketTranferCB;*/
148064064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Core_AdaptTx_config.PacketTranfer_CB_handle = pConfigManager->hTxData;*/
148164064216a8433360745f69edddce19a606659163The Android Open Source Project
148264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* queueFreeEvent event callback */
148364064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Core_AdaptTx_config.QueueFreeEvent_CB = pCoreCallbacks->txData_QueueFreeEventCB;*/
148464064216a8433360745f69edddce19a606659163The Android Open Source Project    /*Core_AdaptTx_config.QueueFreeEvent_CB_handle = pConfigManager->hTxData;*/
148564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Core Adapter Tx...\n"));
148664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (CORE_AdaptTx_Config (CORE_AdaptTx_handle,
148764064216a8433360745f69edddce19a606659163The Android Open Source Project                             &Core_AdaptTx_config,
148864064216a8433360745f69edddce19a606659163The Android Open Source Project                             &pConfigManager->pInitTable->txDataInitParams) != OK)
148964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
149064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....CORE ADAPTER TX configuration failure \n"));
149164064216a8433360745f69edddce19a606659163The Android Open Source Project            return NOK;
149264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
149364064216a8433360745f69edddce19a606659163The Android Open Source Project
149464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* SCR module */
149564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing SCR...\n"));
149664064216a8433360745f69edddce19a606659163The Android Open Source Project    scr_init (pConfigManager->hSCR, pConfigManager->hReport);
149764064216a8433360745f69edddce19a606659163The Android Open Source Project
149864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* connection module */
149964064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Conn...\n"));
150064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (conn_config (pConfigManager->hConn,
150164064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSiteMgr,
150264064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSmeSm,
150364064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hMlmeSm,
150464064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hRsn,
150564064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hRxData,
150664064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hTxData,
150764064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hReport,
150864064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hOs,
150964064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hPowerMgr,
151064064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hCtrlData,
151164064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hMeasurementMgr,
151264064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hTrafficMon,
151364064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSCR,
151464064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hExcMngr,
151564064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hQosMngr,
151664064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hHalCtrl,
151764064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hScanCncn,
151864064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hCurrBss,
151964064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSwitchChannel,
152064064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hEvHandler,
152164064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hHealthMonitor,
152264064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hMacServices,
152364064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hRegulatoryDomain,
152464064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSoftGemini,
152564064216a8433360745f69edddce19a606659163The Android Open Source Project                     &pConfigManager->pInitTable->connInitParams) != OK)
152664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
152764064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Conn configuration failure \n"));
152864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
152964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
153064064216a8433360745f69edddce19a606659163The Android Open Source Project
153164064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Ctrl data module */
153264064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Ctrl Data...\n"));
153364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (ctrlData_config (pConfigManager->hCtrlData,
153464064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hHalCtrl,
153564064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hSiteMgr,
153664064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hTxData,
153764064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hRxData,
153864064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hOs,
153964064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hReport,
154064064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hMemMgr,
154164064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hEvHandler,
154264064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hAPConnection,
154364064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hTrafficMon,
154464064216a8433360745f69edddce19a606659163The Android Open Source Project                         conn_disConnFrameSentCBFunc,
154564064216a8433360745f69edddce19a606659163The Android Open Source Project                         pConfigManager->hConn,
154664064216a8433360745f69edddce19a606659163The Android Open Source Project                         &pConfigManager->pInitTable->ctrlDataInitParams) != OK)
154764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
154864064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....CTRL DATA configuration failure \n"));
154964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
155064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
155164064216a8433360745f69edddce19a606659163The Android Open Source Project
155264064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Site manager module */
155364064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Site Manager...\n"));
155464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (siteMgr_config (pConfigManager->hSiteMgr,
155564064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hConn,
155664064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hSmeSm,
155764064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hCtrlData,
155864064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hRxData,
155964064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hTxData,
156064064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hRsn,
156164064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hAuth,
156264064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hAssoc,
156364064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hHalCtrl,
156464064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMlmeSm,
156564064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hRegulatoryDomain,
156664064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMeasurementMgr,
156764064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hAPConnection,
156864064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hCurrBss,
156964064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hReport,
157064064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hOs,
157164064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hExcMngr,
157264064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hQosMngr,
157364064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hPowerMgr,
157464064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hSCR,
157564064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hEvHandler,
157664064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMacServices,
157764064216a8433360745f69edddce19a606659163The Android Open Source Project                        &pConfigManager->pInitTable->siteMgrInitParams) != OK)
157864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
157964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Site manager configuration failure \n"));
158064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
158164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
158264064216a8433360745f69edddce19a606659163The Android Open Source Project
158364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Note: must be configured after Site Manager object coonfiguration */
158464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* regulatory Domain module */
158564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Regulatory Domain...\n"));
158664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (regulatoryDomain_config (pConfigManager->hRegulatoryDomain,
158764064216a8433360745f69edddce19a606659163The Android Open Source Project                                 pConfigManager->hSiteMgr,
158864064216a8433360745f69edddce19a606659163The Android Open Source Project                                 pConfigManager->hHalCtrl,
158964064216a8433360745f69edddce19a606659163The Android Open Source Project                                 pConfigManager->hReport,
159064064216a8433360745f69edddce19a606659163The Android Open Source Project                                 pConfigManager->hOs,
159164064216a8433360745f69edddce19a606659163The Android Open Source Project                                 pConfigManager->hSwitchChannel,
159264064216a8433360745f69edddce19a606659163The Android Open Source Project                                 &pConfigManager->pInitTable->regulatoryDomainInitParams) != OK)
159364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
159464064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Regulatory Domain configuration failure \n"));
159564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
159664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
159764064216a8433360745f69edddce19a606659163The Android Open Source Project
159864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* scan concentrator module */
159964064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Note: must be configured after RegulatoryDomain object coonfiguration */
160064064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Scan Concentrator...\n"));
160164064216a8433360745f69edddce19a606659163The Android Open Source Project    scanConcentrator_init (pConfigManager->hScanCncn,
160264064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hHalCtrl,
160364064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hReport,
160464064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hRegulatoryDomain,
160564064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hSiteMgr,
160664064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hSCR,
160764064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hMacServices,
160864064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hAPConnection,
160964064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hEvHandler,
161064064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hMlmeSm,
161164064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hCtrlData,
161264064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hHealthMonitor,
161364064216a8433360745f69edddce19a606659163The Android Open Source Project                           &pConfigManager->pInitTable->scanConcentratorInitParams);
161464064216a8433360745f69edddce19a606659163The Android Open Source Project
161564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* AUTH module */
161664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Auth...\n"));
161764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (auth_config (pConfigManager->hAuth,
161864064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hMlmeSm,
161964064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hRsn,
162064064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hReport,
162164064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hOs,
162264064216a8433360745f69edddce19a606659163The Android Open Source Project                     &pConfigManager->pInitTable->authInitParams) != OK)
162364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
162464064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....AUTH configuration failure \n"));
162564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
162664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
162764064216a8433360745f69edddce19a606659163The Android Open Source Project
162864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* MLME SM module */
162964064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing MLME...\n"));
163064064216a8433360745f69edddce19a606659163The Android Open Source Project    if (mlme_config (pConfigManager->hMlmeSm,
163164064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hAuth,
163264064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hAssoc,
163364064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSiteMgr,
163464064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hCtrlData,
163564064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hConn,
163664064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hTxData,
163764064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hHalCtrl,
163864064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hMemMgr,
163964064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hMeasurementMgr,
164064064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hSwitchChannel,
164164064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hRegulatoryDomain,
164264064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hReport,
164364064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hOs,
164464064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hCurrBss,
164564064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hAPConnection,
164664064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hScanCncn,
164764064216a8433360745f69edddce19a606659163The Android Open Source Project                     pConfigManager->hQosMngr,
164864064216a8433360745f69edddce19a606659163The Android Open Source Project                     (TI_HANDLE)pConfigManager) != OK)
164964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
165064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....MLME SM configuration failure \n"));
165164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
165264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
165364064216a8433360745f69edddce19a606659163The Android Open Source Project
165464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* ASSOC module */
165564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Assoc...\n"));
165664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (assoc_config (pConfigManager->hAssoc,
165764064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hMlmeSm,
165864064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hRegulatoryDomain,
165964064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hSiteMgr,
166064064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hCtrlData,
166164064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hTxData,
166264064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hHalCtrl,
166364064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hRsn,
166464064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hReport,
166564064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hOs,
166664064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hExcMngr,
166764064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hQosMngr,
166864064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hMeasurementMgr,
166964064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hAPConnection,
167064064216a8433360745f69edddce19a606659163The Android Open Source Project                      &pConfigManager->pInitTable->assocInitParams) != OK)
167164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
167264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....ASSOC configuration failure \n"));
167364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
167464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
167564064216a8433360745f69edddce19a606659163The Android Open Source Project
167664064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Rx data module */
167764064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Rx Data...\n"));
167864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (rxData_config (pConfigManager->hRxData,
167964064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hCtrlData,
168064064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hTxData,
168164064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hTnetwDrv,
168264064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hHalCtrl,
168364064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hMlmeSm,
168464064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hRsn,
168564064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSiteMgr,
168664064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hExcMngr,
168764064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hOs,
168864064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hReport,
168964064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hMemMgr,
169064064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hEvHandler,
169164064216a8433360745f69edddce19a606659163The Android Open Source Project                       &pConfigManager->pInitTable->rxDataInitParams) != OK)
169264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
169364064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....RX DATA configuration failure \n"));
169464064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
169564064216a8433360745f69edddce19a606659163The Android Open Source Project    }
169664064216a8433360745f69edddce19a606659163The Android Open Source Project
169764064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Tx data module */
169864064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Tx Data...\n"));
169964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (txData_config (pConfigManager->hTxData,
170064064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hCtrlData,
170164064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hTnetwDrv,
170264064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hHalCtrl,
170364064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hOs,
170464064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hReport,
170564064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hMemMgr,
170664064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSiteMgr,
170764064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hEvHandler,
170864064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hQosMngr,
170964064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hPowerMgr) != OK)
171064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
171164064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....TX DATA configuration failure \n"));
171264064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
171364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
171464064216a8433360745f69edddce19a606659163The Android Open Source Project
171564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Traffic data module */
171664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Traffic Monitor...\n"));
171764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (TrafficMonitor_Init(pConfigManager->hTrafficMon,
171864064216a8433360745f69edddce19a606659163The Android Open Source Project                            pConfigManager->hRxData,
171964064216a8433360745f69edddce19a606659163The Android Open Source Project                            pConfigManager->hTxData) != OK)
172064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
172164064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n..... TRAFFIC MONITOR  configuration failure \n"));
172264064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
172364064216a8433360745f69edddce19a606659163The Android Open Source Project    }
172464064216a8433360745f69edddce19a606659163The Android Open Source Project
172564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Memory Manager module */
172664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Memory Manager...\n"));
172764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (wlan_memMngrConfigure (pConfigManager->hMemMgr, pConfigManager->hOs, pConfigManager->hReport) != OK)
172864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
172964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....MEM MNGR configuration failure \n"));
173064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
173164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
173264064216a8433360745f69edddce19a606659163The Android Open Source Project
173364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* sme state machine module */
173464064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing SME...\n"));
173564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (smeSm_config (pConfigManager->hSmeSm,
173664064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hConn,
173764064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hScanCncn,
173864064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hSiteMgr,
173964064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hHalCtrl,
174064064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hReport,
174164064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hOs,
174264064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hEvHandler,
174364064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hSCR,
174464064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hAPConnection,
174564064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hCurrBss,
174664064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hPowerMgr,
174764064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hRegulatoryDomain,
174864064216a8433360745f69edddce19a606659163The Android Open Source Project                      &pConfigManager->pInitTable->smeInitParams) != OK)
174964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
175064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Sme state machine configuration failure \n"));
175164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
175264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
175364064216a8433360745f69edddce19a606659163The Android Open Source Project
175464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Rsn module */
175564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing RSN...\n"));
175664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (rsn_config (pConfigManager->hRsn,
175764064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hTxData,
175864064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hRxData,
175964064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hConn,
176064064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hMlmeSm,
176164064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hCtrlData,
176264064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hHalCtrl,
176364064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hMemMgr,
176464064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hSiteMgr,
176564064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hReport,
176664064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hOs,
176764064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hExcMngr,
176864064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hPowerMgr,
176964064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hEvHandler,
177064064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hSmeSm,
177164064216a8433360745f69edddce19a606659163The Android Open Source Project                    pConfigManager->hAPConnection,
177264064216a8433360745f69edddce19a606659163The Android Open Source Project                    &pConfigManager->pInitTable->rsnInitParams) != OK)
177364064216a8433360745f69edddce19a606659163The Android Open Source Project    {
177464064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....RSN configuration failure \n"));
177564064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
177664064216a8433360745f69edddce19a606659163The Android Open Source Project    }
177764064216a8433360745f69edddce19a606659163The Android Open Source Project
177864064216a8433360745f69edddce19a606659163The Android Open Source Project    /* MeasurementMgr module */
177964064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Note: must be configured after RegulatoryDomain object coonfiguration */
178064064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Measurement Manager...\n"));
178164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (measurementMgr_config (pConfigManager->hMeasurementMgr,
178264064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hMacServices,
178364064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hRegulatoryDomain,
178464064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hExcMngr,
178564064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hSiteMgr,
178664064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hHalCtrl,
178764064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hMlmeSm,
178864064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hTrafficMon,
178964064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hReport,
179064064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hOs,
179164064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hSCR,
179264064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hHealthMonitor,
179364064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hAPConnection,
179464064216a8433360745f69edddce19a606659163The Android Open Source Project                               pConfigManager->hTxData,
179564064216a8433360745f69edddce19a606659163The Android Open Source Project                               &pConfigManager->pInitTable->measurementInitParams) != OK)
179664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
179764064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....MeasurementMgr configuration failure \n"));
179864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
179964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
180064064216a8433360745f69edddce19a606659163The Android Open Source Project
180164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED
180264064216a8433360745f69edddce19a606659163The Android Open Source Project
180364064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing EXC Manager...\n"));
180464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (excMngr_config (pConfigManager->hExcMngr,
180564064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hReport,
180664064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hOs,
180764064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hRsn,
180864064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMemMgr,
180964064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hCtrlData,
181064064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hTxData,
181164064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hSiteMgr,
181264064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hAPConnection,
181364064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hEvHandler,
181464064216a8433360745f69edddce19a606659163The Android Open Source Project                        (TI_HANDLE)pConfigManager,
181564064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMeasurementMgr,
181664064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hQosMngr,
181764064216a8433360745f69edddce19a606659163The Android Open Source Project                        &pConfigManager->pInitTable->excMngrParams) != OK)
181864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
181964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....excMngr_config configuration failure \n"));
182064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
182164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
182264064216a8433360745f69edddce19a606659163The Android Open Source Project
182364064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
182464064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Scan manager */
182564064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Scan Manager...\n"));
182664064216a8433360745f69edddce19a606659163The Android Open Source Project    scanMngr_init (pConfigManager->hScanMngr,
182764064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->hReport,
182864064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->hRegulatoryDomain,
182964064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->hScanCncn,
183064064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->hRoamingMngr,
183164064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->hSiteMgr,
183264064216a8433360745f69edddce19a606659163The Android Open Source Project                   pConfigManager->hHalCtrl);
183364064216a8433360745f69edddce19a606659163The Android Open Source Project
183464064216a8433360745f69edddce19a606659163The Android Open Source Project
183564064216a8433360745f69edddce19a606659163The Android Open Source Project
183664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing CurrBSS...\n"));
183764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (currBSS_init (pConfigManager->hCurrBss,
183864064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hMlmeSm,
183964064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hPowerMgr,
184064064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hAPConnection,
184164064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hSmeSm,
184264064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hHalCtrl,
184364064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hReport,
184464064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hMemMgr,
184564064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hTxData,
184664064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hSiteMgr,
184764064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hScanMngr,
184864064216a8433360745f69edddce19a606659163The Android Open Source Project                      pConfigManager->hMacServices) != OK)
184964064216a8433360745f69edddce19a606659163The Android Open Source Project    {
185064064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....currBSS_init configuration failure \n"));
185164064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
185264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
185364064216a8433360745f69edddce19a606659163The Android Open Source Project
185464064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing AP Conn...\n"));
185564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (apConn_config (pConfigManager->hAPConnection,
185664064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hReport,
185764064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hCurrBss,
185864064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hRoamingMngr,
185964064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSmeSm,
186064064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSiteMgr,
186164064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hExcMngr,
186264064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hConn,
186364064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hRsn,
186464064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hQosMngr,
186564064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hCtrlData,
186664064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hEvHandler,
186764064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSCR,
186864064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hAssoc,
186964064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hRegulatoryDomain,
187064064216a8433360745f69edddce19a606659163The Android Open Source Project                       &pConfigManager->pInitTable->apConnParams) != OK)
187164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
187264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....apConn_config configuration failure \n"));
187364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
187464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
187564064216a8433360745f69edddce19a606659163The Android Open Source Project
187664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Roaming Manager...\n"));
187764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (roamingMngr_init (pConfigManager->hRoamingMngr,
187864064216a8433360745f69edddce19a606659163The Android Open Source Project                          pConfigManager->hReport,
187964064216a8433360745f69edddce19a606659163The Android Open Source Project                          pConfigManager->hScanMngr,
188064064216a8433360745f69edddce19a606659163The Android Open Source Project                          pConfigManager->hAPConnection) != OK)
188164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
188264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....roamingMngr_config configuration failure \n"));
188364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
188464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
188564064216a8433360745f69edddce19a606659163The Android Open Source Project
188664064216a8433360745f69edddce19a606659163The Android Open Source Project    /* NOTE: must be after siteMgr & whalCtrl configurations !!!! */
188764064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing QoS Manager...\n"));
188864064216a8433360745f69edddce19a606659163The Android Open Source Project    if (qosMngr_config (pConfigManager->hQosMngr,
188964064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hHalCtrl,
189064064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hSiteMgr,
189164064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hReport,
189264064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hOs,
189364064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hTxData,
189464064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMeasurementMgr,
189564064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hSmeSm,
189664064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hMemMgr,
189764064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hCtrlData,
189864064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hEvHandler,
189964064216a8433360745f69edddce19a606659163The Android Open Source Project                        pConfigManager->hExcMngr,
190064064216a8433360745f69edddce19a606659163The Android Open Source Project                        &pConfigManager->pInitTable->qosMngrInitParams) != OK)
190164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
190264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....Qos Mngr configuration failure \n"));
190364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
190464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
190564064216a8433360745f69edddce19a606659163The Android Open Source Project
190664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Switch Channel...\n"));
190764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (switchChannel_config (pConfigManager->hSwitchChannel,
190864064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hHalCtrl,
190964064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hSiteMgr,
191064064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hSCR,
191164064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hRegulatoryDomain,
191264064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hAPConnection,
191364064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hReport,
191464064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hOs,
191564064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hHealthMonitor,
191664064216a8433360745f69edddce19a606659163The Android Open Source Project                              &pConfigManager->pInitTable->SwitchChannelInitParams) != OK)
191764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
191864064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....SwitchChannel_config configuration failure \n"));
191964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
192064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
192164064216a8433360745f69edddce19a606659163The Android Open Source Project
192264064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Health Monitor...\n"));
192364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (healthMonitor_config (pConfigManager->hHealthMonitor,
192464064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hReport,
192564064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hHalCtrl,
192664064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hSiteMgr,
192764064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hSCR,
192864064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hSoftGemini,
192964064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hTnetwDrv,
193064064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hMemMgr,
193164064216a8433360745f69edddce19a606659163The Android Open Source Project                              (TI_HANDLE)pConfigManager,
193264064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hTxData,
193364064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hCurrBss,
193464064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hRsn,
193564064216a8433360745f69edddce19a606659163The Android Open Source Project                              &pConfigManager->pInitTable->healthMonitorInitParams,
193664064216a8433360745f69edddce19a606659163The Android Open Source Project                              pConfigManager->hRecoveryMgr) != OK)
193764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
193864064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....healthMonitor_config configuration failure \n"));
193964064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
194064064216a8433360745f69edddce19a606659163The Android Open Source Project    }
194164064216a8433360745f69edddce19a606659163The Android Open Source Project
194264064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Power Manager...\n"));
194364064216a8433360745f69edddce19a606659163The Android Open Source Project    if (PowerMgr_init (pConfigManager->hPowerMgr,
194464064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hMacServices,
194564064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hReport,
194664064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSiteMgr,
194764064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hHalCtrl,
194864064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hTrafficMon,
194964064216a8433360745f69edddce19a606659163The Android Open Source Project                       pConfigManager->hSoftGemini,
195064064216a8433360745f69edddce19a606659163The Android Open Source Project                       &pConfigManager->pInitTable->PowerMgrInitParams) != OK)
195164064216a8433360745f69edddce19a606659163The Android Open Source Project    {
195264064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....PowerMgr_init configuration failure \n"));
195364064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
195464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
195564064216a8433360745f69edddce19a606659163The Android Open Source Project
195664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Recovery Mgr...\n"));
195764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (recoveryMgr_config(pConfigManager->hRecoveryMgr,
195864064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hReport,
195964064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hTxData,
196064064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hTnetwDrv,
196164064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hSCR,
196264064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hCurrBss,
196364064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hPowerMgr,
196464064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hHealthMonitor,
196564064216a8433360745f69edddce19a606659163The Android Open Source Project						   pConfigManager->hSoftGemini) != OK)
196664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
196764064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....RecoveryMgr configuration failure \n"));
196864064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
196964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
197064064216a8433360745f69edddce19a606659163The Android Open Source Project
197164064216a8433360745f69edddce19a606659163The Android Open Source Project	/* This must be called before calling SoftGemini_config, as the SG may trigger events from FW
197264064216a8433360745f69edddce19a606659163The Android Open Source Project		which are enabled in this fucntion */
197364064216a8433360745f69edddce19a606659163The Android Open Source Project	whalCtrl_exitFromInitModePart1(pConfigManager->hHalCtrl);
197464064216a8433360745f69edddce19a606659163The Android Open Source Project
197564064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Soft Gemini module , should be configured after all the modules it uses */
197664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Initializing Soft Gemini...\n"));
197764064216a8433360745f69edddce19a606659163The Android Open Source Project    if (SoftGemini_config (pConfigManager->hSoftGemini,
197864064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hCtrlData,
197964064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hHalCtrl,
198064064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hReport,
198164064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hSCR,
198264064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hPowerMgr,
198364064216a8433360745f69edddce19a606659163The Android Open Source Project                           (TI_HANDLE)pConfigManager,
198464064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hScanCncn,
198564064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hCurrBss,
198664064216a8433360745f69edddce19a606659163The Android Open Source Project                           pConfigManager->hEvHandler,
198764064216a8433360745f69edddce19a606659163The Android Open Source Project                           &pConfigManager->pInitTable->SoftGeminiInitParams) != OK)
198864064216a8433360745f69edddce19a606659163The Android Open Source Project    {
198964064216a8433360745f69edddce19a606659163The Android Open Source Project        WLAN_OS_REPORT(("\n.....SoftGemini configuration failure \n"));
199064064216a8433360745f69edddce19a606659163The Android Open Source Project        return NOK;
199164064216a8433360745f69edddce19a606659163The Android Open Source Project    }
199264064216a8433360745f69edddce19a606659163The Android Open Source Project
199364064216a8433360745f69edddce19a606659163The Android Open Source Project    /* Notify the power authorization so the first min power level will be sent to the FW */
199464064216a8433360745f69edddce19a606659163The Android Open Source Project       /* This will update the FW Power Level according to the defaultPowerLevel configured in Registry */
199564064216a8433360745f69edddce19a606659163The Android Open Source Project    MacServices_powerAutho_ExitFromInit(pConfigManager->hMacServices);
199664064216a8433360745f69edddce19a606659163The Android Open Source Project
199764064216a8433360745f69edddce19a606659163The Android Open Source Project    /*
199864064216a8433360745f69edddce19a606659163The Android Open Source Project    *  Exit from init mode should be before smeSM starts. this enable us to send
199964064216a8433360745f69edddce19a606659163The Android Open Source Project    *  command to the MboxQueue(that store the command) while the interrupts are masked.
200064064216a8433360745f69edddce19a606659163The Android Open Source Project    *  the interrupt would be enable at the end of the init process.
200164064216a8433360745f69edddce19a606659163The Android Open Source Project    */
200264064216a8433360745f69edddce19a606659163The Android Open Source Project	whalCtrl_exitFromInitModePart2(pConfigManager->hHalCtrl);
200364064216a8433360745f69edddce19a606659163The Android Open Source Project
200464064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_OS_REPORT(("Finished initializing modules.\n"));
200564064216a8433360745f69edddce19a606659163The Android Open Source Project
200664064216a8433360745f69edddce19a606659163The Android Open Source Project    WLAN_REPORT_INIT(pConfigManager->hReport, CONFIG_MGR_MODULE_LOG,
200764064216a8433360745f69edddce19a606659163The Android Open Source Project        ("EXIT FROM INIT\n"));
200864064216a8433360745f69edddce19a606659163The Android Open Source Project
200964064216a8433360745f69edddce19a606659163The Android Open Source Project    return OK;
201064064216a8433360745f69edddce19a606659163The Android Open Source Project}
201164064216a8433360745f69edddce19a606659163The Android Open Source Project
201264064216a8433360745f69edddce19a606659163The Android Open Source Project
201364064216a8433360745f69edddce19a606659163The Android Open Source Project/*
201464064216a8433360745f69edddce19a606659163The Android Open Source Project * configMgr_RetrieveFWInfo:
201564064216a8433360745f69edddce19a606659163The Android Open Source Project * Retrieve FW information from HAL which the SNWSASettings returned
201664064216a8433360745f69edddce19a606659163The Android Open Source Project * by GWSI_Configure does not contained
201764064216a8433360745f69edddce19a606659163The Android Open Source Project */
201864064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic  void configMgr_RetrieveFWInfo(configMgr_t *pConfigManager, initTable_t *pInitTable, whalCtrl_chip_t *pChip_Version)
201964064216a8433360745f69edddce19a606659163The Android Open Source Project{
202064064216a8433360745f69edddce19a606659163The Android Open Source Project    /*
202164064216a8433360745f69edddce19a606659163The Android Open Source Project     * Retrieve FW information from HAL
202264064216a8433360745f69edddce19a606659163The Android Open Source Project     */
202364064216a8433360745f69edddce19a606659163The Android Open Source Project    whalCtrl_GetFWInfo(pConfigManager->hHalCtrl, pChip_Version);
202464064216a8433360745f69edddce19a606659163The Android Open Source Project
202564064216a8433360745f69edddce19a606659163The Android Open Source Project    /*
202664064216a8433360745f69edddce19a606659163The Android Open Source Project     * Update complete the init table update
202764064216a8433360745f69edddce19a606659163The Android Open Source Project     * with the chip information received from the HAL
202864064216a8433360745f69edddce19a606659163The Android Open Source Project     */
202964064216a8433360745f69edddce19a606659163The Android Open Source Project    os_memoryCopy(pConfigManager->hOs, (void *)pInitTable->ctrlDataInitParams.ctrlDataDeviceMacAddress.addr, (void *)pChip_Version->macAddress.addr, MAC_ADDR_LEN);
203064064216a8433360745f69edddce19a606659163The Android Open Source Project    os_memoryCopy(pConfigManager->hOs, pInitTable->siteMgrInitParams.siteMgrFwVersion, pChip_Version->fwVer, FW_VERSION_LEN);
203164064216a8433360745f69edddce19a606659163The Android Open Source Project    os_memoryCopy(pConfigManager->hOs, &(pInitTable->siteMgrInitParams.siteMgrEEpromVersion), &(pChip_Version->e2Ver), sizeof(e2Version_t));
203264064216a8433360745f69edddce19a606659163The Android Open Source Project    pInitTable->siteMgrInitParams.siteMgrRadioValues.siteMgr_radioType = pChip_Version->radioType;
203364064216a8433360745f69edddce19a606659163The Android Open Source Project}
203464064216a8433360745f69edddce19a606659163The Android Open Source Project
203564064216a8433360745f69edddce19a606659163The Android Open Source Project
203664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
203764064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configMgr_GetInitParams                                                *
203864064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
203964064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Retreive init table
204064064216a8433360745f69edddce19a606659163The Android Open Source Project
204164064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          pConfigManager     - driver main handle
204264064216a8433360745f69edddce19a606659163The Android Open Source Project
204364064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:         ioBuffer           - init table
204464064216a8433360745f69edddce19a606659163The Android Open Source Project                outBufLen          - init table length
204564064216a8433360745f69edddce19a606659163The Android Open Source Project
204664064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         none
204764064216a8433360745f69edddce19a606659163The Android Open Source Project
204864064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
204964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid configMgr_GetInitParams (TI_HANDLE hConfigManager, UINT8* ioBuffer, UINT16 *outBufLen)
205064064216a8433360745f69edddce19a606659163The Android Open Source Project{
205164064216a8433360745f69edddce19a606659163The Android Open Source Project    configMgr_t *pConfigManager = (configMgr_t *)hConfigManager;
205264064216a8433360745f69edddce19a606659163The Android Open Source Project
205364064216a8433360745f69edddce19a606659163The Android Open Source Project    TnetwDrv_GetInitParams (pConfigManager->hTnetwDrv, ioBuffer, outBufLen);
205464064216a8433360745f69edddce19a606659163The Android Open Source Project}
205564064216a8433360745f69edddce19a606659163The Android Open Source Project
205664064216a8433360745f69edddce19a606659163The Android Open Source Project
205764064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
205864064216a8433360745f69edddce19a606659163The Android Open Source Project *                        release_module                                                *
205964064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
206064064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Driver free function. Performs the following:
206164064216a8433360745f69edddce19a606659163The Android Open Source Project                -   Go over the vector, for each bit that is set, release the corresponding module.
206264064216a8433360745f69edddce19a606659163The Android Open Source Project
206364064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          pConfigManager     -    Driver main handle
206464064216a8433360745f69edddce19a606659163The Android Open Source Project                initVec         -       Vector that contains the bits of the modules which have to be free
206564064216a8433360745f69edddce19a606659163The Android Open Source Project
206664064216a8433360745f69edddce19a606659163The Android Open Source Project
206764064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
206864064216a8433360745f69edddce19a606659163The Android Open Source Project
206964064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
207064064216a8433360745f69edddce19a606659163The Android Open Source Project
207164064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
207264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void release_module(configMgr_t *pConfigManager)
207364064216a8433360745f69edddce19a606659163The Android Open Source Project{
207464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hScanMngr != NULL)
207564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
207664064216a8433360745f69edddce19a606659163The Android Open Source Project        scanMngr_unload( pConfigManager->hScanMngr);
207764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
207864064216a8433360745f69edddce19a606659163The Android Open Source Project
207964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSiteMgr != NULL)
208064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
208164064216a8433360745f69edddce19a606659163The Android Open Source Project        siteMgr_unLoad(pConfigManager->hSiteMgr);
208264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
208364064216a8433360745f69edddce19a606659163The Android Open Source Project
208464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSmeSm != NULL)
208564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
208664064216a8433360745f69edddce19a606659163The Android Open Source Project        smeSm_unLoad(pConfigManager->hSmeSm);
208764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
208864064216a8433360745f69edddce19a606659163The Android Open Source Project
208964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hConn != NULL)
209064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
209164064216a8433360745f69edddce19a606659163The Android Open Source Project        conn_unLoad(pConfigManager->hConn);
209264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
209364064216a8433360745f69edddce19a606659163The Android Open Source Project
209464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hTnetwDrv != NULL)
209564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
209664064216a8433360745f69edddce19a606659163The Android Open Source Project        TnetwDrv_Destroy(pConfigManager->hTnetwDrv);
209764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
209864064216a8433360745f69edddce19a606659163The Android Open Source Project
209964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hScanCncn != NULL)
210064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
210164064216a8433360745f69edddce19a606659163The Android Open Source Project        scanConcentrator_release(pConfigManager->hScanCncn);
210264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
210364064216a8433360745f69edddce19a606659163The Android Open Source Project
210464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hTrafficMon != NULL)
210564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
210664064216a8433360745f69edddce19a606659163The Android Open Source Project        TrafficMonitor_Destroy(pConfigManager->hTrafficMon);
210764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
210864064216a8433360745f69edddce19a606659163The Android Open Source Project
210964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hCtrlData != NULL)
211064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
211164064216a8433360745f69edddce19a606659163The Android Open Source Project        ctrlData_unLoad(pConfigManager->hCtrlData);
211264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
211364064216a8433360745f69edddce19a606659163The Android Open Source Project
211464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hTxData != NULL)
211564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
211664064216a8433360745f69edddce19a606659163The Android Open Source Project        txData_unLoad(pConfigManager->hTxData);
211764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
211864064216a8433360745f69edddce19a606659163The Android Open Source Project
211964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRxData != NULL)
212064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
212164064216a8433360745f69edddce19a606659163The Android Open Source Project        rxData_unLoad(pConfigManager->hRxData);
212264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
212364064216a8433360745f69edddce19a606659163The Android Open Source Project
212464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hAssoc != NULL)
212564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
212664064216a8433360745f69edddce19a606659163The Android Open Source Project        assoc_unload(pConfigManager->hAssoc);
212764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
212864064216a8433360745f69edddce19a606659163The Android Open Source Project
212964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hAuth != NULL)
213064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
213164064216a8433360745f69edddce19a606659163The Android Open Source Project        auth_unload(pConfigManager->hAuth);
213264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
213364064216a8433360745f69edddce19a606659163The Android Open Source Project
213464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hMlmeSm != NULL)
213564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
213664064216a8433360745f69edddce19a606659163The Android Open Source Project        mlme_unload(pConfigManager->hMlmeSm);
213764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
213864064216a8433360745f69edddce19a606659163The Android Open Source Project
213964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSCR != NULL)
214064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
214164064216a8433360745f69edddce19a606659163The Android Open Source Project        scr_release(pConfigManager->hSCR);
214264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
214364064216a8433360745f69edddce19a606659163The Android Open Source Project
214464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hEvHandler != NULL)
214564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
214664064216a8433360745f69edddce19a606659163The Android Open Source Project         EvHandlerUnload(pConfigManager->hEvHandler);
214764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
214864064216a8433360745f69edddce19a606659163The Android Open Source Project
214964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hMemMgr != NULL)
215064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
215164064216a8433360745f69edddce19a606659163The Android Open Source Project        wlan_memMngrDestroy(pConfigManager->hMemMgr);
215264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
215364064216a8433360745f69edddce19a606659163The Android Open Source Project
215464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRsn != NULL)
215564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
215664064216a8433360745f69edddce19a606659163The Android Open Source Project        rsn_unload(pConfigManager->hRsn);
215764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
215864064216a8433360745f69edddce19a606659163The Android Open Source Project
215964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRegulatoryDomain != NULL)
216064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
216164064216a8433360745f69edddce19a606659163The Android Open Source Project        regulatoryDomain_destroy(pConfigManager->hRegulatoryDomain);
216264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
216364064216a8433360745f69edddce19a606659163The Android Open Source Project
216464064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hMeasurementMgr != NULL)
216564064216a8433360745f69edddce19a606659163The Android Open Source Project    {
216664064216a8433360745f69edddce19a606659163The Android Open Source Project        measurementMgr_destroy(pConfigManager->hMeasurementMgr);
216764064216a8433360745f69edddce19a606659163The Android Open Source Project    }
216864064216a8433360745f69edddce19a606659163The Android Open Source Project
216964064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSoftGemini != NULL)
217064064216a8433360745f69edddce19a606659163The Android Open Source Project    {
217164064216a8433360745f69edddce19a606659163The Android Open Source Project        SoftGemini_destroy(pConfigManager->hSoftGemini);
217264064216a8433360745f69edddce19a606659163The Android Open Source Project    }
217364064216a8433360745f69edddce19a606659163The Android Open Source Project
217464064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED
217564064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hExcMngr != NULL)
217664064216a8433360745f69edddce19a606659163The Android Open Source Project    {
217764064216a8433360745f69edddce19a606659163The Android Open Source Project        excMngr_unload(pConfigManager->hExcMngr);
217864064216a8433360745f69edddce19a606659163The Android Open Source Project    }
217964064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
218064064216a8433360745f69edddce19a606659163The Android Open Source Project
218164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRoamingMngr != NULL)
218264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
218364064216a8433360745f69edddce19a606659163The Android Open Source Project        roamingMngr_unload(pConfigManager->hRoamingMngr);
218464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
218564064216a8433360745f69edddce19a606659163The Android Open Source Project
218664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hQosMngr != NULL)
218764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
218864064216a8433360745f69edddce19a606659163The Android Open Source Project        qosMngr_destroy(pConfigManager->hQosMngr);
218964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
219064064216a8433360745f69edddce19a606659163The Android Open Source Project
219164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hPowerMgr != NULL)
219264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
219364064216a8433360745f69edddce19a606659163The Android Open Source Project        PowerMgr_destroy(pConfigManager->hPowerMgr);
219464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
219564064216a8433360745f69edddce19a606659163The Android Open Source Project
219664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hAPConnection != NULL)
219764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
219864064216a8433360745f69edddce19a606659163The Android Open Source Project        apConn_unload(pConfigManager->hAPConnection);
219964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
220064064216a8433360745f69edddce19a606659163The Android Open Source Project
220164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hCurrBss != NULL)
220264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
220364064216a8433360745f69edddce19a606659163The Android Open Source Project        currBSS_unload(pConfigManager->hCurrBss);
220464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
220564064216a8433360745f69edddce19a606659163The Android Open Source Project
220664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hSwitchChannel != NULL)
220764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
220864064216a8433360745f69edddce19a606659163The Android Open Source Project        switchChannel_unload(pConfigManager->hSwitchChannel);
220964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
221064064216a8433360745f69edddce19a606659163The Android Open Source Project
221164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hHealthMonitor != NULL)
221264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
221364064216a8433360745f69edddce19a606659163The Android Open Source Project        healthMonitor_unload(pConfigManager->hHealthMonitor);
221464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
221564064216a8433360745f69edddce19a606659163The Android Open Source Project
221664064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hRecoveryMgr != NULL)
221764064216a8433360745f69edddce19a606659163The Android Open Source Project    {
221864064216a8433360745f69edddce19a606659163The Android Open Source Project        recoveryMgr_destroy(pConfigManager->hRecoveryMgr);
221964064216a8433360745f69edddce19a606659163The Android Open Source Project    }
222064064216a8433360745f69edddce19a606659163The Android Open Source Project
222164064216a8433360745f69edddce19a606659163The Android Open Source Project    if (pConfigManager->hReport != NULL)
222264064216a8433360745f69edddce19a606659163The Android Open Source Project    {
222364064216a8433360745f69edddce19a606659163The Android Open Source Project        report_unLoad(pConfigManager->hReport);
222464064216a8433360745f69edddce19a606659163The Android Open Source Project    }
222564064216a8433360745f69edddce19a606659163The Android Open Source Project
222664064216a8433360745f69edddce19a606659163The Android Open Source Project    /***************************************************************
222764064216a8433360745f69edddce19a606659163The Android Open Source Project    This is the config manager, it should be always the last module
222864064216a8433360745f69edddce19a606659163The Android Open Source Project    to release
222964064216a8433360745f69edddce19a606659163The Android Open Source Project    ****************************************************************/
223064064216a8433360745f69edddce19a606659163The Android Open Source Project
223164064216a8433360745f69edddce19a606659163The Android Open Source Project    utils_nullMemoryFree(pConfigManager->hOs, pConfigManager, sizeof(configMgr_t));
223264064216a8433360745f69edddce19a606659163The Android Open Source Project}
223364064216a8433360745f69edddce19a606659163The Android Open Source Project
223464064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************************
223564064216a8433360745f69edddce19a606659163The Android Open Source Project *                        configParamsAccessTable                                       *
223664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************************
223764064216a8433360745f69edddce19a606659163The Android Open Source ProjectDESCRIPTION:    Called in the configuration phase by the driver, performs the following:
223864064216a8433360745f69edddce19a606659163The Android Open Source Project                -   For each module that supply a Get/Set services to his parameters, fill the corresponding entry
223964064216a8433360745f69edddce19a606659163The Android Open Source Project                    in the params access table with the following:
224064064216a8433360745f69edddce19a606659163The Android Open Source Project                        -   Get function
224164064216a8433360745f69edddce19a606659163The Android Open Source Project                        -   Set function
224264064216a8433360745f69edddce19a606659163The Android Open Source Project                        -   Handle to the module
224364064216a8433360745f69edddce19a606659163The Android Open Source Project                This table is used when Getting/Setting a parameter from the OS abstraction layer.
224464064216a8433360745f69edddce19a606659163The Android Open Source Project
224564064216a8433360745f69edddce19a606659163The Android Open Source ProjectINPUT:          pConfigManager     -    Driver main handle
224664064216a8433360745f69edddce19a606659163The Android Open Source Project
224764064216a8433360745f69edddce19a606659163The Android Open Source ProjectOUTPUT:
224864064216a8433360745f69edddce19a606659163The Android Open Source Project
224964064216a8433360745f69edddce19a606659163The Android Open Source ProjectRETURN:         OK on success, NOK on failure
225064064216a8433360745f69edddce19a606659163The Android Open Source Project
225164064216a8433360745f69edddce19a606659163The Android Open Source Project************************************************************************/
225264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void configParamsAccessTable(configMgr_t *pConfigManager)
225364064216a8433360745f69edddce19a606659163The Android Open Source Project{
225464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(AUTH_MODULE_PARAM) - 1].set = auth_setParam;
225564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(AUTH_MODULE_PARAM) - 1].get = auth_getParam;
225664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(AUTH_MODULE_PARAM) - 1].handle = pConfigManager->hAuth;
225764064216a8433360745f69edddce19a606659163The Android Open Source Project
225864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(ASSOC_MODULE_PARAM) - 1].set = assoc_setParam;
225964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(ASSOC_MODULE_PARAM) - 1].get = assoc_getParam;
226064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(ASSOC_MODULE_PARAM) - 1].handle = pConfigManager->hAssoc;
226164064216a8433360745f69edddce19a606659163The Android Open Source Project
226264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(RX_DATA_MODULE_PARAM) - 1].set = rxData_setParam;
226364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(RX_DATA_MODULE_PARAM) - 1].get = rxData_getParam;
226464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(RX_DATA_MODULE_PARAM) - 1].handle = pConfigManager->hRxData;
226564064216a8433360745f69edddce19a606659163The Android Open Source Project
226664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(TX_DATA_MODULE_PARAM) - 1].set = txData_setParam;
226764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(TX_DATA_MODULE_PARAM) - 1].get = txData_getParam;
226864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(TX_DATA_MODULE_PARAM) - 1].handle = pConfigManager->hTxData;
226964064216a8433360745f69edddce19a606659163The Android Open Source Project
227064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(CTRL_DATA_MODULE_PARAM) - 1].set = ctrlData_setParam;
227164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(CTRL_DATA_MODULE_PARAM) - 1].get = ctrlData_getParam;
227264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(CTRL_DATA_MODULE_PARAM) - 1].handle = pConfigManager->hCtrlData;
227364064216a8433360745f69edddce19a606659163The Android Open Source Project
227464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SITE_MGR_MODULE_PARAM) - 1].set = siteMgr_setParam;
227564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SITE_MGR_MODULE_PARAM) - 1].get = siteMgr_getParam;
227664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SITE_MGR_MODULE_PARAM) - 1].handle = pConfigManager->hSiteMgr;
227764064216a8433360745f69edddce19a606659163The Android Open Source Project
227864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(CONN_MODULE_PARAM) - 1].set = conn_setParam;
227964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(CONN_MODULE_PARAM) - 1].get = conn_getParam;
228064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(CONN_MODULE_PARAM) - 1].handle = pConfigManager->hConn;
228164064216a8433360745f69edddce19a606659163The Android Open Source Project
228264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(RSN_MODULE_PARAM) - 1].set = rsn_setParam;
228364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(RSN_MODULE_PARAM) - 1].get = rsn_getParam;
228464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(RSN_MODULE_PARAM) - 1].handle= pConfigManager->hRsn;
228564064216a8433360745f69edddce19a606659163The Android Open Source Project
228664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(HAL_CTRL_MODULE_PARAM) - 1].set = (paramFunc_t)whalCtrl_SetParam;
228764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(HAL_CTRL_MODULE_PARAM) - 1].get = (paramFunc_t)whalCtrl_GetParam;
228864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(HAL_CTRL_MODULE_PARAM) - 1].handle = pConfigManager->hHalCtrl;
228964064216a8433360745f69edddce19a606659163The Android Open Source Project
229064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(REPORT_MODULE_PARAM) - 1].set = (paramFunc_t)report_setParam;
229164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(REPORT_MODULE_PARAM) - 1].get = (paramFunc_t)report_getParam;
229264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(REPORT_MODULE_PARAM) - 1].handle = pConfigManager->hReport;
229364064216a8433360745f69edddce19a606659163The Android Open Source Project
229464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SME_SM_MODULE_PARAM) - 1].set = smeSm_setParam;
229564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SME_SM_MODULE_PARAM) - 1].get = smeSm_getParam;
229664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SME_SM_MODULE_PARAM) - 1].handle = pConfigManager->hSmeSm;
229764064216a8433360745f69edddce19a606659163The Android Open Source Project
229864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_CNCN_PARAM) - 1].set = scanConcentrator_setParam;
229964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_CNCN_PARAM) - 1].get = scanConcentrator_getParam;
230064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_CNCN_PARAM) - 1].handle = pConfigManager->hScanCncn;
230164064216a8433360745f69edddce19a606659163The Android Open Source Project
230264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_MNGR_PARAM) - 1].set = scanMngr_setParam;
230364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_MNGR_PARAM) - 1].get = scanMngr_getParam;
230464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SCAN_MNGR_PARAM) - 1].handle = pConfigManager->hScanMngr;
230564064216a8433360745f69edddce19a606659163The Android Open Source Project
230664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(MLME_SM_MODULE_PARAM) - 1].set = mlme_setParam;
230764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(MLME_SM_MODULE_PARAM) - 1].get = mlme_getParam;
230864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(MLME_SM_MODULE_PARAM) - 1].handle = pConfigManager->hMlmeSm;
230964064216a8433360745f69edddce19a606659163The Android Open Source Project
231064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(REGULATORY_DOMAIN_MODULE_PARAM) - 1].set = regulatoryDomain_setParam;
231164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(REGULATORY_DOMAIN_MODULE_PARAM) - 1].get = regulatoryDomain_getParam;
231264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(REGULATORY_DOMAIN_MODULE_PARAM) - 1].handle = pConfigManager->hRegulatoryDomain;
231364064216a8433360745f69edddce19a606659163The Android Open Source Project
231464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(MEASUREMENT_MODULE_PARAM) - 1].set = measurementMgr_setParam;
231564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(MEASUREMENT_MODULE_PARAM) - 1].get = measurementMgr_getParam;
231664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(MEASUREMENT_MODULE_PARAM) - 1].handle = pConfigManager->hMeasurementMgr;
231764064216a8433360745f69edddce19a606659163The Android Open Source Project
231864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED
231964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(EXC_MANAGER_MODULE_PARAM) - 1].set = excMngr_setParam;
232064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(EXC_MANAGER_MODULE_PARAM) - 1].get = excMngr_getParam;
232164064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(EXC_MANAGER_MODULE_PARAM) - 1].handle = pConfigManager->hExcMngr;
232264064216a8433360745f69edddce19a606659163The Android Open Source Project#endif
232364064216a8433360745f69edddce19a606659163The Android Open Source Project
232464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(ROAMING_MANAGER_MODULE_PARAM) - 1].set = roamingMngr_setParam;
232564064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(ROAMING_MANAGER_MODULE_PARAM) - 1].get = roamingMngr_getParam;
232664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(ROAMING_MANAGER_MODULE_PARAM) - 1].handle = pConfigManager->hRoamingMngr;
232764064216a8433360745f69edddce19a606659163The Android Open Source Project
232864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SOFT_GEMINI_PARAM) - 1].set = SoftGemini_setParam;
232964064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SOFT_GEMINI_PARAM) - 1].get = SoftGemini_getParam;
233064064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(SOFT_GEMINI_PARAM) - 1].handle = pConfigManager->hSoftGemini;
233164064216a8433360745f69edddce19a606659163The Android Open Source Project
233264064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(QOS_MANAGER_PARAM) - 1].set = qosMngr_setParams;
233364064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(QOS_MANAGER_PARAM) - 1].get = qosMngr_getParams;
233464064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(QOS_MANAGER_PARAM) - 1].handle = pConfigManager->hQosMngr;
233564064216a8433360745f69edddce19a606659163The Android Open Source Project
233664064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(POWER_MANAGER_PARAM) - 1].set = powerMgr_setParam;
233764064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(POWER_MANAGER_PARAM) - 1].get = powerMgr_getParam;
233864064216a8433360745f69edddce19a606659163The Android Open Source Project    pConfigManager->paramAccessTable[GET_PARAM_MODULE_NUMBER(POWER_MANAGER_PARAM) - 1].handle = pConfigManager->hPowerMgr;
233964064216a8433360745f69edddce19a606659163The Android Open Source Project}
234064064216a8433360745f69edddce19a606659163The Android Open Source Project
2341