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/**************************************************************************** 3764064216a8433360745f69edddce19a606659163The Android Open Source Project * 3864064216a8433360745f69edddce19a606659163The Android Open Source Project * MODULE: TNETW_Driver.c 3964064216a8433360745f69edddce19a606659163The Android Open Source Project * PURPOSE: TNETW_Driver layer used to handle the MAC Services 4064064216a8433360745f69edddce19a606659163The Android Open Source Project * and the HAL Modules 4164064216a8433360745f69edddce19a606659163The Android Open Source Project * 4264064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 4364064216a8433360745f69edddce19a606659163The Android Open Source Project 4464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "commonTypes.h" 4564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "report.h" 4664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "TNETW_Driver_api.h" 4764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "MacServices_api.h" 4864064216a8433360745f69edddce19a606659163The Android Open Source Project#include "txCtrlBlk_api.h" 4964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "txHwQueue_api.h" 5064064216a8433360745f69edddce19a606659163The Android Open Source Project#include "txXfer_api.h" 5164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "txResult_api.h" 5264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "rxXfer_api.h" 5364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "TNETWIF.h" 5464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "FwEvent_api.h" 5564064216a8433360745f69edddce19a606659163The Android Open Source Project#include "CmdMBox_api.h" 5664064216a8433360745f69edddce19a606659163The Android Open Source Project#include "CmdQueue_api.h" 5764064216a8433360745f69edddce19a606659163The Android Open Source Project#include "eventMbox_api.h" 5864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG 5964064216a8433360745f69edddce19a606659163The Android Open Source Project#include "DebugTraceXfer_api.h" 6064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* TI_DBG */ 6164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "osApi.h" 6264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "TNETW_Driver.h" 6364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "recoveryCtrl_API.h" 6464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "HwInit_api.h" 6564064216a8433360745f69edddce19a606659163The Android Open Source Project 6664064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic TI_STATUS TnetwDrv_SetInitParams (TI_HANDLE hTnetwDrv, TnetwDrv_InitParams_t* pInitParams); 6764064216a8433360745f69edddce19a606659163The Android Open Source Project 6864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef GWSI_LIB 6964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid GWSI_FinalizeDownload(TI_HANDLE hGwsiMgr, TI_STATUS eStatus); 7064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 7164064216a8433360745f69edddce19a606659163The Android Open Source Project 7264064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_TxXferDone (TI_HANDLE hTnetwDrv, txCtrlBlkEntry_t *pPktCtrlBlk); 7364064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_TxComplete (TI_HANDLE hTnetwDrv, TxResultDescriptor_t *pTxResultInfo); 7464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_TxXferDebug (TI_HANDLE hTnetwDrv, txCtrlBlkEntry_t *pPktCtrlBlk, UINT32 uDebugInfo); 7564064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void TnetwDrv_ConfigureCb (TI_HANDLE hTnetwDrv); 7664064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic void TnetwDrv_ConfigureCb1 (TI_HANDLE hTnetwDrv); 7764064216a8433360745f69edddce19a606659163The Android Open Source Project 7864064216a8433360745f69edddce19a606659163The Android Open Source Project 7964064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 8064064216a8433360745f69edddce19a606659163The Android Open Source Project 8164064216a8433360745f69edddce19a606659163The Android Open Source Project 8264064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 8364064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_Create() 8464064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 8564064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Create the Module 8664064216a8433360745f69edddce19a606659163The Android Open Source Project * 8764064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: Handle to the OS 8864064216a8433360745f69edddce19a606659163The Android Open Source Project * 8964064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 9064064216a8433360745f69edddce19a606659163The Android Open Source Project * 9164064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: Handle to the module on success or NULL on failure 9264064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 9364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE TnetwDrv_Create (TI_HANDLE hOs) 9464064216a8433360745f69edddce19a606659163The Android Open Source Project{ 9564064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv; 9664064216a8433360745f69edddce19a606659163The Android Open Source Project 9764064216a8433360745f69edddce19a606659163The Android Open Source Project /* Allocate the TNETW_Driver module */ 9864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv = (TnetwDrv_t *)os_memoryAlloc (hOs, sizeof(TnetwDrv_t)); 9964064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv == NULL) 10064064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 10164064216a8433360745f69edddce19a606659163The Android Open Source Project 10264064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryZero (hOs, pTnetwDrv, sizeof(TnetwDrv_t)); 10364064216a8433360745f69edddce19a606659163The Android Open Source Project 10464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hOs = hOs; 10564064216a8433360745f69edddce19a606659163The Android Open Source Project 10664064216a8433360745f69edddce19a606659163The Android Open Source Project /* Create the HAL Ctrl module */ 10764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHalCtrl = whalCtrl_Create(hOs); 10864064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hHalCtrl == NULL) 10964064216a8433360745f69edddce19a606659163The Android Open Source Project { 11064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv whalCtrl_Create failed!!!\n")); 11164064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 11264064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 11364064216a8433360745f69edddce19a606659163The Android Open Source Project } 11464064216a8433360745f69edddce19a606659163The Android Open Source Project 11564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTNETWIF = whalCtrl_GetTnetwifHandle (pTnetwDrv->hHalCtrl); 11664064216a8433360745f69edddce19a606659163The Android Open Source Project 11764064216a8433360745f69edddce19a606659163The Android Open Source Project /* Create the MAC Services module */ 11864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hMacServices = MacServices_create(hOs); 11964064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hMacServices == NULL) 12064064216a8433360745f69edddce19a606659163The Android Open Source Project { 12164064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv MacServices_create failed!!!\n")); 12264064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 12364064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 12464064216a8433360745f69edddce19a606659163The Android Open Source Project } 12564064216a8433360745f69edddce19a606659163The Android Open Source Project 12664064216a8433360745f69edddce19a606659163The Android Open Source Project /* Create the Ctrl module */ 12764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hCmdQueue = CmdQueue_Create(hOs); 12864064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hCmdQueue == NULL) 12964064216a8433360745f69edddce19a606659163The Android Open Source Project { 13064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv CmdQueue_Create failed!!!\n")); 13164064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 13264064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 13364064216a8433360745f69edddce19a606659163The Android Open Source Project } 13464064216a8433360745f69edddce19a606659163The Android Open Source Project 13564064216a8433360745f69edddce19a606659163The Android Open Source Project /* 13664064216a8433360745f69edddce19a606659163The Android Open Source Project * Create the FW-Transfer modules: 13764064216a8433360745f69edddce19a606659163The Android Open Source Project */ 13864064216a8433360745f69edddce19a606659163The Android Open Source Project 13964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxXfer = txXfer_Create(hOs); 14064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxXfer == NULL) 14164064216a8433360745f69edddce19a606659163The Android Open Source Project { 14264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv txXfer_Create failed!!!\n")); 14364064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 14464064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 14564064216a8433360745f69edddce19a606659163The Android Open Source Project } 14664064216a8433360745f69edddce19a606659163The Android Open Source Project 14764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxResult = txResult_Create(hOs); 14864064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxResult == NULL) 14964064216a8433360745f69edddce19a606659163The Android Open Source Project { 15064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv txResult_Create failed!!!\n")); 15164064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 15264064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 15364064216a8433360745f69edddce19a606659163The Android Open Source Project } 15464064216a8433360745f69edddce19a606659163The Android Open Source Project 15564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hRxXfer = rxXfer_Create(hOs); 15664064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hRxXfer == NULL) 15764064216a8433360745f69edddce19a606659163The Android Open Source Project { 15864064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv rxXfer_Create failed!!!\n")); 15964064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 16064064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 16164064216a8433360745f69edddce19a606659163The Android Open Source Project } 16264064216a8433360745f69edddce19a606659163The Android Open Source Project 16364064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hFwEvent = FwEvent_Create(hOs); 16464064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hFwEvent == NULL) 16564064216a8433360745f69edddce19a606659163The Android Open Source Project { 16664064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv FwEvent_Create failed!!!\n")); 16764064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 16864064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 16964064216a8433360745f69edddce19a606659163The Android Open Source Project } 17064064216a8433360745f69edddce19a606659163The Android Open Source Project 17164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hEventMbox = eventMbox_Create(hOs); 17264064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hEventMbox == NULL) 17364064216a8433360745f69edddce19a606659163The Android Open Source Project { 17464064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv eventMbox_Create failed!!!\n")); 17564064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 17664064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 17764064216a8433360745f69edddce19a606659163The Android Open Source Project } 17864064216a8433360745f69edddce19a606659163The Android Open Source Project 17964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG 18064064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hDebugTrace = debugTrace_Create(hOs); 18164064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hDebugTrace == NULL) 18264064216a8433360745f69edddce19a606659163The Android Open Source Project { 18364064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv debugTrace_Create failed!!!\n")); 18464064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 18564064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 18664064216a8433360745f69edddce19a606659163The Android Open Source Project } 18764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* TI_DBG */ 18864064216a8433360745f69edddce19a606659163The Android Open Source Project 18964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hCmdMBox = CmdMBox_Create(hOs); 19064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hCmdMBox == NULL) 19164064216a8433360745f69edddce19a606659163The Android Open Source Project { 19264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv CmdMBox_Create failed!!!\n")); 19364064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 19464064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 19564064216a8433360745f69edddce19a606659163The Android Open Source Project } 19664064216a8433360745f69edddce19a606659163The Android Open Source Project 19764064216a8433360745f69edddce19a606659163The Android Open Source Project /* 19864064216a8433360745f69edddce19a606659163The Android Open Source Project * Create the Data-Services modules: 19964064216a8433360745f69edddce19a606659163The Android Open Source Project */ 20064064216a8433360745f69edddce19a606659163The Android Open Source Project 20164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxCtrlBlk = txCtrlBlk_Create(hOs); 20264064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxCtrlBlk == NULL) 20364064216a8433360745f69edddce19a606659163The Android Open Source Project { 20464064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv txCtrlBlk_Create failed!!!\n")); 20564064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 20664064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 20764064216a8433360745f69edddce19a606659163The Android Open Source Project } 20864064216a8433360745f69edddce19a606659163The Android Open Source Project 20964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxHwQueue = txHwQueue_Create(hOs); 21064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxHwQueue == NULL) 21164064216a8433360745f69edddce19a606659163The Android Open Source Project { 21264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv txHwQueue_Create failed!!!\n")); 21364064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 21464064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 21564064216a8433360745f69edddce19a606659163The Android Open Source Project } 21664064216a8433360745f69edddce19a606659163The Android Open Source Project 21764064216a8433360745f69edddce19a606659163The Android Open Source Project#if !defined(GWSI_DRIVER) && !defined(GWSI_LIB) 21864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hRecoveryCtrl = recoveryCtrl_create(hOs); 21964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef USE_RECOVERY 22064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hRecoveryCtrl == NULL) 22164064216a8433360745f69edddce19a606659163The Android Open Source Project { 22264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv recoveryCtrl_create failed!!!\n")); 22364064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 22464064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 22564064216a8433360745f69edddce19a606659163The Android Open Source Project } 22664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* USE_RECOVERY */ 22764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHwInit = hwInit_create(hOs); 22864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef USE_RECOVERY 22964064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hHwInit == NULL) 23064064216a8433360745f69edddce19a606659163The Android Open Source Project { 23164064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TnetwDrv hwInit_create failed!!!\n")); 23264064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy((TI_HANDLE)pTnetwDrv); 23364064216a8433360745f69edddce19a606659163The Android Open Source Project return NULL; 23464064216a8433360745f69edddce19a606659163The Android Open Source Project } 23564064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* USE_RECOVERY */ 23664064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->bRecoveryFlag = FALSE; /* init value is not Recovery */ 23764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 23864064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_INIT_REPORT (("TnetwDrv_Create: CREATED !!!\n")); 23964064216a8433360745f69edddce19a606659163The Android Open Source Project 24064064216a8433360745f69edddce19a606659163The Android Open Source Project return (TI_HANDLE)pTnetwDrv; 24164064216a8433360745f69edddce19a606659163The Android Open Source Project} 24264064216a8433360745f69edddce19a606659163The Android Open Source Project 24364064216a8433360745f69edddce19a606659163The Android Open Source Project 24464064216a8433360745f69edddce19a606659163The Android Open Source Project 24564064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 24664064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_Destroy() 24764064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 24864064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Clear The module 24964064216a8433360745f69edddce19a606659163The Android Open Source Project * 25064064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: Handle to the module 25164064216a8433360745f69edddce19a606659163The Android Open Source Project * 25264064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 25364064216a8433360745f69edddce19a606659163The Android Open Source Project * 25464064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: 25564064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 25664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_Destroy (TI_HANDLE hTnetwDrv) 25764064216a8433360745f69edddce19a606659163The Android Open Source Project{ 25864064216a8433360745f69edddce19a606659163The Android Open Source Project 25964064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 26064064216a8433360745f69edddce19a606659163The Android Open Source Project 26164064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_INIT_REPORT(("TnetwDrv_Destroy !!!\n")); 26264064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv == NULL) 26364064216a8433360745f69edddce19a606659163The Android Open Source Project { 26464064216a8433360745f69edddce19a606659163The Android Open Source Project return; 26564064216a8433360745f69edddce19a606659163The Android Open Source Project } 26664064216a8433360745f69edddce19a606659163The Android Open Source Project 26764064216a8433360745f69edddce19a606659163The Android Open Source Project /* free the hal ctrl */ 26864064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hHalCtrl != NULL) 26964064216a8433360745f69edddce19a606659163The Android Open Source Project { 27064064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_Destroy(pTnetwDrv->hHalCtrl); 27164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHalCtrl = NULL; 27264064216a8433360745f69edddce19a606659163The Android Open Source Project } 27364064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_INIT_REPORT(("TNETW_Driver_Destroy hHalCtrl released!!!\n")); 27464064216a8433360745f69edddce19a606659163The Android Open Source Project 27564064216a8433360745f69edddce19a606659163The Android Open Source Project /* free the MAC Services */ 27664064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hMacServices != NULL) 27764064216a8433360745f69edddce19a606659163The Android Open Source Project { 27864064216a8433360745f69edddce19a606659163The Android Open Source Project MacServices_destroy(pTnetwDrv->hMacServices); 27964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hMacServices = NULL; 28064064216a8433360745f69edddce19a606659163The Android Open Source Project } 28164064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_INIT_REPORT(("TNETW_Driver_Destroy hMacServices released!!!\n")); 28264064216a8433360745f69edddce19a606659163The Android Open Source Project 28364064216a8433360745f69edddce19a606659163The Android Open Source Project /* 28464064216a8433360745f69edddce19a606659163The Android Open Source Project * Free the Ctrl modules 28564064216a8433360745f69edddce19a606659163The Android Open Source Project */ 28664064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hCmdQueue != NULL) 28764064216a8433360745f69edddce19a606659163The Android Open Source Project { 28864064216a8433360745f69edddce19a606659163The Android Open Source Project CmdQueue_Destroy(pTnetwDrv->hCmdQueue); 28964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hCmdQueue = NULL; 29064064216a8433360745f69edddce19a606659163The Android Open Source Project } 29164064216a8433360745f69edddce19a606659163The Android Open Source Project 29264064216a8433360745f69edddce19a606659163The Android Open Source Project /* 29364064216a8433360745f69edddce19a606659163The Android Open Source Project * Free the FW-Transfer modules: 29464064216a8433360745f69edddce19a606659163The Android Open Source Project */ 29564064216a8433360745f69edddce19a606659163The Android Open Source Project 29664064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxXfer != NULL) 29764064216a8433360745f69edddce19a606659163The Android Open Source Project { 29864064216a8433360745f69edddce19a606659163The Android Open Source Project txXfer_Destroy(pTnetwDrv->hTxXfer); 29964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxXfer = NULL; 30064064216a8433360745f69edddce19a606659163The Android Open Source Project } 30164064216a8433360745f69edddce19a606659163The Android Open Source Project 30264064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxResult != NULL) 30364064216a8433360745f69edddce19a606659163The Android Open Source Project { 30464064216a8433360745f69edddce19a606659163The Android Open Source Project txResult_Destroy(pTnetwDrv->hTxResult); 30564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxResult = NULL; 30664064216a8433360745f69edddce19a606659163The Android Open Source Project } 30764064216a8433360745f69edddce19a606659163The Android Open Source Project 30864064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hRxXfer != NULL) 30964064216a8433360745f69edddce19a606659163The Android Open Source Project { 31064064216a8433360745f69edddce19a606659163The Android Open Source Project rxXfer_Destroy(pTnetwDrv->hRxXfer); 31164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hRxXfer = NULL; 31264064216a8433360745f69edddce19a606659163The Android Open Source Project } 31364064216a8433360745f69edddce19a606659163The Android Open Source Project 31464064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hEventMbox != NULL) 31564064216a8433360745f69edddce19a606659163The Android Open Source Project { 31664064216a8433360745f69edddce19a606659163The Android Open Source Project eventMbox_Destroy(pTnetwDrv->hEventMbox); 31764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hEventMbox = NULL; 31864064216a8433360745f69edddce19a606659163The Android Open Source Project } 31964064216a8433360745f69edddce19a606659163The Android Open Source Project 32064064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG 32164064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hDebugTrace != NULL) 32264064216a8433360745f69edddce19a606659163The Android Open Source Project { 32364064216a8433360745f69edddce19a606659163The Android Open Source Project debugTrace_Destroy(pTnetwDrv->hDebugTrace); 32464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hDebugTrace = NULL; 32564064216a8433360745f69edddce19a606659163The Android Open Source Project } 32664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* TI_DBG */ 32764064216a8433360745f69edddce19a606659163The Android Open Source Project 32864064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hFwEvent != NULL) 32964064216a8433360745f69edddce19a606659163The Android Open Source Project { 33064064216a8433360745f69edddce19a606659163The Android Open Source Project FwEvent_Destroy(pTnetwDrv->hFwEvent); 33164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hFwEvent = NULL; 33264064216a8433360745f69edddce19a606659163The Android Open Source Project } 33364064216a8433360745f69edddce19a606659163The Android Open Source Project 33464064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hCmdMBox != NULL) 33564064216a8433360745f69edddce19a606659163The Android Open Source Project { 33664064216a8433360745f69edddce19a606659163The Android Open Source Project CmdMBox_Destroy(pTnetwDrv->hCmdMBox); 33764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hCmdMBox = NULL; 33864064216a8433360745f69edddce19a606659163The Android Open Source Project } 33964064216a8433360745f69edddce19a606659163The Android Open Source Project 34064064216a8433360745f69edddce19a606659163The Android Open Source Project /* 34164064216a8433360745f69edddce19a606659163The Android Open Source Project * Free the Data-Services modules: 34264064216a8433360745f69edddce19a606659163The Android Open Source Project */ 34364064216a8433360745f69edddce19a606659163The Android Open Source Project 34464064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxCtrlBlk != NULL) 34564064216a8433360745f69edddce19a606659163The Android Open Source Project { 34664064216a8433360745f69edddce19a606659163The Android Open Source Project txCtrlBlk_Destroy(pTnetwDrv->hTxCtrlBlk); 34764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxCtrlBlk = NULL; 34864064216a8433360745f69edddce19a606659163The Android Open Source Project } 34964064216a8433360745f69edddce19a606659163The Android Open Source Project 35064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hTxHwQueue != NULL) 35164064216a8433360745f69edddce19a606659163The Android Open Source Project { 35264064216a8433360745f69edddce19a606659163The Android Open Source Project txHwQueue_Destroy(pTnetwDrv->hTxHwQueue); 35364064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxHwQueue = NULL; 35464064216a8433360745f69edddce19a606659163The Android Open Source Project } 35564064216a8433360745f69edddce19a606659163The Android Open Source Project 35664064216a8433360745f69edddce19a606659163The Android Open Source Project#if !defined(GWSI_DRIVER) && !defined(GWSI_LIB) 35764064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hRecoveryCtrl != NULL) 35864064216a8433360745f69edddce19a606659163The Android Open Source Project { 35964064216a8433360745f69edddce19a606659163The Android Open Source Project recoveryCtrl_destroy(pTnetwDrv->hRecoveryCtrl); 36064064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hRecoveryCtrl = NULL; 36164064216a8433360745f69edddce19a606659163The Android Open Source Project } 36264064216a8433360745f69edddce19a606659163The Android Open Source Project 36364064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->hHwInit != NULL) 36464064216a8433360745f69edddce19a606659163The Android Open Source Project { 36564064216a8433360745f69edddce19a606659163The Android Open Source Project hwInit_destroy(pTnetwDrv->hHwInit); 36664064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHwInit = NULL; 36764064216a8433360745f69edddce19a606659163The Android Open Source Project } 36864064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 36964064216a8433360745f69edddce19a606659163The Android Open Source Project 37064064216a8433360745f69edddce19a606659163The Android Open Source Project /* free the TNETW driver */ 37164064216a8433360745f69edddce19a606659163The Android Open Source Project if ( NULL != pTnetwDrv->pInitTableCopy ) 37264064216a8433360745f69edddce19a606659163The Android Open Source Project { 37364064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree( pTnetwDrv->hOs, pTnetwDrv->pInitTableCopy, sizeof(TnetwDrv_InitParams_t) ); 37464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->pInitTableCopy = NULL; 37564064216a8433360745f69edddce19a606659163The Android Open Source Project } 37664064216a8433360745f69edddce19a606659163The Android Open Source Project 37764064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryFree(pTnetwDrv->hOs, (TI_HANDLE)pTnetwDrv, sizeof(TnetwDrv_t)); 37864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv = NULL; 37964064216a8433360745f69edddce19a606659163The Android Open Source Project 38064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_INIT_REPORT(("TNETW_Driver_Destroy pTNETW_Driver released!!!\n")); 38164064216a8433360745f69edddce19a606659163The Android Open Source Project 38264064216a8433360745f69edddce19a606659163The Android Open Source Project return; 38364064216a8433360745f69edddce19a606659163The Android Open Source Project} 38464064216a8433360745f69edddce19a606659163The Android Open Source Project 38564064216a8433360745f69edddce19a606659163The Android Open Source Project 38664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 38764064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_Init() 38864064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 38964064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: TNETW Driver Init 39064064216a8433360745f69edddce19a606659163The Android Open Source Project * 39164064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 39264064216a8433360745f69edddce19a606659163The Android Open Source Project * 39364064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 39464064216a8433360745f69edddce19a606659163The Android Open Source Project * 39564064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: 39664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 39764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS TnetwDrv_Init (TI_HANDLE hTnetwDrv, TI_HANDLE hReport, TI_HANDLE hMemMgr, TI_HANDLE hUser, UINT32 *pFWImage, TnetwDrv_InitParams_t* pInitParams, TnetDrv_callback_t fUserConf) 39864064216a8433360745f69edddce19a606659163The Android Open Source Project{ 39964064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 40064064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config_t whalCtrl_config; 40164064216a8433360745f69edddce19a606659163The Android Open Source Project TI_STATUS status; 40264064216a8433360745f69edddce19a606659163The Android Open Source Project 40364064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->bInitSuccess = FALSE; 40464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hUser = hUser; 40564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->fUserConf = fUserConf; 40664064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hReport = hReport; 40764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hMemMgr = hMemMgr; 40864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hWhalParams = whalCtrl_GetWhalParams (pTnetwDrv->hHalCtrl); 40964064216a8433360745f69edddce19a606659163The Android Open Source Project 41064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INIT(pTnetwDrv->hReport, HAL_CTRL_MODULE_LOG, 41164064216a8433360745f69edddce19a606659163The Android Open Source Project ("TnetwDrv_Init %x\n",hReport)); 41264064216a8433360745f69edddce19a606659163The Android Open Source Project 41364064216a8433360745f69edddce19a606659163The Android Open Source Project if (NULL != pInitParams) 41464064216a8433360745f69edddce19a606659163The Android Open Source Project { 41564064216a8433360745f69edddce19a606659163The Android Open Source Project if (OK != TnetwDrv_SetInitParams (hTnetwDrv, (TnetwDrv_InitParams_t *)pInitParams)) 41664064216a8433360745f69edddce19a606659163The Android Open Source Project { 41764064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy (hTnetwDrv); 41864064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 41964064216a8433360745f69edddce19a606659163The Android Open Source Project } 42064064216a8433360745f69edddce19a606659163The Android Open Source Project } 42164064216a8433360745f69edddce19a606659163The Android Open Source Project 42264064216a8433360745f69edddce19a606659163The Android Open Source Project /* 42364064216a8433360745f69edddce19a606659163The Android Open Source Project * Configure the HAL Ctrl 42464064216a8433360745f69edddce19a606659163The Android Open Source Project */ 42564064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hMemMgr = hMemMgr; 42664064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hReport = hReport; 42764064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hFwEvent = pTnetwDrv->hFwEvent; 42864064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hRxXfer = pTnetwDrv->hRxXfer; 42964064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hTxXfer = pTnetwDrv->hTxXfer; 43064064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hTxHwQueue = pTnetwDrv->hTxHwQueue; 43164064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hTxResult = pTnetwDrv->hTxResult; 43264064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hEventMbox = pTnetwDrv->hEventMbox; 43364064216a8433360745f69edddce19a606659163The Android Open Source Project 43464064216a8433360745f69edddce19a606659163The Android Open Source Project /* CB at the end of TnetwDrv_Configure(). not called if no registration was done */ 43564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->fConfigureCmplteteCB = NULL; 43664064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hConfigureCompleteOBj = NULL; 43764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->fConfigureEndCB = TnetwDrv_ConfigureCb1; 43864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->fConfigureEndObj= hTnetwDrv; 43964064216a8433360745f69edddce19a606659163The Android Open Source Project 44064064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hCmdQueue = pTnetwDrv->hCmdQueue; 44164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG 44264064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_config.hDebugTrace = pTnetwDrv->hDebugTrace; 44364064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* TI_DBG */ 44464064216a8433360745f69edddce19a606659163The Android Open Source Project 44564064216a8433360745f69edddce19a606659163The Android Open Source Project /* Call the config func */ 44664064216a8433360745f69edddce19a606659163The Android Open Source Project if ((status = whalCtrl_Config (pTnetwDrv->hHalCtrl, hTnetwDrv, &whalCtrl_config, pFWImage)) == TNETWIF_ERROR) 44764064216a8433360745f69edddce19a606659163The Android Open Source Project { 44864064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TNETW_Driver whalCtrl_Config failed!!!\n")); 44964064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Destroy (hTnetwDrv); 45064064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 45164064216a8433360745f69edddce19a606659163The Android Open Source Project } 45264064216a8433360745f69edddce19a606659163The Android Open Source Project 45364064216a8433360745f69edddce19a606659163The Android Open Source Project return status; 45464064216a8433360745f69edddce19a606659163The Android Open Source Project} 45564064216a8433360745f69edddce19a606659163The Android Open Source Project 45664064216a8433360745f69edddce19a606659163The Android Open Source Project 45764064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 45864064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Configure the TNET Driver Module callback 45964064216a8433360745f69edddce19a606659163The Android Open Source Project * 46064064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 46164064216a8433360745f69edddce19a606659163The Android Open Source Project * 46264064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 46364064216a8433360745f69edddce19a606659163The Android Open Source Project * 46464064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: OK if succeeded, NOK if failed in HW configuration. 46564064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 46664064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_ConfigureCb (TI_HANDLE hTnetwDrv) 46764064216a8433360745f69edddce19a606659163The Android Open Source Project{ 46864064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 46964064216a8433360745f69edddce19a606659163The Android Open Source Project 47064064216a8433360745f69edddce19a606659163The Android Open Source Project /* Configure the Tx-HW-Queue module */ 47164064216a8433360745f69edddce19a606659163The Android Open Source Project txHwQueue_Config (pTnetwDrv->hTxHwQueue, pTnetwDrv->pInitTableCopy); 47264064216a8433360745f69edddce19a606659163The Android Open Source Project 47364064216a8433360745f69edddce19a606659163The Android Open Source Project /* Configure the TX XFER module */ 47464064216a8433360745f69edddce19a606659163The Android Open Source Project txXfer_config(pTnetwDrv->hTxXfer, pTnetwDrv->pInitTableCopy); 47564064216a8433360745f69edddce19a606659163The Android Open Source Project 47664064216a8433360745f69edddce19a606659163The Android Open Source Project /* Configure the MAC services */ 47764064216a8433360745f69edddce19a606659163The Android Open Source Project MacServices_config (pTnetwDrv->hMacServices, pTnetwDrv->pInitTableCopy); 47864064216a8433360745f69edddce19a606659163The Android Open Source Project 47964064216a8433360745f69edddce19a606659163The Android Open Source Project#if !defined(GWSI_DRIVER) && !defined(GWSI_LIB) 48064064216a8433360745f69edddce19a606659163The Android Open Source Project recoveryCtrl_config(pTnetwDrv->hRecoveryCtrl, 48164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hReport, 48264064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTNETWIF, 48364064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxXfer, 48464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hRxXfer, 48564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxResult, 48664064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hMacServices, 48764064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxCtrlBlk, 48864064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTxHwQueue, 48964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHalCtrl, 49064064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHwIntr, 49164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hWhalParams, 49264064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hCmdQueue, 49364064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hFwEvent, 49464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hCmdMBox, 49564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHwInit); 49664064216a8433360745f69edddce19a606659163The Android Open Source Project 49764064216a8433360745f69edddce19a606659163The Android Open Source Project hwInit_config(pTnetwDrv->hHwInit, pTnetwDrv->hReport, pTnetwDrv->hTNETWIF); 49864064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 49964064216a8433360745f69edddce19a606659163The Android Open Source Project /* Register the Data Path callback functions */ 50064064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Register_CB (pTnetwDrv, TNETW_DRIVER_TX_XFER_SEND_PKT_TRANSFER, (void *)TnetwDrv_TxXferDone, hTnetwDrv); 50164064216a8433360745f69edddce19a606659163The Android Open Source Project 50264064216a8433360745f69edddce19a606659163The Android Open Source Project /* Register the send packet debug callback */ 50364064216a8433360745f69edddce19a606659163The Android Open Source Project #ifdef TI_DBG 50464064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Register_CB (pTnetwDrv, TNETW_DRIVER_TX_XFER_SEND_PKT_DEBUG, (void *)TnetwDrv_TxXferDebug, hTnetwDrv); 50564064216a8433360745f69edddce19a606659163The Android Open Source Project #endif 50664064216a8433360745f69edddce19a606659163The Android Open Source Project 50764064216a8433360745f69edddce19a606659163The Android Open Source Project /* Register the send packet complete callback */ 50864064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_Register_CB (pTnetwDrv, TNETW_DRIVER_TX_RESULT_SEND_PKT_COMPLETE, (void *)TnetwDrv_TxComplete, hTnetwDrv); 50964064216a8433360745f69edddce19a606659163The Android Open Source Project 51064064216a8433360745f69edddce19a606659163The Android Open Source Project /* Call user application configuration callback */ 51164064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->fUserConf) 51264064216a8433360745f69edddce19a606659163The Android Open Source Project (*pTnetwDrv->fUserConf) (pTnetwDrv->hUser); 51364064216a8433360745f69edddce19a606659163The Android Open Source Project 51464064216a8433360745f69edddce19a606659163The Android Open Source Project} 51564064216a8433360745f69edddce19a606659163The Android Open Source Project 51664064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 51764064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Configure the TNET Driver Module callback 51864064216a8433360745f69edddce19a606659163The Android Open Source Project * 51964064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 52064064216a8433360745f69edddce19a606659163The Android Open Source Project * 52164064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 52264064216a8433360745f69edddce19a606659163The Android Open Source Project * 52364064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: OK if succeeded, NOK if failed in HW configuration. 52464064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 52564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_ConfigureCb1 (TI_HANDLE hTnetwDrv) 52664064216a8433360745f69edddce19a606659163The Android Open Source Project{ 52764064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 52864064216a8433360745f69edddce19a606659163The Android Open Source Project 52964064216a8433360745f69edddce19a606659163The Android Open Source Project /* if the configure complete function was registered, we call it here - end of TnetwDrv_Configure stage */ 53064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->fConfigureCmplteteCB) 53164064216a8433360745f69edddce19a606659163The Android Open Source Project { 53264064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->fConfigureCmplteteCB(pTnetwDrv->hConfigureCompleteOBj); 53364064216a8433360745f69edddce19a606659163The Android Open Source Project } 53464064216a8433360745f69edddce19a606659163The Android Open Source Project 53564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef GWSI_LIB 53664064216a8433360745f69edddce19a606659163The Android Open Source Project /* 53764064216a8433360745f69edddce19a606659163The Android Open Source Project * This will be the last thing that will be done here so all the download 53864064216a8433360745f69edddce19a606659163The Android Open Source Project * will go back down to HALto send FINISH to TNETWIF where it began 53964064216a8433360745f69edddce19a606659163The Android Open Source Project */ 54064064216a8433360745f69edddce19a606659163The Android Open Source Project os_Complete (pTnetwDrv->hOs); 54164064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 54264064216a8433360745f69edddce19a606659163The Android Open Source Project 54364064216a8433360745f69edddce19a606659163The Android Open Source Project} 54464064216a8433360745f69edddce19a606659163The Android Open Source Project 54564064216a8433360745f69edddce19a606659163The Android Open Source Project 54664064216a8433360745f69edddce19a606659163The Android Open Source Project 54764064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 54864064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Configure the TNET Driver Module 54964064216a8433360745f69edddce19a606659163The Android Open Source Project * 55064064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 55164064216a8433360745f69edddce19a606659163The Android Open Source Project * 55264064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 55364064216a8433360745f69edddce19a606659163The Android Open Source Project * 55464064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: OK if succeeded, NOK if failed in HW configuration. 55564064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 55664064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS TnetwDrv_Configure (TI_HANDLE hTnetwDrv, TnetwDrv_InitParams_t* pInitParams) 55764064216a8433360745f69edddce19a606659163The Android Open Source Project{ 55864064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 55964064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_InitParams_t* pInitParam; 56064064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->bInitSuccess) 56164064216a8433360745f69edddce19a606659163The Android Open Source Project { 56264064216a8433360745f69edddce19a606659163The Android Open Source Project /* If called with init params as null - it means that this is a recovery */ 56364064216a8433360745f69edddce19a606659163The Android Open Source Project if (NULL != pInitParams) 56464064216a8433360745f69edddce19a606659163The Android Open Source Project { 56564064216a8433360745f69edddce19a606659163The Android Open Source Project if (OK != TnetwDrv_SetInitParams (hTnetwDrv, pInitParams)) 56664064216a8433360745f69edddce19a606659163The Android Open Source Project { 56764064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 56864064216a8433360745f69edddce19a606659163The Android Open Source Project } 56964064216a8433360745f69edddce19a606659163The Android Open Source Project } 57064064216a8433360745f69edddce19a606659163The Android Open Source Project 57164064216a8433360745f69edddce19a606659163The Android Open Source Project#if !defined(GWSI_DRIVER) && !defined(GWSI_LIB) 57264064216a8433360745f69edddce19a606659163The Android Open Source Project if(pTnetwDrv->bRecoveryFlag == TRUE) 57364064216a8433360745f69edddce19a606659163The Android Open Source Project pInitParam = NULL; 57464064216a8433360745f69edddce19a606659163The Android Open Source Project else 57564064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 57664064216a8433360745f69edddce19a606659163The Android Open Source Project pInitParam = pTnetwDrv->pInitTableCopy; 57764064216a8433360745f69edddce19a606659163The Android Open Source Project 57864064216a8433360745f69edddce19a606659163The Android Open Source Project 57964064216a8433360745f69edddce19a606659163The Android Open Source Project /* If it's recovery call function with NULL instead of ini-file params */ 58064064216a8433360745f69edddce19a606659163The Android Open Source Project if (whalCtrl_ConfigHw (pTnetwDrv->hHalCtrl, 58164064216a8433360745f69edddce19a606659163The Android Open Source Project pInitParam, 58264064216a8433360745f69edddce19a606659163The Android Open Source Project (void *)TnetwDrv_ConfigureCb, 58364064216a8433360745f69edddce19a606659163The Android Open Source Project hTnetwDrv) != OK) 58464064216a8433360745f69edddce19a606659163The Android Open Source Project { 58564064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_ERROR(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("\n.....WhalCtrl configuration failure \n")); 58664064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 58764064216a8433360745f69edddce19a606659163The Android Open Source Project } 58864064216a8433360745f69edddce19a606659163The Android Open Source Project 58964064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 59064064216a8433360745f69edddce19a606659163The Android Open Source Project } 59164064216a8433360745f69edddce19a606659163The Android Open Source Project 59264064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 59364064216a8433360745f69edddce19a606659163The Android Open Source Project} 59464064216a8433360745f69edddce19a606659163The Android Open Source Project 59564064216a8433360745f69edddce19a606659163The Android Open Source Project 59664064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 59764064216a8433360745f69edddce19a606659163The Android Open Source Project * TnetwDrv_FinalizeDownload() 59864064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 59964064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Finalize all the remaining initialization after the downloaD HAS FINISHED 60064064216a8433360745f69edddce19a606659163The Android Open Source Project Register the ERRORS indications events to the FW 60164064216a8433360745f69edddce19a606659163The Android Open Source Project * 60264064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 60364064216a8433360745f69edddce19a606659163The Android Open Source Project * 60464064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: None 60564064216a8433360745f69edddce19a606659163The Android Open Source Project * 60664064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: OK or NOK 60764064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 60864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS TnetwDrv_FinalizeDownload (TI_HANDLE hTnetwDrv) 60964064216a8433360745f69edddce19a606659163The Android Open Source Project{ 61064064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 61164064216a8433360745f69edddce19a606659163The Android Open Source Project 61264064216a8433360745f69edddce19a606659163The Android Open Source Project /* Here at the end call the Initialize Complete callback that will release the user Init semaphore */ 61364064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INIT(pTnetwDrv->hReport, HAL_CTRL_MODULE_LOG, 61464064216a8433360745f69edddce19a606659163The Android Open Source Project ("hTNETW_Driver %x!!!!!\n", hTnetwDrv)); 61564064216a8433360745f69edddce19a606659163The Android Open Source Project 61664064216a8433360745f69edddce19a606659163The Android Open Source Project /* Here at the end call the Initialize Complete callback that will release the user Init semaphore */ 61764064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INIT(pTnetwDrv->hReport, HAL_CTRL_MODULE_LOG, 61864064216a8433360745f69edddce19a606659163The Android Open Source Project ("Call MacServices_init!!!!!\n")); 61964064216a8433360745f69edddce19a606659163The Android Open Source Project 62064064216a8433360745f69edddce19a606659163The Android Open Source Project /* 62164064216a8433360745f69edddce19a606659163The Android Open Source Project * Initialize the FW-Transfer modules 62264064216a8433360745f69edddce19a606659163The Android Open Source Project */ 62364064216a8433360745f69edddce19a606659163The Android Open Source Project txXfer_init (pTnetwDrv->hTxXfer, pTnetwDrv->hReport, pTnetwDrv->hTNETWIF, pTnetwDrv->hTxResult); 62464064216a8433360745f69edddce19a606659163The Android Open Source Project txResult_init (pTnetwDrv->hTxResult, pTnetwDrv->hReport, pTnetwDrv->hTNETWIF, pTnetwDrv->hFwEvent); 62564064216a8433360745f69edddce19a606659163The Android Open Source Project rxXfer_Config (pTnetwDrv->hRxXfer, pTnetwDrv->hFwEvent, pTnetwDrv->hMemMgr, pTnetwDrv->hReport,pTnetwDrv->hTNETWIF); 62664064216a8433360745f69edddce19a606659163The Android Open Source Project 62764064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef TI_DBG 62864064216a8433360745f69edddce19a606659163The Android Open Source Project debugTrace_Config (pTnetwDrv->hDebugTrace, 62964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hWhalParams, 63064064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hReport, 63164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hMemMgr, 63264064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hTNETWIF, 63364064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hFwEvent); 63464064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* TI_DBG */ 63564064216a8433360745f69edddce19a606659163The Android Open Source Project 63664064216a8433360745f69edddce19a606659163The Android Open Source Project /* 63764064216a8433360745f69edddce19a606659163The Android Open Source Project * Initialize the MAC Services 63864064216a8433360745f69edddce19a606659163The Android Open Source Project */ 63964064216a8433360745f69edddce19a606659163The Android Open Source Project MacServices_init (pTnetwDrv->hMacServices, 64064064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hReport, 64164064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hHalCtrl); 64264064216a8433360745f69edddce19a606659163The Android Open Source Project 64364064216a8433360745f69edddce19a606659163The Android Open Source Project /* 64464064216a8433360745f69edddce19a606659163The Android Open Source Project * Initialize the Data-Services modules 64564064216a8433360745f69edddce19a606659163The Android Open Source Project */ 64664064216a8433360745f69edddce19a606659163The Android Open Source Project txCtrlBlk_init (pTnetwDrv->hTxCtrlBlk, pTnetwDrv->hReport); 64764064216a8433360745f69edddce19a606659163The Android Open Source Project txHwQueue_init (pTnetwDrv->hTxHwQueue, pTnetwDrv->hReport, pTnetwDrv->hWhalParams); 64864064216a8433360745f69edddce19a606659163The Android Open Source Project 64964064216a8433360745f69edddce19a606659163The Android Open Source Project /* Here at the end call the Initialize Complete callback that will release the user Init semaphore */ 65064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INIT(pTnetwDrv->hReport, HAL_CTRL_MODULE_LOG, 65164064216a8433360745f69edddce19a606659163The Android Open Source Project ("Before sending the Init Complet callback !!!!!\n")); 65264064216a8433360745f69edddce19a606659163The Android Open Source Project 65364064216a8433360745f69edddce19a606659163The Android Open Source Project /* Sign that init has succeeded */ 65464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->bInitSuccess = TRUE; 65564064216a8433360745f69edddce19a606659163The Android Open Source Project 65664064216a8433360745f69edddce19a606659163The Android Open Source Project /* When working with GWSI Call the Init Complete callback */ 65764064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef GWSI_LIB 65864064216a8433360745f69edddce19a606659163The Android Open Source Project /* 65964064216a8433360745f69edddce19a606659163The Android Open Source Project * The callback function does not need the handle of the GWSI 66064064216a8433360745f69edddce19a606659163The Android Open Source Project * since it takes it from the global handle 66164064216a8433360745f69edddce19a606659163The Android Open Source Project */ 66264064216a8433360745f69edddce19a606659163The Android Open Source Project GWSI_FinalizeDownload (pTnetwDrv->hUser, OK); 66364064216a8433360745f69edddce19a606659163The Android Open Source Project /* 66464064216a8433360745f69edddce19a606659163The Android Open Source Project * When working with CORE call the os_Init_Complete 66564064216a8433360745f69edddce19a606659163The Android Open Source Project * that will release the OS semaphore that the 66664064216a8433360745f69edddce19a606659163The Android Open Source Project * user is lock on it in the esta_drb to go on call the next stage 66764064216a8433360745f69edddce19a606659163The Android Open Source Project */ 66864064216a8433360745f69edddce19a606659163The Android Open Source Project#else 66964064216a8433360745f69edddce19a606659163The Android Open Source Project /* Here at the end call the Initialize Complete callback that will release the user Init semaphore */ 67064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INIT(pTnetwDrv->hReport, HAL_CTRL_MODULE_LOG, 67164064216a8433360745f69edddce19a606659163The Android Open Source Project ("Call os_Complete !!!!!\n")); 67264064216a8433360745f69edddce19a606659163The Android Open Source Project 67364064216a8433360745f69edddce19a606659163The Android Open Source Project /* Start configuring driver */ 67464064216a8433360745f69edddce19a606659163The Android Open Source Project if (TnetwDrv_Configure (hTnetwDrv, NULL) != OK) 67564064216a8433360745f69edddce19a606659163The Android Open Source Project { 67664064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_ERROR (pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG, 67764064216a8433360745f69edddce19a606659163The Android Open Source Project ("TnetwDrv_FinalizeDownload: configuration failure!\n")); 67864064216a8433360745f69edddce19a606659163The Android Open Source Project } 67964064216a8433360745f69edddce19a606659163The Android Open Source Project 68064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 68164064216a8433360745f69edddce19a606659163The Android Open Source Project 68264064216a8433360745f69edddce19a606659163The Android Open Source Project return TNETWIF_COMPLETE; 68364064216a8433360745f69edddce19a606659163The Android Open Source Project} 68464064216a8433360745f69edddce19a606659163The Android Open Source Project 68564064216a8433360745f69edddce19a606659163The Android Open Source Project 68664064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 68764064216a8433360745f69edddce19a606659163The Android Open Source Project * TnetwDrv_FinalizeOnFailue() 68864064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 68964064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Finalize all the initialization upon failure 69064064216a8433360745f69edddce19a606659163The Android Open Source Project * 69164064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 69264064216a8433360745f69edddce19a606659163The Android Open Source Project * 69364064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: None 69464064216a8433360745f69edddce19a606659163The Android Open Source Project * 69564064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: OK or NOK 69664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 69764064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS TnetwDrv_FinalizeOnFailure (TI_HANDLE hTNETW_Driver) 69864064216a8433360745f69edddce19a606659163The Android Open Source Project{ 69964064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTNETW_Driver; 70064064216a8433360745f69edddce19a606659163The Android Open Source Project 70164064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef GWSI_LIB 70264064216a8433360745f69edddce19a606659163The Android Open Source Project 70364064216a8433360745f69edddce19a606659163The Android Open Source Project /* Stop Init phase of GWSI and return TNETWIF_ERROR */ 70464064216a8433360745f69edddce19a606659163The Android Open Source Project GWSI_FinalizeDownload (pTnetwDrv->hUser, TNETWIF_ERROR); 70564064216a8433360745f69edddce19a606659163The Android Open Source Project 70664064216a8433360745f69edddce19a606659163The Android Open Source Project /* When working with CORE call the os_Init_Complete that will release the OS semaphore taht the 70764064216a8433360745f69edddce19a606659163The Android Open Source Project user is lock on it in the esta_drb to go on call the next stage */ 70864064216a8433360745f69edddce19a606659163The Android Open Source Project 70964064216a8433360745f69edddce19a606659163The Android Open Source Project#else 71064064216a8433360745f69edddce19a606659163The Android Open Source Project 71164064216a8433360745f69edddce19a606659163The Android Open Source Project /* Here at the end call the Initialize Complete callback that will release the user Init semaphore */ 71264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INIT (pTnetwDrv->hReport, HAL_CTRL_MODULE_LOG, ("Call os_Complete !!!!!\n")); 71364064216a8433360745f69edddce19a606659163The Android Open Source Project 71464064216a8433360745f69edddce19a606659163The Android Open Source Project /* 71564064216a8433360745f69edddce19a606659163The Android Open Source Project * This will be the last thing that will be done here so all the download 71664064216a8433360745f69edddce19a606659163The Android Open Source Project * will go back down to HAL to send FINISH to TNETWIF where it began 71764064216a8433360745f69edddce19a606659163The Android Open Source Project */ 71864064216a8433360745f69edddce19a606659163The Android Open Source Project os_Complete (pTnetwDrv->hOs); 71964064216a8433360745f69edddce19a606659163The Android Open Source Project 72064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 72164064216a8433360745f69edddce19a606659163The Android Open Source Project 72264064216a8433360745f69edddce19a606659163The Android Open Source Project return TNETWIF_COMPLETE; 72364064216a8433360745f69edddce19a606659163The Android Open Source Project} 72464064216a8433360745f69edddce19a606659163The Android Open Source Project 72564064216a8433360745f69edddce19a606659163The Android Open Source Project 72664064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 72764064216a8433360745f69edddce19a606659163The Android Open Source Project/* TNETW_Driver_Register_CB() 72864064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 72964064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Register the MAC Services and the HAL modules callbacks 73064064216a8433360745f69edddce19a606659163The Android Open Source Project * 73164064216a8433360745f69edddce19a606659163The Android Open Source Project * INPUTS: 73264064216a8433360745f69edddce19a606659163The Android Open Source Project * 73364064216a8433360745f69edddce19a606659163The Android Open Source Project * OUTPUT: 73464064216a8433360745f69edddce19a606659163The Android Open Source Project * 73564064216a8433360745f69edddce19a606659163The Android Open Source Project * RETURNS: 73664064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 73764064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_Register_CB (TI_HANDLE hTnetwDrv,tiUINT32 EventID,void *CBFunc, void *pData) 73864064216a8433360745f69edddce19a606659163The Android Open Source Project{ 73964064216a8433360745f69edddce19a606659163The Android Open Source Project 74064064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t * pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 74164064216a8433360745f69edddce19a606659163The Android Open Source Project 74264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG, ("TnetwDrv_Register_CB (Value = 0x%x)\n", EventID)); 74364064216a8433360745f69edddce19a606659163The Android Open Source Project 74464064216a8433360745f69edddce19a606659163The Android Open Source Project /* First detect which module is the owner */ 74564064216a8433360745f69edddce19a606659163The Android Open Source Project switch((tiUINT16)(EventID & TNETW_DRIVER_CB_MODULE_OWNER_MASK)) 74664064216a8433360745f69edddce19a606659163The Android Open Source Project { 74764064216a8433360745f69edddce19a606659163The Android Open Source Project 74864064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRIVER_TX_XFER_OWNER: 74964064216a8433360745f69edddce19a606659163The Android Open Source Project EventID &= TNETW_DRIVER_CB_TYPE_MASK; 75064064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_TX_XFER_OWNER\n")); 75164064216a8433360745f69edddce19a606659163The Android Open Source Project txXfer_RegisterCB(pTnetwDrv->hTxXfer, EventID, CBFunc, pData); 75264064216a8433360745f69edddce19a606659163The Android Open Source Project break; 75364064216a8433360745f69edddce19a606659163The Android Open Source Project 75464064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRIVER_TX_RESULT_OWNER: 75564064216a8433360745f69edddce19a606659163The Android Open Source Project EventID &= TNETW_DRIVER_CB_TYPE_MASK; 75664064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_TX_RESULT_OWNER\n")); 75764064216a8433360745f69edddce19a606659163The Android Open Source Project txResult_RegisterCB(pTnetwDrv->hTxResult, EventID, CBFunc, pData); 75864064216a8433360745f69edddce19a606659163The Android Open Source Project break; 75964064216a8433360745f69edddce19a606659163The Android Open Source Project 76064064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRIVER_RX_XFER_OWNER: 76164064216a8433360745f69edddce19a606659163The Android Open Source Project EventID &= TNETW_DRIVER_CB_TYPE_MASK; 76264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_RX_XFER_OWNER\n")); 76364064216a8433360745f69edddce19a606659163The Android Open Source Project rxXfer_Register_CB(pTnetwDrv->hRxXfer, EventID,CBFunc,pData); 76464064216a8433360745f69edddce19a606659163The Android Open Source Project break; 76564064216a8433360745f69edddce19a606659163The Android Open Source Project 76664064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRIVER_HAL_CTRL_OWNER: 76764064216a8433360745f69edddce19a606659163The Android Open Source Project EventID &= TNETW_DRIVER_CB_TYPE_MASK; 76864064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_Register_CB(pTnetwDrv->hHalCtrl, EventID,CBFunc,pData); 76964064216a8433360745f69edddce19a606659163The Android Open Source Project break; 77064064216a8433360745f69edddce19a606659163The Android Open Source Project 77164064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRIVER_MAC_SERVICES_OWNER: 77264064216a8433360745f69edddce19a606659163The Android Open Source Project switch (EventID & TNETW_DRIVER_CB_TYPE_MASK) 77364064216a8433360745f69edddce19a606659163The Android Open Source Project { 77464064216a8433360745f69edddce19a606659163The Android Open Source Project case HAL_EVENT_SCAN_CMPLT: 77564064216a8433360745f69edddce19a606659163The Android Open Source Project MacServices_scanSRV_registerScanCompleteCB(pTnetwDrv->hMacServices, (scan_srvCompleteCB_t)CBFunc, pData); 77664064216a8433360745f69edddce19a606659163The Android Open Source Project break; 77764064216a8433360745f69edddce19a606659163The Android Open Source Project default: 77864064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_WARNING(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TNETW_DRIVER_MAC_SERVICES_OWNER - Illegal value\n")); 77964064216a8433360745f69edddce19a606659163The Android Open Source Project } 78064064216a8433360745f69edddce19a606659163The Android Open Source Project break; 78164064216a8433360745f69edddce19a606659163The Android Open Source Project 78264064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRIVER_TWD_OWNER: 78364064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_INFORMATION(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB: TNETW_DRIVER_TWD_OWNER\n")); 78464064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->fConfigureCmplteteCB = (TnetDrv_callback_t)CBFunc; 78564064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->hConfigureCompleteOBj = (TI_HANDLE)pData; 78664064216a8433360745f69edddce19a606659163The Android Open Source Project break; 78764064216a8433360745f69edddce19a606659163The Android Open Source Project 78864064216a8433360745f69edddce19a606659163The Android Open Source Project default: 78964064216a8433360745f69edddce19a606659163The Android Open Source Project if (EventID == HAL_INTERNAL_EVENT_FAILURE) 79064064216a8433360745f69edddce19a606659163The Android Open Source Project { 79164064216a8433360745f69edddce19a606659163The Android Open Source Project 79264064216a8433360745f69edddce19a606659163The Android Open Source Project 79364064216a8433360745f69edddce19a606659163The Android Open Source Project /* register the Hal failure event callback including the RX 79464064216a8433360745f69edddce19a606659163The Android Open Source Project in the Hal Cttl the errors are : 79564064216a8433360745f69edddce19a606659163The Android Open Source Project MBOX_FAILURE, 79664064216a8433360745f69edddce19a606659163The Android Open Source Project BUS_ERROR, 79764064216a8433360745f69edddce19a606659163The Android Open Source Project DEVICE_ERROR, 79864064216a8433360745f69edddce19a606659163The Android Open Source Project DISCONNECT_TIMEOUT,*/ 79964064216a8433360745f69edddce19a606659163The Android Open Source Project 80064064216a8433360745f69edddce19a606659163The Android Open Source Project 80164064216a8433360745f69edddce19a606659163The Android Open Source Project 80264064216a8433360745f69edddce19a606659163The Android Open Source Project EventID &= TNETW_DRIVER_CB_TYPE_MASK; 80364064216a8433360745f69edddce19a606659163The Android Open Source Project whalCtrl_Register_CB(pTnetwDrv->hHalCtrl, EventID,CBFunc,pData); 80464064216a8433360745f69edddce19a606659163The Android Open Source Project 80564064216a8433360745f69edddce19a606659163The Android Open Source Project /* register the Elp controller failure event callback to the TNET interface 80664064216a8433360745f69edddce19a606659163The Android Open Source Project HW_AWAKE_FAILURE*/ 80764064216a8433360745f69edddce19a606659163The Android Open Source Project TNETWIF_RegisterFailureEventCB(pTnetwDrv->hTNETWIF,CBFunc,pData); 80864064216a8433360745f69edddce19a606659163The Android Open Source Project 80964064216a8433360745f69edddce19a606659163The Android Open Source Project /* register the Mac services failure events callbacks 81064064216a8433360745f69edddce19a606659163The Android Open Source Project POWER_SAVE_FAILURE, 81164064216a8433360745f69edddce19a606659163The Android Open Source Project MEASUREMENT_FAILURE, 81264064216a8433360745f69edddce19a606659163The Android Open Source Project NO_SCAN_COMPLETE_FAILURE,*/ 81364064216a8433360745f69edddce19a606659163The Android Open Source Project MacServices_registerFailureEventCB(pTnetwDrv->hMacServices, CBFunc, pData); 81464064216a8433360745f69edddce19a606659163The Android Open Source Project 81564064216a8433360745f69edddce19a606659163The Android Open Source Project 81664064216a8433360745f69edddce19a606659163The Android Open Source Project /* register the TX failure call back in the Xfer 81764064216a8433360745f69edddce19a606659163The Android Open Source Project TX_STUCK,*/ 81864064216a8433360745f69edddce19a606659163The Android Open Source Project txXfer_RegisterFailureEventCB(pTnetwDrv->hTxXfer, CBFunc, pData); 81964064216a8433360745f69edddce19a606659163The Android Open Source Project 82064064216a8433360745f69edddce19a606659163The Android Open Source Project 82164064216a8433360745f69edddce19a606659163The Android Open Source Project } 82264064216a8433360745f69edddce19a606659163The Android Open Source Project else 82364064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_WARNING(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG,("TnetwDrv_Register_CB - Illegal value\n")); 82464064216a8433360745f69edddce19a606659163The Android Open Source Project 82564064216a8433360745f69edddce19a606659163The Android Open Source Project } 82664064216a8433360745f69edddce19a606659163The Android Open Source Project return; 82764064216a8433360745f69edddce19a606659163The Android Open Source Project} 82864064216a8433360745f69edddce19a606659163The Android Open Source Project 82964064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 83064064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_SetInitParams() 83164064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 83264064216a8433360745f69edddce19a606659163The Android Open Source Projectstatic TI_STATUS TnetwDrv_SetInitParams (TI_HANDLE hTnetwDrv, TnetwDrv_InitParams_t* pInitParams) 83364064216a8433360745f69edddce19a606659163The Android Open Source Project{ 83464064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t * pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 83564064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_InitParams_t *pInitTableCopy; 83664064216a8433360745f69edddce19a606659163The Android Open Source Project UINT32 index; 83764064216a8433360745f69edddce19a606659163The Android Open Source Project 83864064216a8433360745f69edddce19a606659163The Android Open Source Project pInitTableCopy = pTnetwDrv->pInitTableCopy = os_memoryAlloc (pTnetwDrv->hOs, sizeof(TnetwDrv_InitParams_t)); 83964064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->pInitTableCopy != NULL) 84064064216a8433360745f69edddce19a606659163The Android Open Source Project { 84164064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryZero (pTnetwDrv->hOs, pTnetwDrv->pInitTableCopy, sizeof(TnetwDrv_InitParams_t)); 84264064216a8433360745f69edddce19a606659163The Android Open Source Project /* Copy the init info to the buffer */ 84364064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryCopy (pTnetwDrv->hOs, pTnetwDrv->pInitTableCopy, pInitParams, sizeof(TnetwDrv_InitParams_t)); 84464064216a8433360745f69edddce19a606659163The Android Open Source Project /* Change the Severity table to character */ 84564064216a8433360745f69edddce19a606659163The Android Open Source Project for (index = 0; index < sizeof(((report_t *)pTnetwDrv->hReport)->SeverityTable); index++) 84664064216a8433360745f69edddce19a606659163The Android Open Source Project { 84764064216a8433360745f69edddce19a606659163The Android Open Source Project pInitTableCopy->reportParams.SeverityTable[index] += '0'; 84864064216a8433360745f69edddce19a606659163The Android Open Source Project } 84964064216a8433360745f69edddce19a606659163The Android Open Source Project /* Change the module table to character */ 85064064216a8433360745f69edddce19a606659163The Android Open Source Project for (index = 0; index < sizeof(((report_t *)pTnetwDrv->hReport)->ModuleTable); index++) 85164064216a8433360745f69edddce19a606659163The Android Open Source Project { 85264064216a8433360745f69edddce19a606659163The Android Open Source Project pInitTableCopy->reportParams.ModuleTable[index] += '0'; 85364064216a8433360745f69edddce19a606659163The Android Open Source Project } 85464064216a8433360745f69edddce19a606659163The Android Open Source Project } 85564064216a8433360745f69edddce19a606659163The Android Open Source Project else 85664064216a8433360745f69edddce19a606659163The Android Open Source Project { 85764064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_ERROR(pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG, 85864064216a8433360745f69edddce19a606659163The Android Open Source Project ("TnetwDrv_SetInitParams: unable to allocate init params buffer!\n") ); 85964064216a8433360745f69edddce19a606659163The Android Open Source Project return NOK; 86064064216a8433360745f69edddce19a606659163The Android Open Source Project } 86164064216a8433360745f69edddce19a606659163The Android Open Source Project 86264064216a8433360745f69edddce19a606659163The Android Open Source Project return OK; 86364064216a8433360745f69edddce19a606659163The Android Open Source Project} 86464064216a8433360745f69edddce19a606659163The Android Open Source Project 86564064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 86664064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_GetInitParams() 86764064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 86864064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_GetInitParams (TI_HANDLE hTnetwDrv, UINT8 *pcommand, UINT16 *OutBufLen) 86964064216a8433360745f69edddce19a606659163The Android Open Source Project{ 87064064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t * pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 87164064216a8433360745f69edddce19a606659163The Android Open Source Project 87264064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->pInitTableCopy) 87364064216a8433360745f69edddce19a606659163The Android Open Source Project { 87464064216a8433360745f69edddce19a606659163The Android Open Source Project *(UINT32 *)pcommand = sizeof(TnetwDrv_InitParams_t); 87564064216a8433360745f69edddce19a606659163The Android Open Source Project pcommand += sizeof(UINT32); 87664064216a8433360745f69edddce19a606659163The Android Open Source Project os_memoryCopy(NULL, (void *)pcommand, (void *)pTnetwDrv->pInitTableCopy, sizeof(TnetwDrv_InitParams_t)); 87764064216a8433360745f69edddce19a606659163The Android Open Source Project } 87864064216a8433360745f69edddce19a606659163The Android Open Source Project else 87964064216a8433360745f69edddce19a606659163The Android Open Source Project { 88064064216a8433360745f69edddce19a606659163The Android Open Source Project /* The table information is not available */ 88164064216a8433360745f69edddce19a606659163The Android Open Source Project *(UINT32 *)pcommand = 0; 88264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_OS_REPORT(("TNETW_Driver_GetInitParams :ERROR Getting Buffer for the INI File !!!\n")); 88364064216a8433360745f69edddce19a606659163The Android Open Source Project } 88464064216a8433360745f69edddce19a606659163The Android Open Source Project 88564064216a8433360745f69edddce19a606659163The Android Open Source Project *OutBufLen = (sizeof(TnetwDrv_InitParams_t) + sizeof(UINT32)); 88664064216a8433360745f69edddce19a606659163The Android Open Source Project} 88764064216a8433360745f69edddce19a606659163The Android Open Source Project 88864064216a8433360745f69edddce19a606659163The Android Open Source Project 88964064216a8433360745f69edddce19a606659163The Android Open Source Project 89064064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 89164064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_PrintInfo() 89264064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 89364064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: Call the requested print function. 89464064216a8433360745f69edddce19a606659163The Android Open Source Project ****************************************************************************/ 89564064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_PrintInfo (TI_HANDLE hTnetwDrv, TnetwDrv_PrintInfoType_e printInfo) 89664064216a8433360745f69edddce19a606659163The Android Open Source Project{ 89764064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 89864064216a8433360745f69edddce19a606659163The Android Open Source Project 89964064216a8433360745f69edddce19a606659163The Android Open Source Project switch(printInfo) 90064064216a8433360745f69edddce19a606659163The Android Open Source Project { 90164064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRV_PRINT_TX_CTRL_BLK_TBL: 90264064216a8433360745f69edddce19a606659163The Android Open Source Project txCtrlBlk_printTable(pTnetwDrv->hTxCtrlBlk); 90364064216a8433360745f69edddce19a606659163The Android Open Source Project break; 90464064216a8433360745f69edddce19a606659163The Android Open Source Project 90564064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRV_PRINT_TX_HW_QUEUE_INFO: 90664064216a8433360745f69edddce19a606659163The Android Open Source Project txHwQueue_printInfo(pTnetwDrv->hTxHwQueue); 90764064216a8433360745f69edddce19a606659163The Android Open Source Project break; 90864064216a8433360745f69edddce19a606659163The Android Open Source Project 90964064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRV_PRINT_TX_XFER_INFO: 91064064216a8433360745f69edddce19a606659163The Android Open Source Project txXfer_printInfo(pTnetwDrv->hTxXfer); 91164064216a8433360745f69edddce19a606659163The Android Open Source Project break; 91264064216a8433360745f69edddce19a606659163The Android Open Source Project 91364064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRV_PRINT_TX_RESULT_INFO: 91464064216a8433360745f69edddce19a606659163The Android Open Source Project txResult_printInfo(pTnetwDrv->hTxResult); 91564064216a8433360745f69edddce19a606659163The Android Open Source Project break; 91664064216a8433360745f69edddce19a606659163The Android Open Source Project 91764064216a8433360745f69edddce19a606659163The Android Open Source Project case TNETW_DRV_CLEAR_TX_RESULT_INFO: 91864064216a8433360745f69edddce19a606659163The Android Open Source Project txResult_clearInfo(pTnetwDrv->hTxResult); 91964064216a8433360745f69edddce19a606659163The Android Open Source Project break; 92064064216a8433360745f69edddce19a606659163The Android Open Source Project 92164064216a8433360745f69edddce19a606659163The Android Open Source Project default: 92264064216a8433360745f69edddce19a606659163The Android Open Source Project WLAN_REPORT_ERROR( pTnetwDrv->hReport, TNETW_DRV_MODULE_LOG, 92364064216a8433360745f69edddce19a606659163The Android Open Source Project ("$s: invalid print info request code: %d\n", __FUNCTION__, printInfo) ); 92464064216a8433360745f69edddce19a606659163The Android Open Source Project } 92564064216a8433360745f69edddce19a606659163The Android Open Source Project} 92664064216a8433360745f69edddce19a606659163The Android Open Source Project 92764064216a8433360745f69edddce19a606659163The Android Open Source Project 92864064216a8433360745f69edddce19a606659163The Android Open Source Project 92964064216a8433360745f69edddce19a606659163The Android Open Source Project 93064064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 93164064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_TEMP_GetHandles() 93264064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 93364064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: 93464064216a8433360745f69edddce19a606659163The Android Open Source Project 93564064216a8433360745f69edddce19a606659163The Android Open Source Project TEMPORARY!! - untill the new TNETW-Driver architecture is completed!! 93664064216a8433360745f69edddce19a606659163The Android Open Source Project 93764064216a8433360745f69edddce19a606659163The Android Open Source Project In the new architecture all external calls to the driver will be through 93864064216a8433360745f69edddce19a606659163The Android Open Source Project the hTnetwDrv handle. 93964064216a8433360745f69edddce19a606659163The Android Open Source Project 94064064216a8433360745f69edddce19a606659163The Android Open Source Project Called by the driver creation process. 94164064216a8433360745f69edddce19a606659163The Android Open Source Project Gets the TNETW-Driver modules handles needed externally. 94264064216a8433360745f69edddce19a606659163The Android Open Source Project 94364064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/ 94464064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_TEMP_GetHandles(TI_HANDLE hTnetwDrv, TI_HANDLE *pHalCtrl, TI_HANDLE *pMacServices) 94564064216a8433360745f69edddce19a606659163The Android Open Source Project{ 94664064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 94764064216a8433360745f69edddce19a606659163The Android Open Source Project 94864064216a8433360745f69edddce19a606659163The Android Open Source Project *pHalCtrl = pTnetwDrv->hHalCtrl; 94964064216a8433360745f69edddce19a606659163The Android Open Source Project *pMacServices = pTnetwDrv->hMacServices; 95064064216a8433360745f69edddce19a606659163The Android Open Source Project} 95164064216a8433360745f69edddce19a606659163The Android Open Source Project 95264064216a8433360745f69edddce19a606659163The Android Open Source Project#if !defined(GWSI_DRIVER) && !defined(GWSI_LIB) 95364064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 95464064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_StartRecovery() 95564064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 95664064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: 95764064216a8433360745f69edddce19a606659163The Android Open Source Project API function called by RecoverMgr to start TWD recovery process 95864064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/ 95964064216a8433360745f69edddce19a606659163The Android Open Source Projectvoid TnetwDrv_StartRecovery(TI_HANDLE hTnetwDrv, void *endOfRecoveryCB, TI_HANDLE hRecoveryMgr) 96064064216a8433360745f69edddce19a606659163The Android Open Source Project{ 96164064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 96264064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->bRecoveryFlag = TRUE; 96364064216a8433360745f69edddce19a606659163The Android Open Source Project recoveryCtrl_restartTWD(pTnetwDrv->hRecoveryCtrl, endOfRecoveryCB, hRecoveryMgr); 96464064216a8433360745f69edddce19a606659163The Android Open Source Project 96564064216a8433360745f69edddce19a606659163The Android Open Source Project} 96664064216a8433360745f69edddce19a606659163The Android Open Source Project 96764064216a8433360745f69edddce19a606659163The Android Open Source Project/****************************************************************************/ 96864064216a8433360745f69edddce19a606659163The Android Open Source Project/* TnetwDrv_InitHw_FinalizeDownload() 96964064216a8433360745f69edddce19a606659163The Android Open Source Project **************************************************************************** 97064064216a8433360745f69edddce19a606659163The Android Open Source Project * DESCRIPTION: 97164064216a8433360745f69edddce19a606659163The Android Open Source Project API function called by RecoverMgr to start TWD recovery process 97264064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/ 97364064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS TnetwDrv_InitHw_FinalizeDownload(TI_HANDLE hTnetwDrv) 97464064216a8433360745f69edddce19a606659163The Android Open Source Project{ 97564064216a8433360745f69edddce19a606659163The Android Open Source Project TnetwDrv_t *pTnetwDrv = (TnetwDrv_t *)hTnetwDrv; 97664064216a8433360745f69edddce19a606659163The Android Open Source Project 97764064216a8433360745f69edddce19a606659163The Android Open Source Project if (pTnetwDrv->bRecoveryFlag) 97864064216a8433360745f69edddce19a606659163The Android Open Source Project { 97964064216a8433360745f69edddce19a606659163The Android Open Source Project pTnetwDrv->bRecoveryFlag = FALSE; 98064064216a8433360745f69edddce19a606659163The Android Open Source Project return InitHw_FinalizeDownload(pTnetwDrv->hHwInit); 98164064216a8433360745f69edddce19a606659163The Android Open Source Project } 98264064216a8433360745f69edddce19a606659163The Android Open Source Project else 98364064216a8433360745f69edddce19a606659163The Android Open Source Project { 98464064216a8433360745f69edddce19a606659163The Android Open Source Project return TnetwDrv_FinalizeDownload(hTnetwDrv); 98564064216a8433360745f69edddce19a606659163The Android Open Source Project } 98664064216a8433360745f69edddce19a606659163The Android Open Source Project} 98764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 98864064216a8433360745f69edddce19a606659163The Android Open Source Project 98964064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef GWSI_SPI_TEST 99064064216a8433360745f69edddce19a606659163The Android Open Source Project 99164064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_HANDLE TnetwDrv_GetTnetwifHandle (TI_HANDLE hTnetwDrv) 99264064216a8433360745f69edddce19a606659163The Android Open Source Project{ 99364064216a8433360745f69edddce19a606659163The Android Open Source Project return ((TnetwDrv_t *)hTnetwDrv)->hTNETWIF; 99464064216a8433360745f69edddce19a606659163The Android Open Source Project} 99564064216a8433360745f69edddce19a606659163The Android Open Source Project 99664064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* GWSI_SPI_TEST */ 997