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