qcacmn: Add TLV implementations for WIN specific WMI CMDs

Converged FW has few left-over WIN specfic WMI CMDs that need to be
implemented in TLV method.

WMI CMDs implemented through this change -

WMI_PDEV_SMART_ANT_ENABLE_CMDID
WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID
WMI_PDEV_SET_CTL_TABLE_CMDID
WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID
WMI_PDEV_GET_TPC_CMDID
WMI_VDEV_RATEMASK_CMDID
WMI_VDEV_SET_DSCP_TID_MAP_CMDID
WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID
WMI_PEER_UPDATE_WDS_ENTRY_CMDID
WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID

Change-Id: I6e59bcb948a7368729df35d19c3d5a03a0075a15
CRs-Fixed: 1115239
diff --git a/wmi_unified_param.h b/wmi_unified_param.h
index d1de13c..7918d63 100644
--- a/wmi_unified_param.h
+++ b/wmi_unified_param.h
@@ -127,6 +127,9 @@
 #define FIPS_IS_ALIGNED(__addr, __to) \
 		(!(((unsigned long int)(__addr)) & ((__to)-1)))
 
+#define WMI_HOST_MAX_SERIAL_ANTENNA 2
+#define WMI_SMART_ANT_MAX_RATE_SERIES 2
+
 #define WMI_HOST_F_MS(_v, _f)	\
 	(((_v) & (_f)) >> (_f##_S))
 
@@ -219,6 +222,40 @@
 
 #define WMI_HOST_PDEV_MAX_VDEVS         17
 
+/* for QC98XX only */
+/*6 modes (A, HT20, HT40, VHT20, VHT40, VHT80) * 3 reg dommains
+ */
+#define WMI_HOST_NUM_CTLS_5G                18
+/*6 modes (B, G, HT20, HT40, VHT20, VHT40) * 3 reg domains */
+#define WMI_HOST_NUM_CTLS_2G                18
+#define WMI_HOST_NUM_BAND_EDGES_5G          8
+#define WMI_HOST_NUM_BAND_EDGES_2G          4
+
+/*Beelinier 5G*/
+#define WMI_HOST_NUM_CTLS_5G_11A            9
+#define WMI_HOST_NUM_BAND_EDGES_5G_11A      25
+#define WMI_HOST_NUM_CTLS_5G_HT20           24
+#define WMI_HOST_NUM_BAND_EDGES_5G_HT20     25
+#define WMI_HOST_NUM_CTLS_5G_HT40           18
+#define WMI_HOST_NUM_BAND_EDGES_5G_HT40     12
+#define WMI_HOST_NUM_CTLS_5G_HT80           18
+#define WMI_HOST_NUM_BAND_EDGES_5G_HT80     6
+#define WMI_HOST_NUM_CTLS_5G_HT160          9
+#define WMI_HOST_NUM_BAND_EDGES_5G_HT160    2
+
+/* Beeliner 2G */
+#define WMI_HOST_NUM_CTLS_2G_11B            6
+#define WMI_HOST_NUM_BAND_EDGES_2G_11B      9
+#define WMI_HOST_NUM_CTLS_2G_20MHZ          30
+#define WMI_HOST_NUM_BAND_EDGES_2G_20MHZ    11
+#define WMI_HOST_NUM_CTLS_2G_40MHZ          18
+#define WMI_HOST_NUM_BAND_EDGES_2G_40MHZ    6
+
+/* for QC98XX only */
+#define WMI_HOST_TX_NUM_CHAIN               0x3
+#define WMI_HOST_TPC_REGINDEX_MAX           4
+#define WMI_HOST_ARRAY_GAIN_NUM_STREAMS     2
+
 #include "qdf_atomic.h"
 
 #ifdef BIG_ENDIAN_HOST
@@ -3543,6 +3580,7 @@
 	uint8_t *wds_macaddr;
 	uint8_t *peer_macaddr;
 	uint32_t flags;
+	uint32_t vdev_id;
 };
 
 /**
@@ -3597,6 +3635,7 @@
 	uint32_t rx_antenna;
 	uint32_t gpio_pin[WMI_HAL_MAX_SANTENNA];
 	uint32_t gpio_func[WMI_HAL_MAX_SANTENNA];
+	uint32_t pdev_id;
 };
 
 /**
@@ -3605,6 +3644,7 @@
  */
 struct smart_ant_rx_ant_params {
 	uint32_t antenna;
+	uint32_t pdev_id;
 };
 
 /**
@@ -4069,6 +4109,7 @@
 	uint32_t target_type;
 	bool is_2g;
 	uint32_t ctl_band;
+	uint32_t pdev_id;
 };
 
 /**
@@ -4081,6 +4122,7 @@
 	uint8_t *array_gain;
 	uint16_t tbl_len;
 	bool multichain_gain_bypass;
+	uint32_t pdev_id;
 };
 
 /**
@@ -4207,6 +4249,7 @@
 	uint16_t nss;
 	uint16_t preamble;
 	uint16_t hw_rate;
+	uint32_t pdev_id;
 };
 
 /**