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