1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* 2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * CmdBldCfgIE.c 3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 43bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. 5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved. 6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without 8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions 9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met: 10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * * Redistributions of source code must retain the above copyright 12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * notice, this list of conditions and the following disclaimer. 13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * * Redistributions in binary form must reproduce the above copyright 14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * notice, this list of conditions and the following disclaimer in 15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * the documentation and/or other materials provided with the 16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * distribution. 17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * * Neither the name Texas Instruments nor the names of its 18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * contributors may be used to endorse or promote products derived 19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * from this software without specific prior written permission. 20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \file CmdBldCfgIE.c 36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Command builder. Configuration commands information elements 37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \see CmdBld.h 39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __FILE_ID__ FILE_ID_92 41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "osApi.h" 42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "report.h" 43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "CmdBld.h" 44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "CmdQueue_api.h" 45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "rate.h" 46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "TwIf.h" 47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeConfigMemory() 50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure wlan hardware memory 52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 59a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeConfigMemory (TI_HANDLE hCmdBld, TDmaParams *pDmaParams, void *fCb, TI_HANDLE hCb) 60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConfigMemory_t AcxElm_ConfigMemory; 63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConfigMemory_t *pCfg = &AcxElm_ConfigMemory; 64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero(pCmdBld->hOs, (void *)pCfg, sizeof(*pCfg)); 66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_MEM_CFG; 71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set configuration fields 75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->numStations = pDmaParams->NumStations; 77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxMemblockNumber = pDmaParams->NumRxBlocks; 78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->txMinimumMemblockNumber = TWD_TX_MIN_MEM_BLKS_NUM; 79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->numSsidProfiles = 1; 80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->totalTxDescriptors = ENDIAN_HANDLE_LONG(NUM_TX_DESCRIPTORS); 81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* WoneIndex value when running as station */ 87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define STATION_WONE_INDEX 0 88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeSlotTime() 92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the Slot Time 94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 101a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSlotTime (TI_HANDLE hCmdBld, TI_UINT8 apSlotTime, void *fCb, TI_HANDLE hCb) 102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXSlot_t AcxElm_SlotTime; 105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXSlot_t *pCfg = &AcxElm_SlotTime; 106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SLOT; 109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set configuration fields */ 112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* woneIndex is not relevant to station implementation */ 113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->woneIndex = STATION_WONE_INDEX; 114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->slotTime = apSlotTime; 115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": Sending info elem to firmware, Slot Time = %d\n", (TI_UINT8)pCfg->slotTime); 117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIePreamble() 124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the Preamble 126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 133a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIePreamble (TI_HANDLE hCmdBld, TI_UINT8 preamble, void *fCb, TI_HANDLE hCb) 134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPreamble_t AcxElm_Preamble; 137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPreamble_t *pCfg = &AcxElm_Preamble; 138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_PREAMBLE_TYPE; 141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set configuration fields */ 144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* woneIndex is not relevant to station implementation */ 145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->preamble = preamble; 146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "ID=%u: preamble=%u\n", pCfg->EleHdr.id, preamble); 148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRx() 155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate RxConfig information element 157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 164a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRx (TI_HANDLE hCmdBld, TI_UINT32 apRxConfigOption, TI_UINT32 apRxFilterOption, void *fCb, TI_HANDLE hCb) 165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRxConfig_t AcxElm_RxConfig; 168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRxConfig_t *pCfg = &AcxElm_RxConfig; 169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_RX_CFG; 172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set configuration fields */ 175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->ConfigOptions = ENDIAN_HANDLE_LONG(apRxConfigOption); 176a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->FilterOptions = ENDIAN_HANDLE_LONG(apRxFilterOption); 177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 181a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 182a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* cmdBld_CfgIeEnableRxDataFilter() 183a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt***************************************************************************** 184a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* DESCRIPTION: Enables or disables Rx data filtering. 185a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* 186a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* INPUTS: enabled - 0 to disable data filtering, any other value to enable 187a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* defaultAction - The default action to take on non-matching packets. 188a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* 189a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* OUTPUT: None 190a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* 191a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* RETURNS: TI_OK or TI_NOK 192a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt****************************************************************************/ 193a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeEnableRxDataFilter (TI_HANDLE hCmdBld, TI_BOOL enabled, filter_e defaultAction, void *fCb, TI_HANDLE hCb) 194a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 195a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 196a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt DataFilterDefault_t dataFilterDefault; 197a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt DataFilterDefault_t * pCfg = &dataFilterDefault; 198a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 199a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 200a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_ENABLE_RX_DATA_FILTER; 201a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = 0; 202a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 203a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": Rx Data Filter configuration:\n"); 204a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": enabled = %d, defaultAction = %d\n", enabled, defaultAction); 205a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 206a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element configuration fields */ 207a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->enable = enabled; 208a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->action = defaultAction; 209a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len += sizeof(pCfg->enable) + sizeof(pCfg->action); 210a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 211a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE_INFO_HEX(pCmdBld->hReport, (TI_UINT8 *) pCfg, sizeof(dataFilterDefault)); 212a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 213a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 214a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 215a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 216a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 217a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* cmdBld_CfgIeRxDataFilter() 218a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt***************************************************************************** 219a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* DESCRIPTION: Add/remove Rx Data filter information element. 220a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* 221a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* INPUTS: index - Index of the Rx Data filter 222a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* command - Add or remove the filter 223a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* action - Action to take on packets matching the pattern 224a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* numFieldPatterns - Number of field patterns in the filter 225a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* lenFieldPatterns - Length of the field pattern series 226a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* fieldPatterns - Series of field patterns 227a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* 228a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* OUTPUT: None 229a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* 230a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* RETURNS: TI_OK or TI_NOK 231a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt****************************************************************************/ 232a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRxDataFilter (TI_HANDLE hCmdBld, 233a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 index, 234a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 command, 235a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt filter_e action, 236a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 numFieldPatterns, 237a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 lenFieldPatterns, 238a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 *pFieldPatterns, 239a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 240a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 241a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 242a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 243a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 dataFilterConfig[sizeof(DataFilterConfig_t) + MAX_DATA_FILTER_SIZE]; 244a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt DataFilterConfig_t * pCfg = (DataFilterConfig_t *) &dataFilterConfig; 245a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 246a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 247a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SET_RX_DATA_FILTER; 248a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = 0; 249a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 250a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": Rx Data Filter configuration:\n"); 251a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE5(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": command = %d, index = %d, action = %d, numFieldPatterns = %d, lenFieldPatterns = %d\n", command, index, action, numFieldPatterns, lenFieldPatterns); 252a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 253a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element configuration fields */ 254a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->command = command; 255a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->index = index; 256a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len += sizeof(pCfg->command) + sizeof(pCfg->index); 257a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 258a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* When removing a filter only the index and command are to be sent */ 259a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (command == ADD_FILTER) 260a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 261a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->action = action; 262a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->numOfFields = numFieldPatterns; 263a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len += sizeof(pCfg->action) + sizeof(pCfg->numOfFields); 264a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 265a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (pFieldPatterns == NULL) 266a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 267a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_ERROR, ": Null pattern table argument received!\n"); 268a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 269a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return PARAM_VALUE_NOT_VALID; 270a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 271a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 272a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryCopy(pCmdBld->hOs, &pCfg->FPTable, pFieldPatterns, lenFieldPatterns); 273a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len += lenFieldPatterns; 274a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 275a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 276a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE_INFO_HEX(pCmdBld->hReport, (TI_UINT8 *) pCfg, sizeof(dataFilterConfig)); 277a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 278a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(dataFilterConfig), fCb, hCb, NULL); 279a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 280a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 281a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 282a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeArpIpFilter() 283a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 284a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate ARP addr table information element for 285a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ipV4 only 286a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 287a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 288a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 289a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 290a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 291a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 292a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 293a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeArpIpFilter (TI_HANDLE hCmdBld, 294a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TIpAddr tIpAddr, 295a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EArpFilterType filterType, 296a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 297a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 298a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 299a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 300a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConfigureIP_t AcxElm_CmdConfigureIP; 301a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConfigureIP_t *pCfg = &AcxElm_CmdConfigureIP; 302a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 303a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 304a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_ARP_IP_FILTER; 305a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(ACXConfigureIP_t) - sizeof(EleHdrStruct); 306a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 307a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->arpFilterEnable = (TI_UINT8)filterType; 308a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 309a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* IP address */ 310a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Note that in the case of IPv4 it is assumed that the extra two bytes are zero */ 311a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt IP_COPY (pCfg->address, tIpAddr); 312a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 313a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE3(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "ID=%u: ip=%x, enable=%u\n", pCfg->EleHdr.id, *((TI_UINT32*)pCfg->address), filterType); 314a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 315a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(ACXConfigureIP_t), fCb, hCb, NULL); 316a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 317a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 318a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 319a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 320a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeGroupAdressTable() 321a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 322a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate Group addr table information element 323a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 324a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 325a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 326a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 327a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 328a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 329a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 330a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeGroupAdressTable (TI_HANDLE hCmdBld, 331a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 numGroupAddrs, 332a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TMacAddr *pGroupAddr, 333a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL bEnabled, 334a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 335a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 336a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 337a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 338a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 i = 0; 339a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 *tmpLoc = NULL; 340a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11MulticastGroupAddrStart_t AcxElm_CmdConfigureMulticastIp; 341a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11MulticastGroupAddrStart_t* pCfg = &AcxElm_CmdConfigureMulticastIp; 342a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 343a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero (pCmdBld->hOs, (void *)pCfg, sizeof(dot11MulticastGroupAddrStart_t)); 344a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 345a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 346a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = DOT11_GROUP_ADDRESS_TBL; 347a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 348a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 349a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->numOfGroups = numGroupAddrs; 350a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->fltrState = bEnabled; 351a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt tmpLoc = pCfg->dataLocation; 352a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 353a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (NULL != pGroupAddr) 354a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 355a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt for (i = 0; i < numGroupAddrs; i++) 356a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 357a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MAC_COPY (&tmpLoc[MAC_ADDR_LEN * i], *(pGroupAddr + i)); 358a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 359a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE7(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeGroupAdressTable: MAC %x: %x:%x:%x:%x:%x:%x\n", i, tmpLoc[MAC_ADDR_LEN*i+0] , tmpLoc[MAC_ADDR_LEN*i+1] , tmpLoc[MAC_ADDR_LEN*i+2] , tmpLoc[MAC_ADDR_LEN*i+3] , tmpLoc[MAC_ADDR_LEN*i+4] , tmpLoc[MAC_ADDR_LEN*i+5]); 360a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 361a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 362a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 363a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(dot11MulticastGroupAddrStart_t), fCb, hCb, NULL); 364a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 365a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 366a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 367a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 368a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 369a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeSgEnable() 370a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 371a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Enable/Disable the BTH-WLAN 372a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 373a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: Enable flag 374a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 375a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 376a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 377a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 378a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 379a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSgEnable (TI_HANDLE hCmdBld, ESoftGeminiEnableModes SoftGeminiEnableModes, void *fCb, TI_HANDLE hCb) 380a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 381a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 382a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBluetoothWlanCoEnableStruct AcxElm_BluetoothWlanEnable; 383a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBluetoothWlanCoEnableStruct* pCfg = &AcxElm_BluetoothWlanEnable; 384a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 385a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeSgEnable: Enable flag = %d\n", SoftGeminiEnableModes); 386a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 387a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 388a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SG_ENABLE; 389a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 390a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 391a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set enable field */ 392a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->coexOperationMode = (TI_UINT8)SoftGeminiEnableModes; 393a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 394a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 395a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 396a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 397a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 398a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 399a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeSg() 400a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 401a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the BTH-WLAN co-exsistance 402a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 403a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: Configuration structure pointer 404a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 405a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 406a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 407a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 408a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 409a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSg (TI_HANDLE hCmdBld, TSoftGeminiParams *pSoftGeminiParam, void *fCb, TI_HANDLE hCb) 410a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 411a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 412a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBluetoothWlanCoParamsStruct AcxElm_BluetoothWlanEnable; 413a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBluetoothWlanCoParamsStruct *pCfg = &AcxElm_BluetoothWlanEnable; 414a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt int i=0; 415a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 416a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeSg. \n"); 417a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 418a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 419a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SG_CFG; 420a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 421a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 422a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->softGeminiParams.paramIdx = pSoftGeminiParam->paramIdx; 423a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 424a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 425a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt for (i=0; i< SOFT_GEMINI_PARAMS_MAX ; i++) 426a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 427a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->softGeminiParams.coexParams[i] = pSoftGeminiParam->coexParams[i]; 428a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 429a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 430a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Rate conversion is done in the HAL */ 431a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->softGeminiParams.coexParams[SOFT_GEMINI_RATE_ADAPT_THRESH] = rateNumberToBitmap((TI_UINT8)pSoftGeminiParam->coexParams[SOFT_GEMINI_RATE_ADAPT_THRESH]); 432a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 433a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (pCfg->softGeminiParams.coexParams[SOFT_GEMINI_RATE_ADAPT_THRESH] == 0) 434a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 435a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_ERROR, "coexAPRateAdapationThr is 0, convert to 1MBPS. \n"); 436a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->softGeminiParams.coexParams[SOFT_GEMINI_RATE_ADAPT_THRESH] = HW_BIT_RATE_1MBPS; 437a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 438a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 439a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Send the configuration command */ 440a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 441a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 442a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 443a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 444a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 445a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeFmCoex() 446a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 447a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the FM-WLAN co-exsistance parameters 448a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 449a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: Configuration structure pointer 450a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 451a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 452a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 453a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 454a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 455a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeFmCoex (TI_HANDLE hCmdBld, TFmCoexParams *pFmCoexParams, void *fCb, TI_HANDLE hCb) 456a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 457a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 458a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXWlanFmCoexStruct tFmWlanCoex; 459a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXWlanFmCoexStruct *pCfg = &tFmWlanCoex; 460a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 461a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeFmCoex\n"); 462a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 463a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 464a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_FM_COEX_CFG; 465a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 466a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 467a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set parameters with endianess handling */ 468a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->enable = pFmCoexParams->uEnable; 469a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->swallowPeriod = pFmCoexParams->uSwallowPeriod; 470a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->nDividerFrefSet1 = pFmCoexParams->uNDividerFrefSet1; 471a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->nDividerFrefSet2 = pFmCoexParams->uNDividerFrefSet2; 472a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->mDividerFrefSet1 = ENDIAN_HANDLE_WORD(pFmCoexParams->uMDividerFrefSet1); 473a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->mDividerFrefSet2 = ENDIAN_HANDLE_WORD(pFmCoexParams->uMDividerFrefSet2); 474a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->coexPllStabilizationTime = ENDIAN_HANDLE_LONG(pFmCoexParams->uCoexPllStabilizationTime); 475a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->ldoStabilizationTime = ENDIAN_HANDLE_WORD(pFmCoexParams->uLdoStabilizationTime); 476a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->fmDisturbedBandMargin = pFmCoexParams->uFmDisturbedBandMargin; 477a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->swallowClkDif = pFmCoexParams->uSwallowClkDif; 478a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 479a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Send the configuration command */ 480a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 481a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 482a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 483a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 484a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 485a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeMemoryMap () 486a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 487a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate MemoryMap information element 488a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 489a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 490a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * AcxElm_MemoryMap_T *apMap pointer to the memory map structure 491a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 492a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 493a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 494a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 495a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 496a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeMemoryMap (TI_HANDLE hCmdBld, MemoryMap_t *apMap, void *fCb, TI_HANDLE hCb) 497a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 498a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 499a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MemoryMap_t SwapMap; 500a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 *pSwap, *pOrig, i, uMemMapNumFields; 501a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 502a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 503a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt SwapMap.EleHdr.id = ACX_MEM_MAP; 504a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt SwapMap.EleHdr.len = sizeof(MemoryMap_t) - sizeof(EleHdrStruct); 505a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 506a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Solve endian problem (all fields are 32 bit) */ 507a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pOrig = (TI_UINT32* )&apMap->codeStart; 508a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pSwap = (TI_UINT32* )&SwapMap.codeStart; 509a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt uMemMapNumFields = (sizeof(MemoryMap_t) - sizeof(EleHdrStruct)) % 4; 510a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt for (i = 0; i < uMemMapNumFields; i++) 511a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pSwap[i] = ENDIAN_HANDLE_LONG(pOrig[i]); 512a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 513a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, &SwapMap, sizeof(SwapMap), fCb, hCb, NULL); 514a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 515a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 516a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 517a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 518a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeAid() 519a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 520a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the AID info element 521a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 522a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 523a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * TI_UINT16* apAidVal The AID value 524a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 525a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 526a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 527a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 528a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 529a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeAid (TI_HANDLE hCmdBld, TI_UINT16 apAidVal, void *fCb, TI_HANDLE hCb) 530a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 531a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 532a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXAid_t WlanElm_AID; 533a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXAid_t *pCfg = &WlanElm_AID; 534a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 535a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 536a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_AID; 537a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 538a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 539a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->Aid = ENDIAN_HANDLE_WORD(apAidVal); 540a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 541a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 542a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 543a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 544a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 545a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 546a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeWakeUpCondition() 547a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 548a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the power management option 549a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 550a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 551a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 552a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 553a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 554a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 555a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 556a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeWakeUpCondition (TI_HANDLE hCmdBld, TPowerMgmtConfig *pPMConfig, void *fCb, TI_HANDLE hCb) 557a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 558a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 559a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt WakeUpCondition_t WakeUpCondition; 560a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt WakeUpCondition_t *pCfg = &WakeUpCondition; 561a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 562a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "WakeUpCondition :\n listenInterval = 0x%X\n", pPMConfig->listenInterval); 563a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 564a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt switch (pPMConfig->tnetWakeupOn) 565a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 566a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case TNET_WAKE_ON_BEACON: 567a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->wakeUpConditionBitmap = WAKE_UP_EVENT_BEACON_BITMAP; 568a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 569a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case TNET_WAKE_ON_DTIM: 570a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->wakeUpConditionBitmap = WAKE_UP_EVENT_DTIM_BITMAP; 571a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 572a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case TNET_WAKE_ON_N_BEACON: 573a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->wakeUpConditionBitmap = WAKE_UP_EVENT_N_BEACONS_BITMAP; 574a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 575a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case TNET_WAKE_ON_N_DTIM: 576a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->wakeUpConditionBitmap = WAKE_UP_EVENT_N_DTIM_BITMAP; 577a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 578a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt default: 579a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->wakeUpConditionBitmap = WAKE_UP_EVENT_BEACON_BITMAP; 580a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 581a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 582a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 583a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->listenInterval = pPMConfig->listenInterval; 584a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 585a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, " cmdBld_wakeUpCondition tnetWakeupOn=0x%x listenInterval=%d\n",pCfg->wakeUpConditionBitmap,pCfg->listenInterval); 586a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 587a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 588a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_WAKE_UP_CONDITIONS; 589a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 590a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 591a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 592a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 593a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 594a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 595a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 596a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeSleepAuth() 597a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 598a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the power management option 599a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 600a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 601a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 602a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 603a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 604a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 605a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 606a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSleepAuth (TI_HANDLE hCmdBld, EPowerPolicy eMinPowerLevel, void *fCb, TI_HANDLE hCb) 607a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 608a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 609a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXSleepAuth_t ACXSleepAuth; 610a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXSleepAuth_t *pCfg = &ACXSleepAuth; 611a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EElpCtrlMode eElpCtrlMode; 612a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 613a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set the ELP control according to the new power policy */ 614a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt switch (eMinPowerLevel) 615a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 616a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case POWERAUTHO_POLICY_AWAKE: eElpCtrlMode = ELPCTRL_MODE_KEEP_AWAKE; break; 617a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case POWERAUTHO_POLICY_PD: eElpCtrlMode = ELPCTRL_MODE_KEEP_AWAKE; break; 618a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case POWERAUTHO_POLICY_ELP: eElpCtrlMode = ELPCTRL_MODE_NORMAL; break; 619a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt default: 620a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_ERROR, " - Param value is not supported, %d\n", eMinPowerLevel); 621a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return TI_NOK; 622a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 623a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 624a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 625a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set the ELP mode only if there is a change */ 626a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (pCmdBld->uLastElpCtrlMode != eElpCtrlMode) 627a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 628a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCmdBld->uLastElpCtrlMode = eElpCtrlMode; 629a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (eElpCtrlMode == ELPCTRL_MODE_KEEP_AWAKE) 630a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 631a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt twIf_Awake(pCmdBld->hTwIf); 632a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 633a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt else 634a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 635a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt twIf_Sleep(pCmdBld->hTwIf); 636a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 637a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 638a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 639a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* In the info element the enums are in reverse */ 640a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt switch (eMinPowerLevel) 641a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 642a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case POWERAUTHO_POLICY_ELP: 643a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->sleepAuth = 2; 644a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 645a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt case POWERAUTHO_POLICY_AWAKE: 646a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->sleepAuth = 0; 647a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt break; 648a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt default: 649a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->sleepAuth = eMinPowerLevel; 650a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 651a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 652a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, " cmdBld_MinPowerLevelSet sleepAuth=%d\n", eMinPowerLevel); 653a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 654a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 655a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SLEEP_AUTH; 656a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 657a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 658a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 659a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 660a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 661a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 662a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 663a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeBcnBrcOptions() 664a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 665a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the power management option 666a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 667a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 668a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 669a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 670a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 671a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 672a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 673a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeBcnBrcOptions (TI_HANDLE hCmdBld, TPowerMgmtConfig *pPMConfig, void *fCb, TI_HANDLE hCb) 674a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 675a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 676a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconAndBroadcastOptions_t ACXBeaconAndBroadcastOptions; 677a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconAndBroadcastOptions_t *pCfg = &ACXBeaconAndBroadcastOptions; 678a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 679a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->beaconRxTimeOut = pPMConfig->BcnBrcOptions.BeaconRxTimeout; 680a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->broadcastTimeOut = pPMConfig->BcnBrcOptions.BroadcastRxTimeout; 681a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxBroadcastInPS = pPMConfig->BcnBrcOptions.RxBroadcastInPs; 682a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->consecutivePsPollDeliveryFailureThr = pPMConfig->ConsecutivePsPollDeliveryFailureThreshold; 683a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 684a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 685a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE4(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, " cmdBld_BcnBrcOptions BeaconRxTimeout=%d BroadcastRxTimeout=%d RxBroadcastInPs=0x%x, consecutivePsPollDeliveryFailureThr=%d\n", pCfg->beaconRxTimeOut,pCfg->broadcastTimeOut, pCfg->rxBroadcastInPS, pCfg->consecutivePsPollDeliveryFailureThr); 686a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 687a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 688a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_BCN_DTIM_OPTIONS; 689a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 690a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 691a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 692a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 693a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 694a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 695a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 696a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeFeatureConfig() 697a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconAndBroadcastOptions_t* pWlanElm_BcnBrcOptions, 698a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 699a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the feature config info element 700a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 701a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 702a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 703a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 704a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 705a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 706a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 707a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeFeatureConfig (TI_HANDLE hCmdBld, TI_UINT32 options, TI_UINT32 uDataFlowOptions, void *fCb, TI_HANDLE hCb) 708a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 709a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 710a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXFeatureConfig_t WlanElm_FeatureConfig; 711a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXFeatureConfig_t *pCfg = &WlanElm_FeatureConfig; 712a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 713a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 714a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_FEATURE_CFG; 715a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 716a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 717a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set fields */ 718a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->Options = ENDIAN_HANDLE_LONG(options); 719a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->dataflowOptions = ENDIAN_HANDLE_LONG(uDataFlowOptions); 720a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 721a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE3(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "ID=%u: option=0x%x, def.option=0x%x\n", pCfg->EleHdr.id, options, uDataFlowOptions); 722a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 723a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 724a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 725a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 726a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 727a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 728a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeTxPowerDbm () 729a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 730a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Set the Tx power in Dbm units. 731a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 732a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 733a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 734a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 735a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 736a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 737a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 738a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeTxPowerDbm (TI_HANDLE hCmdBld, TI_UINT8 uTxPowerDbm , void *fCb, TI_HANDLE hCb) 739a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 740a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 741a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11CurrentTxPowerStruct dot11CurrentTxPower; 742a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11CurrentTxPowerStruct *pCfg = &dot11CurrentTxPower; 743a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 744a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1( pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, " uTxPowerDbm = %d\n", uTxPowerDbm); 745a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 746a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 747a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 748a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = DOT11_CUR_TX_PWR; 749a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 750a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 751a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->dot11CurrentTxPower = uTxPowerDbm; 752a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 753a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 754a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 755a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 756a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 757a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 758a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeStatisitics () 759a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 760a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Set the ACX statistics counters to zero. 761a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 762a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 763a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 764a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 765a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 766a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 767a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 768a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeStatisitics (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb) 769a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 770a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 771a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_STATUS status = TI_NOK; 772a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXStatistics_t *pCfg; 773a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 774a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg = os_memoryAlloc(pCmdBld->hOs, sizeof(ACXStatistics_t)); 775a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (!pCfg) 776005bbf20350954d05c8a111d3f487d6fddb049bbDmitry Shmidt { 777a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return status; 778005bbf20350954d05c8a111d3f487d6fddb049bbDmitry Shmidt } 779005bbf20350954d05c8a111d3f487d6fddb049bbDmitry Shmidt 780a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 781a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_STATISTICS; 782a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 783a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 784a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt status = cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 785a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryFree(pCmdBld->hOs, pCfg, sizeof(ACXStatistics_t)); 786a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return status; 787a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 788a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 789a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 790a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 791a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeTid() 792a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 793a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Write the Queue configuration (For Quality Of Service) 794a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 795a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 796a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 797a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 798a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 799a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 800a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 801a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeTid (TI_HANDLE hCmdBld, TQueueTrafficParams* pQtrafficParams, void *fCb, TI_HANDLE hCb) 802a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 803a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 804a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 805a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXTIDConfig_t TrafficCategoryCfg; 806a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXTIDConfig_t *pCfg = &TrafficCategoryCfg; 807a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 808a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero (pCmdBld->hOs, (void *)pCfg, sizeof(*pCfg)); 809a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 810a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 811a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 812a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 813a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 814a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_TID_CFG; 815a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 816a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 817a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 818a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element Data 819a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 820a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 821a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->queueID = pQtrafficParams->queueID; 822a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->channelType = pQtrafficParams->channelType; 823a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->tsid = pQtrafficParams->tsid; 824a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->psScheme = pQtrafficParams->psScheme; 825a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->APSDConf[0] = pQtrafficParams->APSDConf[0]; 826a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->APSDConf[1] = pQtrafficParams->APSDConf[1]; 827a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 828a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE7(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "ID=%u: queue-id=%u, chan-type=%u, tsid=%u, ps-scheme=%u, apsd-1=0x%x, apsd-2=0x%x\n", pCfg->EleHdr.id, pCfg->queueID, pCfg->channelType, pCfg->tsid, pCfg->psScheme, pCfg->APSDConf[0], pCfg->APSDConf[1]); 829a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 830a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 831a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 832a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 833a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 834a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 835a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeAcParams() 836a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 837a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Write the AC configuration (For Quality Of Service) 838a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 839a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 840a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 841a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 842a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 843a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 844a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 845a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeAcParams (TI_HANDLE hCmdBld, TAcQosParams *pAcQosParams, void *fCb, TI_HANDLE hCb) 846a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 847a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 848a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXAcCfg_t AcCfg; 849a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXAcCfg_t *pCfg = &AcCfg; 850a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 851a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero (pCmdBld->hOs, (void *)pCfg, sizeof(*pCfg)); 852a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 853a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 854a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 855a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 856a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 857a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_AC_CFG; 858a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 859a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 860a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 861a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element Data 862a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 863a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 864a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 865a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->ac = pAcQosParams->ac; 866a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->aifsn = pAcQosParams->aifsn; 867a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->cwMax = ENDIAN_HANDLE_WORD(pAcQosParams->cwMax); 868a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->cwMin = pAcQosParams->cwMin; 869a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->txopLimit = ENDIAN_HANDLE_WORD(pAcQosParams->txopLimit); 870a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 871a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE6(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "ID=%u: ac= %u, aifsn=%u, cw-max=%u, cw-min=%u, txop=%u\n", pCfg->EleHdr.id, pAcQosParams->ac, pAcQosParams->aifsn, pAcQosParams->cwMax, pAcQosParams->cwMin, pAcQosParams->txopLimit); 872a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 873a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 874a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 875a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 876a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 877a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 878a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIePsRxStreaming() 879a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 880a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Write the AC PS-Rx-Streaming 881a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 882a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 883a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 884a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 885a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 886a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 887a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 888a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIePsRxStreaming (TI_HANDLE hCmdBld, TPsRxStreaming *pPsRxStreaming, void *fCb, TI_HANDLE hCb) 889a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 890a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 891a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPsRxStreaming_t tStreamingCfg; 892a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPsRxStreaming_t *pCfg = &tStreamingCfg; 893a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 894a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero (pCmdBld->hOs, (void *)pCfg, sizeof(*pCfg)); 895a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 896a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 897a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 898a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 899a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 900a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_PS_RX_STREAMING; 901a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 902a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 903a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 904a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element Data 905a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================ 906a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 907a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->TID = (TI_UINT8)pPsRxStreaming->uTid; 908a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxPSDEnabled = (TI_UINT8)pPsRxStreaming->bEnabled; 909a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->streamPeriod = (TI_UINT8)pPsRxStreaming->uStreamPeriod; 910a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->txTimeout = (TI_UINT8)pPsRxStreaming->uTxTimeout; 911a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 912a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE5(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "ID=%u: tid= %u, enable=%u, streamPeriod=%u, txTimeout=%u\n", pCfg->EleHdr.id, pCfg->TID, pCfg->rxPSDEnabled, pCfg->streamPeriod, pCfg->txTimeout); 913a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 914a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 915a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 916a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 917a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 918a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 919a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIePacketDetectionThreshold() 920a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 921a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Set the PacketDetection threshold 922a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 923a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 924a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 925a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 926a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 927a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 928a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 929a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIePacketDetectionThreshold (TI_HANDLE hCmdBld, TI_UINT32 pdThreshold, void *fCb, TI_HANDLE hCb) 930a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 931a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 932a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPacketDetection_t PacketDetectionThresholdCfg; 933a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPacketDetection_t *pCfg = &PacketDetectionThresholdCfg; 934a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 935a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 936a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 937a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 938a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 939a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_PD_THRESHOLD; 940a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 941a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 942a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 943a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element Data 944a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 945a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 946a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->pdThreshold = ENDIAN_HANDLE_LONG(pdThreshold); 947a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 948a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": pdThreshold = 0x%x , len = 0x%x \n",pCfg->pdThreshold,pCfg->EleHdr.len); 949a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 950a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 951a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 952a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 953a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 954a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 955a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 956a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 957a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeBeaconFilterOpt() 958a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 959a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the beacon filtering option 960a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 961a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 962a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 963a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 964a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 965a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 966a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 967a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeBeaconFilterOpt (TI_HANDLE hCmdBld, TI_UINT8 beaconFilteringStatus, TI_UINT8 numOfBeaconsToBuffer, void *fCb, TI_HANDLE hCb) 968a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 969a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 970a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconFilterOptions_t ACXBeaconFilterOptions; 971a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconFilterOptions_t *pCfg = &ACXBeaconFilterOptions; 972a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 973a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->enable = beaconFilteringStatus; 974a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->maxNumOfBeaconsStored = numOfBeaconsToBuffer; 975a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 976a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 977a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_BEACON_FILTER_OPT; 978a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(ACXBeaconFilterOptions_t) - sizeof(EleHdrStruct); 979a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 980a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE3(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "ID=%u: enable=%u, num-stored=%u\n", pCfg->EleHdr.id, beaconFilteringStatus, numOfBeaconsToBuffer); 981a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 982a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(ACXBeaconFilterOptions_t), fCb, hCb, NULL); 983a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 984a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 985a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRateMngDbg() 986a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 987a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the rate managment params 988a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 989a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 990a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 991a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 992a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 993a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 994a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 995a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRateMngDbg (TI_HANDLE hCmdBld, RateMangeParams_t *pRateMngParams, void *fCb, TI_HANDLE hCb) 996a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 997a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 998a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxRateMangeParams RateMng; 999a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxRateMangeParams *pCfg = &RateMng; 1000a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt int i; 1001a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1002a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1003a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SET_RATE_MAMAGEMENT_PARAMS; 1004a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(AcxRateMangeParams) - sizeof(EleHdrStruct); 1005a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1006a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1007a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "ID=%u, index=%d \n",pCfg->EleHdr.id,pRateMngParams->paramIndex); 1008a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1009a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->paramIndex = pRateMngParams->paramIndex; 1010a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1011a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->InverseCuriosityFactor = pRateMngParams->InverseCuriosityFactor; 1012a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->MaxPer = pRateMngParams->MaxPer; 1013a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerAdd = pRateMngParams->PerAdd; 1014a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerAddShift = pRateMngParams->PerAddShift; 1015a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerAlphaShift = pRateMngParams->PerAlphaShift; 1016a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerBeta1Shift = pRateMngParams->PerBeta1Shift; 1017a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerBeta2Shift = pRateMngParams->PerBeta2Shift; 1018a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerTh1 = pRateMngParams->PerTh1; 1019a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PerTh2 = pRateMngParams->PerTh2; 1020a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->RateCheckDown = pRateMngParams->RateCheckDown; 1021a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->RateCheckUp = pRateMngParams->RateCheckUp; 1022a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->RateRetryScore = pRateMngParams->RateRetryScore; 1023a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->TxFailHighTh = pRateMngParams->TxFailHighTh; 1024a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->TxFailLowTh = pRateMngParams->TxFailLowTh; 1025a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1026a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt for (i=0 ; i< 13 ; i++) 1027a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1028a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->RateRetryPolicy[i] = pRateMngParams->RateRetryPolicy[i]; 1029a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1030a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1031a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(AcxRateMangeParams), fCb, hCb, NULL); 1032a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1033a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1034a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1035a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1036a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1037a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeBeaconFilterTable 1038a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1039a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the beacon filter IE table 1040a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1041a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 1042a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1043a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1044a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1045a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1046a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1047a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeBeaconFilterTable (TI_HANDLE hCmdBld, 1048a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uNumberOfIEs, 1049a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 *pIETable, 1050a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uIETableSize, 1051a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 1052a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1053a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1054a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1055a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconFilterIETable_t beaconFilterIETableStruct; 1056a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBeaconFilterIETable_t *pCfg = &beaconFilterIETableStruct; 1057a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 counter; 1058a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1059a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (NULL == pIETable) 1060a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1061a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return PARAM_VALUE_NOT_VALID; 1062a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1063a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1064a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_BEACON_FILTER_TABLE; 1065a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = uIETableSize + 1; 1066a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->NumberOfIEs = uNumberOfIEs; 1067a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1068a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero (pCmdBld->hOs, (void *)pCfg->IETable, BEACON_FILTER_TABLE_MAX_SIZE); 1069a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryCopy (pCmdBld->hOs, (void *)pCfg->IETable, (void *)pIETable, uIETableSize); 1070a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1071a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE3(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "ID=%u: num-ie=%u, table-size=%u\n", pCfg->EleHdr.id, uNumberOfIEs, uIETableSize); 1072a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1073a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "Beacon IE Table:\n"); 1074a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt for (counter = 0; counter < uIETableSize; counter++) 1075a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1076a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "%2x ", pIETable[counter]); 1077a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1078a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "\n"); 1079a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1080a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(ACXBeaconFilterIETable_t), fCb, hCb, NULL); 1081a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1082a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1083a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1084a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgCoexActivity 1085a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1086a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the Coex activity IE 1087a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1088a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 1089a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1090a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1091a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1092a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1093a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1094a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeCoexActivity (TI_HANDLE hCmdBld, 1095a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCoexActivity *pCoexActivity, 1096a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 1097a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1098a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1099a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXCoexActivityIE_t coexActivityIEStruct; 1101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXCoexActivityIE_t *pCfg = &coexActivityIEStruct; 1102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (NULL == pCoexActivity) 1104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return PARAM_VALUE_NOT_VALID; 1106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_COEX_ACTIVITY; 1109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(ACXCoexActivityIE_t) - sizeof(EleHdrStruct); 1110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "CoexActivity: ID=0x%x\n", pCfg->EleHdr.id); 1112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->coexIp = pCoexActivity->coexIp; 1114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->activityId = pCoexActivity->activityId; 1115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->defaultPriority = pCoexActivity->defaultPriority; 1116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->raisedPriority = pCoexActivity->raisedPriority; 1117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->minService = ENDIAN_HANDLE_WORD(pCoexActivity->minService); 1118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->maxService = ENDIAN_HANDLE_WORD(pCoexActivity->maxService); 1119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE6(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "CoexActivity: 0x%02x 0x%02x - 0x%02x 0x%02x 0x%04x 0x%04x\n", 1121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->coexIp, 1122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->activityId, 1123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->defaultPriority, 1124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->raisedPriority, 1125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->minService, 1126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->maxService); 1127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeCcaThreshold() 1133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the Slot Time 1135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1142a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeCcaThreshold (TI_HANDLE hCmdBld, TI_UINT16 ccaThreshold, void *fCb, TI_HANDLE hCb) 1143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXEnergyDetection_t AcxElm_CcaThreshold; 1146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXEnergyDetection_t *pCfg = &AcxElm_CcaThreshold; 1147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_CCA_THRESHOLD; 1150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxCCAThreshold = ENDIAN_HANDLE_WORD(ccaThreshold); 1153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeEventMask() 1160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Change the Event Vector Mask in the FW 1162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: MaskVector The Updated Vector Mask 1164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1167a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeEventMask (TI_HANDLE hCmdBld, TI_UINT32 mask, void *fCb, TI_HANDLE hCb) 1168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXEventMboxMask_t EventMboxData; 1172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXEventMboxMask_t *pCfg = &EventMboxData; 1173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 1175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_EVENT_MBOX_MASK; 1176a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->lowEventMask = ENDIAN_HANDLE_LONG(mask); 1178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->highEventMask = ENDIAN_HANDLE_LONG(0xffffffff); /* Not in Use */ 1179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "cmdBld_CfgIeEventMask:\n"); 1181a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1182a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1183a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1184a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1185a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1186a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1187a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeMaxTxRetry() 1188a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1189a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the Max Tx Retry parameters 1190a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1191a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1192a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1193a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1194a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1195a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1196a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1197a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeMaxTxRetry (TI_HANDLE hCmdBld, 1198a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRroamingTriggerParams *pRoamingTriggerCmd, 1199a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 1200a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1201a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1202a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1203a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConsTxFailureTriggerParameters_t AcxElm_SetMaxTxRetry; 1204a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConsTxFailureTriggerParameters_t* pCfg = &AcxElm_SetMaxTxRetry; 1205a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1206a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->maxTxRetry = pRoamingTriggerCmd->maxTxRetry; 1207a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1208a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1209a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_CONS_TX_FAILURE; 1210a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1211a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1212a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1213a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1214a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1215a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1216a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1217a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeConnMonitParams() 1218a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1219a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the Bss Lost Timeout & TSF miss threshold 1220a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1221a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1222a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1223a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1224a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1225a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1226a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1227a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeConnMonitParams (TI_HANDLE hCmdBld, TRroamingTriggerParams *pRoamingTriggerCmd, void *fCb, TI_HANDLE hCb) 1228a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1229a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1230a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxConnectionMonitorOptions AcxElm_SetBssLossTsfThreshold; 1231a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxConnectionMonitorOptions* pCfg = &AcxElm_SetBssLossTsfThreshold; 1232a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1233a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->BSSLossTimeout = ENDIAN_HANDLE_LONG(pRoamingTriggerCmd->BssLossTimeout); 1234a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->TSFMissedThreshold = ENDIAN_HANDLE_LONG(pRoamingTriggerCmd->TsfMissThreshold); 1235a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1236a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1237a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_CONN_MONIT_PARAMS; 1238a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1239a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1240a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1241a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1242a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1243a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1244a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1245a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeTxRatePolicy() 1246a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1247a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Write the TxRateClass configuration 1248a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1249a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 1250a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1251a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1252a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1253a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1254a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1255a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeTxRatePolicy (TI_HANDLE hCmdBld, TTxRatePolicy *pTxRatePolicy, void *fCb, TI_HANDLE hCb) 1256a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1257a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1258a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXTxAttrClasses_t TxClassCfg; 1259a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXTxAttrClasses_t *pCfg = &TxClassCfg; 1260a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 PolicyId; 1261a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1262a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryZero (pCmdBld->hOs, (void *)pCfg, sizeof(*pCfg)); 1263a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1264a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 1265a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 1266a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ============================== 1267a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1268a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_RATE_POLICY; 1269a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1270a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->numOfClasses = pTxRatePolicy->numOfRateClasses; 1271a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1272a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt for (PolicyId = 0; PolicyId < pTxRatePolicy->numOfRateClasses; PolicyId++) 1273a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1274a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryCopy (pCmdBld->hOs, 1275a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt (void *)&(pCfg->rateClasses[PolicyId]), 1276a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt (void *)&(pTxRatePolicy->rateClass[PolicyId]), 1277a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt sizeof(TTxRateClass)); 1278a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1279a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1280a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1281a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1282a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1283a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1284a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1285a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRtsThreshold() 1286a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1287a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the RTS threshold 1288a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1289a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1290a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1291a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1292a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1293a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1294a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1295a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRtsThreshold (TI_HANDLE hCmdBld, TI_UINT16 uRtsThreshold, void *fCb, TI_HANDLE hCb) 1296a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1297a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1298a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11RTSThreshold_t AcxElm_RtsThreshold; 1299a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11RTSThreshold_t *pCfg = &AcxElm_RtsThreshold; 1300a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1301a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1302a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = DOT11_RTS_THRESHOLD; 1303a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1304a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1305a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->RTSThreshold = ENDIAN_HANDLE_WORD(uRtsThreshold); 1306a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1307a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1308a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1309a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1310a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1311a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1312a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRtsThreshold() 1313a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1314a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the tx fragmentation threshold 1315a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1316a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1317a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1318a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1319a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1320a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1321a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1322a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeFragmentThreshold (TI_HANDLE hCmdBld, TI_UINT16 uFragmentThreshold, void *fCb, TI_HANDLE hCb) 1323a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1324a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1325a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXFRAGThreshold_t AcxElm_FragmentThreshold; 1326a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXFRAGThreshold_t *pCfg = &AcxElm_FragmentThreshold; 1327a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1328a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1329a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_FRAG_CFG; 1330a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1331a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1332a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->fragThreshold = ENDIAN_HANDLE_WORD(uFragmentThreshold); 1333a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1334a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1335a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1336a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1337a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1338a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1339a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIePmConfig() 1340a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1341a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure PM parameters 1342a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1343a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1344a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1345a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1346a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1347a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1348a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1349a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIePmConfig (TI_HANDLE hCmdBld, 1350a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 uHostClkSettlingTime, 1351a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uHostFastWakeupSupport, 1352a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void * fCb, 1353a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1354a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1355a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1356a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPMConfig_t tPmConfig; 1357a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXPMConfig_t *pCfg = &tPmConfig; 1358a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1359a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 1360a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_PM_CONFIG; 1361a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1362a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1363a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->hostClkSettlingTime = uHostClkSettlingTime; 1364a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->hostFastWakeupSupport = uHostFastWakeupSupport; 1365a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1366a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1367a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1368a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1369a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1370a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1371a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeTxCmpltPacing() 1372a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1373a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure Tx-Complete interrupt pacing to FW 1374a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1375a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1376a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1377a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1378a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1379a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1380a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1381a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeTxCmpltPacing (TI_HANDLE hCmdBld, 1382a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uTxCompletePacingThreshold, 1383a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uTxCompletePacingTimeout, 1384a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void * fCb, 1385a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1386a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1387a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1388a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXTxConfigOptions_t tTxCmpltPacing; 1389a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXTxConfigOptions_t *pCfg = &tTxCmpltPacing; 1390a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1391a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1392a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_TX_CONFIG_OPT; 1393a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1394a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1395a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->txCompleteThreshold = ENDIAN_HANDLE_WORD(uTxCompletePacingThreshold); 1396a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->txCompleteTimeout = ENDIAN_HANDLE_WORD(uTxCompletePacingTimeout); 1397a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1398a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1399a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1400a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1401a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1402a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1403a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRxIntrPacing() 1404a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1405a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure Rx-Complete interrupt pacing to FW 1406a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1407a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1408a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1409a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1410a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1411a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1412a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1413a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRxIntrPacing (TI_HANDLE hCmdBld, 1414a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uRxIntrPacingThreshold, 1415a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uRxIntrPacingTimeout, 1416a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void * fCb, 1417a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1418a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1419a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1420a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRxBufferingConfig_t tRxIntrPacing; 1421a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRxBufferingConfig_t *pCfg = &tRxIntrPacing; 1422a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1423a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1424a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_RX_CONFIG_OPT; 1425a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1426a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1427a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxPktThreshold = ENDIAN_HANDLE_WORD(uRxIntrPacingThreshold); 1428a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxCompleteTimeout = ENDIAN_HANDLE_WORD(uRxIntrPacingTimeout); 1429a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxMblkThreshold = ENDIAN_HANDLE_WORD(0xFFFF); /* Set to maximum so it has no effect (only the PktThreshold is used) */ 1430a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->rxQueueType = RX_QUEUE_TYPE_RX_LOW_PRIORITY; /* Only low priority data packets are buffered */ 1431a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1432a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1433a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1434a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1435a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1436a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1437a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt* cmdBld_CfgIeCtsProtection() 1438a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1439a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure The Cts to self feature 1440a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1441a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1442a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1443a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1444a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1445a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1446a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1447a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeCtsProtection (TI_HANDLE hCmdBld, TI_UINT8 ctsProtection, void *fCb, TI_HANDLE hCb) 1448a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1449a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1450a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXCtsProtection_t AcxElm_CtsToSelf; 1451a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXCtsProtection_t *pCfg = &AcxElm_CtsToSelf; 1452a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1453a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 1454a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_CTS_PROTECTION; 1455a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1456a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1457a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->ctsProtectMode = ctsProtection; 1458a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1459a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1460a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1461a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1462a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1463a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1464a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRxMsduLifeTime() 1465a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1466a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure The Cts to self feature 1467a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1468a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1469a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1470a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1471a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1472a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1473a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1474a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRxMsduLifeTime (TI_HANDLE hCmdBld, TI_UINT32 RxMsduLifeTime, void *fCb, TI_HANDLE hCb) 1475a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1476a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1477a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11RxMsduLifeTime_t AcxElm_RxMsduLifeTime; 1478a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11RxMsduLifeTime_t *pCfg = &AcxElm_RxMsduLifeTime; 1479a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1480a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 1481a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = DOT11_RX_MSDU_LIFE_TIME; 1482a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1483a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->RxMsduLifeTime = RxMsduLifeTime; 1484a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1485a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": RxMsduLifeTime = 0x%x, len = 0x%x\n",pCfg->RxMsduLifeTime,pCfg->EleHdr.len); 1486a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1487a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1488a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1489a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1490a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1491a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1492a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeServicePeriodTimeout() 1493a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1494a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure The Rx Time Out 1495a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1496a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1497a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1498a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1499a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1500a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1501a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1502a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeServicePeriodTimeout (TI_HANDLE hCmdBld, TRxTimeOut* pRxTimeOut, void *fCb, TI_HANDLE hCb) 1503a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1504a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1505a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRxTimeout_t AcxElm_rxTimeOut; 1506a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRxTimeout_t *pCfg = &AcxElm_rxTimeOut; 1507a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1508a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header*/ 1509a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SERVICE_PERIOD_TIMEOUT; 1510a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1511a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1512a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->PsPollTimeout = pRxTimeOut->psPoll; 1513a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->UpsdTimeout = pRxTimeOut->UPSD; 1514a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1515a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1516a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1517a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1518a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1519a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1520a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIePsWmm() 1521a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1522a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure The PS for WMM 1523a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1524a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: TI_TRUE - Configure PS to work on WMM mode - do not send the NULL/PS_POLL 1525a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * packets even if TIM is set. 1526a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * TI_FALSE - Configure PS to work on Non-WMM mode - work according to the 1527a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * standard 1528a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1529a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1530a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1531a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIePsWmm (TI_HANDLE hCmdBld, TI_BOOL enableWA, void *fCb, TI_HANDLE hCb) 1532a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1533a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1534a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConfigPsWmm_t ConfigPsWmm; 1535a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXConfigPsWmm_t *pCfg = &ConfigPsWmm; 1536a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1537a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 1538a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Set information element header 1539a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1540a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_CONFIG_PS_WMM; 1541a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1542a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1543a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->ConfigPsOnWmmMode = enableWA; 1544a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1545a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Report the meesage only if we are using the WiFi patch */ 1546a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (enableWA) 1547a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1548a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE0(pCmdBld->hReport, REPORT_SEVERITY_CONSOLE, "cmdBld_CfgIePsWmm: PS is on WMM mode\n"); 1549a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt WLAN_OS_REPORT(("%s PS is on WMM mode\n",__FUNCTION__)); 1550a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1551a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1552a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1553a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1554a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1555a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1556a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRssiSnrTrigger() 1557a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1558a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the RSSI/SNR Trigger parameters 1559a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1560a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1561a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1562a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1563a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1564a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: OK or NOK 1565a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1566a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRssiSnrTrigger (TI_HANDLE hCmdBld, RssiSnrTriggerCfg_t *pTriggerParam, void *fCb, TI_HANDLE hCb) 1567a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1568a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1569a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRssiSnrTriggerCfg_t tAcxTriggerParameters; 1570a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRssiSnrTriggerCfg_t *pCfg = &tAcxTriggerParameters; 1571a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1572a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.index = pTriggerParam->index ; 1573a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.threshold = pTriggerParam->threshold; 1574a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.pacing = pTriggerParam->pacing ; 1575a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.metric = pTriggerParam->metric ; 1576a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.type = pTriggerParam->type ; 1577a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.direction = pTriggerParam->direction; 1578a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.hystersis = pTriggerParam->hystersis; 1579a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.enable = pTriggerParam->enable ; 1580a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1581a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1582a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_RSSI_SNR_TRIGGER; 1583a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1584a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1585a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE8(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "ID=%u: threshold=%u, pacing=%u, metric=%u, type=%u, dir=%u, hyst=%u, enable=%u\n", pTriggerParam->index, pTriggerParam->threshold, pTriggerParam->pacing, pTriggerParam->metric, pTriggerParam->type, pTriggerParam->direction, pTriggerParam->hystersis, pTriggerParam->enable); 1586a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1587a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Send the configuration command */ 1588a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1589a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1590a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1591a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1592a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeRssiSnrWeights() 1593a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1594a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure the RSSI/SNR Trigger parameters 1595a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1596a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: None 1597a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1598a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1599a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1600a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: OK or NOK 1601a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1602a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRssiSnrWeights (TI_HANDLE hCmdBld, RssiSnrAverageWeights_t *pWeightsParam, void *fCb, TI_HANDLE hCb) 1603a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1604a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1605a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRssiSnrAverageWeights_t tAcxAverageWeights; 1606a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXRssiSnrAverageWeights_t *pCfg = &tAcxAverageWeights; 1607a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1608a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.rssiBeaconAverageWeight = pWeightsParam->rssiBeaconAverageWeight; 1609a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.rssiPacketAverageWeight = pWeightsParam->rssiPacketAverageWeight; 1610a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.snrBeaconAverageWeight = pWeightsParam->snrBeaconAverageWeight ; 1611a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->param.snrPacketAverageWeight = pWeightsParam->snrPacketAverageWeight ; 1612a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1613a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1614a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_RSSI_SNR_WEIGHTS; 1615a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1616a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1617a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE4(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "rssi-beacon-avg-weight=%u, rssi-packet-avg-weight=%u, snr-beacon-avg-weight=%u, snr-packet-avg-weight=%u", pWeightsParam->rssiBeaconAverageWeight, pWeightsParam->rssiPacketAverageWeight, pWeightsParam->snrBeaconAverageWeight, pWeightsParam->snrPacketAverageWeight); 1618a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1619a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Send the configuration command */ 1620a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1621a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1622a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1623a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1624a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* 1625a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ---------------------------------------------------------------------------- 1626a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function : cmdBld_CfgIeBet 1627a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1628a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Input : enabled - 0 to disable BET, 0 to disable BET 1629a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * MaximumConsecutiveET - Max number of consecutive beacons 1630a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * that may be early terminated. 1631a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Output : TI_STATUS 1632a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Process : Configures Beacon Early Termination information element. 1633a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Note(s) : None 1634a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * ----------------------------------------------------------------------------- 1635a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1636a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeBet (TI_HANDLE hCmdBld, TI_UINT8 Enable, TI_UINT8 MaximumConsecutiveET, void *fCb, TI_HANDLE hCb) 1637a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1638a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1639a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1640a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBet_Enable_t ACXBet_Enable; 1641a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXBet_Enable_t* pCfg = &ACXBet_Enable; 1642a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1643a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1644a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_BET_ENABLE; 1645a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1646a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1647a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set configuration fields */ 1648a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->Enable = Enable; 1649a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->MaximumConsecutiveET = MaximumConsecutiveET; 1650a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1651a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE2(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": Sending info elem to firmware, Enable=%d, MaximumConsecutiveET=%d\n", (TI_UINT32)pCfg->Enable, (TI_UINT32)pCfg->MaximumConsecutiveET); 1652a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1653a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1654a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1655a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1656a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1657a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CmdIeConfigureKeepAliveParams() 1658a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1659a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure keep-alive parameters for a single template 1660a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1661a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: hCmdBld - handle to command builder object 1662a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * uIndex - keep-alive index 1663a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * uEnaDisFlag - whether keep-alive is enabled or disables 1664a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * trigType - send keep alive when TX is idle or always 1665a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * interval - keep-alive interval 1666a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * fCB - callback function for command complete 1667a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * hCb - handle to be apssed to callback function 1668a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1669a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1670a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1671a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: OK or NOK 1672a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1673a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CmdIeConfigureKeepAliveParams (TI_HANDLE hCmdBld, TI_UINT8 uIndex, 1674a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uEnaDisFlag, TI_UINT8 trigType, 1675a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 interval, void *fCb, TI_HANDLE hCb) 1676a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1677a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1678a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxSetKeepAliveConfig_t ACXKeepAlive; 1679a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1680a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* set IE header */ 1681a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAlive.EleHdr.id = ACX_SET_KEEP_ALIVE_CONFIG; 1682a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAlive.EleHdr.len = sizeof (AcxSetKeepAliveConfig_t) - sizeof (EleHdrStruct); 1683a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1684a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* set Keep-Alive values */ 1685a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAlive.index = uIndex; 1686a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAlive.period = interval; 1687a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAlive.trigger = trigType; 1688a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAlive.valid = uEnaDisFlag; 1689a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1690a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE4(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": Sending info elem to firmware, index=%d, enaDis=%d, trigType=%d, interval=%d\n", (TI_UINT32)ACXKeepAlive.index, (TI_UINT32)ACXKeepAlive.valid, (TI_UINT32)ACXKeepAlive.trigger, (TI_UINT32)ACXKeepAlive.period); 1691a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1692a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* send the command to the FW */ 1693a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, &ACXKeepAlive, sizeof(AcxSetKeepAliveConfig_t), fCb, hCb, NULL); 1694a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1695a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1696a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1697a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CmdIeConfigureKeepAliveParams() 1698a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1699a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure keep-alive global enable / disable flag 1700a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1701a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: enable / disable flag 1702a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1703a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1704a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1705a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: OK or NOK 1706a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1707a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CmdIeConfigureKeepAliveEnaDis (TI_HANDLE hCmdBld, TI_UINT8 enaDisFlag, 1708a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, TI_HANDLE hCb) 1709a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1710a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1711a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxKeepAliveMode ACXKeepAliveMode; 1712a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1713a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* set IE header */ 1714a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAliveMode.EleHdr.id = ACX_KEEP_ALIVE_MODE; 1715a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAliveMode.EleHdr.len = sizeof (AcxKeepAliveMode) - sizeof (EleHdrStruct); 1716a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1717a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* set Keep-Alive mode */ 1718a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXKeepAliveMode.modeEnabled = enaDisFlag; 1719a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1720a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, ": Sending info elem to firmware, enaDis=%d\n", (TI_UINT32)ACXKeepAliveMode.modeEnabled); 1721a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1722a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* send the command to the FW */ 1723a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, &ACXKeepAliveMode, sizeof(AcxKeepAliveMode), fCb, hCb, NULL); 1724a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1725a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1726a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** 1727a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \fn cmdBld_CfgIeSetFwHtCapabilities 1728a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief set the current AP HT Capabilities to the FW. 1729a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1730a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note 1731a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK on success or TI_NOK on failure 1732a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa 1733a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1734a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSetFwHtCapabilities (TI_HANDLE hCmdBld, 1735a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 uHtCapabilites, 1736a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TMacAddr tMacAddress, 1737a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uAmpduMaxLeng, 1738a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uAmpduMinSpac, 1739a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 1740a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1741a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1742a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1743a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TAxcHtCapabilitiesIeFwInterface tAcxFwHtCap; 1744a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TAxcHtCapabilitiesIeFwInterface *pCfg = &tAcxFwHtCap; 1745a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1746a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1747a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_PEER_HT_CAP; 1748a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(tAcxFwHtCap) - sizeof(EleHdrStruct); 1749a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1750a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MAC_COPY (pCfg->aMacAddress, tMacAddress); 1751a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uHtCapabilites = uHtCapabilites; 1752a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uAmpduMaxLength = uAmpduMaxLeng; 1753a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uAmpduMinSpacing = uAmpduMinSpac; 1754a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1755a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE9(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeSetFwHtCapabilities: HtCapabilites=0x%x, AmpduMaxLength=%d, AmpduMinSpac=%d, MAC: %x:%x:%x:%x:%x:%x\n", uHtCapabilites, uAmpduMaxLeng, uAmpduMinSpac, pCfg->aMacAddress[0], pCfg->aMacAddress[1], pCfg->aMacAddress[2], pCfg->aMacAddress[3], pCfg->aMacAddress[4], pCfg->aMacAddress[5]); 1756a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1757a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(TAxcHtCapabilitiesIeFwInterface), fCb, hCb, NULL); 1758a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1759a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1760a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1761a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** 1762a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \fn cmdBld_CfgIeSetFwHtInformation 1763a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief set the current AP HT Information to the FW. 1764a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1765a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note 1766a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK on success or TI_NOK on failure 1767a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa 1768a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1769a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSetFwHtInformation (TI_HANDLE hCmdBld, 1770a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uRifsMode, 1771a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uHtProtection, 1772a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uGfProtection, 1773a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uHtTxBurstLimit, 1774a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uDualCtsProtection, 1775a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 1776a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1777a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1778a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1779a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TAxcHtInformationIeFwInterface tAcxFwHtInf; 1780a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TAxcHtInformationIeFwInterface *pCfg = &tAcxFwHtInf; 1781a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1782a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1783a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_HT_BSS_OPERATION; 1784a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(tAcxFwHtInf) - sizeof(EleHdrStruct); 1785a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1786a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uRifsMode = uRifsMode; 1787a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uHtProtection = uHtProtection; 1788a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uGfProtection = uGfProtection; 1789a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uHtTxBurstLimit = uHtTxBurstLimit; 1790a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uDualCtsProtection = uDualCtsProtection; 1791a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1792a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE5(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeSetFwHtInformation: RifsMode=0x%x, HtProtection=0x%x, GfProtection=0x%x, HtTxBurstLimit=0x%x, DualCtsProtection=0x%x\n", uRifsMode, uHtProtection, uGfProtection, uHtTxBurstLimit, uDualCtsProtection); 1793a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1794a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(TAxcHtInformationIeFwInterface), fCb, hCb, NULL); 1795a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1796a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1797a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** 1798a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \fn cmdBld_CfgIeSetBaSession 1799a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief configure BA session initiator\receiver parameters setting in the FW. 1800a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1801a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note 1802a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK on success or TI_NOK on failure 1803a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa 1804a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1805a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeSetBaSession (TI_HANDLE hCmdBld, 1806a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt InfoElement_e eBaType, 1807a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uTid, 1808a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 uState, 1809a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TMacAddr tRa, 1810a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uWinSize, 1811a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uInactivityTimeout, 1812a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt void *fCb, 1813a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCb) 1814a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1815a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1816a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TAxcBaSessionInitiatorResponderPolicy tAcxBaSessionPrm; 1817a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TAxcBaSessionInitiatorResponderPolicy *pCfg = &tAcxBaSessionPrm; 1818a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1819a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 1820a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = eBaType; 1821a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(tAcxBaSessionPrm) - sizeof(EleHdrStruct); 1822a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1823a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MAC_COPY (pCfg->aMacAddress, tRa); 1824a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uTid = uTid; 1825a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uPolicy = uState; 1826a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uWinSize = uWinSize; 1827a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1828a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (eBaType == ACX_BA_SESSION_INITIATOR_POLICY) 1829a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1830a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uInactivityTimeout = uInactivityTimeout; 1831a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1832a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt else 1833a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1834a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (eBaType == ACX_BA_SESSION_RESPONDER_POLICY) 1835a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1836a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->uInactivityTimeout = 0; 1837a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1838a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt else 1839a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1840a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE1(pCmdBld->hReport, REPORT_SEVERITY_ERROR, "cmdBld_CfgIeSetBaSession: error ID=%u\n", pCfg->EleHdr.id); 1841a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return TI_NOK; 1842a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1843a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1844a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1845a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE10(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_CfgIeSetBaSession: ID=, TID=%u, Policy=%u, MAC: %x:%x:%x:%x:%x:%x, uWinSize=%u, Timeout=%u\n", pCfg->uTid, pCfg->uPolicy, pCfg->aMacAddress[0], pCfg->aMacAddress[1], pCfg->aMacAddress[2], pCfg->aMacAddress[3], pCfg->aMacAddress[4], pCfg->aMacAddress[5], pCfg->uWinSize, pCfg->uInactivityTimeout); 1846a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1847a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(TAxcBaSessionInitiatorResponderPolicy), fCb, hCb, NULL); 1848a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1849a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1850a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** 1851a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \fn cmdBld_CfgIeRadioParams 1852a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief configure radio parameters setting in the FW. 1853a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1854a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \note 1855a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_OK on success or TI_NOK on failure 1856a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \sa 1857a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 1858a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeRadioParams (TI_HANDLE hCmdBld, IniFileRadioParam *pIniFileRadioParams, void *fCb, TI_HANDLE hCb) 1859a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1860a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1861a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_STATUS status = TI_NOK; 1862a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TTestCmd *pTestCmd; 1863a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1864a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pTestCmd = os_memoryAlloc(pCmdBld->hOs, sizeof(TTestCmd)); 1865a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (!pTestCmd) 1866a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1867a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return status; 1868a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1869a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1870a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pTestCmd->testCmdId = TEST_CMD_INI_FILE_RADIO_PARAM; 1871ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt 1872a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryCopy(pCmdBld->hOs, &pTestCmd->testCmd_u.IniFileRadioParams, pIniFileRadioParams, sizeof(IniFileRadioParam)); 1873a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1874a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt status = cmdQueue_SendCommand (pCmdBld->hCmdQueue, 1875a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt CMD_TEST, 1876a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt (void *)pTestCmd, 1877a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt sizeof(IniFileRadioParam) + 4, 1878a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt fCb, 1879a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt hCb, 1880a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt NULL); 1881a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryFree(pCmdBld->hOs, pTestCmd, sizeof(TTestCmd)); 1882a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return status; 1883a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1884a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1885a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 18863bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt/** 18873bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * \fn cmdBld_CfgIeExtendedRadioParams 18883bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * \brief configure extended radio parameters setting in the 18893bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * FW. 18903bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * 18913bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * \note 18923bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * \return TI_OK on success or TI_NOK on failure 18933bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * \sa 18943bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt */ 18953bb9a92880f8cda8c242707ad02077f13b009632Dmitry ShmidtTI_STATUS cmdBld_CfgIeExtendedRadioParams (TI_HANDLE hCmdBld, 18963bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt IniFileExtendedRadioParam *pIniFileExtRadioParams, 18973bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt void *fCb, 18983bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt TI_HANDLE hCb) 18993bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt{ 19003bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 19013bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt TI_STATUS status = TI_NOK; 19023bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt TTestCmd *pTestCmd; 19033bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 19043bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt pTestCmd = os_memoryAlloc(pCmdBld->hOs, sizeof(TTestCmd)); 19053bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt if (!pTestCmd) 19063bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt { 19073bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt return status; 19083bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt } 19093bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 19103bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt pTestCmd->testCmdId = TEST_CMD_INI_FILE_RF_EXTENDED_PARAM; 19113bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 19123bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt os_memoryCopy(pCmdBld->hOs, &pTestCmd->testCmd_u.IniFileExtendedRadioParams, 19133bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt pIniFileExtRadioParams, sizeof(IniFileExtendedRadioParam)); 19143bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 19153bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt status = cmdQueue_SendCommand (pCmdBld->hCmdQueue, 19163bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt CMD_TEST, 19173bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt (void *)pTestCmd, 19183bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt sizeof(IniFileExtendedRadioParam) + 4, 19193bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt fCb, 19203bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt hCb, 19213bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt NULL); 19223bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt os_memoryFree(pCmdBld->hOs, pTestCmd, sizeof(TTestCmd)); 19233bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt return status; 19243bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt} 19253bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 19263bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 1927a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgPlatformGenParams (TI_HANDLE hCmdBld, IniFileGeneralParam *pGenParams, void *fCb, TI_HANDLE hCb) 1928a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1929a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1930a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_STATUS status = TI_NOK; 1931a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TTestCmd *pTestCmd; 1932a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1933a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pTestCmd = os_memoryAlloc(pCmdBld->hOs, sizeof(TTestCmd)); 1934a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt if (!pTestCmd) 1935a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt { 1936a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return status; 1937a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt } 1938a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1939a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pTestCmd->testCmdId = TEST_CMD_INI_FILE_GENERAL_PARAM; 1940a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1941a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryCopy(pCmdBld->hOs, &pTestCmd->testCmd_u.IniFileGeneralParams, pGenParams, sizeof(IniFileGeneralParam)); 1942a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1943a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt status = cmdQueue_SendCommand (pCmdBld->hCmdQueue, 1944a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt CMD_TEST, 1945a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt (void *)pTestCmd, 1946a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt sizeof(IniFileGeneralParam), 1947a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt fCb, 1948a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt hCb, 1949a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt NULL); 1950a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt os_memoryFree(pCmdBld->hOs, pTestCmd, sizeof(TTestCmd)); 1951a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return status; 1952a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1953a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1954a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1955a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1956a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeBurstMode() 1957a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1958a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure burst mode 1959a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1960a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: hCmdBld - handle to command builder object 1961a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * bEnabled - is enabled flag 1962a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * fCB - callback function for command complete 1963ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * hCb - handle to be apssed to callback function 1964a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1965a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1966a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1967a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: OK or NOK 1968a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1969a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeBurstMode (TI_HANDLE hCmdBld, TI_BOOL bEnabled, void *fCb, TI_HANDLE hCb) 1970a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 1971a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 1972a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxBurstMode tAcxBurstMode; 1973a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt AcxBurstMode *pCfg = &tAcxBurstMode; 1974a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1975a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* set IE header */ 1976ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt pCfg->EleHdr.id = ACX_BURST_MODE; 1977a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct); 1978a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1979a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* set burst mode value */ 1980a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->enable = (uint8)bEnabled; 1981a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1982a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* send the command to the FW */ 1983a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(*pCfg), fCb, hCb, NULL); 1984a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 1985a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1986a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1987a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**************************************************************************** 1988a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * cmdBld_CfgIeDcoItrimParams() 1989a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt **************************************************************************** 1990a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DESCRIPTION: Configure/Interrogate the DCO Itrim parameters 1991a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1992a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * INPUTS: 1993a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1994a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OUTPUT: None 1995a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 1996a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * RETURNS: TI_OK or TI_NOK 1997a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************/ 1998a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS cmdBld_CfgIeDcoItrimParams (TI_HANDLE hCmdBld, TI_BOOL enable, TI_UINT32 moderationTimeoutUsec, void *fCb, TI_HANDLE hCb) 1999a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 2000a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TCmdBld *pCmdBld = (TCmdBld *)hCmdBld; 2001a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXDCOItrimParams_t ACXBeaconFilterOptions; 2002a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ACXDCOItrimParams_t *pCfg = &ACXBeaconFilterOptions; 2003a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 2004a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->enable = enable; 2005a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->moderation_timeout_usec = moderationTimeoutUsec; 2006a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 2007a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Set information element header */ 2008a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.id = ACX_SET_DCO_ITRIM_PARAMS; 2009a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt pCfg->EleHdr.len = sizeof(ACXDCOItrimParams_t) - sizeof(EleHdrStruct); 2010a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 2011a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TRACE3(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION , "ID=%u: enable=%u, moderation_timeout_usec=%u\n", pCfg->EleHdr.id, enable, moderationTimeoutUsec); 2012a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 2013a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_CONFIGURE, pCfg, sizeof(ACXDCOItrimParams_t), fCb, hCb, NULL); 2014a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} 2015