wlan: Add ini support and DXE done Ind for frame logging
Add four ini to support frame logging feature
1. ini to enable fw frame logging
2. ini to enable fw continious logging
3. ini stating max log buffer size
4. ini stating min log buffer size
Add support for DXE done indication through control path.
Renaming APIs which will be now common for Mgmt Frame logging
and FW logging.
Change-Id: I4af80eeae86b4766159f9fddb3f87db4417d8aab
CRs-Fixed: 845692
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index a9d8ac4..90e768c 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2334,6 +2334,31 @@
#define CFG_ENABLE_BMUHW_TRACING_MAX (1)
#define CFG_ENABLE_BMUHW_TRACING_DEFAULT (1)
+#define CFG_ENABLE_FW_LOGGING "gEnableFWLogging"
+#define CFG_ENABLE_FW_LOGGING_MIN (0)
+#define CFG_ENABLE_FW_LOGGING_MAX (1)
+#define CFG_ENABLE_FW_LOGGING_DEFAULT (0)
+
+// firmware will wakeup the host to send logs always
+#define CFG_ENABLE_FW_CONTINIOUS_LOGGING "gEnableContFWLogging"
+#define CFG_ENABLE_FW_CONTINIOUS_LOGGING_MIN (0)
+#define CFG_ENABLE_FW_CONTINIOUS_LOGGING_MAX (1)
+#define CFG_ENABLE_FW_CONTINIOUS_LOGGING_DEFAULT (0)
+
+/* when firmware log reaches this threshold and
+ * if host is awake it will push the logs.
+ */
+#define CFG_MIN_LOGGING_BUFFER_SIZE "gMinLoggingBufferSize"
+#define CFG_MIN_LOGGING_BUFFER_SIZE_MIN (0)
+#define CFG_MIN_LOGGING_BUFFER_SIZE_MAX (6)
+#define CFG_MIN_LOGGING_BUFFER_SIZE_DEFAULT (1)
+
+// Max ring size in firmware to log msgs when host is suspended state
+#define CFG_MAX_LOGGING_BUFFER_SIZE "gMaxLoggingBufferSize"
+#define CFG_MAX_LOGGING_BUFFER_SIZE_MIN (0)
+#define CFG_MAX_LOGGING_BUFFER_SIZE_MAX (6)
+#define CFG_MAX_LOGGING_BUFFER_SIZE_DEFAULT (6)
+
#define CFG_ENABLE_CH_AVOID "gEnableChannelAvoidance"
#define CFG_ENABLE_CH_AVOID_MIN ( 0 )
#define CFG_ENABLE_CH_AVOID_MAX ( 1 )
@@ -2926,6 +2951,10 @@
v_BOOL_t enableMacSpoofing;
v_BOOL_t enableMgmtLogging;
v_BOOL_t enableBMUHWtracing;
+ v_BOOL_t enableFWLogging;
+ v_BOOL_t enableContFWLogging;
+ v_U8_t minLoggingBufferSize;
+ v_U8_t maxLoggingBufferSize;
v_BOOL_t fenableCHAvoidance;
v_U8_t gMaxConcurrentActiveSessions;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index ca0ca0d..6c93fc6 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -3147,6 +3147,34 @@
CFG_ENABLE_BMUHW_TRACING_MIN,
CFG_ENABLE_BMUHW_TRACING_MAX),
+ REG_VARIABLE(CFG_ENABLE_FW_LOGGING, WLAN_PARAM_Integer,
+ hdd_config_t, enableFWLogging,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FW_LOGGING_DEFAULT,
+ CFG_ENABLE_FW_LOGGING_MIN,
+ CFG_ENABLE_FW_LOGGING_MAX),
+
+ REG_VARIABLE(CFG_ENABLE_FW_CONTINIOUS_LOGGING, WLAN_PARAM_Integer,
+ hdd_config_t, enableContFWLogging,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FW_CONTINIOUS_LOGGING_DEFAULT,
+ CFG_ENABLE_FW_CONTINIOUS_LOGGING_MIN,
+ CFG_ENABLE_FW_CONTINIOUS_LOGGING_MAX),
+
+ REG_VARIABLE(CFG_MIN_LOGGING_BUFFER_SIZE, WLAN_PARAM_Integer,
+ hdd_config_t, minLoggingBufferSize,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_MIN_LOGGING_BUFFER_SIZE_DEFAULT,
+ CFG_MIN_LOGGING_BUFFER_SIZE_MIN,
+ CFG_MIN_LOGGING_BUFFER_SIZE_MAX),
+
+ REG_VARIABLE(CFG_MAX_LOGGING_BUFFER_SIZE, WLAN_PARAM_Integer,
+ hdd_config_t, maxLoggingBufferSize,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_MAX_LOGGING_BUFFER_SIZE_DEFAULT,
+ CFG_MAX_LOGGING_BUFFER_SIZE_MIN,
+ CFG_MAX_LOGGING_BUFFER_SIZE_MAX),
+
REG_VARIABLE(CFG_ENABLE_CH_AVOID, WLAN_PARAM_Integer,
hdd_config_t, fenableCHAvoidance,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 6c2dd5f..187507e 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -9176,9 +9176,9 @@
\return - None
--------------------------------------------------------------------------*/
-void hdd_init_frame_logging_done(void *mgmtlogInitCbContext, VOS_STATUS status)
+void hdd_init_frame_logging_done(void *fwlogInitCbContext, VOS_STATUS status)
{
- hdd_context_t* pHddCtx = (hdd_context_t*)mgmtlogInitCbContext;
+ hdd_context_t* pHddCtx = (hdd_context_t*)fwlogInitCbContext;
if (NULL == pHddCtx)
{
@@ -9210,56 +9210,63 @@
\return - None
--------------------------------------------------------------------------*/
-void hdd_init_frame_logging(hdd_context_t* pHddCtx, v_BOOL_t enable)
+void hdd_init_frame_logging(hdd_context_t* pHddCtx)
{
eHalStatus halStatus = eHAL_STATUS_FAILURE;
- tpSirMgmtLoggingInitParam wlanMgmtLoggingInitParam;
+ tpSirFWLoggingInitParam wlanFWLoggingInitParam;
- if (TRUE != sme_IsFeatureSupportedByFW(MGMT_FRAME_LOGGING))
+ if (TRUE != sme_IsFeatureSupportedByFW(MGMT_FRAME_LOGGING) &&
+ TRUE != sme_IsFeatureSupportedByFW(LOGGING_ENHANCEMENT))
{
hddLog(VOS_TRACE_LEVEL_INFO, FL("MGMT_FRAME_LOGGING not supp by FW"));
return;
}
- wlanMgmtLoggingInitParam = vos_mem_malloc(sizeof(tSirMgmtLoggingInitParam));
- if(NULL == wlanMgmtLoggingInitParam)
+ wlanFWLoggingInitParam = vos_mem_malloc(sizeof(tSirFWLoggingInitParam));
+ if(NULL == wlanFWLoggingInitParam)
{
hddLog(VOS_TRACE_LEVEL_FATAL, "%s: vos_mem_alloc failed ", __func__);
return;
}
- vos_mem_set(wlanMgmtLoggingInitParam, sizeof(tSirMgmtLoggingInitParam), 0);
+ vos_mem_set(wlanFWLoggingInitParam, sizeof(tSirFWLoggingInitParam), 0);
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: Configuring Mgmt Frame Logging %d",
- __func__, enable);
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: Configuring %s %s %s Logging",__func__,
+ pHddCtx->cfg_ini->enableFWLogging?"FW Log,":"",
+ pHddCtx->cfg_ini->enableContFWLogging ? "Cont FW log,":"",
+ pHddCtx->cfg_ini->enableMgmtLogging ? "Mgmt Pkt Log":"");
- if (enable)
+ if (pHddCtx->cfg_ini->enableFWLogging ||
+ pHddCtx->cfg_ini->enableContFWLogging)
{
- wlanMgmtLoggingInitParam->enableFlag |= WLAN_FRAME_LOG_EN;
+ wlanFWLoggingInitParam->enableFlag |= WLAN_QXDM_LOG_EN;
}
if (pHddCtx->cfg_ini->enableBMUHWtracing)
{
- wlanMgmtLoggingInitParam->enableFlag |= WLAN_BMUHW_TRACE_LOG_EN;
+ wlanFWLoggingInitParam->enableFlag |= WLAN_BMUHW_TRACE_LOG_EN;
}
- wlanMgmtLoggingInitParam->frameType = WLAN_FRAME_LOGGING_FRAMETYPE_MGMT;
- wlanMgmtLoggingInitParam->frameSize = WLAN_MGMT_LOGGING_FRAMESIZE_128BYTES;
- wlanMgmtLoggingInitParam->bufferMode =
- WLAN_FRAME_LOGGING_BUFFERMODE_CIRCULAR;
+ wlanFWLoggingInitParam->frameType = WLAN_FRAME_LOGGING_FRAMETYPE_MGMT;
+ wlanFWLoggingInitParam->frameSize = WLAN_MGMT_LOGGING_FRAMESIZE_128BYTES;
+ wlanFWLoggingInitParam->bufferMode = WLAN_FRAME_LOGGING_BUFFERMODE_CIRCULAR;
+ wlanFWLoggingInitParam->continuousFrameLogging =
+ pHddCtx->cfg_ini->enableContFWLogging;
- wlanMgmtLoggingInitParam->enableFlag &= ~WLAN_QXDM_LOG_EN;
- wlanMgmtLoggingInitParam->enableFlag &= ~WLAN_DPU_TXP_LOG_EN;
+ wlanFWLoggingInitParam->enableFlag &= ~WLAN_DPU_TXP_LOG_EN;
- wlanMgmtLoggingInitParam->mgmtlogInitCallback = hdd_init_frame_logging_done;
- wlanMgmtLoggingInitParam->mgmtlogInitCbContext= pHddCtx;
+ wlanFWLoggingInitParam->minLogBufferSize =
+ pHddCtx->cfg_ini->minLoggingBufferSize;
+ wlanFWLoggingInitParam->maxLogBufferSize =
+ pHddCtx->cfg_ini->maxLoggingBufferSize;
+ wlanFWLoggingInitParam->fwlogInitCallback = hdd_init_frame_logging_done;
+ wlanFWLoggingInitParam->fwlogInitCbContext= pHddCtx;
- halStatus = sme_InitMgmtFrameLogging(pHddCtx->hHal,
- wlanMgmtLoggingInitParam);
+ halStatus = sme_InitMgmtFrameLogging(pHddCtx->hHal, wlanFWLoggingInitParam);
if (eHAL_STATUS_SUCCESS != halStatus)
{
- vos_mem_free(wlanMgmtLoggingInitParam);
+ vos_mem_free(wlanFWLoggingInitParam);
}
return;
@@ -9999,14 +10006,15 @@
VOS_PKT_PROTO_TYPE_EAPOL | VOS_PKT_PROTO_TYPE_DHCP;
}
- if (pHddCtx->cfg_ini->enableMgmtLogging &&
- pHddCtx->cfg_ini->wlanLoggingEnable)
+ if (pHddCtx->cfg_ini->wlanLoggingEnable &&
+ (pHddCtx->cfg_ini->enableFWLogging ||
+ pHddCtx->cfg_ini->enableContFWLogging))
{
- hdd_init_frame_logging(pHddCtx, TRUE);
+ hdd_init_frame_logging(pHddCtx);
}
else
{
- hddLog(VOS_TRACE_LEVEL_INFO, FL("Mgmt Logging disabled in ini"));
+ hddLog(VOS_TRACE_LEVEL_INFO, FL("Logging disabled in ini"));
}
#endif
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index 0490e18..b691f71 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -3721,8 +3721,7 @@
tANI_U8 setMcstBcstFilter;
}tSirWlanSetRxpFilters,*tpSirWlanSetRxpFilters;
-typedef void(*MgmtLoggingInitReqCb)(void *mgmtlogInitCbContext,
- VOS_STATUS status);
+typedef void(*FWLoggingInitReqCb)(void *fwlogInitCbContext, VOS_STATUS status);
typedef void ( *tGetFrameLogCallback) (void *pContext);
typedef struct sAniGetFrameLogReq
@@ -3736,15 +3735,18 @@
} tAniGetFrameLogReq, *tpAniGetFrameLogReq;
-typedef struct sSirMgmtLoggingInitParam
+typedef struct sSirFWLoggingInitParam
{
tANI_U8 enableFlag;
tANI_U8 frameType;
tANI_U8 frameSize;
tANI_U8 bufferMode;
- MgmtLoggingInitReqCb mgmtlogInitCallback;
- void *mgmtlogInitCbContext;
-}tSirMgmtLoggingInitParam,*tpSirMgmtLoggingInitParam;
+ tANI_U8 continuousFrameLogging;
+ tANI_U8 minLogBufferSize;
+ tANI_U8 maxLogBufferSize;
+ FWLoggingInitReqCb fwlogInitCallback;
+ void *fwlogInitCbContext;
+}tSirFWLoggingInitParam,*tpSirFWLoggingInitParam;
#ifdef FEATURE_WLAN_SCAN_PNO
//
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index fd711be..2fa32dd 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -129,6 +129,7 @@
#endif
MGMT_FRAME_LOGGING = 53,
ENHANCED_TXBD_COMPLETION = 54,
+ LOGGING_ENHANCEMENT = 55,
//MAX_FEATURE_SUPPORTED = 128
} placeHolderInCapBitmap;
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index f0b88c5..3ffd334 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -2180,12 +2180,12 @@
hHal - The handle returned by macOpen.
- wlanMgmtLoggingInitParam - Params to initialize frame logging
+ wlanFWLoggingInitParam - Params to initialize frame logging
\return eHalStatus
--------------------------------------------------------------------------- */
eHalStatus sme_InitMgmtFrameLogging( tHalHandle hHal,
- tpSirMgmtLoggingInitParam wlanMgmtLoggingInitParam);
+ tpSirFWLoggingInitParam wlanFWLoggingInitParam);
/* ---------------------------------------------------------------------------
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 1b3c8d8..4142a0b 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -7496,14 +7496,14 @@
hHal - The handle returned by macOpen.
- wlanMgmtLoggingInitParam - Params to initialize frame logging
+ wlanFWLoggingInitParam - Params to initialize frame logging
\return eHalStatus
--------------------------------------------------------------------------- */
eHalStatus sme_InitMgmtFrameLogging( tHalHandle hHal,
- tSirMgmtLoggingInitParam *wlanMgmtLoggingInitParam)
+ tSirFWLoggingInitParam *wlanFWLoggingInitParam)
{
eHalStatus status = eHAL_STATUS_SUCCESS;
VOS_STATUS vosStatus = VOS_STATUS_SUCCESS;
@@ -7514,7 +7514,7 @@
sme_AcquireGlobalLock( &pMac->sme ) ) )
{
/* serialize the req through MC thread */
- vosMessage.bodyptr = wlanMgmtLoggingInitParam;
+ vosMessage.bodyptr = wlanFWLoggingInitParam;
vosMessage.type = WDA_MGMT_LOGGING_INIT_REQ;
vosStatus = vos_mq_post_message( VOS_MQ_ID_WDA, &vosMessage );
if ( !VOS_IS_STATUS_SUCCESS(vosStatus) )
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 7957ca9..959c50b 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -5217,14 +5217,14 @@
}
/*
- * FUNCTION: WDA_MgmtLoggingInitRspCallback
+ * FUNCTION: WDA_FWLoggingInitRspCallback
* recieves Mgmt Logging init response from FW
*/
-void WDA_MgmtLoggingInitRspCallback(WDI_MgmtLoggingRspParamType* wdiRsp,
+void WDA_FWLoggingInitRspCallback(WDI_FWLoggingInitRspParamType* wdiRsp,
void* pUserData)
{
tWDA_ReqParams *pWdaParams = (tWDA_ReqParams *)pUserData;
- tSirMgmtLoggingInitParam *pMgmtLoggingInitParams;
+ tSirFWLoggingInitParam *pFWLoggingInitParams;
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_INFO,
"<------ %s " ,__func__);
@@ -5246,18 +5246,18 @@
return ;
}
- pMgmtLoggingInitParams = (tSirMgmtLoggingInitParam *)pWdaParams->wdaMsgParam;
+ pFWLoggingInitParams = (tSirFWLoggingInitParam *)pWdaParams->wdaMsgParam;
- if(pMgmtLoggingInitParams->mgmtlogInitCallback)
+ if(pFWLoggingInitParams->fwlogInitCallback)
{
- pMgmtLoggingInitParams->mgmtlogInitCallback(
- pMgmtLoggingInitParams->mgmtlogInitCbContext,
- CONVERT_WDI2VOS_STATUS(wdiRsp->wdiStatus));
+ pFWLoggingInitParams->fwlogInitCallback(
+ pFWLoggingInitParams->fwlogInitCbContext,
+ CONVERT_WDI2VOS_STATUS(wdiRsp->status));
}
else
{
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "%s: pMgmtLoggingInitParams callback is NULL", __func__);
+ "%s: pFWLoggingInitParams callback is NULL", __func__);
}
vos_mem_free(pWdaParams->wdaWdiApiMsgParam);
@@ -9663,7 +9663,7 @@
if(NULL == pGetFrameLog)
{
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "%s: pMgmtLoggingInitParam received NULL", __func__);
+ "%s: pFWLoggingInitParam received NULL", __func__);
VOS_ASSERT(0) ;
return VOS_STATUS_E_FAULT;
}
@@ -9715,37 +9715,37 @@
}
/*
- * FUNCTION: WDA_ProcessMgmtLoggingInitReq
+ * FUNCTION: WDA_ProcessFWLoggingInitReq
*
*/
-VOS_STATUS WDA_ProcessMgmtLoggingInitReq(tWDA_CbContext *pWDA,
- tSirMgmtLoggingInitParam *pMgmtLoggingInitParam)
+VOS_STATUS WDA_ProcessFWLoggingInitReq(tWDA_CbContext *pWDA,
+ tSirFWLoggingInitParam *pFWLoggingInitParam)
{
VOS_STATUS status = VOS_STATUS_SUCCESS;
WDI_Status wstatus;
- WDI_MgmtLoggingInitReqInfoType *wdiMgmtLoggingInitInfo;
+ WDI_FWLoggingInitReqInfoType *wdiFWLoggingInitInfo;
tWDA_ReqParams *pWdaParams ;
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_INFO,
"------> %s " ,__func__);
/* Sanity Check*/
- if(NULL == pMgmtLoggingInitParam)
+ if(NULL == pFWLoggingInitParam)
{
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
- "%s: pMgmtLoggingInitParam received NULL", __func__);
+ "%s: pFWLoggingInitParam received NULL", __func__);
VOS_ASSERT(0) ;
return VOS_STATUS_E_FAULT;
}
- wdiMgmtLoggingInitInfo = (WDI_MgmtLoggingInitReqInfoType *)vos_mem_malloc(
- sizeof(WDI_MgmtLoggingInitReqInfoType));
- if(NULL == wdiMgmtLoggingInitInfo)
+ wdiFWLoggingInitInfo = (WDI_FWLoggingInitReqInfoType *)vos_mem_malloc(
+ sizeof(WDI_FWLoggingInitReqInfoType));
+ if(NULL == wdiFWLoggingInitInfo)
{
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
"%s: VOS MEM Alloc Failure", __func__);
VOS_ASSERT(0);
- vos_mem_free(pMgmtLoggingInitParam);
+ vos_mem_free(pFWLoggingInitParam);
return VOS_STATUS_E_NOMEM;
}
@@ -9755,26 +9755,28 @@
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
"%s: VOS MEM Alloc Failure", __func__);
VOS_ASSERT(0);
- vos_mem_free(wdiMgmtLoggingInitInfo);
- vos_mem_free(pMgmtLoggingInitParam);
+ vos_mem_free(wdiFWLoggingInitInfo);
+ vos_mem_free(pFWLoggingInitParam);
return VOS_STATUS_E_NOMEM;
}
- wdiMgmtLoggingInitInfo->enableFlag=
- pMgmtLoggingInitParam->enableFlag;
- wdiMgmtLoggingInitInfo->frameType=
- pMgmtLoggingInitParam->frameType;
- wdiMgmtLoggingInitInfo->frameSize=
- pMgmtLoggingInitParam->frameSize;
- wdiMgmtLoggingInitInfo->bufferMode=
- pMgmtLoggingInitParam->bufferMode;
+ wdiFWLoggingInitInfo->enableFlag = pFWLoggingInitParam->enableFlag;
+ wdiFWLoggingInitInfo->frameType = pFWLoggingInitParam->frameType;
+ wdiFWLoggingInitInfo->frameSize = pFWLoggingInitParam->frameSize;
+ wdiFWLoggingInitInfo->bufferMode = pFWLoggingInitParam->bufferMode;
+ wdiFWLoggingInitInfo->continuousFrameLogging =
+ pFWLoggingInitParam->continuousFrameLogging;
+ wdiFWLoggingInitInfo->minLogBufferSize=
+ pFWLoggingInitParam->minLogBufferSize;
+ wdiFWLoggingInitInfo->maxLogBufferSize=
+ pFWLoggingInitParam->maxLogBufferSize;
pWdaParams->pWdaContext = pWDA;
- pWdaParams->wdaMsgParam = pMgmtLoggingInitParam;
- pWdaParams->wdaWdiApiMsgParam = (void *)wdiMgmtLoggingInitInfo;
+ pWdaParams->wdaMsgParam = pFWLoggingInitParam;
+ pWdaParams->wdaWdiApiMsgParam = (void *)wdiFWLoggingInitInfo;
- wstatus = WDI_MgmtLoggingInitReq(wdiMgmtLoggingInitInfo,
- (WDI_MgmtLoggingInitRspCb)WDA_MgmtLoggingInitRspCallback,
+ wstatus = WDI_FWLoggingInitReq(wdiFWLoggingInitInfo,
+ (WDI_FWLoggingInitRspCb)WDA_FWLoggingInitRspCallback,
pWdaParams);
if(IS_WDI_STATUS_FAILURE(wstatus))
{
@@ -13679,8 +13681,8 @@
}
case WDA_MGMT_LOGGING_INIT_REQ:
{
- WDA_ProcessMgmtLoggingInitReq(pWDA,
- (tSirMgmtLoggingInitParam *)pMsg->bodyptr);
+ WDA_ProcessFWLoggingInitReq(pWDA,
+ (tSirFWLoggingInitParam *)pMsg->bodyptr);
break;
}
case WDA_GET_FRAME_LOG_REQ:
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
index c1d9ac1..1df38c6 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -152,6 +152,7 @@
#define PERIODIC_TX_PTRN_MAX_SIZE 1536
#define MAXNUM_PERIODIC_TX_PTRNS 6
#define WDI_DISA_MAX_PAYLOAD_SIZE 1600
+#define MAX_NUM_OF_BUFFER 3
/*============================================================================
* GENERIC STRUCTURES
@@ -2675,14 +2676,22 @@
wpt_uint32 wdiStatus;
}WDI_GetFrameLogRspParamType;
/*---------------------------------------------------------------------------
- WDI_MgmtLoggingRspParamType
+ WDI_FWLoggingInitRspParamType
---------------------------------------------------------------------------*/
typedef struct
{
- /* wdi status */
- wpt_uint32 wdiStatus;
-
-}WDI_MgmtLoggingRspParamType;
+ //FW mail box address
+ wpt_uint64 logMailBoxAddr;
+ wpt_uint32 status;
+ //Logging mail box version
+ wpt_uint8 logMailBoxVer;
+ //Qshrink is enabled
+ wpt_boolean logCompressEnabled;
+ //Reserved for future purpose
+ wpt_uint32 reserved0;
+ wpt_uint32 reserved1;
+ wpt_uint32 reserved2;
+}WDI_FWLoggingInitRspParamType;
/*---------------------------------------------------------------------------
WDI_AddBAReqinfoType
---------------------------------------------------------------------------*/
@@ -4061,13 +4070,23 @@
wpt_uint8 frameType;
wpt_uint8 frameSize;
wpt_uint8 bufferMode;
-}WDI_MgmtLoggingInitReqInfoType;
+ wpt_uint8 continuousFrameLogging;
+ wpt_uint8 minLogBufferSize;
+ wpt_uint8 maxLogBufferSize;
+}WDI_FWLoggingInitReqInfoType;
typedef struct
{
wpt_uint8 flags;
}WDI_GetFrameLogReqInfoType;
+typedef struct
+{
+ wpt_uint64 logBuffAddress[MAX_NUM_OF_BUFFER];
+ wpt_uint32 status;
+ wpt_uint32 logBuffLength[MAX_NUM_OF_BUFFER];
+}WDI_FWLoggingDXEdoneIndInfoType;
+
/*---------------------------------------------------------------------------
WDI_BeaconFilterInfoType
Beacon Filtering data structures passed to WDA form UMAC
@@ -8002,8 +8021,8 @@
void *pUserData);
typedef void (*WDI_EncryptMsgRspCb)(wpt_uint8 status, void *pEventData, void* pUserData);
-typedef void (*WDI_MgmtLoggingInitRspCb)(
- WDI_MgmtLoggingRspParamType *wdiRsp, void *pUserData);
+typedef void (*WDI_FWLoggingInitRspCb)(
+ WDI_FWLoggingInitRspParamType *wdiRsp, void *pUserData);
typedef void (*WDI_GetFrameLogRspCb)(
WDI_GetFrameLogRspParamType *wdiRsp, void *pUserData);
@@ -9469,7 +9488,7 @@
);
/**
- @brief WDI_MgmtLoggingInitReq will be called when the upper
+ @brief WDI_FWLoggingInitReq will be called when the upper
MAC wants to initialize frame logging. Upon the call of
this API the WLAN DAL will pack and send a HAL
Frame logging init request message to
@@ -9479,10 +9498,10 @@
be allowed in any other state.
- @param pwdiMgmtLoggingInitReqParams: the Frame Logging params
+ @param pwdiFWLoggingInitReqParams: the Frame Logging params
as specified by the Device Interface
- wdiMgmtLoggingInitReqCb: callback for passing back the
+ wdiFWLoggingInitReqCb: callback for passing back the
response of the frame logging init operation received
from the device
@@ -9492,10 +9511,10 @@
@return Result of the function call
*/
WDI_Status
-WDI_MgmtLoggingInitReq
+WDI_FWLoggingInitReq
(
- WDI_MgmtLoggingInitReqInfoType *pwdiMgmtLoggingInitReqInfo,
- WDI_MgmtLoggingInitRspCb wdiMgmtLoggingInitReqCb,
+ WDI_FWLoggingInitReqInfoType *pwdiFWLoggingInitReqInfo,
+ WDI_FWLoggingInitRspCb wdiFWLoggingInitReqCb,
void* pUserData
);
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi_i.h b/CORE/WDI/CP/inc/wlan_qct_wdi_i.h
index a8d78f5..8a8a3a6 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi_i.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi_i.h
@@ -470,7 +470,7 @@
/* Send command to encrypt the given message */
WDI_ENCRYPT_MSG_REQ = 103,
- WDI_MGMT_LOGGING_INIT_REQ = 104,
+ WDI_FW_LOGGING_INIT_REQ = 104,
WDI_GET_FRAME_LOG_REQ = 105,
/* NAN Request */
@@ -518,6 +518,7 @@
WDI_CH_SWITCH_REQ_V1,
WDI_TDLS_CHAN_SWITCH_REQ,
WDI_SET_RTS_CTS_HTVHT_IND,
+ WDI_FW_LOGGING_DXE_DONE_IND,
/*Keep adding the indications to the max request
such that we keep them sepparate */
@@ -810,7 +811,7 @@
/* Send command to encrypt the given message */
WDI_ENCRYPT_MSG_RSP = 103,
- WDI_MGMT_LOGGING_INIT_RSP = 104,
+ WDI_FW_LOGGING_INIT_RSP = 104,
WDI_GET_FRAME_LOG_RSP = 105,
WDI_NAN_RESPONSE = 106,
@@ -6137,14 +6138,21 @@
);
WDI_Status
-WDI_ProcessMgmtLoggingInitReq
+WDI_ProcessFWLoggingDXEdoneInd
(
WDI_ControlBlockType* pWDICtx,
WDI_EventInfoType* pEventData
);
WDI_Status
-WDI_ProcessMgmtFrameLoggingInitRsp
+WDI_ProcessFWLoggingInitReq
+(
+ WDI_ControlBlockType* pWDICtx,
+ WDI_EventInfoType* pEventData
+);
+
+WDI_Status
+WDI_ProcessFWFrameLoggingInitRsp
(
WDI_ControlBlockType* pWDICtx,
WDI_EventInfoType* pEventData
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index a64a63e..cd25d64 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -203,6 +203,7 @@
,FEATURE_NOT_SUPPORTED //52
,MGMT_FRAME_LOGGING //53
,ENHANCED_TXBD_COMPLETION //54
+ ,LOGGING_ENHANCEMENT //55
};
/*--------------------------------------------------------------------------
@@ -471,7 +472,7 @@
WDI_ProcessEncryptMsgReq, /* WDI_ENCRYPT_MSG_REQ*/
- WDI_ProcessMgmtLoggingInitReq, /* WDI_MGMT_LOGGING_INIT_REQ*/
+ WDI_ProcessFWLoggingInitReq, /* WDI_FW_LOGGING_INIT_REQ*/
WDI_ProcessGetFrameLogReq, /* WDI_GET_FRAME_LOG_REQ*/
WDI_ProcessNanRequest, /* WDI_NAN_REQUEST*/
@@ -511,7 +512,7 @@
NULL,
#endif
WDI_ProcessSetRtsCtsHtvhtInd, /* WDI_SET_RTS_CTS_HTVHT_IND */
-
+ WDI_ProcessFWLoggingDXEdoneInd, /* WDI_FW_LOGGING_DXE_DONE_IND */
};
@@ -742,7 +743,7 @@
WDI_ProcessGetFwStatsRsp, /*WDI_GET_FW_STATS_RSP*/
WDI_ProcessEncryptMsgRsp, /* WDI_ENCRYPT_MSG_RSP*/
- WDI_ProcessMgmtFrameLoggingInitRsp, /* WDI_MGMT_LOGGING_INIT_RSP*/
+ WDI_ProcessFWFrameLoggingInitRsp, /* WDI_FW_LOGGING_INIT_RSP*/
WDI_ProcessGetFrameLogRsp, /* WDI_GET_FRAME_LOG_RSP*/
WDI_ProcessNanResponse, /* WDI_NAN_RESPONSE */
@@ -1170,7 +1171,7 @@
CASE_RETURN_STRING( WDI_SPOOF_MAC_ADDR_REQ);
CASE_RETURN_STRING( WDI_GET_FW_STATS_REQ);
CASE_RETURN_STRING( WDI_ENCRYPT_MSG_REQ);
- CASE_RETURN_STRING( WDI_MGMT_LOGGING_INIT_REQ);
+ CASE_RETURN_STRING( WDI_FW_LOGGING_INIT_REQ);
CASE_RETURN_STRING( WDI_GET_FRAME_LOG_REQ);
CASE_RETURN_STRING( WDI_NAN_REQUEST );
CASE_RETURN_STRING( WDI_SET_RTS_CTS_HTVHT_IND );
@@ -1309,7 +1310,7 @@
#endif /* WLAN_FEATURE_EXTSCAN */
CASE_RETURN_STRING( WDI_GET_FW_STATS_RSP);
CASE_RETURN_STRING( WDI_ENCRYPT_MSG_RSP);
- CASE_RETURN_STRING( WDI_MGMT_LOGGING_INIT_RSP);
+ CASE_RETURN_STRING( WDI_FW_LOGGING_INIT_RSP);
CASE_RETURN_STRING( WDI_GET_FRAME_LOG_RSP);
default:
return "Unknown WDI MessageId";
@@ -1473,6 +1474,10 @@
case TDLS_OFF_CHANNEL: snprintf(pCapStr, sizeof("TDLS_OFF_CHANNEL"), "%s", "TDLS_OFF_CHANNEL");
pCapStr += strlen("TDLS_OFF_CHANNEL");
break;
+ case LOGGING_ENHANCEMENT: snprintf(pCapStr, sizeof("LOGGING_ENHANCEMENT"), "%s", "LOGGING_ENHANCEMENT");
+ pCapStr += strlen("LOGGING_ENHANCEMENT");
+ break;
+
}
*pCapStr++ = ',';
@@ -4219,6 +4224,52 @@
}/*WDI_SetUapsdAcParamsReq*/
/**
+ @brief WDI_FWLoggingDXEdoneInd
+
+ FW Logging DXE done Indication from the upper layer will be sent
+ down to HAL
+
+ @param WDI_FWLoggingDXEdoneIndInfoType
+
+ @see
+
+ @return Status of the request
+*/
+WDI_Status
+WDI_FWLoggingDXEdoneInd
+(
+ WDI_FWLoggingDXEdoneIndInfoType* pwdiFWLoggingDXEdoneInd
+)
+{
+
+ WDI_EventInfoType wdiEventData;
+ /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+ /*------------------------------------------------------------------------
+ Sanity Check
+ ------------------------------------------------------------------------*/
+ if ( eWLAN_PAL_FALSE == gWDIInitialized )
+ {
+ WPAL_TRACE(eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_ERROR,
+ "WDI API call before module is initialized - Fail request");
+
+ return WDI_STATUS_E_NOT_ALLOWED;
+ }
+
+ /*------------------------------------------------------------------------
+ Fill in Event data and post to the Main FSM
+ ------------------------------------------------------------------------*/
+ wdiEventData.wdiRequest = WDI_FW_LOGGING_DXE_DONE_IND;
+ wdiEventData.pEventData = pwdiFWLoggingDXEdoneInd;
+ wdiEventData.uEventDataSize = sizeof(*pwdiFWLoggingDXEdoneInd);
+ wdiEventData.pCBfnc = NULL;
+ wdiEventData.pUserData = NULL;
+
+ return WDI_PostMainEvent(&gWDICb, WDI_REQUEST_EVENT, &wdiEventData);
+
+}/*WDI_FWLoggingDXEdoneInd*/
+
+/**
@brief WDI_GetFrameLogReq will be called when the upper
MAC wants to initialize frame logging. Upon the call of
this API the WLAN DAL will pack and send a HAL
@@ -4275,7 +4326,7 @@
return WDI_PostMainEvent(&gWDICb, WDI_REQUEST_EVENT, &wdiEventData);
}
/**
- @brief WDI_MgmtLoggingInitReq will be called when the upper
+ @brief WDI_FWLoggingInitReq will be called when the upper
MAC wants to initialize frame logging. Upon the call of
this API the WLAN DAL will pack and send a HAL
Frame logging init request message to
@@ -4285,10 +4336,10 @@
be allowed in any other state.
- @param pwdiMgmtLoggingInitReqParams: the Frame Logging params
+ @param pwdiFWLoggingInitReqParams: the Frame Logging params
as specified by the Device Interface
- wdiMgmtLoggingInitReqCb: callback for passing back the
+ wdiFWLoggingInitReqCb: callback for passing back the
response of the frame logging init operation received
from the device
@@ -4298,10 +4349,10 @@
@return Result of the function call
*/
WDI_Status
-WDI_MgmtLoggingInitReq
+WDI_FWLoggingInitReq
(
- WDI_MgmtLoggingInitReqInfoType *pwdiMgmtLoggingInitReqInfo,
- WDI_MgmtLoggingInitRspCb wdiMgmtLoggingInitRspCb,
+ WDI_FWLoggingInitReqInfoType *pwdiFWLoggingInitReqInfo,
+ WDI_FWLoggingInitRspCb wdiFWLoggingInitRspCb,
void* pUserData
)
{
@@ -4321,10 +4372,10 @@
/*------------------------------------------------------------------------
Fill in Event data and post to the Main FSM
------------------------------------------------------------------------*/
- wdiEventData.wdiRequest = WDI_MGMT_LOGGING_INIT_REQ;
- wdiEventData.pEventData = pwdiMgmtLoggingInitReqInfo;
- wdiEventData.uEventDataSize = sizeof(*pwdiMgmtLoggingInitReqInfo);
- wdiEventData.pCBfnc = wdiMgmtLoggingInitRspCb;
+ wdiEventData.wdiRequest = WDI_FW_LOGGING_INIT_REQ;
+ wdiEventData.pEventData = pwdiFWLoggingInitReqInfo;
+ wdiEventData.uEventDataSize = sizeof(*pwdiFWLoggingInitReqInfo);
+ wdiEventData.pCBfnc = wdiFWLoggingInitRspCb;
wdiEventData.pUserData = pUserData;
return WDI_PostMainEvent(&gWDICb, WDI_REQUEST_EVENT, &wdiEventData);
@@ -24134,8 +24185,8 @@
return WLAN_HAL_FW_STATS_REQ;
case WDI_ENCRYPT_MSG_REQ:
return WLAN_HAL_ENCRYPT_DATA_REQ;
- case WDI_MGMT_LOGGING_INIT_REQ:
- return WLAN_HAL_MGMT_LOGGING_INIT_REQ;
+ case WDI_FW_LOGGING_INIT_REQ:
+ return WLAN_HAL_FW_LOGGING_INIT_REQ;
case WDI_GET_FRAME_LOG_REQ:
return WLAN_HAL_GET_FRAME_LOG_REQ;
case WDI_NAN_REQUEST:
@@ -24146,6 +24197,8 @@
return WLAN_HAL_ENABLE_MONITOR_MODE_REQ;
case WDI_MON_STOP_REQ:
return WLAN_HAL_DISABLE_MONITOR_MODE_REQ;
+ case WDI_FW_LOGGING_DXE_DONE_IND:
+ return WLAN_HAL_FW_LOGGING_DXE_DONE_IND;
default:
return WLAN_HAL_MSG_MAX;
}
@@ -24463,8 +24516,8 @@
return WDI_GET_FW_STATS_RSP;
case WLAN_HAL_ENCRYPT_DATA_RSP:
return WDI_ENCRYPT_MSG_RSP;
- case WLAN_HAL_MGMT_LOGGING_INIT_RSP:
- return WDI_MGMT_LOGGING_INIT_RSP;
+ case WLAN_HAL_FW_LOGGING_INIT_RSP:
+ return WDI_FW_LOGGING_INIT_RSP;
case WLAN_HAL_GET_FRAME_LOG_RSP:
return WDI_GET_FRAME_LOG_RSP;
case WLAN_HAL_NAN_RSP:
@@ -34295,7 +34348,7 @@
return WDI_STATUS_SUCCESS;
}
/**
- @brief Process MgmtLoggingInit Request
+ @brief Process FWLoggingInit Request
@param pWDICtx: pointer to the WLAN DAL context
pEventData: pointer to the event information structure
@@ -34316,7 +34369,7 @@
wpt_uint16 usSendSize = 0;
WDI_Status wdiStatus;
tGetFrameLogReqMsg halGetFrameLogReq;
- WDI_MgmtLoggingInitRspCb wdiGetFrameLogRspCb;
+ WDI_FWLoggingInitRspCb wdiGetFrameLogRspCb;
VOS_TRACE( VOS_MODULE_ID_WDI, VOS_TRACE_LEVEL_INFO,
@@ -34355,7 +34408,7 @@
halGetFrameLogReq.tGetFrameLogReqParams.flags =
wdiGetFrameLogReq->flags;
- wdiGetFrameLogRspCb = (WDI_MgmtLoggingInitRspCb)pEventData->pCBfnc;
+ wdiGetFrameLogRspCb = (WDI_FWLoggingInitRspCb)pEventData->pCBfnc;
wpalMemoryCopy( pSendBuffer+usDataOffset,
&halGetFrameLogReq.tGetFrameLogReqParams,
@@ -34380,15 +34433,15 @@
@return Result of the function call
*/
WDI_Status
-WDI_ProcessMgmtFrameLoggingInitRsp
+WDI_ProcessFWFrameLoggingInitRsp
(
WDI_ControlBlockType* pWDICtx,
WDI_EventInfoType* pEventData
)
{
- tMgmtLoggingInitResp halRsp;
- WDI_MgmtLoggingInitRspCb wdiMgmtFrameLoggingInitRspCb;
- WDI_MgmtLoggingRspParamType wdiMgmtFrameLoggingRsp;
+ tFWLoggingInitResp halRsp;
+ WDI_FWLoggingInitRspCb wdiFWFrameLoggingInitRspCb;
+ WDI_FWLoggingInitRspParamType wdiFWLogginginitRsp;
VOS_TRACE( VOS_MODULE_ID_WDI, VOS_TRACE_LEVEL_INFO,
"%s: %d Enter",__func__, __LINE__);
@@ -34404,24 +34457,91 @@
WDI_ASSERT(0);
return WDI_STATUS_E_FAILURE;
}
- wdiMgmtFrameLoggingInitRspCb = (WDI_MgmtLoggingInitRspCb)pWDICtx->pfncRspCB;
+ wdiFWFrameLoggingInitRspCb = (WDI_FWLoggingInitRspCb)pWDICtx->pfncRspCB;
/*-------------------------------------------------------------------------
Extract response and send it to UMAC
-------------------------------------------------------------------------*/
wpalMemoryCopy( &halRsp, pEventData->pEventData, sizeof(halRsp));
- wdiMgmtFrameLoggingRsp.wdiStatus = WDI_HAL_2_WDI_STATUS(halRsp.status);
+ wdiFWLogginginitRsp.status = WDI_HAL_2_WDI_STATUS(halRsp.status);
/*Notify UMAC*/
- wdiMgmtFrameLoggingInitRspCb( &wdiMgmtFrameLoggingRsp,
- pWDICtx->pRspCBUserData);
+ wdiFWFrameLoggingInitRspCb( &wdiFWLogginginitRsp, pWDICtx->pRspCBUserData);
return WDI_STATUS_SUCCESS;
}
+WDI_Status
+WDI_ProcessFWLoggingDXEdoneInd
+(
+ WDI_ControlBlockType* pWDICtx,
+ WDI_EventInfoType* pEventData
+)
+{
+ wpt_uint8* pSendBuffer = NULL;
+ wpt_uint16 usDataOffset = 0;
+ wpt_uint16 usSendSize = 0;
+ WDI_FWLoggingDXEdoneIndInfoType *pwdiFWLoggingDXEdoneInd;
+ tFWLoggingDxeDoneInd *FWLoggingDxeDoneIndParams;
+ WDI_Status wdiStatus = WDI_STATUS_SUCCESS;
+
+
+ /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+ WPAL_TRACE(eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_INFO,
+ "%s", __func__);
+
+ /*-------------------------------------------------------------------------
+ Sanity check
+ -------------------------------------------------------------------------*/
+ if (( NULL == pEventData ) || ( NULL == pEventData->pEventData ))
+ {
+ WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_FATAL,
+ "%s: Invalid parameters", __func__);
+ WDI_ASSERT(0);
+ return WDI_STATUS_E_FAILURE;
+ }
+ pwdiFWLoggingDXEdoneInd =
+ (WDI_FWLoggingDXEdoneIndInfoType*)pEventData->pEventData;
+ /*-----------------------------------------------------------------------
+ Get message buffer
+ -----------------------------------------------------------------------*/
+
+ if (( WDI_STATUS_SUCCESS != WDI_GetMessageBuffer( pWDICtx,
+ WDI_FW_LOGGING_DXE_DONE_IND,
+ sizeof(tHalRtsCtsHtvhtIndParams),
+ &pSendBuffer, &usDataOffset, &usSendSize))||
+ ( usSendSize < (usDataOffset + sizeof(tHalRtsCtsHtvhtIndParams) )))
+ {
+ WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_FATAL,
+ "Unable to get send buffer in RTS CTS ind %p ",
+ pEventData);
+ WDI_ASSERT(0);
+ return WDI_STATUS_E_FAILURE;
+ }
+ FWLoggingDxeDoneIndParams =
+ (tFWLoggingDxeDoneInd*)(pSendBuffer + usDataOffset);
+
+ wpalMemoryCopy(&FWLoggingDxeDoneIndParams->logBuffAddress,
+ &pwdiFWLoggingDXEdoneInd->logBuffAddress, MAX_NUM_OF_BUFFER *
+ sizeof(FWLoggingDxeDoneIndParams->logBuffAddress[0]));
+ FWLoggingDxeDoneIndParams->status= pwdiFWLoggingDXEdoneInd->status;
+ wpalMemoryCopy(&FWLoggingDxeDoneIndParams->logBuffLength,
+ &pwdiFWLoggingDXEdoneInd->logBuffLength, MAX_NUM_OF_BUFFER *
+ sizeof(FWLoggingDxeDoneIndParams->logBuffLength[0]));
+
+ pWDICtx->pReqStatusUserData = NULL;
+ pWDICtx->pfncRspCB = NULL;
+ /*-------------------------------------------------------------------------
+ Send FW_LOGGING_DXE_DONE_IND Indication to HAL
+ -------------------------------------------------------------------------*/
+ wdiStatus = WDI_SendIndication( pWDICtx, pSendBuffer, usSendSize);
+ return (wdiStatus != WDI_STATUS_SUCCESS) ? wdiStatus:WDI_STATUS_SUCCESS_SYNC;
+}
+
/**
- @brief Process MgmtLoggingInit Request
+ @brief Process FWLoggingInit Request
@param pWDICtx: pointer to the WLAN DAL context
pEventData: pointer to the event information structure
@@ -34430,19 +34550,19 @@
@return Result of the function call
*/
WDI_Status
-WDI_ProcessMgmtLoggingInitReq
+WDI_ProcessFWLoggingInitReq
(
WDI_ControlBlockType* pWDICtx,
WDI_EventInfoType* pEventData
)
{
- WDI_MgmtLoggingInitReqInfoType* wdiMgmtLoggingInitReq;
+ WDI_FWLoggingInitReqInfoType* wdiFWLoggingInitReq;
wpt_uint8* pSendBuffer = NULL;
wpt_uint16 usDataOffset = 0;
wpt_uint16 usSendSize = 0;
WDI_Status wdiStatus;
- tHalMgmtLoggingInitReqMsg halMgmtLoggingInitReq;
- WDI_MgmtLoggingInitRspCb wdiMgmtLoggingInitRspCb;
+ tHalFWLoggingInitReqMsg halFWLoggingInitReq;
+ WDI_FWLoggingInitRspCb wdiFWLoggingInitRspCb;
VOS_TRACE( VOS_MODULE_ID_WDI, VOS_TRACE_LEVEL_INFO,
@@ -34459,18 +34579,18 @@
WDI_ASSERT(0);
return WDI_STATUS_E_FAILURE;
}
- wdiMgmtLoggingInitReq =
- (WDI_MgmtLoggingInitReqInfoType *)pEventData->pEventData;
+ wdiFWLoggingInitReq =
+ (WDI_FWLoggingInitReqInfoType *)pEventData->pEventData;
/*-----------------------------------------------------------------------
Get message buffer
-----------------------------------------------------------------------*/
if (( WDI_STATUS_SUCCESS != WDI_GetMessageBuffer( pWDICtx,
- WDI_MGMT_LOGGING_INIT_REQ,
- sizeof(halMgmtLoggingInitReq.tMgmtLoggingInitReqParams),
+ WDI_FW_LOGGING_INIT_REQ,
+ sizeof(halFWLoggingInitReq.tFWLoggingInitReqParams),
&pSendBuffer, &usDataOffset, &usSendSize))||
(usSendSize < (usDataOffset +
- sizeof(halMgmtLoggingInitReq.tMgmtLoggingInitReqParams))))
+ sizeof(halFWLoggingInitReq.tFWLoggingInitReqParams))))
{
WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_FATAL,
"Unable to get send buffer in Process Mgmt Logging Init Req");
@@ -34478,27 +34598,33 @@
return WDI_STATUS_E_FAILURE;
}
- halMgmtLoggingInitReq.tMgmtLoggingInitReqParams.enableFlag=
- wdiMgmtLoggingInitReq->enableFlag;
- halMgmtLoggingInitReq.tMgmtLoggingInitReqParams.frameSize=
- wdiMgmtLoggingInitReq->frameSize;
- halMgmtLoggingInitReq.tMgmtLoggingInitReqParams.frameType=
- wdiMgmtLoggingInitReq->frameType;
- halMgmtLoggingInitReq.tMgmtLoggingInitReqParams.bufferMode=
- wdiMgmtLoggingInitReq->bufferMode;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.enableFlag=
+ wdiFWLoggingInitReq->enableFlag;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.frameSize=
+ wdiFWLoggingInitReq->frameSize;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.frameType=
+ wdiFWLoggingInitReq->frameType;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.bufferMode=
+ wdiFWLoggingInitReq->bufferMode;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.continuousFrameLogging=
+ wdiFWLoggingInitReq->continuousFrameLogging;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.minLogBuffSize=
+ wdiFWLoggingInitReq->minLogBufferSize;
+ halFWLoggingInitReq.tFWLoggingInitReqParams.maxLogBuffSize=
+ wdiFWLoggingInitReq->maxLogBufferSize;
- wdiMgmtLoggingInitRspCb = (WDI_MgmtLoggingInitRspCb)pEventData->pCBfnc;
+ wdiFWLoggingInitRspCb = (WDI_FWLoggingInitRspCb)pEventData->pCBfnc;
wpalMemoryCopy( pSendBuffer+usDataOffset,
- &halMgmtLoggingInitReq.tMgmtLoggingInitReqParams,
- sizeof(halMgmtLoggingInitReq.tMgmtLoggingInitReqParams));
+ &halFWLoggingInitReq.tFWLoggingInitReqParams,
+ sizeof(halFWLoggingInitReq.tFWLoggingInitReqParams));
/*-------------------------------------------------------------------------
Send Mgmt Logging Init Request to HAL
------------------------------------------------------------------------*/
wdiStatus = WDI_SendMsg( pWDICtx, pSendBuffer, usSendSize,
- wdiMgmtLoggingInitRspCb, pEventData->pUserData,
- WDI_MGMT_LOGGING_INIT_RSP);
+ wdiFWLoggingInitRspCb, pEventData->pUserData,
+ WDI_FW_LOGGING_INIT_RSP);
return wdiStatus;
}