summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaveen Rawat <nrawat@qca.qualcomm.com>2013-10-21 01:05:43 -0700
committerMadan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com>2013-11-19 16:23:55 -0800
commitfc55c7eabb9514084d4f2560ff004ebfcff00f09 (patch)
treed225cb8941a3cdeea91b6c8b08fa09b15665237e
parent2f1fee89d1fb69bbb4000aa50f723739727d3676 (diff)
qcacld: CCX upload to supplicant (CLD changes)
These changes are CLD specific changes for ccx upload feature. Original changes of prima are in gerrit: 480109 Part 1 of this gerrit, which includes porting effort from prima to cld is in gerrit: 491943 Change-Id: I9a61fd9b6c2217a07ac1cc5cf271a4a06911c07d CRs-Fixed: 564483
-rw-r--r--CORE/CLD_TXRX/TLSHIM/tl_shim.c8
-rw-r--r--CORE/SERVICES/WMA/wma.c56
2 files changed, 45 insertions, 19 deletions
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
index 801213f6c867..bf677e21bfeb 100644
--- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c
+++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
@@ -56,7 +56,7 @@
#define TLSHIM_LOGP(args...) \
VOS_TRACE( VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_FATAL, ## args)
-#ifdef FEATURE_WLAN_CCX
+#if defined(FEATURE_WLAN_CCX) && !defined(FEATURE_WLAN_CCX_UPLOAD)
/************************/
/* Internal defines */
@@ -302,7 +302,7 @@ tlshim_check_n_process_iapp_frame (pVosContextType pVosGCtx,
return false;
}
-#endif /* FEATURE_WLAN_CCX */
+#endif /* defined(FEATURE_WLAN_CCX) && !defined(FEATURE_WLAN_CCX_UPLOAD) */
#ifdef QCA_WIFI_ISOC
static void tlshim_mgmt_rx_dxe_handler(void *context, adf_nbuf_t buflist)
@@ -635,7 +635,7 @@ static void tlshim_data_rx_handler(void *context, u_int16_t staid,
while (buf) {
next_buf = adf_nbuf_queue_next(buf);
-#ifdef FEATURE_WLAN_CCX
+#if defined(FEATURE_WLAN_CCX) && !defined(FEATURE_WLAN_CCX_UPLOAD)
/*
* in case following returns true, a defered task was created
* inside function, which does following:
@@ -1257,7 +1257,7 @@ VOS_STATUS WLANTL_Open(void *vos_ctx, WLANTL_ConfigInfoType *tl_cfg)
}
INIT_WORK(&tl_shim->cache_flush_work, tl_shim_cache_flush_work);
-#ifdef FEATURE_WLAN_CCX
+#if defined(FEATURE_WLAN_CCX) && !defined(FEATURE_WLAN_CCX_UPLOAD)
INIT_WORK(&(tl_shim->iapp_work.deferred_work),
tlshim_mgmt_over_data_rx_handler);
#endif
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 952d851cb20e..1e521ce6be8a 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -7471,19 +7471,25 @@ static int wma_process_receive_filter_clear_filter_req(tp_wma_handle wma_handle,
* function fetches stats from data path APIs and post
* WDA_TSM_STATS_RSP msg back to LIM.
* @param: wma_handler - handle to wma
- * @param: pTsmStats - TSM stats struct that needs to be populated and
+ * @param: pTsmStatsMsg - TSM stats struct that needs to be populated and
* passed in message.
*/
-
VOS_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
- tTSMStats *pTsmStats)
+ void *pTsmStatsMsg)
{
- int tid = pTsmStats->tid;
u_int8_t counter;
u_int32_t queue_delay_microsec = 0;
u_int32_t tx_delay_microsec = 0;
u_int16_t packet_count = 0;
u_int16_t packet_loss_count = 0;
+ tpAniTrafStrmMetrics pTsmMetric = NULL;
+#ifdef FEATURE_WLAN_CCX_UPLOAD
+ tpAniGetTsmStatsReq pStats = (tpAniGetTsmStatsReq)pTsmStatsMsg;
+ tpAniGetTsmStatsRsp pTsmRspParams = NULL;
+#else
+ tTSMStats pStats = (tTSMStats)pTsmStatsMsg;
+#endif
+ int tid = pStats->tid;
/*
* The number of histrogram bin report by data path api are different
* than required by TSM, hence different (6) size array used
@@ -7498,29 +7504,49 @@ VOS_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
ol_tx_delay_hist(pdev, bin_values, tid);
ol_tx_packet_count(pdev, &packet_count, &packet_loss_count, tid );
- /* populate pTsmStats */
- pTsmStats->tsmMetrics.UplinkPktQueueDly = queue_delay_microsec;
+#ifdef FEATURE_WLAN_CCX_UPLOAD
+ pTsmRspParams =
+ (tpAniGetTsmStatsRsp)vos_mem_malloc(sizeof(tAniGetTsmStatsRsp));
+ if(NULL == pTsmRspParams)
+ {
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "%s: VOS MEM Alloc Failure", __func__);
+ VOS_ASSERT(0);
+ vos_mem_free(pTsmStatsMsg);
+ return VOS_STATUS_E_NOMEM;
+ }
+ pTsmRspParams->staId = pStats->staId;
+ pTsmRspParams->rc = eSIR_FAILURE;
+ pTsmRspParams->tsmStatsReq = pStats;
+ pTsmMetric = &pTsmRspParams->tsmMetrics;
+#else
+ pTsmMetric = &pStats->tsmMetrics;
+#endif
+ /* populate pTsmMetric */
+ pTsmMetric->UplinkPktQueueDly = queue_delay_microsec;
/* store only required number of bin values */
for ( counter = 0; counter < TSM_DELAY_HISTROGRAM_BINS; counter++)
{
- pTsmStats->tsmMetrics.UplinkPktQueueDlyHist[counter] =
- bin_values[counter];
+ pTsmMetric->UplinkPktQueueDlyHist[counter] = bin_values[counter];
}
- pTsmStats->tsmMetrics.UplinkPktTxDly = tx_delay_microsec;
- pTsmStats->tsmMetrics.UplinkPktLoss = packet_loss_count;
- pTsmStats->tsmMetrics.UplinkPktCount = packet_count;
+ pTsmMetric->UplinkPktTxDly = tx_delay_microsec;
+ pTsmMetric->UplinkPktLoss = packet_loss_count;
+ pTsmMetric->UplinkPktCount = packet_count;
/*
* No need to populate roaming delay and roaming count as they are
* being populated just before sending IAPP frame out
*/
-
/* post this message to LIM/PE */
- wma_send_msg(wma_handler, WDA_TSM_STATS_RSP, (void *)pTsmStats , 0) ;
+#ifdef FEATURE_WLAN_CCX_UPLOAD
+ wma_send_msg(wma_handler, WDA_TSM_STATS_RSP, (void *)pTsmRspParams , 0) ;
+#else
+ wma_send_msg(wma_handler, WDA_TSM_STATS_RSP, (void *)pTsmStatsMsg , 0) ;
+#endif
return VOS_STATUS_SUCCESS;
}
-#endif
+#endif /* FEATURE_WLAN_CCX */
static void wma_add_ts_req(tp_wma_handle wma, tAddTsParams *msg)
{
@@ -8529,7 +8555,7 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
#ifdef FEATURE_WLAN_CCX
case WDA_TSM_STATS_REQ:
WMA_LOGA("McThread: WDA_TSM_STATS_REQ");
- wma_process_tsm_stats_req(wma_handle, (tTSMStats *)msg->bodyptr);
+ wma_process_tsm_stats_req(wma_handle, (void*)msg->bodyptr);
break;
#endif
case WNI_CFG_DNLD_REQ: