blob: 27fc41da32e10a71367c17c42131955b19d4c328 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/**
43 *
44 Airgo Networks, Inc proprietary.
45 All Rights Reserved, Copyright 2005
46 This program is the confidential and proprietary product of Airgo Networks Inc.
47 Any Unauthorized use, reproduction or transfer of this program is strictly prohibited.
48
49
50 pttMsgApi.h: Contains messages to PTT Module for physical layer testing
51 Author: Mark Nelson
52 Date: 6/21/05
53
54 History -
55 Date Modified by Modification Information
56 --------------------------------------------------------------------------
57
58 */
59
60#ifndef PTT_MSG_API_H
61#define PTT_MSG_API_H
62
63#include "halCompiler.h"
64#include "wlan_nv.h"
65#include "wlan_phy.h"
66#include "pttFrameGen.h"
67#include "pttModule.h"
68
69#include "halLegacyPalTypes.h"
70
71typedef tANI_U8 tQWPTT_U8;
72typedef tANI_S8 tQWPTT_S8;
73
74typedef tANI_U16 tQWPTT_U16;
75typedef tANI_S16 tQWPTT_S16;
76
77typedef tANI_U32 tQWPTT_U32;
78typedef tANI_S32 tQWPTT_S32;
79
80typedef tANI_U8 tQWPTT_BYTE;
81typedef tANI_S9 tQWPTT_S9;
82
83typedef tANI_U8 tQWPTT_BOOLEAN;
84
85#define PTT_MEM_ACCESS_MAX_SIZE 256
86
87//Messages to/from socket or pttApi.c
88typedef enum {
89 PTT_MSG_TYPES_BEGIN = 0x3000,
90
91 // Init
92 PTT_MSG_INIT = PTT_MSG_TYPES_BEGIN, //extra: internal only
93
94//NV Service
95 PTT_MSG_GET_TPC_CAL_STATE_OBSOLETE = 0x3011,
96 PTT_MSG_RESET_TPC_CAL_STATE_OBSOLETE = 0x3012,
97
98 PTT_MSG_SET_NV_CKSUM_OBSOLETE = 0x3013,
99 PTT_MSG_GET_NV_CKSUM_OBSOLETE = 0x3014,
100 PTT_MSG_GET_NV_TABLE = 0x3016,
101 PTT_MSG_SET_NV_TABLE = 0x3017,
102 PTT_MSG_SET_NV_IMAGE_OBSOLETE = 0x3018,
103 PTT_MSG_BLANK_NV = 0x3019,
104 PTT_MSG_GET_NV_IMAGE_OBSOLETE = 0x301E,
105 PTT_MSG_DEL_NV_TABLE = 0x301F,
106 PTT_MSG_GET_NV_FIELD = 0x3020,
107 PTT_MSG_SET_NV_FIELD = 0x3021,
108 PTT_MSG_STORE_NV_TABLE = 0x3022,
109 PTT_MSG_SET_REG_DOMAIN = 0x3023,
110
111//Device Register Access
112 PTT_MSG_DBG_READ_REGISTER = 0x3040,
113 PTT_MSG_DBG_WRITE_REGISTER = 0x3041,
114 PTT_MSG_API_WRITE_REGISTER_OBSOLETE = 0x3042,
115 PTT_MSG_API_READ_REGISTER_OBSOLETE = 0x3043,
116 PTT_MSG_DBG_READ_MEMORY = 0x3044,
117 PTT_MSG_DBG_WRITE_MEMORY = 0x3045,
118
119//Device MAC Test Setup
120 PTT_MSG_ENABLE_CHAINS = 0x304F,
121 PTT_MSG_SET_CHANNEL = 0x3050,
122
123//Tx Waveform Gen Service
124 PTT_MSG_SET_WAVEFORM = 0x3071,
125 PTT_MSG_SET_TX_WAVEFORM_GAIN = 0x3072,
126 PTT_MSG_GET_WAVEFORM_POWER_ADC = 0x3073,
127 PTT_MSG_START_WAVEFORM = 0x3074,
128 PTT_MSG_STOP_WAVEFORM = 0x3075,
129 PTT_MSG_SET_RX_WAVEFORM_GAIN = 0x3076,
130 PTT_MSG_SET_TX_WAVEFORM_GAIN_PRIMA_V1 = 0x3077,
131
132//Tx Frame Gen Service
133 PTT_MSG_CONFIG_TX_PACKET_GEN = 0x3081,
134 PTT_MSG_START_STOP_TX_PACKET_GEN = 0x3082,
135 PTT_MSG_POLL_TX_PACKET_PROGRESS_OBSOLETE = 0x3083,
136 PTT_MSG_FRAME_GEN_STOP_IND_OBSOLETE = 0x3088,
137 PTT_MSG_QUERY_TX_STATUS = 0x3089,
138
139
140//Tx Frame Power Service
141 PTT_MSG_CLOSE_TPC_LOOP = 0x30A0,
142
143//open loop service
144 PTT_MSG_SET_PACKET_TX_GAIN_TABLE = 0x30A1,
145 PTT_MSG_SET_PACKET_TX_GAIN_INDEX = 0x30A2,
146 PTT_MSG_FORCE_PACKET_TX_GAIN = 0x30A3,
147
148//closed loop(CLPC) service
149 PTT_MSG_SET_PWR_INDEX_SOURCE = 0x30A4,
150 PTT_MSG_SET_TX_POWER = 0x30A5,
151 PTT_MSG_GET_TX_POWER_REPORT = 0x30A7,
152 PTT_MSG_SAVE_TX_PWR_CAL_TABLE_OBSOLETE = 0x30A8,
153 PTT_MSG_SET_POWER_LUT = 0x30A9,
154 PTT_MSG_GET_POWER_LUT = 0x30AA,
155 PTT_MSG_GET_PACKET_TX_GAIN_TABLE = 0x30AB,
156 PTT_MSG_SAVE_TX_PWR_FREQ_TABLE_OBSOLETE = 0x30AC,
157 PTT_MSG_CLPC_TEMP_COMPENSATION_OBSOLETE = 0x30AD,
158
159//Rx Gain Service
160 PTT_MSG_DISABLE_AGC_TABLES = 0x30D0,
161 PTT_MSG_ENABLE_AGC_TABLES = 0x30D1,
162 PTT_MSG_SET_AGC_TABLES_OBSOLETE = 0x30D2,
163 PTT_MSG_GET_RX_RSSI = 0x30D3,
164 PTT_MSG_GET_AGC_TABLE_OBSOLETE = 0x30D5,
165
166//Rx Frame Catcher Service
167 PTT_MSG_SET_RX_DISABLE_MODE = 0x30D4,
168 PTT_MSG_GET_RX_PKT_COUNTS = 0x30E0,
169 PTT_MSG_RESET_RX_PACKET_STATISTICS = 0x30E2,
170 PTT_MSG_GET_UNI_CAST_MAC_PKT_RX_RSSI = 0x30E3,
171 PTT_MSG_GET_UNI_CAST_MAC_PKT_RX_RSSI_CONFIG = 0x30E4,
172
173//Rx Symbol Service
174 PTT_MSG_GRAB_RAM = 0x30F0,
175 PTT_MSG_GRAB_RAM_ONE_CHAIN_OBSOLETE = 0x30F1,
176
177//Phy Calibration Service
178 PTT_MSG_RX_IQ_CAL = 0x3100,
179 PTT_MSG_RX_DCO_CAL = 0x3101,
180 PTT_MSG_TX_CARRIER_SUPPRESS_CAL = 0x3102,
181 PTT_MSG_TX_IQ_CAL = 0x3103,
182 PTT_MSG_EXECUTE_INITIAL_CALS = 0x3104,
183 PTT_MSG_HDET_CAL = 0x3105,
184 PTT_MSG_VCO_LINEARITY_CAL_OBSOLETE = 0x3106,
185
186//Phy Calibration Override Service
187 PTT_MSG_SET_TX_CARRIER_SUPPRESS_CORRECT = 0x3110,
188 PTT_MSG_GET_TX_CARRIER_SUPPRESS_CORRECT = 0x3111,
189 PTT_MSG_SET_TX_IQ_CORRECT = 0x3112,
190 PTT_MSG_GET_TX_IQ_CORRECT = 0x3113,
191 PTT_MSG_SET_RX_IQ_CORRECT = 0x3114,
192 PTT_MSG_GET_RX_IQ_CORRECT = 0x3115,
193 PTT_MSG_SET_RX_DCO_CORRECT = 0x3116,
194 PTT_MSG_GET_RX_DCO_CORRECT = 0x3117,
195 PTT_MSG_SET_TX_IQ_PHASE_NV_TABLE_OBSOLETE = 0x3118,
196 PTT_MSG_GET_HDET_CORRECT_OBSOLETE = 0x3119,
197
198//RF Chip Access
199 PTT_MSG_GET_TEMP_ADC = 0x3202,
200 PTT_MSG_READ_RF_REG = 0x3203,
201 PTT_MSG_WRITE_RF_REG = 0x3204,
202 PTT_MSG_GET_RF_VERSION = 0x3205,
203
204//Deep sleep support
205 PTT_MSG_DEEP_SLEEP = 0x3220,
206 PTT_MSG_READ_SIF_BAR4_REGISTER = 0x3221,
207 PTT_MSG_WRITE_SIF_BAR4_REGISTER = 0x3222,
208 PTT_MSG_ENTER_FULL_POWER = 0x3223,
209
210//Misc
211 PTT_MSG_SYSTEM_RESET = 0x32A0, //is there any meaning for this in Gen6?
212 PTT_MSG_LOG_DUMP = 0x32A1,
213 PTT_MSG_GET_BUILD_RELEASE_NUMBER = 0x32A2,
214
215
216//Messages for Socket App
217 PTT_MSG_ADAPTER_DISABLED_RSP_OBSOLETE = 0x32A3,
218 PTT_MSG_ENABLE_ADAPTER = 0x32A4,
219 PTT_MSG_DISABLE_ADAPTER = 0x32A5,
220 PTT_MSG_PAUSE_RSP_OBSOLETE = 0x32A6,
221 PTT_MSG_CONTINUE_RSP_OBSOLETE = 0x32A7,
222
223 PTT_MSG_HALPHY_INIT = 0x32A8,
224 PTT_MSG_TEST_RXIQ_CAL = 0x32A9,
225 PTT_MSG_START_TONE_GEN = 0x32AA,
226 PTT_MSG_STOP_TONE_GEN = 0x32AB,
227 PTT_MSG_RX_IM2_CAL = 0x32AC,
228 PTT_MSG_SET_RX_IM2_CORRECT = 0x31AD,
229 PTT_MSG_GET_RX_IM2_CORRECT = 0x31AE,
230 PTT_MSG_TEST_DPD_CAL = 0x32AF, // not handle
231 PTT_MSG_SET_CALCONTROL_BITMAP = 0x32B0,
232
233//[RY] specific new messages for PRIMA
234 PTT_MSG_START_WAVEFORM_RF = 0x32B1,
235 PTT_MSG_STOP_WAVEFORM_RF = 0x32B2,
236 PTT_MSG_HKDAC_TX_IQ_CAL = 0x32B3,
237 PTT_MSG_SET_HKADC_TX_IQ_CORRECT = 0x32B4,
238 PTT_MSG_GET_HKADC_TX_IQ_CORRECT = 0x32B5,
239 PTT_MSG_SET_DPD_CORRECT = 0x32B6,
240 PTT_MSG_GET_DPD_CORRECT = 0x32B7,
241 PTT_MSG_SET_WAVEFORM_RF = 0x32B8,
242 PTT_MSG_LNA_BAND_CAL = 0x32B9,
243 PTT_MSG_GET_LNA_BAND_CORRECT = 0x32BA,
244 PTT_MSG_SET_LNA_BAND_CORRECT = 0x32BB,
245 PTT_MSG_DPD_CAL = 0x32BC,
246
247// Suffix'ed Message ID to differential from existing Message name.
248// ===============================================================
249 PTT_MSG_GET_NV_TABLE_PRIMA_V1 = 0x32BD,
250 PTT_MSG_SET_NV_TABLE_PRIMA_V1 = 0x32BE,
251 PTT_MSG_RX_IQ_CAL_PRIMA_V1 = 0x32BF,
252 PTT_MSG_TX_IQ_CAL_PRIMA_V1 = 0x32C0,
253 PTT_MSG_SET_TX_IQ_CORRECT_PRIMA_V1 = 0x32C1,
254 PTT_MSG_GET_TX_IQ_CORRECT_PRIMA_V1 = 0x32C2,
255 PTT_MSG_SET_RX_IQ_CORRECT_PRIMA_V1 = 0x32C3,
256 PTT_MSG_GET_RX_IQ_CORRECT_PRIMA_V1 = 0x32C4,
257 PTT_MSG_START_WAVEFORM_PRIMA_V1 = 0x32C5,
258 PTT_MSG_FORCE_PACKET_TX_GAIN_PRIMA_V1 = 0x32C6,
259 PTT_MSG_CLPC_CAL_SETUP_PRIMA_V1 = 0x32C7,
260 PTT_MSG_CLPC_CAL_RESTORE_PRIMA_V1 = 0x32C8,
261 PTT_MSG_CLOSE_TPC_LOOP_PRIMA_V1 = 0x32C9,
262 PTT_MSG_SW_CLPC_CAL_PRIMA_V1 = 0x32CA,
263 PTT_MSG_CLPC_CAL_EXTRA_MEASUREMENT_PRIMA_V1 = 0x32CB,
264 PTT_MSG_PRIMA_GENERIC_CMD = 0x32CC,
265 PTT_MSG_DIGITAL_PIN_CONNECTIVITY_TEST_RES = 0X32CD,
266
267 PTT_MSG_EXIT = 0x32ff,
268 PTT_MAX_MSG_ID = PTT_MSG_EXIT
269} ePttMsgId;
270
271enum
272{
273 PTT_MSG_PRIMA_GENERIC_CMD_FAST_SET_CHANNEL = 0x0,
274};
275
276#define PTT_MSG_TYPES_BEGIN_30 PTT_MSG_TYPES_BEGIN
277#define PTT_MSG_TYPES_BEGIN_31 PTT_MSG_TYPES_BEGIN + 0x100
278#define PTT_MSG_TYPES_BEGIN_32 PTT_MSG_TYPES_BEGIN + 0x200
279
280// for FTM PER feature
281enum {
282Legacy_FTM = 0,
283FTM_PER_TX = 1,
284FTM_PER_RX = 2,
285};
286
287#ifndef tANI_BOOLEAN
288#define tANI_BOOLEAN tANI_U8
289#endif
290
291
292
293/******************************************************************************************************************
294 PTT MESSAGES
295******************************************************************************************************************/
296//Init
297typedef PACKED_PRE struct PACKED_POST {
298 tPttModuleVariables ptt;
299} tMsgPttMsgInit;
300
301typedef PACKED_PRE struct PACKED_POST {
302 tANI_U32 tableSize;
303 tANI_U32 chunkSize;
304 eNvTable nvTable;
305} tMsgPttGetNvTable;
306
307typedef PACKED_PRE struct PACKED_POST {
308 tANI_U32 tableSize;
309 tANI_U32 chunkSize;
310 eNvTable nvTable;
311} tMsgPttSetNvTable;
312
313typedef PACKED_PRE struct PACKED_POST {
314 eNvTable nvTable;
315} tMsgPttDelNvTable;
316
317typedef PACKED_PRE struct PACKED_POST {
318 tANI_U32 notUsed;
319} tMsgPttBlankNv;
320
321typedef PACKED_PRE struct PACKED_POST {
322 eNvField nvField;
323 uNvFields fieldData;
324} tMsgPttGetNvField;
325
326typedef PACKED_PRE struct PACKED_POST {
327 eNvField nvField;
328 uNvFields fieldData;
329} tMsgPttSetNvField;
330
331typedef PACKED_PRE struct PACKED_POST {
332 eNvTable nvTable;
333} tMsgPttStoreNvTable;
334
335typedef PACKED_PRE struct PACKED_POST {
336 eRegDomainId regDomainId;
337} tMsgPttSetRegDomain;
338
339//Device Register Access
340typedef PACKED_PRE struct PACKED_POST {
341 tANI_U32 regAddr;
342 tANI_U32 regValue;
343} tMsgPttDbgReadRegister;
344
345typedef PACKED_PRE struct PACKED_POST {
346 tANI_U32 regAddr;
347 tANI_U32 regValue;
348} tMsgPttDbgWriteRegister;
349
350#define PTT_READ_MEM_MAX 512
351typedef PACKED_PRE struct PACKED_POST {
352 tANI_U32 memAddr;
353 tANI_U32 nBytes;
354 tANI_U32 pMemBuf[PTT_READ_MEM_MAX]; //caller should allocate space
355} tMsgPttDbgReadMemory;
356
357typedef PACKED_PRE struct PACKED_POST {
358 tANI_U32 memAddr;
359 tANI_U32 nBytes;
360 tANI_U32 pMemBuf[PTT_READ_MEM_MAX];
361} tMsgPttDbgWriteMemory;
362
363//Device MAC Test Setup
364typedef PACKED_PRE struct PACKED_POST {
365 tANI_U32 chId;
366 ePhyChanBondState cbState;
367} tMsgPttSetChannel;
368
369typedef PACKED_PRE struct PACKED_POST {
370 ePhyChainSelect chainSelect;
371} tMsgPttEnableChains;
372
373typedef tIQSamples tWaveformSample;
374
375//Tx Waveform Gen Service
376typedef PACKED_PRE struct PACKED_POST {
377 tWaveformSample waveform[MAX_TEST_WAVEFORM_SAMPLES];
378 tANI_U16 numSamples;
379 tANI_BOOLEAN clk80;
380 tANI_U8 reserved[1];
381} tMsgPttSetWaveform;
382
383typedef PACKED_PRE struct PACKED_POST {
384 ePhyTxChains txChain;
385 tANI_U8 gain;
386} tMsgPttSetTxWaveformGain;
387
388typedef PACKED_PRE struct PACKED_POST {
389 ePhyTxChains txChain;
390 tANI_U32 gain;
391} tMsgPttSetTxWaveformGain_PRIMA_V1;
392
393typedef PACKED_PRE struct PACKED_POST {
394 ePhyRxChains rxChain;
395 tANI_U8 gain;
396} tMsgPttSetRxWaveformGain;
397
398typedef PACKED_PRE struct PACKED_POST {
399 sTxChainsPowerAdcReadings txPowerAdc;
400} tMsgPttGetWaveformPowerAdc;
401
402typedef PACKED_PRE struct PACKED_POST {
403 tANI_U32 notUsed;
404} tMsgPttStopWaveform;
405
406typedef PACKED_PRE struct PACKED_POST {
407 tANI_U32 notUsed;
408} tMsgPttClpcCalSetup_PRIMA_V1;
409
410typedef PACKED_PRE struct PACKED_POST {
411 tANI_U16 setup_measure;
412 tANI_U16 setup_txDmdPwrOffset;
413 tANI_U16 measure_totalExtraPt;
414 tANI_U16 measure_currentMeasurePtIdx;
415 tANI_U8 plut[256];
416} tMsgPttClpcCalExtraMeasurement_PRIMA_V1;
417
418typedef PACKED_PRE struct PACKED_POST {
419 tANI_U32 notUsed;
420} tMsgPttClpcCalRestore_PRIMA_V1;
421
422typedef PACKED_PRE struct PACKED_POST {
423 tANI_U32 startIndex;
424 tANI_U32 numSamples;
425} tMsgPttStartWaveform;
426
427typedef PACKED_PRE struct PACKED_POST {
428 tANI_U32 startIndex;
429 tANI_U32 numSamples;
430} tMsgPttStartWaveform_PRIMA_V1;
431
432// Added for PRIMA
433typedef PACKED_PRE struct PACKED_POST {
434 tWaveformSample waveform[MAX_TEST_WAVEFORM_SAMPLES];
435 tANI_U16 numSamples;
436 tANI_BOOLEAN clk80;
437 tANI_U8 reserved[1];
438} tMsgPttSetWaveformRF;
439
440typedef PACKED_PRE struct PACKED_POST {
441 tANI_U32 startIndex;
442 tANI_U32 numSamples;
443} tMsgPttStartWaveformRF;
444
445typedef PACKED_PRE struct PACKED_POST {
446 tANI_U32 notUsed;
447} tMsgPttStopWaveformRF;
448
449//Tx Frame Gen Service
450typedef PACKED_PRE struct PACKED_POST {
451 sPttFrameGenParams frameParams;
452} tMsgPttConfigTxPacketGen;
453
454typedef PACKED_PRE struct PACKED_POST {
455 tANI_BOOLEAN startStop;
456 tANI_U8 reserved[3];
457} tMsgPttStartStopTxPacketGen;
458
459typedef PACKED_PRE struct PACKED_POST {
460 sTxFrameCounters numFrames;
461 tANI_BOOLEAN status;
462 tANI_U8 reserved[3];
463} tMsgPttQueryTxStatus;
464
465//Tx Frame Power Service
466typedef PACKED_PRE struct PACKED_POST {
467 tANI_BOOLEAN tpcClose;
468 tANI_U8 reserved[3];
469} tMsgPttCloseTpcLoop;
470
471typedef PACKED_PRE struct PACKED_POST {
472 tANI_U32 tpcClose;
473} tMsgPttCloseTpcLoop_PRIMA_V1;
474
475
476 //open loop service
477typedef PACKED_PRE struct PACKED_POST {
478
479 ePhyTxChains txChain;
480 tANI_U8 minIndex;
481 tANI_U8 maxIndex;
482 tANI_U8 reserved[2];
483 tANI_U8 gainTable[TPC_MEM_GAIN_LUT_DEPTH];
484} tMsgPttSetPacketTxGainTable;
485
486typedef PACKED_PRE struct PACKED_POST {
487 ePhyTxChains txChain;
488 tANI_U8 gainTable[TPC_MEM_GAIN_LUT_DEPTH];
489} tMsgPttGetPacketTxGainTable;
490
491typedef PACKED_PRE struct PACKED_POST {
492 tANI_U8 index;
493 tANI_U8 reserved[3];
494} tMsgPttSetPacketTxGainIndex;
495
496typedef PACKED_PRE struct PACKED_POST {
497 ePhyTxChains txChain;
498 tANI_U8 gain;
499 tANI_U8 reserved[3];
500} tMsgPttForcePacketTxGain;
501
502typedef PACKED_PRE struct PACKED_POST {
503 ePhyTxChains txChain;
504 tANI_U32 gain;
505} tMsgPttForcePacketTxGain_PRIMA_V1;
506
507
508typedef PACKED_PRE struct PACKED_POST {
509 ePowerTempIndexSource indexSource;
510} tMsgPttSetPwrIndexSource;
511
512typedef PACKED_PRE struct PACKED_POST {
513 t2Decimal dbmPwr;
514 tANI_U8 reserved[2];
515} tMsgPttSetTxPower;
516
517typedef tTxPowerReport tMsgPttGetTxPowerReport;
518
519typedef PACKED_PRE struct PACKED_POST {
520 ePhyTxChains txChain;
521
522 tANI_U8 minIndex;
523 tANI_U8 maxIndex;
524 tANI_U8 reserved[2];
525
526 tANI_U8 powerLut[TPC_MEM_POWER_LUT_DEPTH];
527} tMsgPttSetPowerLut;
528
529typedef PACKED_PRE struct PACKED_POST {
530 ePhyTxChains txChain;
531
532 tANI_U8 powerLut[TPC_MEM_POWER_LUT_DEPTH];
533} tMsgPttGetPowerLut;
534
535
536//Rx Gain Service
537typedef PACKED_PRE struct PACKED_POST {
538 sRxChainsAgcDisable gains;
539} tMsgPttDisableAgcTables;
540
541
542typedef PACKED_PRE struct PACKED_POST {
543 sRxChainsAgcEnable enables;
544} tMsgPttEnableAgcTables;
545
546typedef PACKED_PRE struct PACKED_POST {
547 sRxChainsRssi rssi;
548} tMsgPttGetRxRssi;
549
550typedef PACKED_PRE struct PACKED_POST {
551 sRxChainsRssi rssi;
552}tMsgPttGetUnicastMacPktRxRssi;
553
554typedef PACKED_PRE struct PACKED_POST {
555 tANI_U32 conf;
556}tMsgPttGetUnicastMacPktRxRssiConf_PRIMA_V1;
557
558//Rx Frame Catcher Service
559typedef PACKED_PRE struct PACKED_POST {
560 sRxTypesDisabled disabled;
561} tMsgPttSetRxDisableMode;
562
563typedef PACKED_PRE struct PACKED_POST {
564 sRxFrameCounters counters;
565} tMsgPttGetRxPktCounts;
566
567
568typedef PACKED_PRE struct PACKED_POST {
569 tANI_U32 notUsed;
570} tMsgPttResetRxPacketStatistics;
571
572
573
574
575
576//ADC Sample Service
577typedef PACKED_PRE struct PACKED_POST {
578 tANI_U32 startSample; //index of first requested sample, 0 causes new capture
579 tANI_U32 numSamples; //number of samples to transfer to host
580 eGrabRamSampleType sampleType;
581 tGrabRamSample grabRam[MAX_REQUESTED_GRAB_RAM_SAMPLES];
582} tMsgPttGrabRam;
583
584
585//Phy Calibration Service
586typedef PACKED_PRE struct PACKED_POST {
587 sRxChainsIQCalValues calValues;
588 eGainSteps gain;
589} tMsgPttRxIqCal;
590
591typedef PACKED_PRE struct PACKED_POST {
592 tRxChainsDcoCorrections calValues;
593 tANI_U8 gain;
594} tMsgPttRxDcoCal;
595
596typedef PACKED_PRE struct PACKED_POST {
597 tRxChainsIm2Corrections calValues;
598 eGainSteps gain;
599 tANI_U8 im2CalOnly;
600} tMsgPttRxIm2Cal;
601
602typedef PACKED_PRE struct PACKED_POST {
603 sTxChainsLoCorrections calValues;
604 tANI_U8 reserve[2];
605 eGainSteps gain;
606} tMsgPttTxCarrierSuppressCal;
607
608typedef PACKED_PRE struct PACKED_POST {
609 sTxChainsIQCalValues calValues;
610 tANI_U8 reserve[2];
611 eGainSteps gain;
612} tMsgPttTxIqCal;
613
614typedef PACKED_PRE struct PACKED_POST {
615 sTxChainsHKIQCalValues calValues;
616 eGainSteps gain;
617} tMsgPttHKdacTxIqCal;
618
619typedef PACKED_PRE struct PACKED_POST {
620 tANI_U32 unused;
621} tMsgPttExecuteInitialCals;
622
623typedef PACKED_PRE struct PACKED_POST {
624 sRfHdetCalValues hdetCalValues;
625} tMsgPttHdetCal;
626
627typedef PACKED_PRE struct PACKED_POST {
628 tANI_U16 clpcMode;
629 tANI_U16 txCmdPwr;
630 tANI_U16 pwrMax_pwrMin;
631 tANI_U16 step;
632 tANI_U8 plut[256];
633} tMsgPttClpcSwCal_PRIMA_V1;
634
635
636//Phy Calibration Override Service
637typedef PACKED_PRE struct PACKED_POST {
638 sTxChainsLoCorrections calValues;
639 tANI_U8 reserve[2];
640 eGainSteps gain;
641} tMsgPttSetTxCarrierSuppressCorrect;
642
643typedef PACKED_PRE struct PACKED_POST {
644 sTxChainsLoCorrections calValues;
645 tANI_U8 reserve[2];
646 eGainSteps gain;
647} tMsgPttGetTxCarrierSuppressCorrect;
648
649typedef PACKED_PRE struct PACKED_POST {
650 sTxChainsIQCalValues calValues;
651 tANI_U8 reserve[2];
652 eGainSteps gain;
653} tMsgPttSetTxIqCorrect;
654
655typedef PACKED_PRE struct PACKED_POST {
656 sTxChainsIQCalValues calValues;
657 tANI_U8 reserve[2];
658 eGainSteps gain;
659} tMsgPttGetTxIqCorrect;
660
661typedef PACKED_PRE struct PACKED_POST {
662 sTxChainsHKIQCalValues calValues;
663 eGainSteps gain;
664} tMsgPttHKdacSetTxIqCorrect;
665
666typedef PACKED_PRE struct PACKED_POST {
667 sTxChainsHKIQCalValues calValues;
668 eGainSteps gain;
669} tMsgPttHKdacGetTxIqCorrect;
670
671typedef PACKED_PRE struct PACKED_POST {
672 sRxChainsIQCalValues calValues;
673 eGainSteps gain;
674} tMsgPttSetRxIqCorrect;
675
676typedef PACKED_PRE struct PACKED_POST {
677 sRxChainsIQCalValues calValues;
678 eGainSteps gain;
679} tMsgPttGetRxIqCorrect;
680
681typedef PACKED_PRE struct PACKED_POST {
682 tRxChainsDcoCorrections calValues;
683 tANI_U8 gain;
684} tMsgPttSetRxDcoCorrect;
685
686typedef PACKED_PRE struct PACKED_POST {
687 tRxChainsDcoCorrections calValues;
688 tANI_U8 gain;
689} tMsgPttGetRxDcoCorrect;
690
691typedef PACKED_PRE struct PACKED_POST {
692 tRxChainsIm2Corrections calValues;
693 tANI_U8 dummy;
694} tMsgPttSetRxIm2Correct;
695
696typedef PACKED_PRE struct PACKED_POST {
697 tRxChainsIm2Corrections calValues;
698 tANI_U8 dummy;
699} tMsgPttGetRxIm2Correct;
700
701typedef PACKED_PRE struct PACKED_POST {
702 eRfTempSensor tempSensor;
703 tTempADCVal tempAdc;
704 tANI_U8 reserved[4 - sizeof(tTempADCVal)];
705} tMsgPttGetTempAdc;
706
707typedef PACKED_PRE struct PACKED_POST {
708 tANI_U32 addr;
709 tANI_U32 mask;
710 tANI_U32 shift;
711 tANI_U32 value;
712} tMsgPttReadRfField;
713
714typedef PACKED_PRE struct PACKED_POST {
715 tANI_U32 addr;
716 tANI_U32 mask;
717 tANI_U32 shift;
718 tANI_U32 value;
719} tMsgPttWriteRfField;
720
721//SIF bar4 Register Access
722typedef PACKED_PRE struct PACKED_POST {
723 tANI_U32 sifRegAddr;
724 tANI_U32 sifRegValue;
725} tMsgPttReadSifBar4Register;
726
727typedef PACKED_PRE struct PACKED_POST {
728 tANI_U32 sifRegAddr;
729 tANI_U32 sifRegValue;
730} tMsgPttWriteSifBar4Register;
731
732typedef PACKED_PRE struct PACKED_POST {
733 tANI_U32 notUsed;
734} tMsgPttDeepSleep;
735
736typedef PACKED_PRE struct PACKED_POST {
737 tANI_U32 notUsed;
738} tMsgPttEnterFullPower;
739
740//Misc.
741typedef PACKED_PRE struct PACKED_POST {
742 tANI_U32 notUsed;
743} tMsgPttSystemReset;
744
745typedef PACKED_PRE struct PACKED_POST {
746 tANI_U32 cmd;
747 tANI_U32 arg1;
748 tANI_U32 arg2;
749 tANI_U32 arg3;
750 tANI_U32 arg4;
751} tMsgPttLogDump;
752
753typedef PACKED_PRE struct PACKED_POST {
754 sBuildReleaseParams relParams;
755} tMsgPttGetBuildReleaseNumber;
756
757typedef PACKED_PRE struct PACKED_POST {
758 tANI_U32 revId;
759} tMsgPttGetRFVersion;
760
761typedef PACKED_PRE struct PACKED_POST {
762 tANI_U32 option; //dummy variable
763} tMsgPttCalControlBitmap;
764
765//#ifdef VERIFY_HALPHY_SIMV_MODEL
766
767
768typedef PACKED_PRE struct PACKED_POST {
769 tANI_U32 option; //dummy variable
770} tMsgPttHalPhyInit;
771
772typedef PACKED_PRE struct PACKED_POST {
773 tANI_U32 option; //dummy variable
774} tMsgPttRxIQTest;
775
776typedef PACKED_PRE struct PACKED_POST {
777 sTxChainsDPDCalValues calValues;
778 eGainSteps gain;
779} tMsgPttDpdCal;
780
781typedef PACKED_PRE struct PACKED_POST {
782 tANI_U8 lutIdx;
783 tANI_U8 band;
784} tMsgPttStartToneGen;
785
786typedef PACKED_PRE struct PACKED_POST {
787 tANI_U32 option; //dummy variable
788} tMsgPttStopToneGen;
789
790typedef PACKED_PRE struct PACKED_POST {
791 sTxChainsLnaBandCalValues calValues;
792 eGainSteps gain;
793} tMsgPttLnaBandCal;
794
795typedef PACKED_PRE struct PACKED_POST {
796 sTxChainsLnaBandCalValues calValues;
797 eGainSteps gain;
798} tMsgPttGetLnaBandCalCorrect;
799
800typedef PACKED_PRE struct PACKED_POST {
801 sTxChainsLnaBandCalValues calValues;
802 eGainSteps gain;
803} tMsgPttSetLnaBandCalCorrect;
804
805typedef PACKED_PRE struct PACKED_POST {
806 sTxChainsDPDCalValues calValues;
807 eGainSteps gain;
808}tMsgPttSetDPDCorrect;
809
810typedef PACKED_PRE struct PACKED_POST {
811 sTxChainsDPDCalValues calValues;
812 eGainSteps gain;
813}tMsgPttGetDPDCorrect;
814
815typedef PACKED_PRE struct PACKED_POST {
816 tQWPTT_U32 cmdIdx;
817 tQWPTT_U32 param1;
818 tQWPTT_U32 param2;
819 tQWPTT_U32 param3;
820 tQWPTT_U32 param4;
821} tMsgPttPrimaGenericCmd;
822
823typedef PACKED_PRE struct PACKED_POST {
824 tANI_U16 testID;
825 tANI_U16 result;
826} tMsgPttPinConnTestRes;
827//#endif
828
829/******************************************************************************************************************
830 END OF PTT MESSAGES
831******************************************************************************************************************/
832
833typedef PACKED_PRE union PACKED_POST pttMsgUnion{
834//typedef union pttMsgUnion {
835 tMsgPttMsgInit MsgInit;
836 tMsgPttGetNvTable GetNvTable;
837 tMsgPttSetNvTable SetNvTable;
838 tMsgPttDelNvTable DelNvTable;
839 tMsgPttBlankNv BlankNv;
840 tMsgPttStoreNvTable StoreNvTable;
841 tMsgPttSetRegDomain SetRegDomain;
842 tMsgPttGetNvField GetNvField;
843 tMsgPttSetNvField SetNvField;
844 tMsgPttDbgReadRegister DbgReadRegister;
845 tMsgPttDbgWriteRegister DbgWriteRegister;
846 tMsgPttDbgReadMemory DbgReadMemory;
847 tMsgPttDbgWriteMemory DbgWriteMemory;
848 tMsgPttEnableChains EnableChains;
849 tMsgPttSetChannel SetChannel;
850 tMsgPttSetWaveform SetWaveform;
851 tMsgPttSetTxWaveformGain SetTxWaveformGain;
852 tMsgPttSetTxWaveformGain_PRIMA_V1 SetTxWaveformGain_PRIMA_V1;
853 tMsgPttGetWaveformPowerAdc GetWaveformPowerAdc;
854 tMsgPttStartWaveform StartWaveform;
855 tMsgPttStartWaveform_PRIMA_V1 StartWaveform_PRIMA_V1;
856 tMsgPttStopWaveform StopWaveform;
857 tMsgPttSetRxWaveformGain SetRxWaveformGain;
858 tMsgPttConfigTxPacketGen ConfigTxPacketGen;
859 tMsgPttStartStopTxPacketGen StartStopTxPacketGen;
860 tMsgPttQueryTxStatus QueryTxStatus;
861 tMsgPttCloseTpcLoop CloseTpcLoop;
862 tMsgPttCloseTpcLoop_PRIMA_V1 CloseTpcLoop_PRIMA_V1;
863 tMsgPttSetPacketTxGainTable SetPacketTxGainTable;
864 tMsgPttGetPacketTxGainTable GetPacketTxGainTable;
865 tMsgPttSetPacketTxGainIndex SetPacketTxGainIndex;
866 tMsgPttForcePacketTxGain ForcePacketTxGain;
867 tMsgPttForcePacketTxGain_PRIMA_V1 ForcePacketTxGain_PRIMA_V1;
868 tMsgPttSetPwrIndexSource SetPwrIndexSource;
869 tMsgPttSetTxPower SetTxPower;
870 tMsgPttGetTxPowerReport GetTxPowerReport;
871 tMsgPttSetPowerLut SetPowerLut;
872 tMsgPttGetPowerLut GetPowerLut;
873 tMsgPttDisableAgcTables DisableAgcTables;
874 tMsgPttEnableAgcTables EnableAgcTables;
875 tMsgPttGetRxRssi GetRxRssi;
876 tMsgPttGetUnicastMacPktRxRssi GetUnicastMacPktRxRssi;
877 tMsgPttGetUnicastMacPktRxRssiConf_PRIMA_V1 GetUnicastMacPktRxRssiConf_PRIMA_V1;
878 tMsgPttSetRxDisableMode SetRxDisableMode;
879 tMsgPttGetRxPktCounts GetRxPktCounts;
880 tMsgPttResetRxPacketStatistics ResetRxPacketStatistics;
881 tMsgPttGrabRam GrabRam;
882 tMsgPttRxIqCal RxIqCal;
883 tMsgPttRxDcoCal RxDcoCal;
884 tMsgPttRxIm2Cal RxIm2Cal;
885
886 tMsgPttExecuteInitialCals ExecuteInitialCals;
887 tMsgPttTxCarrierSuppressCal TxCarrierSuppressCal;
888 tMsgPttTxIqCal TxIqCal;
889 tMsgPttHKdacTxIqCal HKdacTxIqCal;
890 tMsgPttClpcCalSetup_PRIMA_V1 ClpcCalSetup_PRIMA_V1;
891 tMsgPttClpcCalRestore_PRIMA_V1 ClpcCalRestore_PRIMA_V1;
892 tMsgPttHdetCal HdetCal;
893 tMsgPttClpcSwCal_PRIMA_V1 ClpcSwCal_PRIMA_V1;
894 tMsgPttClpcCalExtraMeasurement_PRIMA_V1 ClpcCalExtraMeasurement_PRIMA_V1;
895 tMsgPttSetTxCarrierSuppressCorrect SetTxCarrierSuppressCorrect;
896 tMsgPttGetTxCarrierSuppressCorrect GetTxCarrierSuppressCorrect;
897 tMsgPttSetTxIqCorrect SetTxIqCorrect;
898 tMsgPttGetTxIqCorrect GetTxIqCorrect;
899 tMsgPttSetRxIqCorrect SetRxIqCorrect;
900 tMsgPttGetRxIqCorrect GetRxIqCorrect;
901 tMsgPttSetRxDcoCorrect SetRxDcoCorrect;
902 tMsgPttGetRxDcoCorrect GetRxDcoCorrect;
903 tMsgPttSetRxIm2Correct SetRxIm2Correct;
904 tMsgPttGetRxIm2Correct GetRxIm2Correct;
905 tMsgPttHKdacSetTxIqCorrect HKdacSetTxIqCorrect;
906 tMsgPttHKdacGetTxIqCorrect HKdacGetTxIqCorrect;
907
908 tMsgPttGetTempAdc GetTempAdc;
909 tMsgPttReadRfField ReadRfField;
910 tMsgPttWriteRfField WriteRfField;
911 tMsgPttCalControlBitmap SetCalControlBitmap;
912
913//#ifdef VERIFY_HALPHY_SIMV_MODEL
914
915 tMsgPttHalPhyInit InitOption;
916 tMsgPttRxIQTest RxIQTest;
917 tMsgPttDpdCal DpdCal;
918 tMsgPttStartToneGen StartToneGen;
919 tMsgPttStopToneGen StopToneGen;
920//#endif
921 tMsgPttDeepSleep DeepSleep;
922 tMsgPttReadSifBar4Register ReadSifBar4Register;
923 tMsgPttWriteSifBar4Register WriteSifBar4Register;
924 tMsgPttEnterFullPower EnterFullPower;
925 tMsgPttSystemReset SystemReset;
926 tMsgPttLogDump LogDump;
927 tMsgPttGetBuildReleaseNumber GetBuildReleaseNumber;
928 tMsgPttGetRFVersion GetRFVersion;
929
930//[RY] added for PRIMA
931 tMsgPttSetWaveformRF SetWaveformRF;
932 tMsgPttStopWaveformRF StopWaveformRF;
933 tMsgPttStartWaveformRF StartWaveformRF;
934 tMsgPttLnaBandCal LnaBandCal;
935 tMsgPttGetLnaBandCalCorrect GetLnaBandCalCorrect;
936 tMsgPttSetLnaBandCalCorrect SetLnaBandCalCorrect;
937 tMsgPttGetDPDCorrect GetDPDCorrect;
938 tMsgPttSetDPDCorrect SetDPDCorrect;
939 tMsgPttDpdCal DPDCal;
940 tMsgPttPrimaGenericCmd PrimaGenericCmd;
941 tMsgPttPinConnTestRes PinConnTestRes;
942} uPttMsgs;
943
944typedef PACKED_PRE struct PACKED_POST {
945 tANI_U16 msgId;
946 tANI_U16 msgBodyLength; //actually, the length of all the fields in this structure
947 eQWPttStatus msgResponse;
948 uPttMsgs msgBody;
949} tPttMsgbuffer, *tpPttMsgbuffer;
950
951
952typedef PACKED_PRE struct PACKED_POST {
953 /*
954 * success or failure
955 */
956 tANI_U32 status;
957 tPttMsgbuffer pttMsgBuffer;
958} tProcessPttRspParams, *tpProcessPttRspParams;
959
960/* End of Ptt Parameters */
961
962#endif