qcacld-3.0: Forward disconnect IEs from deauth roam event to kernel

Firmware sends roam event with reason WMI_ROAM_REASON_DEAUTH when
it receives deauth/disassoc from the peer and fails to roam.
The event also carries deauth/disassoc frame.
A new param "notif_params1" is defined to carry length of the
frame and a new TLV element "deauth_disassoc_frame" to carry
the frame.
Extract IEs from the frame when the event is received and
send them to kernel through cfg80211_disconnected().

Change-Id: I14610136e5e9758403e48264d04d1655e4466d3c
CRs-Fixed: 2481915
diff --git a/core/wma/inc/wma_types.h b/core/wma/inc/wma_types.h
index 415a554..6a8e964 100644
--- a/core/wma/inc/wma_types.h
+++ b/core/wma/inc/wma_types.h
@@ -726,7 +726,9 @@
 			struct bss_description *bss_desc_ptr,
 			enum sir_roam_op_code reason),
 		QDF_STATUS (*pe_disconnect_cb) (struct mac_context *mac,
-						uint8_t vdev_id));
+			uint8_t vdev_id,
+			uint8_t *deauth_disassoc_frame,
+			uint16_t deauth_disassoc_frame_len));
 #else
 static inline QDF_STATUS wma_register_roaming_callbacks(
 		QDF_STATUS (*csr_roam_synch_cb)(struct mac_context *mac,
@@ -738,7 +740,9 @@
 			struct bss_description *bss_desc_ptr,
 			enum sir_roam_op_code reason),
 		QDF_STATUS (*pe_disconnect_cb) (struct mac_context *mac,
-						uint8_t vdev_id))
+			uint8_t vdev_id,
+			uint8_t *deauth_disassoc_frame,
+			uint16_t deauth_disassoc_frame_len))
 {
 	return QDF_STATUS_E_NOSUPPORT;
 }