diff --git a/wmi_unified_api.h b/wmi_unified_api.h
index 8302ecb..58fd3e5 100644
--- a/wmi_unified_api.h
+++ b/wmi_unified_api.h
@@ -245,10 +245,6 @@
 QDF_STATUS wmi_unified_vdev_delete_send(void *wmi_hdl,
 					  uint8_t if_id);
 
-QDF_STATUS wmi_unified_vdev_start_send(void *wmi_hdl,
-				uint8_t macaddr[IEEE80211_ADDR_LEN],
-				struct vdev_start_params *param);
-
 QDF_STATUS wmi_unified_vdev_restart_send(void *wmi_hdl,
 				uint8_t macaddr[IEEE80211_ADDR_LEN],
 				struct vdev_start_params *param);
@@ -263,6 +259,12 @@
 QDF_STATUS wmi_unified_vdev_down_send(void *wmi_hdl,
 				uint8_t vdev_id);
 
+QDF_STATUS wmi_unified_vdev_start_send(void *wmi_hdl,
+				struct vdev_start_params *req);
+
+QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl,
+		struct hidden_ssid_vdev_restart_params *restart_params);
+
 QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl,
 				struct vdev_set_params *param);
 
diff --git a/wmi_unified_param.h b/wmi_unified_param.h
index 009ef34..577d547 100644
--- a/wmi_unified_param.h
+++ b/wmi_unified_param.h
@@ -88,6 +88,7 @@
 #define WMI_SEC_TO_MSEC(sec)         (sec * 1000)  /* sec to msec */
 #define WMI_MSEC_TO_USEC(msec)       (msec * 1000) /* msec to usec */
 #define WMI_NLO_FREQ_THRESH          1000       /* in MHz */
+#include "qdf_atomic.h"
 
 /**
  * struct vdev_create_params - vdev create cmd parameter
@@ -110,55 +111,6 @@
 };
 
 /**
- * struct vdev_start_params - vdev start cmd parameter
- * @beacon_intval: beacon intval
- * @dtim_period: dtim period
- * @max_txpow: max tx power
- * @phy_ch_width chan_width: channel width
- * @is_dfs: flag to check if dfs enabled
- * @vdev_id: vdev id
- * @chan: channel no
- * @oper_mode: operating mode
- * @length: length
- * @ssId[32]: ssid
- * @hidden_ssid: hidden ssid
- * @pmf_enabled: is pmf enabled
- * @vht_capable: is vht capable
- * @ch_center_freq_seg0: center freq seq 0
- * @ch_center_freq_seg1: center freq seq 1
- * @ht_capable: is ht capable
- * @dfs_pri_multiplier: DFS multiplier
- * @dot11_mode: dot11 mode
- * @is_half_rate: Indicates half rate channel
- * @is_quarter_rate: Indicates quarter rate channel
- * @preferred_tx_streams: preferred tx streams
- * @preferred_rx_streams: preferred rx streams
- */
-struct vdev_start_params {
-	uint32_t beacon_intval;
-	uint32_t dtim_period;
-	int32_t max_txpow;
-	bool is_dfs;
-	uint8_t vdev_id;
-	uint8_t chan;
-	uint8_t oper_mode;
-	uint8_t length;
-	uint8_t ssId[32];
-	uint8_t hidden_ssid;
-	uint8_t pmf_enabled;
-	uint8_t vht_capable;
-	uint8_t ch_center_freq_seg0;
-	uint8_t ch_center_freq_seg1;
-	uint8_t ht_capable;
-	int32_t dfs_pri_multiplier;
-	uint8_t dot11_mode;
-	bool is_half_rate;
-	bool is_quarter_rate;
-	uint32_t preferred_tx_streams;
-	uint32_t preferred_rx_streams;
-};
-
-/**
  * struct vdev_stop_params - vdev stop cmd parameter
  * @vdev_id: vdev id
  */
