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