API changes for nv3
Integrate changes made in firmware Pronto
Updated review comments
CRs-fixed: 474382
Change-Id: I227ce12a4c9492e2f32fd2ebdca6ccafd8e40f12
diff --git a/riva/inc/pttModule.h b/riva/inc/pttModule.h
index 9056b7c..f7c628b 100644
--- a/riva/inc/pttModule.h
+++ b/riva/inc/pttModule.h
@@ -66,6 +66,9 @@
#include "wlan_hal_msg.h" // it is needed to build qwptt static lib
#endif
+// Max NV fragment size
+#define MAX_NV_BIN_SIZE 2000
+
enum
{
PTT_STATUS_SUCCESS = 0,
diff --git a/riva/inc/pttMsgApi.h b/riva/inc/pttMsgApi.h
index 27fc41d..fe349b8 100644
--- a/riva/inc/pttMsgApi.h
+++ b/riva/inc/pttMsgApi.h
@@ -108,6 +108,11 @@
PTT_MSG_STORE_NV_TABLE = 0x3022,
PTT_MSG_SET_REG_DOMAIN = 0x3023,
+//new NV format Service
+ PTT_MSG_GET_NV_BIN = 0x3030,
+ PTT_MSG_SET_NV_BIN = 0x3031,
+ PTT_MSG_GET_DICTIONARY = 0x3032,
+
//Device Register Access
PTT_MSG_DBG_READ_REGISTER = 0x3040,
PTT_MSG_DBG_WRITE_REGISTER = 0x3041,
@@ -336,6 +341,20 @@
eRegDomainId regDomainId;
} tMsgPttSetRegDomain;
+typedef PACKED_PRE struct PACKED_POST {
+ tANI_U32 tableSize;
+ tANI_U32 chunkSize;
+ eNvTable nvTable;
+ tANI_U8 nvData[MAX_NV_BIN_SIZE];
+} tMsgPttGetNvBin;
+
+typedef PACKED_PRE struct PACKED_POST {
+ tANI_U32 tableSize;
+ tANI_U32 chunkSize;
+ eNvTable nvTable;
+ tANI_U8 nvData[MAX_NV_BIN_SIZE];
+} tMsgPttSetNvBin;
+
//Device Register Access
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 regAddr;
@@ -841,6 +860,8 @@
tMsgPttSetRegDomain SetRegDomain;
tMsgPttGetNvField GetNvField;
tMsgPttSetNvField SetNvField;
+ tMsgPttGetNvBin GetNvBin;
+ tMsgPttSetNvBin SetNvBin;
tMsgPttDbgReadRegister DbgReadRegister;
tMsgPttDbgWriteRegister DbgWriteRegister;
tMsgPttDbgReadMemory DbgReadMemory;
diff --git a/riva/inc/wlan_nv.h b/riva/inc/wlan_nv.h
index 3e71c63..4f8918a 100755
--- a/riva/inc/wlan_nv.h
+++ b/riva/inc/wlan_nv.h
@@ -175,7 +175,8 @@
{
PHY_TX_CHAIN_0 = 0,
- PHY_MAX_TX_CHAINS = 1,
+ NUM_PHY_MAX_TX_CHAINS = 1,
+ PHY_MAX_TX_CHAINS = NUM_PHY_MAX_TX_CHAINS,
PHY_ALL_TX_CHAINS,
//possible tx chain combinations
@@ -320,7 +321,6 @@
MIN_2_4GHZ_CHANNEL = RF_CHAN_1,
MAX_2_4GHZ_CHANNEL = RF_CHAN_14,
- NUM_2_4GHZ_CHANNELS = (MAX_2_4GHZ_CHANNEL - MIN_2_4GHZ_CHANNEL + 1),
MIN_5GHZ_CHANNEL = RF_CHAN_240,
MAX_5GHZ_CHANNEL = RF_CHAN_165,
@@ -347,6 +347,26 @@
RF_CHANNEL_INVALID_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
}eRfChannels;
+typedef enum
+{
+ RF_CHAN_1_1 = RF_CHAN_1,
+ RF_CHAN_2_1 = RF_CHAN_2,
+ RF_CHAN_3_1 = RF_CHAN_3,
+ RF_CHAN_4_1 = RF_CHAN_4,
+ RF_CHAN_5_1 = RF_CHAN_5,
+ RF_CHAN_6_1 = RF_CHAN_6,
+ RF_CHAN_7_1 = RF_CHAN_7,
+ RF_CHAN_8_1 = RF_CHAN_8,
+ RF_CHAN_9_1 = RF_CHAN_9,
+ RF_CHAN_10_1 = RF_CHAN_10,
+ RF_CHAN_11_1 = RF_CHAN_11,
+ RF_CHAN_12_1 = RF_CHAN_12,
+ RF_CHAN_13_1 = RF_CHAN_13,
+ RF_CHAN_14_1 = RF_CHAN_14,
+// The above params are used for scripts.
+ NUM_2_4GHZ_CHANNELS,
+}eRfChannels_2_4GHz;
+
enum
{
NV_CHANNEL_DISABLE,
@@ -459,7 +479,7 @@
//MSB set if extraPrecision.hi8_adjustedPwrDet is used
}tTpcCaldPowerPoint;
-typedef tTpcCaldPowerPoint tTpcCaldPowerTable[PHY_MAX_TX_CHAINS][MAX_TPC_CAL_POINTS];
+typedef tTpcCaldPowerPoint tTpcCaldPowerTable[NUM_PHY_MAX_TX_CHAINS][MAX_TPC_CAL_POINTS];
typedef PACKED_PRE struct PACKED_POST
{
@@ -471,7 +491,7 @@
#define TPC_MEM_POWER_LUT_DEPTH 256
#endif
-typedef tTpcLutValue tTpcPowerTable[PHY_MAX_TX_CHAINS][TPC_MEM_POWER_LUT_DEPTH];
+typedef tTpcLutValue tTpcPowerTable[NUM_PHY_MAX_TX_CHAINS][TPC_MEM_POWER_LUT_DEPTH];
typedef PACKED_PRE struct PACKED_POST
{
@@ -642,7 +662,7 @@
}eHalPhyRates;
#define NUM_RATE_POWER_GROUPS NUM_HAL_PHY_RATES //total number of rate power groups including the CB_RATE_POWER_OFFSET
-typedef uAbsPwrPrecision tRateGroupPwr[NUM_RATE_POWER_GROUPS];
+typedef uAbsPwrPrecision tRateGroupPwr[NUM_HAL_PHY_RATES];
//From halNvTables.h
#define NV_FIELD_COUNTRY_CODE_SIZE 3