@@ -185,6 +137,103 @@
 };
 
 /**
+ * struct mac_ssid - mac ssid structure
+ * @length:
+ * @mac_ssid[WMI_MAC_MAX_SSID_LENGTH]:
+ */
+struct mac_ssid {
+	uint8_t length;
+	uint8_t mac_ssid[WMI_MAC_MAX_SSID_LENGTH];
+} qdf_packed;
+
+/**
+ * struct vdev_start_params - vdev start cmd parameter
+ * @vdev_id: vdev id
+ * @chan_freq: channel frequency
+ * @chan_mode: channel mode
+ * @band_center_freq1: center freq 1
+ * @band_center_freq2: center freq 2
+ * @flags: flags to set like pmf_enabled etc.
+ * @is_dfs: flag to check if dfs enabled
+ * @beacon_intval: beacon interval
+ * @dtim_period: dtim period
+ * @max_txpow: max tx power
+ * @is_restart: flag to check if it is vdev
+ * @ssid: ssid and ssid length info
+ * @preferred_tx_streams: preferred tx streams
+ * @preferred_rx_streams: preferred rx streams
+ * @intr_update: flag to check if need to update
+ *               required wma interface params
+ * @intr_ssid: pointer to wma interface ssid
+ * @intr_flags: poiter to wma interface flags
+ * @requestor_id: to update requestor id
+ * @disable_hw_ack: to update disable hw ack flag
+ * @info: to update channel info
+ * @reg_info_1: to update min power, max power,
+ *              reg power and reg class id
+ * @reg_info_2: to update antennamax
+ */
+struct vdev_start_params {
+	uint8_t vdev_id;
+	uint32_t chan_freq;
+	uint32_t chan_mode;
+	uint32_t band_center_freq1;
+	uint32_t band_center_freq2;
+	uint32_t flags;
+	bool is_dfs;
+	uint32_t beacon_intval;
+	uint32_t dtim_period;
+	int32_t max_txpow;
+	bool is_restart;
+	struct mac_ssid ssid;
+	uint32_t preferred_rx_streams;
+	uint32_t preferred_tx_streams;
+	bool intr_update;
+	wmi_ssid *intr_ssid;
+	uint32_t *intr_flags;
+	uint32_t *requestor_id;
+	uint32_t *disable_hw_ack;
+	uint32_t *info;
+	uint32_t *reg_info_1;
+	uint32_t *reg_info_2;
+};
+
+/**
+ * struct hidden_ssid_vdev_restart_params -
+ *                    vdev restart cmd parameter
+ * @session_id: session id
+ * @ssid_len: ssid length
+ * @ssid: ssid
+ * @flags: flags
+ * @requestor_id: requestor id
+ * @disable_hw_ack: flag to disable hw ack feature
+ * @mhz: channel frequency
+ * @band_center_freq1: center freq 1
+ * @band_center_freq2: center freq 2
+ * @info: channel info
+ * @reg_info_1: contains min power, max power,
+ *              reg power and reg class id
+ * @reg_info_2: contains antennamax
+ * @hidden_ssid_restart_in_progress:
+ *      flag to check if restart is in progress
+ */
+struct hidden_ssid_vdev_restart_params {
+	uint8_t session_id;
+	uint32_t ssid_len;
+	uint32_t ssid[8];
+	uint32_t flags;
+	uint32_t requestor_id;
+	uint32_t disable_hw_ack;
+	uint32_t mhz;
+	uint32_t band_center_freq1;
+	uint32_t band_center_freq2;
+	uint32_t info;
+	uint32_t reg_info_1;
+	uint32_t reg_info_2;
+	qdf_atomic_t hidden_ssid_restart_in_progress;
+};
+
+/**
  * struct vdev_set_params - vdev set cmd parameter
  * @if_id: vdev id
  * @param_id: parameter id
@@ -402,16 +451,6 @@
 };
 
 /**
- * struct mac_ssid - mac ssid structure
- * @length:
- * @mac_ssid[WMI_MAC_MAX_SSID_LENGTH]:
- */
-struct mac_ssid {
-	uint8_t length;
-	uint8_t mac_ssid[WMI_MAC_MAX_SSID_LENGTH];
-} qdf_packed;
-
-/**
  * struct scan_start_params - start scan cmd parameter
  * @scan_id: scan id
  * @scan_req_id: requeted scan id
diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h
index a1df724..afdcae9 100644
--- a/wmi_unified_priv.h
+++ b/wmi_unified_priv.h
@@ -82,6 +82,12 @@
 QDF_STATUS (*send_vdev_down_cmd)(wmi_unified_t wmi,
 			uint8_t vdev_id);
 
+QDF_STATUS (*send_vdev_start_cmd)(wmi_unified_t wmi,
+		struct vdev_start_params *req);
+
+QDF_STATUS (*send_hidden_ssid_vdev_restart_cmd)(wmi_unified_t wmi_handle,
+		struct hidden_ssid_vdev_restart_params *restart_params);
+
 QDF_STATUS (*send_peer_flush_tids_cmd)(wmi_unified_t wmi,
 					 uint8_t peer_addr[IEEE80211_ADDR_LEN],
 					 struct peer_flush_params *param);
diff --git a/wmi_unified_tlv.h b/wmi_unified_tlv.h
index 7387ba4..43acf78 100644
--- a/wmi_unified_tlv.h
+++ b/wmi_unified_tlv.h
@@ -44,6 +44,12 @@
 QDF_STATUS send_vdev_down_cmd_tlv(wmi_unified_t wmi,
 			uint8_t vdev_id);
 
+QDF_STATUS send_vdev_start_cmd_tlv(wmi_unified_t wmi,
+			struct vdev_start_params *req);
+
+QDF_STATUS send_hidden_ssid_vdev_restart_cmd_tlv(wmi_unified_t wmi_handle,
+		struct hidden_ssid_vdev_restart_params *restart_params);
+
 QDF_STATUS send_peer_flush_tids_cmd_tlv(wmi_unified_t wmi,
 			 uint8_t peer_addr[IEEE80211_ADDR_LEN],
 			 struct peer_flush_params *param);
