diff options
| author | Naveen Rawat <nrawat@qca.qualcomm.com> | 2013-10-21 01:05:43 -0700 |
|---|---|---|
| committer | Madan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com> | 2013-11-19 16:23:55 -0800 |
| commit | fc55c7eabb9514084d4f2560ff004ebfcff00f09 (patch) | |
| tree | d225cb8941a3cdeea91b6c8b08fa09b15665237e | |
| parent | 2f1fee89d1fb69bbb4000aa50f723739727d3676 (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.c | 8 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 56 |
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: |
