prima: RTT3: Add selfsta address in rtt3 request

Self sta address is required for firmware to identify actual
interface for STA. Add changes accordingly in RTT3 request.

Change-Id: If85823f9198a742f03b1cff87c1c106b97d03a00
CRs-Fixed: 960462
diff --git a/CORE/HDD/src/wlan_hdd_oemdata.c b/CORE/HDD/src/wlan_hdd_oemdata.c
index 8d2a8bd..93da9dc 100644
--- a/CORE/HDD/src/wlan_hdd_oemdata.c
+++ b/CORE/HDD/src/wlan_hdd_oemdata.c
@@ -777,6 +777,16 @@
 void oem_process_data_req_msg(int oemDataLen, char *oemData)
 {
    tOemDataReqNewConfig oemDataReqNewConfig;
+   hdd_adapter_t *pAdapter = NULL;
+
+   /* for now, STA interface only */
+   pAdapter = hdd_get_adapter(pHddCtx, WLAN_HDD_INFRA_STATION);
+   if (!pAdapter)
+   {
+      VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+                "%s: No adapter for STA mode", __func__);
+      return;
+   }
 
    if (!oemData)
    {
@@ -786,10 +796,13 @@
    }
 
    vos_mem_zero(&oemDataReqNewConfig, sizeof(tOemDataReqNewConfig));
-   vos_mem_copy(&oemDataReqNewConfig, oemData, oemDataLen);
+   vos_mem_copy(&oemDataReqNewConfig.selfMacAddr,
+                pAdapter->macAddressCurrent.bytes, sizeof(tSirMacAddr));
+   vos_mem_copy(&oemDataReqNewConfig.oemDataReqNew, oemData, oemDataLen);
 
    VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
-             "%s: calling sme_OemDataReq", __func__);
+             "selfMacAddr: " MAC_ADDRESS_STR" ",
+              MAC_ADDR_ARRAY(oemDataReqNewConfig.selfMacAddr));
 
    sme_OemDataReqNew(pHddCtx->hHal,
                            &oemDataReqNewConfig);
diff --git a/CORE/SME/inc/oemDataApi.h b/CORE/SME/inc/oemDataApi.h
index 184deb3..25d3b1a 100644
--- a/CORE/SME/inc/oemDataApi.h
+++ b/CORE/SME/inc/oemDataApi.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -148,6 +148,8 @@
 /* Structure for defining req sent to the PE */
 typedef struct tagOemDataReqNew
 {
+    tSirMacAddr selfMacAddr;
+    tANI_U8 reserved[2];
     tANI_U8   oemDataReqNew[NEW_OEM_DATA_REQ_SIZE];
 } tOemDataReqNew, tOemDataReqNewConfig;
 
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
index c8863f8..a49fa09 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -4725,6 +4725,8 @@
 /* Structure for defining req sent to the PE */
 typedef struct
 {
+    wpt_macAddr selfMacAddr;
+    wpt_uint8 reserved[2];
     wpt_uint8  oemDataReqNew[NEW_OEM_DATA_REQ_SIZE];
 } WDI_OemDataReqNew, WDI_OemDataReqNewConfig;
 
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 2fdc31d..9db551b 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -36589,10 +36589,10 @@
   if (( WDI_STATUS_SUCCESS != WDI_GetMessageBuffer(
                                         pWDICtx,
                                         WDI_START_OEM_DATA_REQ_IND_NEW,
-                                        sizeof(tStartOemDataReqParamsNew),
+                                        sizeof(*pHalStartOemDataReqParamsNew),
                                         &pSendBuffer, &usDataOffset,
                                         &usSendSize))||
-     ( usSendSize < (usDataOffset + sizeof(tStartOemDataReqParamsNew) )))
+     ( usSendSize < (usDataOffset + sizeof(*pHalStartOemDataReqParamsNew) )))
   {
      WPAL_TRACE( eWLAN_MODULE_DAL_CTRL,  eWLAN_PAL_TRACE_LEVEL_WARN,
               "Unable to get send buffer in %s %p %p", __func__,
@@ -36600,11 +36600,17 @@
      WDI_ASSERT(0);
      return WDI_STATUS_E_FAILURE;
   }
+
   pHalStartOemDataReqParamsNew =
-      (tpStartOemDataReqParamsNew) (pSendBuffer+usDataOffset);
+      (tpStartOemDataReqParamsNew) (pSendBuffer + usDataOffset);
 
-  wpalMemoryCopy(pHalStartOemDataReqParamsNew, wdiOemDataReqNewConfig, NEW_OEM_DATA_REQ_SIZE);
+  wpalMemoryCopy(pHalStartOemDataReqParamsNew,
+                 wdiOemDataReqNewConfig,
+                 sizeof(*pHalStartOemDataReqParamsNew));
 
+  VOS_TRACE(VOS_MODULE_ID_WDI, VOS_TRACE_LEVEL_INFO,
+          "%s: selfMacAddr: " MAC_ADDRESS_STR" ", __func__,
+           MAC_ADDR_ARRAY(pHalStartOemDataReqParamsNew->selfMacAddr));
 
   pWDICtx->pReqStatusUserData = NULL;
   pWDICtx->pfncRspCB = NULL;