qcacmn: Fix the offset for HAL Tx Rate stats and

enable stats by default

Add a WAR to not use macros from Hardware Header file.
Will be removed once it is fixed in Hardware header file.

Change-Id: I73152645c89813dd65c23d9060e8b6fad1d88678
CRs-Fixed: 1112381
This commit is contained in:
Vijay Pamidipati 2017-01-20 19:35:57 +05:30 • committed by qcabuildsw
commit d61006cb6b
2 changed files with 39 additions and 32 deletions

View file

@ -1217,32 +1217,33 @@ static inline void dp_tx_comp_process_tx_status(struct dp_tx_desc_s *tx_desc)
struct hal_tx_completion_status ts;
qdf_mem_zero(&ts, sizeof(struct hal_tx_completion_status));
hal_tx_comp_get_status(&tx_desc->comp, &ts);
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"--------------------\n"
"Tx Completion Stats:\n"
"--------------------\n"
"ack_frame_rssi = %d\n"
"first_msdu = %d\n"
"last_msdu = %d\n"
"msdu_part_of_amsdu = %d\n"
"bw = %d\n"
"pkt_type = %d\n"
"stbc = %d\n"
"ldpc = %d\n"
"sgi = %d\n"
"mcs = %d\n"
"ofdma = %d\n"
"tones_in_ru = %d\n"
"tsf = %d\n"
"ppdu_id = %d\n"
"transmit_cnt = %d\n"
"tid = %d\n"
"peer_id = %d\n",
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
"-------------------- \n"
"Tx Completion Stats: \n"
"-------------------- \n"
"ack_frame_rssi = %d \n"
"first_msdu = %d \n"
"last_msdu = %d \n"
"msdu_part_of_amsdu = %d \n"
"rate_stats valid = %d \n"
"bw = %d \n"
"pkt_type = %d \n"
"stbc = %d \n"
"ldpc = %d \n"
"sgi = %d \n"
"mcs = %d \n"
"ofdma = %d \n"
"tones_in_ru = %d \n"
"tsf = %d \n"
"ppdu_id = %d \n"
"transmit_cnt = %d \n"
"tid = %d \n"
"peer_id = %d \n",
ts.ack_frame_rssi, ts.first_msdu, ts.last_msdu,
ts.msdu_part_of_amsdu, ts.bw, ts.pkt_type,
ts.stbc, ts.ldpc, ts.sgi,
ts.mcs, ts.ofdma, ts.tones_in_ru,
ts.tsf, ts.ppdu_id, ts.transmit_cnt, ts.tid,
ts.msdu_part_of_amsdu, ts.valid, ts.bw,
ts.pkt_type, ts.stbc, ts.ldpc, ts.sgi,
ts.mcs, ts.ofdma, ts.tones_in_ru, ts.tsf,
ts.ppdu_id, ts.transmit_cnt, ts.tid,
ts.peer_id);
if (qdf_unlikely(tx_desc->vdev->mesh_vdev))
@ -1651,7 +1652,6 @@ QDF_STATUS dp_tx_soc_attach(struct dp_soc *soc)
}
/*
* Keep the processing of completion stats disabled by default.
* todo - Add a runtime config option to enable this.
*/
/*
@ -1659,11 +1659,7 @@ QDF_STATUS dp_tx_soc_attach(struct dp_soc *soc)
* only for NPR EMU, should be removed, once NPR platforms
* are stable.
*/
#ifdef QCA_WIFI_NAPIER_EMULATION
soc->process_tx_status = 1;
#else
soc->process_tx_status = 0;
#endif
/* Initialize Default DSCP-TID mapping table in TCL */
hal_tx_set_dscp_tid_map(soc->hal_soc, default_dscp_tid_map,

View file

@ -25,6 +25,12 @@
#include "hal_api.h"
#include "wcss_version.h"
#define WBM_RELEASE_RING_5_TX_RATE_STATS_OFFSET 0x00000014
#define WBM_RELEASE_RING_5_TX_RATE_STATS_LSB 0
#define WBM_RELEASE_RING_5_TX_RATE_STATS_MASK 0xffffffff
/*---------------------------------------------------------------------------
Preprocessor definitions and constants
---------------------------------------------------------------------------*/
@ -155,7 +161,8 @@ struct hal_tx_completion_status {
sgi:2,
mcs:2,
ofdma:1,
tones_in_ru:10;
tones_in_ru:10,
valid:1;
uint32_t tsf;
uint32_t ppdu_id;
uint8_t transmit_cnt;
@ -851,13 +858,17 @@ static inline void hal_tx_comp_get_status(void *desc,
ts->peer_id = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_7, SW_PEER_ID);
ts->tid = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_7, TID);
ts->transmit_cnt = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_3,
TRANSMIT_COUNT);
rate_stats = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_6,
rate_stats = HAL_TX_DESC_GET(desc, WBM_RELEASE_RING_5,
TX_RATE_STATS_INFO_TX_RATE_STATS);
rate_stats_valid = HAL_TX_MS(TX_RATE_STATS_INFO_0,
TX_RATE_STATS_INFO_VALID, rate_stats);
ts->valid = rate_stats_valid;
if (rate_stats_valid) {
ts->bw = HAL_TX_MS(TX_RATE_STATS_INFO_0, TRANSMIT_BW,
rate_stats);