prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/riva/inc/pttMsgApi.h b/riva/inc/pttMsgApi.h
new file mode 100644
index 0000000..8809c9d
--- /dev/null
+++ b/riva/inc/pttMsgApi.h
@@ -0,0 +1,942 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ *
+   Airgo Networks, Inc proprietary.
+   All Rights Reserved, Copyright 2005
+   This program is the confidential and proprietary product of Airgo Networks Inc.
+   Any Unauthorized use, reproduction or transfer of this program is strictly prohibited.
+
+
+   pttMsgApi.h: Contains messages to PTT Module for physical layer testing
+   Author:  Mark Nelson
+   Date:    6/21/05
+
+   History -
+   Date        Modified by              Modification Information
+  --------------------------------------------------------------------------
+
+ */
+
+#ifndef PTT_MSG_API_H
+#define PTT_MSG_API_H
+
+#include "halCompiler.h"
+#include "wlan_nv.h"
+#include "wlan_phy.h"
+#include "pttFrameGen.h"
+#include "pttModule.h"
+
+#include "halLegacyPalTypes.h"
+
+typedef tANI_U8 tQWPTT_U8;
+typedef tANI_S8 tQWPTT_S8;
+
+typedef tANI_U16 tQWPTT_U16;
+typedef tANI_S16 tQWPTT_S16;
+
+typedef tANI_U32 tQWPTT_U32;
+typedef tANI_S32 tQWPTT_S32;
+
+typedef tANI_U8 tQWPTT_BYTE;
+typedef tANI_S9 tQWPTT_S9;
+
+typedef tANI_U8 tQWPTT_BOOLEAN;
+
+#define PTT_MEM_ACCESS_MAX_SIZE 256
+
+//Messages to/from socket or pttApi.c
+typedef enum {
+   PTT_MSG_TYPES_BEGIN = 0x3000,
+
+   // Init
+   PTT_MSG_INIT = PTT_MSG_TYPES_BEGIN, //extra: internal only
+
+//NV Service
+   PTT_MSG_GET_TPC_CAL_STATE_OBSOLETE = 0x3011,
+   PTT_MSG_RESET_TPC_CAL_STATE_OBSOLETE = 0x3012,
+
+   PTT_MSG_SET_NV_CKSUM_OBSOLETE = 0x3013,
+   PTT_MSG_GET_NV_CKSUM_OBSOLETE = 0x3014,
+   PTT_MSG_GET_NV_TABLE = 0x3016,
+   PTT_MSG_SET_NV_TABLE = 0x3017,
+   PTT_MSG_SET_NV_IMAGE_OBSOLETE = 0x3018,
+   PTT_MSG_BLANK_NV = 0x3019,
+   PTT_MSG_GET_NV_IMAGE_OBSOLETE = 0x301E,
+   PTT_MSG_DEL_NV_TABLE = 0x301F,
+   PTT_MSG_GET_NV_FIELD = 0x3020,
+   PTT_MSG_SET_NV_FIELD = 0x3021,
+   PTT_MSG_STORE_NV_TABLE = 0x3022,
+   PTT_MSG_SET_REG_DOMAIN = 0x3023,
+
+//Device Register Access
+   PTT_MSG_DBG_READ_REGISTER = 0x3040,
+   PTT_MSG_DBG_WRITE_REGISTER = 0x3041,
+   PTT_MSG_API_WRITE_REGISTER_OBSOLETE = 0x3042,
+   PTT_MSG_API_READ_REGISTER_OBSOLETE = 0x3043,
+   PTT_MSG_DBG_READ_MEMORY = 0x3044,
+   PTT_MSG_DBG_WRITE_MEMORY = 0x3045,
+
+//Device MAC Test Setup
+   PTT_MSG_ENABLE_CHAINS = 0x304F,
+   PTT_MSG_SET_CHANNEL = 0x3050,
+
+//Tx Waveform Gen Service
+   PTT_MSG_SET_WAVEFORM = 0x3071,
+   PTT_MSG_SET_TX_WAVEFORM_GAIN = 0x3072,
+   PTT_MSG_GET_WAVEFORM_POWER_ADC = 0x3073,
+   PTT_MSG_START_WAVEFORM = 0x3074,
+   PTT_MSG_STOP_WAVEFORM = 0x3075,
+   PTT_MSG_SET_RX_WAVEFORM_GAIN = 0x3076,
+   PTT_MSG_SET_TX_WAVEFORM_GAIN_PRIMA_V1 = 0x3077,
+
+//Tx Frame Gen Service
+   PTT_MSG_CONFIG_TX_PACKET_GEN = 0x3081,
+   PTT_MSG_START_STOP_TX_PACKET_GEN = 0x3082,
+   PTT_MSG_POLL_TX_PACKET_PROGRESS_OBSOLETE = 0x3083,
+   PTT_MSG_FRAME_GEN_STOP_IND_OBSOLETE = 0x3088,
+   PTT_MSG_QUERY_TX_STATUS = 0x3089,
+
+
+//Tx Frame Power Service
+   PTT_MSG_CLOSE_TPC_LOOP = 0x30A0,
+
+//open loop service
+   PTT_MSG_SET_PACKET_TX_GAIN_TABLE = 0x30A1,
+   PTT_MSG_SET_PACKET_TX_GAIN_INDEX = 0x30A2,
+   PTT_MSG_FORCE_PACKET_TX_GAIN = 0x30A3,
+
+//closed loop(CLPC) service
+   PTT_MSG_SET_PWR_INDEX_SOURCE = 0x30A4,
+   PTT_MSG_SET_TX_POWER = 0x30A5,
+   PTT_MSG_GET_TX_POWER_REPORT = 0x30A7,
+   PTT_MSG_SAVE_TX_PWR_CAL_TABLE_OBSOLETE = 0x30A8,
+   PTT_MSG_SET_POWER_LUT = 0x30A9,
+   PTT_MSG_GET_POWER_LUT = 0x30AA,
+   PTT_MSG_GET_PACKET_TX_GAIN_TABLE = 0x30AB,
+   PTT_MSG_SAVE_TX_PWR_FREQ_TABLE_OBSOLETE = 0x30AC,
+   PTT_MSG_CLPC_TEMP_COMPENSATION_OBSOLETE = 0x30AD,
+
+//Rx Gain Service
+   PTT_MSG_DISABLE_AGC_TABLES = 0x30D0,
+   PTT_MSG_ENABLE_AGC_TABLES = 0x30D1,
+   PTT_MSG_SET_AGC_TABLES_OBSOLETE = 0x30D2,
+   PTT_MSG_GET_RX_RSSI = 0x30D3,
+   PTT_MSG_GET_AGC_TABLE_OBSOLETE = 0x30D5,
+
+//Rx Frame Catcher Service
+   PTT_MSG_SET_RX_DISABLE_MODE = 0x30D4,
+   PTT_MSG_GET_RX_PKT_COUNTS = 0x30E0,
+   PTT_MSG_RESET_RX_PACKET_STATISTICS = 0x30E2,
+   PTT_MSG_GET_UNI_CAST_MAC_PKT_RX_RSSI = 0x30E3,
+   PTT_MSG_GET_UNI_CAST_MAC_PKT_RX_RSSI_CONFIG = 0x30E4,
+
+//Rx Symbol Service
+   PTT_MSG_GRAB_RAM = 0x30F0,
+   PTT_MSG_GRAB_RAM_ONE_CHAIN_OBSOLETE = 0x30F1,
+
+//Phy Calibration Service
+   PTT_MSG_RX_IQ_CAL = 0x3100,
+   PTT_MSG_RX_DCO_CAL = 0x3101,
+   PTT_MSG_TX_CARRIER_SUPPRESS_CAL = 0x3102,
+   PTT_MSG_TX_IQ_CAL = 0x3103,
+   PTT_MSG_EXECUTE_INITIAL_CALS = 0x3104,
+   PTT_MSG_HDET_CAL = 0x3105,
+   PTT_MSG_VCO_LINEARITY_CAL_OBSOLETE = 0x3106,
+
+//Phy Calibration Override Service
+   PTT_MSG_SET_TX_CARRIER_SUPPRESS_CORRECT = 0x3110,
+   PTT_MSG_GET_TX_CARRIER_SUPPRESS_CORRECT = 0x3111,
+   PTT_MSG_SET_TX_IQ_CORRECT = 0x3112,
+   PTT_MSG_GET_TX_IQ_CORRECT = 0x3113,
+   PTT_MSG_SET_RX_IQ_CORRECT = 0x3114,
+   PTT_MSG_GET_RX_IQ_CORRECT = 0x3115,
+   PTT_MSG_SET_RX_DCO_CORRECT = 0x3116,
+   PTT_MSG_GET_RX_DCO_CORRECT = 0x3117,
+   PTT_MSG_SET_TX_IQ_PHASE_NV_TABLE_OBSOLETE = 0x3118,
+   PTT_MSG_GET_HDET_CORRECT_OBSOLETE = 0x3119,
+
+//RF Chip Access
+   PTT_MSG_GET_TEMP_ADC = 0x3202,
+   PTT_MSG_READ_RF_REG = 0x3203,
+   PTT_MSG_WRITE_RF_REG = 0x3204,
+   PTT_MSG_GET_RF_VERSION = 0x3205,
+
+//Deep sleep support
+   PTT_MSG_DEEP_SLEEP = 0x3220,
+   PTT_MSG_READ_SIF_BAR4_REGISTER = 0x3221,
+   PTT_MSG_WRITE_SIF_BAR4_REGISTER = 0x3222,
+   PTT_MSG_ENTER_FULL_POWER = 0x3223,
+
+//Misc
+   PTT_MSG_SYSTEM_RESET = 0x32A0,   //is there any meaning for this in Gen6?
+   PTT_MSG_LOG_DUMP = 0x32A1,
+   PTT_MSG_GET_BUILD_RELEASE_NUMBER = 0x32A2,
+
+
+//Messages for Socket App
+   PTT_MSG_ADAPTER_DISABLED_RSP_OBSOLETE = 0x32A3,
+   PTT_MSG_ENABLE_ADAPTER = 0x32A4,
+   PTT_MSG_DISABLE_ADAPTER = 0x32A5,
+   PTT_MSG_PAUSE_RSP_OBSOLETE = 0x32A6,
+   PTT_MSG_CONTINUE_RSP_OBSOLETE = 0x32A7,
+
+   PTT_MSG_HALPHY_INIT = 0x32A8,
+   PTT_MSG_TEST_RXIQ_CAL = 0x32A9,
+   PTT_MSG_START_TONE_GEN = 0x32AA,
+   PTT_MSG_STOP_TONE_GEN = 0x32AB,
+   PTT_MSG_RX_IM2_CAL = 0x32AC,
+   PTT_MSG_SET_RX_IM2_CORRECT = 0x31AD,
+   PTT_MSG_GET_RX_IM2_CORRECT = 0x31AE,
+   PTT_MSG_TEST_DPD_CAL = 0x32AF,  // not handle
+   PTT_MSG_SET_CALCONTROL_BITMAP = 0x32B0,
+
+//[RY] specific new messages for PRIMA
+   PTT_MSG_START_WAVEFORM_RF = 0x32B1,
+   PTT_MSG_STOP_WAVEFORM_RF = 0x32B2,
+   PTT_MSG_HKDAC_TX_IQ_CAL = 0x32B3,
+   PTT_MSG_SET_HKADC_TX_IQ_CORRECT = 0x32B4,
+   PTT_MSG_GET_HKADC_TX_IQ_CORRECT = 0x32B5,
+   PTT_MSG_SET_DPD_CORRECT = 0x32B6,
+   PTT_MSG_GET_DPD_CORRECT = 0x32B7,
+   PTT_MSG_SET_WAVEFORM_RF = 0x32B8,
+   PTT_MSG_LNA_BAND_CAL = 0x32B9,
+   PTT_MSG_GET_LNA_BAND_CORRECT = 0x32BA,
+   PTT_MSG_SET_LNA_BAND_CORRECT = 0x32BB,
+   PTT_MSG_DPD_CAL = 0x32BC,
+
+// Suffix'ed Message ID to differential from existing Message name.
+// ===============================================================
+   PTT_MSG_GET_NV_TABLE_PRIMA_V1 = 0x32BD,
+   PTT_MSG_SET_NV_TABLE_PRIMA_V1 = 0x32BE,
+   PTT_MSG_RX_IQ_CAL_PRIMA_V1 = 0x32BF,
+   PTT_MSG_TX_IQ_CAL_PRIMA_V1 = 0x32C0,
+   PTT_MSG_SET_TX_IQ_CORRECT_PRIMA_V1 = 0x32C1,
+   PTT_MSG_GET_TX_IQ_CORRECT_PRIMA_V1 = 0x32C2,
+   PTT_MSG_SET_RX_IQ_CORRECT_PRIMA_V1 = 0x32C3,
+   PTT_MSG_GET_RX_IQ_CORRECT_PRIMA_V1 = 0x32C4,
+   PTT_MSG_START_WAVEFORM_PRIMA_V1 = 0x32C5,
+   PTT_MSG_FORCE_PACKET_TX_GAIN_PRIMA_V1 = 0x32C6,
+   PTT_MSG_CLPC_CAL_SETUP_PRIMA_V1 = 0x32C7,
+   PTT_MSG_CLPC_CAL_RESTORE_PRIMA_V1 = 0x32C8,
+   PTT_MSG_CLOSE_TPC_LOOP_PRIMA_V1 = 0x32C9,
+   PTT_MSG_SW_CLPC_CAL_PRIMA_V1 = 0x32CA,
+   PTT_MSG_CLPC_CAL_EXTRA_MEASUREMENT_PRIMA_V1 = 0x32CB,
+   PTT_MSG_PRIMA_GENERIC_CMD = 0x32CC,
+   PTT_MSG_DIGITAL_PIN_CONNECTIVITY_TEST_RES = 0X32CD,
+
+   PTT_MSG_EXIT = 0x32ff,
+   PTT_MAX_MSG_ID = PTT_MSG_EXIT
+} ePttMsgId;
+
+enum 
+{
+   PTT_MSG_PRIMA_GENERIC_CMD_FAST_SET_CHANNEL = 0x0,
+};
+
+#define PTT_MSG_TYPES_BEGIN_30          PTT_MSG_TYPES_BEGIN
+#define PTT_MSG_TYPES_BEGIN_31          PTT_MSG_TYPES_BEGIN + 0x100
+#define PTT_MSG_TYPES_BEGIN_32          PTT_MSG_TYPES_BEGIN + 0x200
+
+// for FTM PER feature
+enum {
+Legacy_FTM = 0,
+FTM_PER_TX = 1,
+FTM_PER_RX = 2,
+};
+
+#ifndef tANI_BOOLEAN
+#define tANI_BOOLEAN tANI_U8
+#endif
+
+
+
+/******************************************************************************************************************
+    PTT MESSAGES
+******************************************************************************************************************/
+//Init
+typedef PACKED_PRE struct PACKED_POST {
+   tPttModuleVariables ptt;
+} tMsgPttMsgInit;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 tableSize;
+   tANI_U32 chunkSize;
+   eNvTable nvTable;
+} tMsgPttGetNvTable;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 tableSize;
+   tANI_U32 chunkSize;
+   eNvTable nvTable;
+} tMsgPttSetNvTable;
+
+typedef PACKED_PRE struct PACKED_POST {
+   eNvTable nvTable;
+} tMsgPttDelNvTable;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttBlankNv;
+
+typedef PACKED_PRE struct PACKED_POST {
+   eNvField nvField;
+   uNvFields fieldData;
+} tMsgPttGetNvField;
+
+typedef PACKED_PRE struct PACKED_POST {
+   eNvField nvField;
+   uNvFields fieldData;
+} tMsgPttSetNvField;
+
+typedef PACKED_PRE struct PACKED_POST {
+   eNvTable nvTable;
+} tMsgPttStoreNvTable;
+
+typedef PACKED_PRE struct PACKED_POST {
+   eRegDomainId regDomainId;
+} tMsgPttSetRegDomain;
+
+//Device Register Access
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 regAddr;
+   tANI_U32 regValue;
+} tMsgPttDbgReadRegister;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 regAddr;
+   tANI_U32 regValue;
+} tMsgPttDbgWriteRegister;
+
+#define PTT_READ_MEM_MAX 512
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 memAddr;
+   tANI_U32 nBytes;
+   tANI_U32 pMemBuf[PTT_READ_MEM_MAX]; //caller should allocate space
+} tMsgPttDbgReadMemory;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 memAddr;
+   tANI_U32 nBytes;
+   tANI_U32 pMemBuf[PTT_READ_MEM_MAX];
+} tMsgPttDbgWriteMemory;
+
+//Device MAC Test Setup
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 chId;
+   ePhyChanBondState cbState;
+} tMsgPttSetChannel;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyChainSelect chainSelect;
+} tMsgPttEnableChains;
+
+typedef tIQSamples tWaveformSample;
+
+//Tx Waveform Gen Service
+typedef PACKED_PRE struct PACKED_POST {
+   tWaveformSample waveform[MAX_TEST_WAVEFORM_SAMPLES];
+   tANI_U16 numSamples;
+   tANI_BOOLEAN clk80;
+   tANI_U8 reserved[1];
+} tMsgPttSetWaveform;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+   tANI_U8 gain;
+} tMsgPttSetTxWaveformGain;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+   tANI_U32 gain;
+} tMsgPttSetTxWaveformGain_PRIMA_V1;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyRxChains rxChain;
+   tANI_U8 gain;
+} tMsgPttSetRxWaveformGain;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsPowerAdcReadings txPowerAdc;
+} tMsgPttGetWaveformPowerAdc;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttStopWaveform;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttClpcCalSetup_PRIMA_V1;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U16 setup_measure;
+   tANI_U16 setup_txDmdPwrOffset;
+   tANI_U16 measure_totalExtraPt;
+   tANI_U16 measure_currentMeasurePtIdx;
+   tANI_U8 plut[256];
+} tMsgPttClpcCalExtraMeasurement_PRIMA_V1;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttClpcCalRestore_PRIMA_V1;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 startIndex;
+   tANI_U32 numSamples;
+} tMsgPttStartWaveform;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 startIndex;
+   tANI_U32 numSamples;
+} tMsgPttStartWaveform_PRIMA_V1;
+
+// Added for PRIMA
+typedef PACKED_PRE struct PACKED_POST {
+   tWaveformSample waveform[MAX_TEST_WAVEFORM_SAMPLES];
+   tANI_U16 numSamples;
+   tANI_BOOLEAN clk80;
+   tANI_U8 reserved[1];
+} tMsgPttSetWaveformRF;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 startIndex;
+   tANI_U32 numSamples;
+} tMsgPttStartWaveformRF;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttStopWaveformRF;
+
+//Tx Frame Gen Service
+typedef PACKED_PRE struct PACKED_POST {
+   sPttFrameGenParams frameParams;
+} tMsgPttConfigTxPacketGen;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_BOOLEAN startStop;
+   tANI_U8 reserved[3];
+} tMsgPttStartStopTxPacketGen;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxFrameCounters numFrames;
+   tANI_BOOLEAN status;
+   tANI_U8 reserved[3];
+} tMsgPttQueryTxStatus;
+
+//Tx Frame Power Service
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_BOOLEAN tpcClose;
+   tANI_U8 reserved[3];
+} tMsgPttCloseTpcLoop;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 tpcClose;
+} tMsgPttCloseTpcLoop_PRIMA_V1;
+
+
+    //open loop service
+typedef PACKED_PRE struct PACKED_POST {
+
+   ePhyTxChains txChain;
+   tANI_U8 minIndex;
+   tANI_U8 maxIndex;
+   tANI_U8 reserved[2];
+   tANI_U8 gainTable[TPC_MEM_GAIN_LUT_DEPTH];
+} tMsgPttSetPacketTxGainTable;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+   tANI_U8 gainTable[TPC_MEM_GAIN_LUT_DEPTH];
+} tMsgPttGetPacketTxGainTable;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U8 index;
+   tANI_U8 reserved[3];
+} tMsgPttSetPacketTxGainIndex;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+   tANI_U8 gain;
+   tANI_U8 reserved[3];
+} tMsgPttForcePacketTxGain;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+   tANI_U32 gain;
+} tMsgPttForcePacketTxGain_PRIMA_V1;
+
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePowerTempIndexSource indexSource;
+} tMsgPttSetPwrIndexSource;
+
+typedef PACKED_PRE struct PACKED_POST {
+   t2Decimal dbmPwr;
+   tANI_U8 reserved[2];
+} tMsgPttSetTxPower;
+
+typedef tTxPowerReport tMsgPttGetTxPowerReport;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+
+   tANI_U8 minIndex;
+   tANI_U8 maxIndex;
+   tANI_U8 reserved[2];
+
+   tANI_U8 powerLut[TPC_MEM_POWER_LUT_DEPTH];
+} tMsgPttSetPowerLut;
+
+typedef PACKED_PRE struct PACKED_POST {
+   ePhyTxChains txChain;
+
+   tANI_U8 powerLut[TPC_MEM_POWER_LUT_DEPTH];
+} tMsgPttGetPowerLut;
+
+
+//Rx Gain Service
+typedef PACKED_PRE struct PACKED_POST {
+   sRxChainsAgcDisable gains;
+} tMsgPttDisableAgcTables;
+
+
+typedef PACKED_PRE struct PACKED_POST {
+   sRxChainsAgcEnable enables;
+} tMsgPttEnableAgcTables;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sRxChainsRssi rssi;
+} tMsgPttGetRxRssi;
+
+typedef PACKED_PRE struct PACKED_POST {
+    sRxChainsRssi rssi;
+}tMsgPttGetUnicastMacPktRxRssi;
+
+typedef PACKED_PRE struct PACKED_POST {
+    tANI_U32 conf;
+}tMsgPttGetUnicastMacPktRxRssiConf_PRIMA_V1;
+
+//Rx Frame Catcher Service
+typedef PACKED_PRE struct PACKED_POST {
+   sRxTypesDisabled disabled;
+} tMsgPttSetRxDisableMode;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sRxFrameCounters counters;
+} tMsgPttGetRxPktCounts;
+
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttResetRxPacketStatistics;
+
+
+
+
+
+//ADC Sample Service
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 startSample;        //index of first requested sample, 0 causes new capture
+   tANI_U32 numSamples;         //number of samples to transfer to host
+   eGrabRamSampleType sampleType;
+   tGrabRamSample grabRam[MAX_REQUESTED_GRAB_RAM_SAMPLES];
+} tMsgPttGrabRam;
+
+
+//Phy Calibration Service
+typedef PACKED_PRE struct PACKED_POST {
+   sRxChainsIQCalValues calValues;
+   eGainSteps gain;
+} tMsgPttRxIqCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tRxChainsDcoCorrections calValues;
+   tANI_U8 gain;
+} tMsgPttRxDcoCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tRxChainsIm2Corrections calValues;
+   eGainSteps gain;
+   tANI_U8 im2CalOnly;
+} tMsgPttRxIm2Cal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsLoCorrections calValues;
+   tANI_U8 reserve[2];
+   eGainSteps gain;
+} tMsgPttTxCarrierSuppressCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsIQCalValues calValues;
+   tANI_U8 reserve[2];
+   eGainSteps gain;
+} tMsgPttTxIqCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsHKIQCalValues calValues;
+   eGainSteps gain;
+} tMsgPttHKdacTxIqCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 unused;
+} tMsgPttExecuteInitialCals;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sRfHdetCalValues hdetCalValues;
+} tMsgPttHdetCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U16 clpcMode;
+   tANI_U16 txCmdPwr;
+   tANI_U16 pwrMax_pwrMin;
+   tANI_U16 step;
+   tANI_U8 plut[256];
+} tMsgPttClpcSwCal_PRIMA_V1;
+
+
+//Phy Calibration Override Service
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsLoCorrections calValues;
+   tANI_U8 reserve[2];
+   eGainSteps gain;
+} tMsgPttSetTxCarrierSuppressCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsLoCorrections calValues;
+   tANI_U8 reserve[2];
+   eGainSteps gain;
+} tMsgPttGetTxCarrierSuppressCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsIQCalValues calValues;
+   tANI_U8 reserve[2];
+   eGainSteps gain;
+} tMsgPttSetTxIqCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsIQCalValues calValues;
+   tANI_U8 reserve[2];
+   eGainSteps gain;
+} tMsgPttGetTxIqCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsHKIQCalValues calValues;
+   eGainSteps gain;
+} tMsgPttHKdacSetTxIqCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsHKIQCalValues calValues;
+   eGainSteps gain;
+} tMsgPttHKdacGetTxIqCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sRxChainsIQCalValues calValues;
+   eGainSteps gain;
+} tMsgPttSetRxIqCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sRxChainsIQCalValues calValues;
+   eGainSteps gain;
+} tMsgPttGetRxIqCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tRxChainsDcoCorrections calValues;
+   tANI_U8 gain;
+} tMsgPttSetRxDcoCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tRxChainsDcoCorrections calValues;
+   tANI_U8 gain;
+} tMsgPttGetRxDcoCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tRxChainsIm2Corrections calValues;
+   tANI_U8 dummy;
+} tMsgPttSetRxIm2Correct;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tRxChainsIm2Corrections calValues;
+   tANI_U8 dummy;
+} tMsgPttGetRxIm2Correct;
+
+typedef PACKED_PRE struct PACKED_POST {
+   eRfTempSensor tempSensor;
+   tTempADCVal tempAdc;
+   tANI_U8 reserved[4 - sizeof(tTempADCVal)];
+} tMsgPttGetTempAdc;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 addr;
+   tANI_U32 mask;
+   tANI_U32 shift;
+   tANI_U32 value;
+} tMsgPttReadRfField;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 addr;
+   tANI_U32 mask;
+   tANI_U32 shift;
+   tANI_U32 value;
+} tMsgPttWriteRfField;
+
+//SIF bar4 Register Access
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 sifRegAddr;
+   tANI_U32 sifRegValue;
+} tMsgPttReadSifBar4Register;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 sifRegAddr;
+   tANI_U32 sifRegValue;
+} tMsgPttWriteSifBar4Register;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttDeepSleep;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttEnterFullPower;
+
+//Misc.
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 notUsed;
+} tMsgPttSystemReset;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 cmd;
+   tANI_U32 arg1;
+   tANI_U32 arg2;
+   tANI_U32 arg3;
+   tANI_U32 arg4;
+} tMsgPttLogDump;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sBuildReleaseParams relParams;
+} tMsgPttGetBuildReleaseNumber;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 revId;
+} tMsgPttGetRFVersion;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 option;             //dummy variable
+} tMsgPttCalControlBitmap;
+
+//#ifdef VERIFY_HALPHY_SIMV_MODEL
+
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 option;             //dummy variable
+} tMsgPttHalPhyInit;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 option;             //dummy variable
+} tMsgPttRxIQTest;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsDPDCalValues calValues;
+   eGainSteps gain;
+} tMsgPttDpdCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U8 lutIdx;
+   tANI_U8 band;
+} tMsgPttStartToneGen;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U32 option;             //dummy variable
+} tMsgPttStopToneGen;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsLnaBandCalValues calValues;
+   eGainSteps gain;
+} tMsgPttLnaBandCal;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsLnaBandCalValues calValues;
+   eGainSteps gain;
+} tMsgPttGetLnaBandCalCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   sTxChainsLnaBandCalValues calValues;
+   eGainSteps gain;
+} tMsgPttSetLnaBandCalCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+    sTxChainsDPDCalValues calValues;
+    eGainSteps gain;
+}tMsgPttSetDPDCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+    sTxChainsDPDCalValues calValues;
+    eGainSteps gain;
+}tMsgPttGetDPDCorrect;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tQWPTT_U32 cmdIdx;
+   tQWPTT_U32 param1;
+   tQWPTT_U32 param2;
+   tQWPTT_U32 param3;
+   tQWPTT_U32 param4;
+} tMsgPttPrimaGenericCmd;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U16 testID;
+   tANI_U16 result;
+} tMsgPttPinConnTestRes;
+//#endif
+
+/******************************************************************************************************************
+    END OF PTT MESSAGES
+******************************************************************************************************************/
+
+typedef PACKED_PRE union PACKED_POST pttMsgUnion{
+//typedef union pttMsgUnion {
+   tMsgPttMsgInit MsgInit;
+   tMsgPttGetNvTable GetNvTable;
+   tMsgPttSetNvTable SetNvTable;
+   tMsgPttDelNvTable DelNvTable;
+   tMsgPttBlankNv BlankNv;
+   tMsgPttStoreNvTable StoreNvTable;
+   tMsgPttSetRegDomain SetRegDomain;
+   tMsgPttGetNvField GetNvField;
+   tMsgPttSetNvField SetNvField;
+   tMsgPttDbgReadRegister DbgReadRegister;
+   tMsgPttDbgWriteRegister DbgWriteRegister;
+   tMsgPttDbgReadMemory DbgReadMemory;
+   tMsgPttDbgWriteMemory DbgWriteMemory;
+   tMsgPttEnableChains EnableChains;
+   tMsgPttSetChannel SetChannel;
+   tMsgPttSetWaveform SetWaveform;
+   tMsgPttSetTxWaveformGain SetTxWaveformGain;
+   tMsgPttSetTxWaveformGain_PRIMA_V1 SetTxWaveformGain_PRIMA_V1;
+   tMsgPttGetWaveformPowerAdc GetWaveformPowerAdc;
+   tMsgPttStartWaveform StartWaveform;
+   tMsgPttStartWaveform_PRIMA_V1 StartWaveform_PRIMA_V1;
+   tMsgPttStopWaveform StopWaveform;
+   tMsgPttSetRxWaveformGain SetRxWaveformGain;
+   tMsgPttConfigTxPacketGen ConfigTxPacketGen;
+   tMsgPttStartStopTxPacketGen StartStopTxPacketGen;
+   tMsgPttQueryTxStatus QueryTxStatus;
+   tMsgPttCloseTpcLoop CloseTpcLoop;
+   tMsgPttCloseTpcLoop_PRIMA_V1 CloseTpcLoop_PRIMA_V1;
+   tMsgPttSetPacketTxGainTable SetPacketTxGainTable;
+   tMsgPttGetPacketTxGainTable GetPacketTxGainTable;
+   tMsgPttSetPacketTxGainIndex SetPacketTxGainIndex;
+   tMsgPttForcePacketTxGain ForcePacketTxGain;
+   tMsgPttForcePacketTxGain_PRIMA_V1 ForcePacketTxGain_PRIMA_V1;
+   tMsgPttSetPwrIndexSource SetPwrIndexSource;
+   tMsgPttSetTxPower SetTxPower;
+   tMsgPttGetTxPowerReport GetTxPowerReport;
+   tMsgPttSetPowerLut SetPowerLut;
+   tMsgPttGetPowerLut GetPowerLut;
+   tMsgPttDisableAgcTables DisableAgcTables;
+   tMsgPttEnableAgcTables EnableAgcTables;
+   tMsgPttGetRxRssi GetRxRssi;
+   tMsgPttGetUnicastMacPktRxRssi GetUnicastMacPktRxRssi;
+   tMsgPttGetUnicastMacPktRxRssiConf_PRIMA_V1 GetUnicastMacPktRxRssiConf_PRIMA_V1;
+   tMsgPttSetRxDisableMode SetRxDisableMode;
+   tMsgPttGetRxPktCounts GetRxPktCounts;
+   tMsgPttResetRxPacketStatistics ResetRxPacketStatistics;
+   tMsgPttGrabRam GrabRam;
+   tMsgPttRxIqCal RxIqCal;
+   tMsgPttRxDcoCal RxDcoCal;
+   tMsgPttRxIm2Cal RxIm2Cal;
+
+   tMsgPttExecuteInitialCals ExecuteInitialCals;
+   tMsgPttTxCarrierSuppressCal TxCarrierSuppressCal;
+   tMsgPttTxIqCal TxIqCal;
+   tMsgPttHKdacTxIqCal HKdacTxIqCal;
+   tMsgPttClpcCalSetup_PRIMA_V1 ClpcCalSetup_PRIMA_V1;
+   tMsgPttClpcCalRestore_PRIMA_V1 ClpcCalRestore_PRIMA_V1;
+   tMsgPttHdetCal HdetCal;
+   tMsgPttClpcSwCal_PRIMA_V1 ClpcSwCal_PRIMA_V1;
+   tMsgPttClpcCalExtraMeasurement_PRIMA_V1 ClpcCalExtraMeasurement_PRIMA_V1;
+   tMsgPttSetTxCarrierSuppressCorrect SetTxCarrierSuppressCorrect;
+   tMsgPttGetTxCarrierSuppressCorrect GetTxCarrierSuppressCorrect;
+   tMsgPttSetTxIqCorrect SetTxIqCorrect;
+   tMsgPttGetTxIqCorrect GetTxIqCorrect;
+   tMsgPttSetRxIqCorrect SetRxIqCorrect;
+   tMsgPttGetRxIqCorrect GetRxIqCorrect;
+   tMsgPttSetRxDcoCorrect SetRxDcoCorrect;
+   tMsgPttGetRxDcoCorrect GetRxDcoCorrect;
+   tMsgPttSetRxIm2Correct SetRxIm2Correct;
+   tMsgPttGetRxIm2Correct GetRxIm2Correct;
+   tMsgPttHKdacSetTxIqCorrect HKdacSetTxIqCorrect;
+   tMsgPttHKdacGetTxIqCorrect HKdacGetTxIqCorrect;
+
+   tMsgPttGetTempAdc GetTempAdc;
+   tMsgPttReadRfField ReadRfField;
+   tMsgPttWriteRfField WriteRfField;
+   tMsgPttCalControlBitmap SetCalControlBitmap;
+
+//#ifdef VERIFY_HALPHY_SIMV_MODEL
+
+   tMsgPttHalPhyInit InitOption;
+   tMsgPttRxIQTest RxIQTest;
+   tMsgPttDpdCal DpdCal;
+   tMsgPttStartToneGen StartToneGen;
+   tMsgPttStopToneGen StopToneGen;
+//#endif
+   tMsgPttDeepSleep DeepSleep;
+   tMsgPttReadSifBar4Register ReadSifBar4Register;
+   tMsgPttWriteSifBar4Register WriteSifBar4Register;
+   tMsgPttEnterFullPower EnterFullPower;
+   tMsgPttSystemReset SystemReset;
+   tMsgPttLogDump LogDump;
+   tMsgPttGetBuildReleaseNumber GetBuildReleaseNumber;
+   tMsgPttGetRFVersion GetRFVersion;
+
+//[RY] added for PRIMA
+   tMsgPttSetWaveformRF SetWaveformRF;
+   tMsgPttStopWaveformRF StopWaveformRF;
+   tMsgPttStartWaveformRF StartWaveformRF;
+   tMsgPttLnaBandCal LnaBandCal;
+   tMsgPttGetLnaBandCalCorrect GetLnaBandCalCorrect;
+   tMsgPttSetLnaBandCalCorrect SetLnaBandCalCorrect;
+   tMsgPttGetDPDCorrect GetDPDCorrect;
+   tMsgPttSetDPDCorrect SetDPDCorrect;
+   tMsgPttDpdCal DPDCal;
+   tMsgPttPrimaGenericCmd PrimaGenericCmd;
+   tMsgPttPinConnTestRes PinConnTestRes;
+} uPttMsgs;
+
+typedef PACKED_PRE struct PACKED_POST {
+   tANI_U16 msgId;
+   tANI_U16 msgBodyLength;      //actually, the length of all the fields in this structure
+   eQWPttStatus msgResponse;
+   uPttMsgs msgBody;
+} tPttMsgbuffer, *tpPttMsgbuffer;
+
+
+typedef PACKED_PRE struct PACKED_POST {
+   /*
+    * success or failure
+    */
+   tANI_U32 status;
+   tPttMsgbuffer pttMsgBuffer;
+} tProcessPttRspParams, *tpProcessPttRspParams;
+
+/* End of Ptt Parameters */
+
+#endif