prima: Add oem data rsp length

Currently NEW_OEM_DATA_RSP_SIZE no of bytes are defined statically
between host and fw for oem rsp exchange. But fw is not using all
of those bytes which results in lowi reading data from unauthorized
memory locations. Fix this by sending proper length to LOWI.

Change-Id: Idb1176111a9585b8f727fb01dda1a6079151c867
CRs-Fixed: 965180
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
index a49fa09..5397e51 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -908,6 +908,19 @@
     wpt_uint32 tx_complete_status;
     wpt_uint32 tx_bd_token;
 }  WDI_TxBDStatus;
+
+#ifdef FEATURE_OEM_DATA_SUPPORT
+/*----------------------------------------------------------------------------
+  OEM DATA RESPONSE - DATA STRUCTURES
+----------------------------------------------------------------------------*/
+typedef struct
+{
+    void *pOemRspNewIndData;
+    /* Max OemRspNewLen possible is NEW_OEM_DATA_RSP_SIZE*/
+    wpt_uint32 OemRspNewLen;
+} WDI_OemDataRspNew;
+#endif
+
 /*---------------------------------------------------------------------------
   WDI_LowLevelIndType
     Inidcation type and information about the indication being carried
@@ -994,7 +1007,7 @@
     WDI_RssiBreachedIndType     wdiRssiBreachedInd;
 #ifdef FEATURE_OEM_DATA_SUPPORT
 /*OEM Data Rsp New Results from FW*/
-    void *pOemRspNewIndData;
+    WDI_OemDataRspNew           wdiOemDataRspNew;
 #endif
   }  wdiIndicationData;
 }WDI_LowLevelIndType;
@@ -4730,14 +4743,6 @@
     wpt_uint8  oemDataReqNew[NEW_OEM_DATA_REQ_SIZE];
 } WDI_OemDataReqNew, WDI_OemDataReqNewConfig;
 
-/*----------------------------------------------------------------------------
-  OEM DATA RESPONSE - DATA STRUCTURES
-----------------------------------------------------------------------------*/
-typedef struct
-{
-    wpt_uint8  oemDataRspNew[NEW_OEM_DATA_RSP_SIZE];
-} WDI_OemDataRspNew;
-
 /*************************************************************************************************************/
 
 #endif /* FEATURE_OEM_DATA_SUPPORT */
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 9db551b..406b4fc 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -36657,9 +36657,10 @@
     /* Fill in the indication parameters */
     wdiInd.wdiIndicationType = WDI_START_OEM_DATA_RSP_IND_NEW;
 
-    /* extract response and send it to UMAC */
-    wdiInd.wdiIndicationData.pOemRspNewIndData = (void *)pEventData->pEventData;
-
+    wdiInd.wdiIndicationData.wdiOemDataRspNew.pOemRspNewIndData =
+                                                (void *)pEventData->pEventData;
+    wdiInd.wdiIndicationData.wdiOemDataRspNew.OemRspNewLen =
+                                                    pEventData->uEventDataSize;
     /* Notify UMAC */
     if (pWDICtx->wdiLowLevelIndCB)
     {