qca-wifi: Modify logs for module ID QDF_MODULE_ID_DP_TX_CAPTURE
Add macros dp_tx_capture_info, dp_tx_capture_info_low, dp_tx_capture_high, dp_tx_capture_alert, dp_tx_capture_err, dp_tx_capture_debug to define logs. Change-Id: I32f31638d1e197f1c2b0a9b5d956a002948047df
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
6e442e51dd
commit
51ac5a4837
@@ -125,8 +125,7 @@
|
|||||||
#define CHECK_MPDUS_NULL(ptr_val) \
|
#define CHECK_MPDUS_NULL(ptr_val) \
|
||||||
{ \
|
{ \
|
||||||
if (qdf_unlikely(ptr_val)) { \
|
if (qdf_unlikely(ptr_val)) { \
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, \
|
dp_tx_capture_alert( \
|
||||||
QDF_TRACE_LEVEL_FATAL, \
|
|
||||||
"already stored value over written"); \
|
"already stored value over written"); \
|
||||||
QDF_BUG(0); \
|
QDF_BUG(0); \
|
||||||
} \
|
} \
|
||||||
@@ -146,8 +145,7 @@
|
|||||||
static inline void check_queue_empty(qdf_nbuf_queue_t *qhead)
|
static inline void check_queue_empty(qdf_nbuf_queue_t *qhead)
|
||||||
{
|
{
|
||||||
if (qdf_unlikely(!qdf_nbuf_is_queue_empty(qhead))) {
|
if (qdf_unlikely(!qdf_nbuf_is_queue_empty(qhead))) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_FATAL,
|
dp_tx_capture_alert("Queue is not empty len(%d) !!",
|
||||||
"Queue is not empty len(%d) !!",
|
|
||||||
qdf_nbuf_queue_len(qhead));
|
qdf_nbuf_queue_len(qhead));
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
}
|
}
|
||||||
@@ -181,9 +179,7 @@ tx_cap_nbuf_queue_free_test(qdf_nbuf_queue_t *qhead,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (len) {
|
if (len) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("Error actual len: [u], mem_free len: [%u]\n",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
"Error actual len: [u], mem_free len: [%u]\n",
|
|
||||||
actual_len, len);
|
actual_len, len);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
}
|
}
|
||||||
@@ -373,10 +369,8 @@ dp_tx_peer_get_ref(const char *func, uint32_t line, struct dp_pdev *cur_pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (qdf_unlikely(pdev->pdev_id != cur_pdev->pdev_id)) {
|
if (qdf_unlikely(pdev->pdev_id != cur_pdev->pdev_id)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info_high("%pK: peer %p peer_id: %d mapped to pdev %p %d, cur_pdev %p %d",
|
||||||
QDF_TRACE_LEVEL_INFO_HIGH,
|
pdev->soc,
|
||||||
"%s: %d peer %p peer_id: %d mapped to pdev %p %d, cur_pdev %p %d",
|
|
||||||
func, line,
|
|
||||||
peer, peer_id,
|
peer, peer_id,
|
||||||
pdev, pdev->pdev_id,
|
pdev, pdev->pdev_id,
|
||||||
cur_pdev, cur_pdev->pdev_id);
|
cur_pdev, cur_pdev->pdev_id);
|
||||||
@@ -616,11 +610,8 @@ dp_tx_find_usr_idx_from_peer_id(struct cdp_tx_completion_ppdu *ppdu_desc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("peer_id: %d, ppdu_desc[%p][num_users: %d]\n",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
peer_id, ppdu_desc, ppdu_desc->num_users);
|
||||||
"%s: %d peer_id: %d, ppdu_desc[%p][num_users: %d]\n",
|
|
||||||
__func__, __LINE__, peer_id, ppdu_desc,
|
|
||||||
ppdu_desc->num_users);
|
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -673,9 +664,7 @@ void dp_peer_tid_queue_init(struct dp_peer *peer)
|
|||||||
CDP_TX_ENH_CAPTURE_DISABLED)
|
CDP_TX_ENH_CAPTURE_DISABLED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info_low("%pK: peer(%p) id:%d init!!", pdev->soc, peer, peer->peer_id);
|
||||||
QDF_TRACE_LEVEL_INFO_LOW,
|
|
||||||
"peer(%p) id:%d init!!", peer, peer->peer_id);
|
|
||||||
|
|
||||||
for (tid = 0; tid < DP_MAX_TIDS; tid++) {
|
for (tid = 0; tid < DP_MAX_TIDS; tid++) {
|
||||||
struct cdp_tx_completion_ppdu *xretry_ppdu = NULL;
|
struct cdp_tx_completion_ppdu *xretry_ppdu = NULL;
|
||||||
@@ -777,9 +766,8 @@ void dp_peer_tid_queue_cleanup(struct dp_peer *peer)
|
|||||||
if (!peer->tx_capture.is_tid_initialized)
|
if (!peer->tx_capture.is_tid_initialized)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info_low("peer(%p) id:%d cleanup!!",
|
||||||
QDF_TRACE_LEVEL_INFO_LOW,
|
peer, peer->peer_id);
|
||||||
"peer(%p) id:%d cleanup!!", peer, peer->peer_id);
|
|
||||||
|
|
||||||
for (tid = 0; tid < DP_MAX_TIDS; tid++) {
|
for (tid = 0; tid < DP_MAX_TIDS; tid++) {
|
||||||
uint32_t len = 0;
|
uint32_t len = 0;
|
||||||
@@ -818,9 +806,7 @@ void dp_peer_tid_queue_cleanup(struct dp_peer *peer)
|
|||||||
ppdu_desc = (struct cdp_tx_completion_ppdu *)
|
ppdu_desc = (struct cdp_tx_completion_ppdu *)
|
||||||
qdf_nbuf_data(ppdu_nbuf);
|
qdf_nbuf_data(ppdu_nbuf);
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("ppdu_id:%u tsf:%llu removed from pending ppdu q",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
|
||||||
"ppdu_id:%u tsf:%llu removed from pending ppdu q",
|
|
||||||
ppdu_desc->ppdu_id,
|
ppdu_desc->ppdu_id,
|
||||||
ppdu_desc->ppdu_start_timestamp);
|
ppdu_desc->ppdu_start_timestamp);
|
||||||
/*
|
/*
|
||||||
@@ -838,9 +824,7 @@ void dp_peer_tid_queue_cleanup(struct dp_peer *peer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (len) {
|
if (len) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("Actual_len: %d pending len:%d !!!",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
"Actual_len: %d pending len:%d !!!",
|
|
||||||
actual_len, len);
|
actual_len, len);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
}
|
}
|
||||||
@@ -1068,8 +1052,8 @@ void dp_deliver_mgmt_frm(struct dp_pdev *pdev, qdf_nbuf_t nbuf)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_DEBUG,
|
dp_tx_capture_debug("%pK: dlvr mgmt frm(%d 0x%08x): fc 0x%x %x, dur 0x%x%x tsf:%u, retries_count: %d, is_sgen: %d",
|
||||||
"dlvr mgmt frm(%d 0x%08x): fc 0x%x %x, dur 0x%x%x tsf:%u, retries_count: %d, is_sgen: %d",
|
pdev->soc,
|
||||||
ptr_mgmt_hdr->ppdu_id,
|
ptr_mgmt_hdr->ppdu_id,
|
||||||
ptr_mgmt_hdr->ppdu_id,
|
ptr_mgmt_hdr->ppdu_id,
|
||||||
wh->i_fc[1], wh->i_fc[0],
|
wh->i_fc[1], wh->i_fc[0],
|
||||||
@@ -1077,7 +1061,7 @@ void dp_deliver_mgmt_frm(struct dp_pdev *pdev, qdf_nbuf_t nbuf)
|
|||||||
ptr_mgmt_hdr->retries_count,
|
ptr_mgmt_hdr->retries_count,
|
||||||
ptr_mgmt_hdr->is_sgen_pkt);
|
ptr_mgmt_hdr->is_sgen_pkt);
|
||||||
|
|
||||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_TX_CAPTURE,
|
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_DP_TX_CAPTURE,
|
||||||
QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE_LEVEL_DEBUG,
|
||||||
qdf_nbuf_data(nbuf), 64);
|
qdf_nbuf_data(nbuf), 64);
|
||||||
|
|
||||||
@@ -1159,9 +1143,8 @@ bool dp_peer_tx_cap_add_filter(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
if (dp_peer_tx_cap_search(pdev, peer_id, mac_addr)) {
|
if (dp_peer_tx_cap_search(pdev, peer_id, mac_addr)) {
|
||||||
/* mac address and peer_id already there */
|
/* mac address and peer_id already there */
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pk: peer_id[%d] mac_addr[%pM] already there\n",
|
||||||
"%s: %d peer_id[%d] mac_addr[%pM] already there\n",
|
pdev->soc, peer_id, mac_addr);
|
||||||
__func__, __LINE__, peer_id, mac_addr);
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1239,9 +1222,8 @@ bool dp_peer_tx_cap_del_filter(struct dp_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!status)
|
if (!status)
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: unable to delete peer[%d] mac[%pM] filter list",
|
||||||
"unable to delete peer[%d] mac[%pM] filter list",
|
pdev->soc, peer_id, mac_addr);
|
||||||
peer_id, mac_addr);
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1263,12 +1245,11 @@ void dp_peer_tx_cap_print_mgmt_filter(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
tx_capture = &pdev->tx_capture;
|
tx_capture = &pdev->tx_capture;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: peer filter list:", pdev->soc);
|
||||||
"peer filter list:");
|
|
||||||
for (i = 0; i < MAX_MGMT_PEER_FILTER; i++) {
|
for (i = 0; i < MAX_MGMT_PEER_FILTER; i++) {
|
||||||
ptr_peer_mgmt_list = &tx_capture->ptr_peer_mgmt_list[i];
|
ptr_peer_mgmt_list = &tx_capture->ptr_peer_mgmt_list[i];
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: peer_id[%d] mac_addr[%pM] avail[%d]",
|
||||||
"peer_id[%d] mac_addr[%pM] avail[%d]",
|
pdev->soc,
|
||||||
ptr_peer_mgmt_list->peer_id,
|
ptr_peer_mgmt_list->peer_id,
|
||||||
ptr_peer_mgmt_list->mac_addr,
|
ptr_peer_mgmt_list->mac_addr,
|
||||||
ptr_peer_mgmt_list->avail);
|
ptr_peer_mgmt_list->avail);
|
||||||
@@ -1288,9 +1269,8 @@ bool is_dp_peer_mgmt_pkt_filter(struct dp_pdev *pdev,
|
|||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
||||||
found = dp_peer_tx_cap_search(pdev, peer_id, mac_addr);
|
found = dp_peer_tx_cap_search(pdev, peer_id, mac_addr);
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: peer_id[%d] mac_addr[%pM] found[%d]!",
|
||||||
"%s: %d peer_id[%d] mac_addr[%pM] found[%d]!",
|
pdev->soc, peer_id, mac_addr, found);
|
||||||
__func__, __LINE__, peer_id, mac_addr, found);
|
|
||||||
|
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
@@ -1443,9 +1423,7 @@ void dp_tx_ppdu_stats_attach(struct dp_pdev *pdev)
|
|||||||
sizeof(struct cdp_tx_completion_ppdu_user));
|
sizeof(struct cdp_tx_completion_ppdu_user));
|
||||||
|
|
||||||
if (qdf_unlikely(!pdev->tx_capture.dummy_ppdu_desc)) {
|
if (qdf_unlikely(!pdev->tx_capture.dummy_ppdu_desc)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TXRX,
|
dp_tx_capture_err("%pK: Alloc failed", pdev->soc);
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"Alloc failed");
|
|
||||||
QDF_ASSERT(0);
|
QDF_ASSERT(0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1660,30 +1638,26 @@ dp_update_msdu_to_list(struct dp_soc *soc,
|
|||||||
struct msdu_completion_info *msdu_comp_info;
|
struct msdu_completion_info *msdu_comp_info;
|
||||||
|
|
||||||
if (!peer) {
|
if (!peer) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: peer NULL !", soc);
|
||||||
"%s: %d peer NULL !", __func__, __LINE__);
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ts->tid > DP_MAX_TIDS) ||
|
if ((ts->tid > DP_MAX_TIDS) ||
|
||||||
(peer->bss_peer && ts->tid == DP_NON_QOS_TID)) {
|
(peer->bss_peer && ts->tid == DP_NON_QOS_TID)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: peer_id %d, tid %d > NON_QOS_TID!",
|
||||||
"%s: %d peer_id %d, tid %d > NON_QOS_TID!",
|
soc, ts->peer_id, ts->tid);
|
||||||
__func__, __LINE__, ts->peer_id, ts->tid);
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
tx_tid = &peer->tx_capture.tx_tid[ts->tid];
|
tx_tid = &peer->tx_capture.tx_tid[ts->tid];
|
||||||
|
|
||||||
if (!tx_tid) {
|
if (!tx_tid) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: tid[%d] NULL !", soc, ts->tid);
|
||||||
"%s: %d tid[%d] NULL !", __func__, __LINE__, ts->tid);
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!qdf_nbuf_push_head(netbuf, sizeof(struct msdu_completion_info))) {
|
if (!qdf_nbuf_push_head(netbuf, sizeof(struct msdu_completion_info))) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: " FL("No headroom"), soc);
|
||||||
FL("No headroom"));
|
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1719,9 +1693,8 @@ dp_update_msdu_to_list(struct dp_soc *soc,
|
|||||||
pdev->tx_capture.last_msdu_id = ts->ppdu_id;
|
pdev->tx_capture.last_msdu_id = ts->ppdu_id;
|
||||||
pdev->tx_capture.last_peer_id = ts->peer_id;
|
pdev->tx_capture.last_peer_id = ts->peer_id;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO,
|
dp_tx_capture_info("%pK: msdu_completion: ppdu_id[%d] peer_id[%d] tid[%d] rel_src[%d] status[%d] tsf[%u] A[%d] CNT[%d]",
|
||||||
"msdu_completion: ppdu_id[%d] peer_id[%d] tid[%d] rel_src[%d] status[%d] tsf[%u] A[%d] CNT[%d]",
|
soc, ts->ppdu_id, ts->peer_id, ts->tid, ts->release_src,
|
||||||
ts->ppdu_id, ts->peer_id, ts->tid, ts->release_src,
|
|
||||||
ts->status, ts->tsf, ts->msdu_part_of_amsdu,
|
ts->status, ts->tsf, ts->msdu_part_of_amsdu,
|
||||||
ts->transmit_cnt);
|
ts->transmit_cnt);
|
||||||
|
|
||||||
@@ -1753,10 +1726,8 @@ QDF_STATUS dp_tx_add_to_comp_queue(struct dp_soc *soc,
|
|||||||
if (qdf_unlikely(desc->pkt_offset != 0) &&
|
if (qdf_unlikely(desc->pkt_offset != 0) &&
|
||||||
(qdf_nbuf_pull_head(
|
(qdf_nbuf_pull_head(
|
||||||
desc->nbuf, desc->pkt_offset) == NULL)) {
|
desc->nbuf, desc->pkt_offset) == NULL)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("%pK: netbuf %pK offset %d",
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
soc, desc->nbuf, desc->pkt_offset);
|
||||||
"netbuf %pK offset %d",
|
|
||||||
desc->nbuf, desc->pkt_offset);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1832,14 +1803,12 @@ void dp_process_ppdu_stats_update_failed_bitmap(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
/* assumption: number of mpdu will be less than 32 */
|
/* assumption: number of mpdu will be less than 32 */
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO,
|
dp_tx_capture_info("%pK: ppdu_id[%d] ba_seq_no[%d] start_seq_no[%d] mpdu_tried[%d]",
|
||||||
"ppdu_id[%d] ba_seq_no[%d] start_seq_no[%d] mpdu_tried[%d]",
|
pdev->soc, ppdu_id, ba_seq_no, start_seq, mpdu_tried);
|
||||||
ppdu_id, ba_seq_no, start_seq, mpdu_tried);
|
|
||||||
|
|
||||||
for (i = 0; i < size; i++) {
|
for (i = 0; i < size; i++) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO,
|
dp_tx_capture_info("%pK: ppdu_id[%d] ba_bitmap[%x] enqueue_bitmap[%x]",
|
||||||
"ppdu_id[%d] ba_bitmap[%x] enqueue_bitmap[%x]",
|
pdev->soc, ppdu_id, user->ba_bitmap[i], user->enq_bitmap[i]);
|
||||||
ppdu_id, user->ba_bitmap[i], user->enq_bitmap[i]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle sequence no. wraparound */
|
/* Handle sequence no. wraparound */
|
||||||
@@ -1890,10 +1859,8 @@ void dp_process_ppdu_stats_update_failed_bitmap(struct dp_pdev *pdev,
|
|||||||
if (extra_ba_mpdus) {
|
if (extra_ba_mpdus) {
|
||||||
enq_ba_bitmap[i] =
|
enq_ba_bitmap[i] =
|
||||||
user->failed_bitmap[i];
|
user->failed_bitmap[i];
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: i=%d failed_bitmap[%d] = 0x%x last_ba_set_bit:%d\n",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, i, i, user->failed_bitmap[i],
|
||||||
"i=%d failed_bitmap[%d] = 0x%x last_ba_set_bit:%d\n",
|
|
||||||
i, i, user->failed_bitmap[i],
|
|
||||||
last_ba_set_bit);
|
last_ba_set_bit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1931,10 +1898,8 @@ void dp_process_ppdu_stats_update_failed_bitmap(struct dp_pdev *pdev,
|
|||||||
if (extra_ba_mpdus) {
|
if (extra_ba_mpdus) {
|
||||||
enq_ba_bitmap[i] =
|
enq_ba_bitmap[i] =
|
||||||
user->failed_bitmap[i];
|
user->failed_bitmap[i];
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: i=%d failed_bitmap[%d] = 0x%x last_ba_set_bit:%d\n",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, i, i, user->failed_bitmap[i],
|
||||||
"i=%d failed_bitmap[%d] = 0x%x last_ba_set_bit:%d\n",
|
|
||||||
i, i, user->failed_bitmap[i],
|
|
||||||
last_ba_set_bit);
|
last_ba_set_bit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1966,27 +1931,22 @@ void dp_process_ppdu_stats_update_failed_bitmap(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
if (user->mpdu_tried_ucast < mpdu_enq) {
|
if (user->mpdu_tried_ucast < mpdu_enq) {
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ppdu_id[%d] ba_bitmap[%x] enqueue_bitmap[%x] failed_bitmap[%x]",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, ppdu_id, user->ba_bitmap[i],
|
||||||
"ppdu_id[%d] ba_bitmap[%x] enqueue_bitmap[%x] failed_bitmap[%x]",
|
|
||||||
ppdu_id, user->ba_bitmap[i],
|
|
||||||
user->enq_bitmap[i],
|
user->enq_bitmap[i],
|
||||||
user->failed_bitmap[i]);
|
user->failed_bitmap[i]);
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: last_set_bit:%d mpdu_tried_ucast %d mpdu_enq %d\n",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, last_set_bit,
|
||||||
"last_set_bit:%d mpdu_tried_ucast %d mpdu_enq %d\n",
|
user->mpdu_tried_ucast, mpdu_enq);
|
||||||
last_set_bit, user->mpdu_tried_ucast,
|
|
||||||
mpdu_enq);
|
|
||||||
|
|
||||||
user->mpdu_tried_ucast = mpdu_enq;
|
user->mpdu_tried_ucast = mpdu_enq;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extra_ba_mpdus) {
|
if (extra_ba_mpdus) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ppdu_id:%u ba_size:%u modified_ba_size:%u last_ba_set_bit:%u start_seq: %u\n",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc,
|
||||||
"ppdu_id:%u ba_size:%u modified_ba_size:%u last_ba_set_bit:%u start_seq: %u\n",
|
|
||||||
ppdu_id,
|
ppdu_id,
|
||||||
user->ba_size,
|
user->ba_size,
|
||||||
last_ba_seq - user->start_seq + 1,
|
last_ba_seq - user->start_seq + 1,
|
||||||
@@ -2096,9 +2056,8 @@ dp_enh_tx_capture_disable(struct dp_pdev *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: Mode change request done cur mode - %d user_mode - %d\n",
|
||||||
"Mode change request done cur mode - %d user_mode - %d\n",
|
pdev->soc, pdev->tx_capture_enabled, CDP_TX_ENH_CAPTURE_DISABLED);
|
||||||
pdev->tx_capture_enabled, CDP_TX_ENH_CAPTURE_DISABLED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2122,9 +2081,8 @@ dp_enh_tx_capture_enable(struct dp_pdev *pdev, uint8_t user_mode)
|
|||||||
DP_PPDU_STATS_CFG_SNIFFER,
|
DP_PPDU_STATS_CFG_SNIFFER,
|
||||||
pdev->pdev_id);
|
pdev->pdev_id);
|
||||||
pdev->tx_capture_enabled = user_mode;
|
pdev->tx_capture_enabled = user_mode;
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: Mode change request done cur mode - %d user_mode - %d\n",
|
||||||
"Mode change request done cur mode - %d user_mode - %d\n",
|
pdev->soc, pdev->tx_capture_enabled, user_mode);
|
||||||
pdev->tx_capture_enabled, user_mode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2155,9 +2113,8 @@ QDF_STATUS
|
|||||||
dp_config_enh_tx_capture(struct dp_pdev *pdev, uint8_t val)
|
dp_config_enh_tx_capture(struct dp_pdev *pdev, uint8_t val)
|
||||||
{
|
{
|
||||||
qdf_atomic_set(&pdev->tx_capture.tx_cap_usr_mode, val);
|
qdf_atomic_set(&pdev->tx_capture.tx_cap_usr_mode, val);
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_LOW,
|
dp_tx_capture_info_low("%pK: User mode change requested - %d\n",
|
||||||
"User mode change requested - %d\n",
|
pdev->soc, qdf_atomic_read(&pdev->tx_capture.tx_cap_usr_mode));
|
||||||
qdf_atomic_read(&pdev->tx_capture.tx_cap_usr_mode));
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -2195,25 +2152,21 @@ QDF_STATUS dp_tx_print_bitmap(struct dp_pdev *pdev,
|
|||||||
num_mpdu = user->mpdu_success;
|
num_mpdu = user->mpdu_success;
|
||||||
|
|
||||||
if (user->tid > DP_MAX_TIDS) {
|
if (user->tid > DP_MAX_TIDS) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: ppdu[%d] peer_id[%d] TID[%d] > NON_QOS_TID!",
|
||||||
"%s: ppdu[%d] peer_id[%d] TID[%d] > NON_QOS_TID!",
|
pdev->soc, ppdu_id, user->peer_id, user->tid);
|
||||||
__func__, ppdu_id, user->peer_id, user->tid);
|
|
||||||
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mpdu_tried != num_mpdu) {
|
if (mpdu_tried != num_mpdu) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO,
|
dp_tx_capture_info("%pK: ppdu[%d] peer[%d] tid[%d] ba[%d] start[%d] mpdu_tri[%d] num_mpdu[%d] is_mcast[%d]",
|
||||||
"%s: ppdu[%d] peer[%d] tid[%d] ba[%d] start[%d] mpdu_tri[%d] num_mpdu[%d] is_mcast[%d]",
|
pdev->soc, ppdu_id, user->peer_id, user->tid,
|
||||||
__func__, ppdu_id, user->peer_id, user->tid,
|
|
||||||
ba_seq_no, start_seq, mpdu_tried,
|
ba_seq_no, start_seq, mpdu_tried,
|
||||||
num_mpdu, user->is_mcast);
|
num_mpdu, user->is_mcast);
|
||||||
|
|
||||||
for (i = 0; i < CDP_BA_256_BIT_MAP_SIZE_DWORDS; i++) {
|
for (i = 0; i < CDP_BA_256_BIT_MAP_SIZE_DWORDS; i++) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("%pK: ppdu_id[%d] ba_bitmap[0x%x] enqueue_bitmap[0x%x] failed_bitmap[0x%x]",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc, ppdu_id, user->ba_bitmap[i],
|
||||||
"ppdu_id[%d] ba_bitmap[0x%x] enqueue_bitmap[0x%x] failed_bitmap[0x%x]",
|
|
||||||
ppdu_id, user->ba_bitmap[i],
|
|
||||||
user->enq_bitmap[i],
|
user->enq_bitmap[i],
|
||||||
user->failed_bitmap[i]);
|
user->failed_bitmap[i]);
|
||||||
|
|
||||||
@@ -2223,9 +2176,8 @@ QDF_STATUS dp_tx_print_bitmap(struct dp_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (fail_num_mpdu == num_mpdu && num_mpdu)
|
if (fail_num_mpdu == num_mpdu && num_mpdu)
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_DEBUG,
|
dp_tx_capture_debug("%pK: ppdu_id[%d] num_mpdu[%d, %d]",
|
||||||
"%s: %d ppdu_id[%d] num_mpdu[%d, %d]",
|
pdev->soc, ppdu_id, num_mpdu, fail_num_mpdu);
|
||||||
__func__, __LINE__, ppdu_id, num_mpdu, fail_num_mpdu);
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -2247,17 +2199,14 @@ void dp_ppdu_desc_debug_print(struct cdp_tx_completion_ppdu *ppdu_desc,
|
|||||||
|
|
||||||
num_users = ppdu_desc->num_users;
|
num_users = ppdu_desc->num_users;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_MED,
|
dp_tx_capture_info("PID: %d, BPID: %d SCHED: %d usr_idx: %d TLV_BITMAP[0x%x] num_users:%d",
|
||||||
"%s: %d PID: %d, BPID: %d SCHED: %d usr_idx: %d TLV_BITMAP[0x%x] num_users:%d",
|
|
||||||
func, line,
|
|
||||||
ppdu_desc->ppdu_id, ppdu_desc->bar_ppdu_id,
|
ppdu_desc->ppdu_id, ppdu_desc->bar_ppdu_id,
|
||||||
ppdu_desc->sched_cmdid,
|
ppdu_desc->sched_cmdid,
|
||||||
usr_idx, ppdu_desc->tlv_bitmap, ppdu_desc->num_users);
|
usr_idx, ppdu_desc->tlv_bitmap, ppdu_desc->num_users);
|
||||||
|
|
||||||
user = &ppdu_desc->user[usr_idx];
|
user = &ppdu_desc->user[usr_idx];
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_MED,
|
dp_tx_capture_info("P[%d] CS:%d S_SEQ: %d L_ENQ_SEQ:%d BA_SEQ:%d BA_SZ:%d M[TRI: %d, SUC: %d] ENQ[%x:%x:%x:%x] BA[%x:%x:%x:%x] F[%x:%x:%x:%x] tlv[0x%x]",
|
||||||
"%s: %d P[%d] CS:%d S_SEQ: %d L_ENQ_SEQ:%d BA_SEQ:%d BA_SZ:%d M[TRI: %d, SUC: %d] ENQ[%x:%x:%x:%x] BA[%x:%x:%x:%x] F[%x:%x:%x:%x] tlv[0x%x]",
|
user->peer_id,
|
||||||
func, line, user->peer_id,
|
|
||||||
user->completion_status,
|
user->completion_status,
|
||||||
user->start_seq, user->last_enq_seq,
|
user->start_seq, user->last_enq_seq,
|
||||||
user->ba_seq_no, user->ba_size,
|
user->ba_seq_no, user->ba_size,
|
||||||
@@ -2354,8 +2303,7 @@ static uint32_t dp_tx_update_80211_wds_hdr(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
/* update ieee80211_frame header */
|
/* update ieee80211_frame header */
|
||||||
if (!qdf_nbuf_push_head(nbuf, mpdu_buf_len)) {
|
if (!qdf_nbuf_push_head(nbuf, mpdu_buf_len)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: " FL("No headroom"), pdev->soc);
|
||||||
FL("No headroom"));
|
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2440,8 +2388,7 @@ static uint32_t dp_tx_update_80211_hdr(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
/* update ieee80211_frame header */
|
/* update ieee80211_frame header */
|
||||||
if (!qdf_nbuf_push_head(nbuf, mpdu_buf_len)) {
|
if (!qdf_nbuf_push_head(nbuf, mpdu_buf_len)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: " FL("No headroom"), pdev->soc);
|
||||||
FL("No headroom"));
|
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2514,9 +2461,7 @@ dp_tx_mon_restitch_mpdu(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
msdu_comp_info_sz = sizeof(struct msdu_completion_info);
|
msdu_comp_info_sz = sizeof(struct msdu_completion_info);
|
||||||
/* pull msdu_completion_info added in pre header */
|
/* pull msdu_completion_info added in pre header */
|
||||||
if (NULL == qdf_nbuf_pull_head(curr_nbuf, msdu_comp_info_sz)) {
|
if (NULL == qdf_nbuf_pull_head(curr_nbuf, msdu_comp_info_sz)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert(" No Head space to pull !!\n");
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
" No Head space to pull !!\n");
|
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2535,9 +2480,7 @@ dp_tx_mon_restitch_mpdu(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
/* pull ethernet header from first MSDU alone */
|
/* pull ethernet header from first MSDU alone */
|
||||||
if (NULL == qdf_nbuf_pull_head(curr_nbuf,
|
if (NULL == qdf_nbuf_pull_head(curr_nbuf,
|
||||||
ether_hdr_sz)) {
|
ether_hdr_sz)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert(" No Head space to pull !!\n");
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
" No Head space to pull !!\n");
|
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2545,9 +2488,7 @@ dp_tx_mon_restitch_mpdu(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
prev_nbuf = curr_nbuf;
|
prev_nbuf = curr_nbuf;
|
||||||
|
|
||||||
} else if (first_msdu && !first_msdu_not_seen) {
|
} else if (first_msdu && !first_msdu_not_seen) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("!!!!! NO LAST MSDU\n");
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"!!!!! NO LAST MSDU\n");
|
|
||||||
/*
|
/*
|
||||||
* no last msdu in a mpdu
|
* no last msdu in a mpdu
|
||||||
* handle this case
|
* handle this case
|
||||||
@@ -2559,9 +2500,7 @@ dp_tx_mon_restitch_mpdu(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
*/
|
*/
|
||||||
goto free_ppdu_desc_mpdu_q;
|
goto free_ppdu_desc_mpdu_q;
|
||||||
} else if (!first_msdu && first_msdu_not_seen) {
|
} else if (!first_msdu && first_msdu_not_seen) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("!!!!! NO FIRST MSDU\n");
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"!!!!! NO FIRST MSDU\n");
|
|
||||||
/*
|
/*
|
||||||
* no first msdu in a mpdu
|
* no first msdu in a mpdu
|
||||||
* handle this case
|
* handle this case
|
||||||
@@ -2590,9 +2529,7 @@ dp_tx_mon_restitch_mpdu(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
|
|
||||||
|
|
||||||
if (!mpdu_nbuf) {
|
if (!mpdu_nbuf) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("MPDU head allocation failed !!!");
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"MPDU head allocation failed !!!");
|
|
||||||
goto free_ppdu_desc_mpdu_q;
|
goto free_ppdu_desc_mpdu_q;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2635,9 +2572,7 @@ dp_tx_mon_restitch_mpdu(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
|
|
||||||
if (!curr_nbuf) {
|
if (!curr_nbuf) {
|
||||||
/* msdu missed in list */
|
/* msdu missed in list */
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("!!!! WAITING for msdu but list empty !!!!");
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"!!!! WAITING for msdu but list empty !!!!");
|
|
||||||
|
|
||||||
/* for incomplete list, free up the queue */
|
/* for incomplete list, free up the queue */
|
||||||
goto free_ppdu_desc_mpdu_q;
|
goto free_ppdu_desc_mpdu_q;
|
||||||
@@ -2903,16 +2838,14 @@ get_mpdu_clone_from_next_ppdu(struct dp_tx_cap_nbuf_list nbuf_list[],
|
|||||||
|
|
||||||
if (found == 0) {
|
if (found == 0) {
|
||||||
/* mpdu not found in sched cmd id */
|
/* mpdu not found in sched cmd id */
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_DEBUG,
|
dp_tx_capture_debug("peer_id[%d] missed seq_no[%d] ppdu_id[%d] [%d] not found!!!",
|
||||||
"%s: peer_id[%d] missed seq_no[%d] ppdu_id[%d] [%d] not found!!!",
|
peer_id,
|
||||||
__func__, peer_id,
|
|
||||||
missed_seq_no, ppdu_id, ppdu_desc_cnt);
|
missed_seq_no, ppdu_id, ppdu_desc_cnt);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_DEBUG,
|
dp_tx_capture_debug("peer_id[%d] seq_no[%d] missed ppdu_id[%d] m[%d] found in ppdu_id[%d]!!",
|
||||||
"%s: peer_id[%d] seq_no[%d] missed ppdu_id[%d] m[%d] found in ppdu_id[%d]!!",
|
peer_id,
|
||||||
__func__, peer_id,
|
|
||||||
missed_seq_no, ppdu_id,
|
missed_seq_no, ppdu_id,
|
||||||
(missed_seq_no - seq_no), ppdu_desc->ppdu_id);
|
(missed_seq_no - seq_no), ppdu_desc->ppdu_id);
|
||||||
|
|
||||||
@@ -2922,9 +2855,8 @@ get_mpdu_clone_from_next_ppdu(struct dp_tx_cap_nbuf_list nbuf_list[],
|
|||||||
/* bitmap shows it found sequence number, but
|
/* bitmap shows it found sequence number, but
|
||||||
* MPDU not found in PPDU
|
* MPDU not found in PPDU
|
||||||
*/
|
*/
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("missed seq_no[%d] ppdu_id[%d] [%d] found but queue empty!!!",
|
||||||
"%s: missed seq_no[%d] ppdu_id[%d] [%d] found but queue empty!!!",
|
missed_seq_no, ppdu_id, ppdu_desc_cnt);
|
||||||
__func__, missed_seq_no, ppdu_id, ppdu_desc_cnt);
|
|
||||||
if (mpdu_q_len)
|
if (mpdu_q_len)
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
|
|
||||||
@@ -3180,10 +3112,8 @@ QDF_STATUS dp_send_dummy_mpdu_info_to_stack(struct dp_pdev *pdev,
|
|||||||
qdf_nbuf_set_pktlen(tx_capture_info.mpdu_nbuf, sizeof(*wh_min));
|
qdf_nbuf_set_pktlen(tx_capture_info.mpdu_nbuf, sizeof(*wh_min));
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_debug("%pK: HTT_FTYPE[%d] frm(0x%08x): fc %x %x, dur 0x%x%x\n",
|
||||||
QDF_TRACE_LEVEL_DEBUG,
|
pdev->soc, ppdu_desc->htt_frame_type, mpdu_info->ppdu_id,
|
||||||
"HTT_FTYPE[%d] frm(0x%08x): fc %x %x, dur 0x%x%x\n",
|
|
||||||
ppdu_desc->htt_frame_type, mpdu_info->ppdu_id,
|
|
||||||
wh_min->i_fc[1], wh_min->i_fc[0],
|
wh_min->i_fc[1], wh_min->i_fc[0],
|
||||||
wh_min->i_aidordur[1], wh_min->i_aidordur[0]);
|
wh_min->i_aidordur[1], wh_min->i_aidordur[0]);
|
||||||
/*
|
/*
|
||||||
@@ -3529,10 +3459,8 @@ dp_tx_mon_get_next_mpdu(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
|
|||||||
|
|
||||||
if (mpdu_nbuf != qdf_nbuf_queue_first(&xretry_user->mpdu_q)) {
|
if (mpdu_nbuf != qdf_nbuf_queue_first(&xretry_user->mpdu_q)) {
|
||||||
next_nbuf = qdf_nbuf_queue_next(mpdu_nbuf);
|
next_nbuf = qdf_nbuf_queue_next(mpdu_nbuf);
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info_high("%pK: mpdu %p not head, next %p mpdu_q[%p L %d] ppdu %p",
|
||||||
QDF_TRACE_LEVEL_INFO_HIGH,
|
pdev->soc, mpdu_nbuf, next_nbuf,
|
||||||
"mpdu %p not head, next %p mpdu_q[%p L %d] ppdu %p",
|
|
||||||
mpdu_nbuf, next_nbuf,
|
|
||||||
&xretry_user->mpdu_q,
|
&xretry_user->mpdu_q,
|
||||||
qdf_nbuf_queue_len(&xretry_user->mpdu_q), ppdu_nbuf);
|
qdf_nbuf_queue_len(&xretry_user->mpdu_q), ppdu_nbuf);
|
||||||
/* Initialize temp list */
|
/* Initialize temp list */
|
||||||
@@ -3558,13 +3486,11 @@ dp_tx_mon_get_next_mpdu(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
|
|||||||
qdf_nbuf_queue_append(&xretry_user->mpdu_q,
|
qdf_nbuf_queue_append(&xretry_user->mpdu_q,
|
||||||
&temp_xretries);
|
&temp_xretries);
|
||||||
} else {
|
} else {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: bug scenario, did not find nbuf in queue\npdev %p "
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
"%s: bug scenario, did not find nbuf in queue\npdev %p "
|
|
||||||
"peer id %d, tid: %p mpdu_nbuf %p xretry_user %p "
|
"peer id %d, tid: %p mpdu_nbuf %p xretry_user %p "
|
||||||
"mpdu_q %p len %d temp_xretry %p",
|
"mpdu_q %p len %d temp_xretry %p",
|
||||||
__func__, pdev, tx_tid->peer_id, tx_tid, mpdu_nbuf,
|
pdev->soc, pdev, tx_tid->peer_id, tx_tid, mpdu_nbuf,
|
||||||
xretry_user, &xretry_user->mpdu_q,
|
xretry_user, xretry_user->mpdu_q,
|
||||||
qdf_nbuf_queue_len(&xretry_user->mpdu_q),
|
qdf_nbuf_queue_len(&xretry_user->mpdu_q),
|
||||||
&temp_xretries);
|
&temp_xretries);
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
@@ -3595,19 +3521,15 @@ dp_tx_mon_proc_xretries(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
|
|
||||||
xretry_ppdu = tx_tid->xretry_ppdu;
|
xretry_ppdu = tx_tid->xretry_ppdu;
|
||||||
if (!xretry_ppdu) {
|
if (!xretry_ppdu) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: xretry_ppdu is NULL",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc);
|
||||||
"%s: xretry_ppdu is NULL",
|
|
||||||
__func__);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
xretry_user = &xretry_ppdu->user[0];
|
xretry_user = &xretry_ppdu->user[0];
|
||||||
if (!xretry_user) {
|
if (!xretry_user) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: xretry_user is NULL",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc);
|
||||||
"%s: xretry_user is NULL",
|
|
||||||
__func__);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3652,10 +3574,8 @@ dp_tx_mon_proc_xretries(struct dp_pdev *pdev, struct dp_peer *peer,
|
|||||||
|
|
||||||
if (SEQ_BIT(user->failed_bitmap, i))
|
if (SEQ_BIT(user->failed_bitmap, i))
|
||||||
continue;
|
continue;
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: fill seqno %d from xretries",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc, seq_no);
|
||||||
"%s: fill seqno %d from xretries",
|
|
||||||
__func__, seq_no);
|
|
||||||
|
|
||||||
ptr_msdu_info = (struct msdu_completion_info *)
|
ptr_msdu_info = (struct msdu_completion_info *)
|
||||||
(qdf_nbuf_data(qdf_nbuf_get_ext_list(
|
(qdf_nbuf_data(qdf_nbuf_get_ext_list(
|
||||||
@@ -3986,10 +3906,8 @@ dp_tx_mon_proc_pending_ppdus(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
|
|||||||
failed_seq ^= SEQ_SEG_MSK(failed_seq, i);
|
failed_seq ^= SEQ_SEG_MSK(failed_seq, i);
|
||||||
|
|
||||||
if (!cur_user->mpdus) {
|
if (!cur_user->mpdus) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: peer_id:%d usr_idx:%d cur_usr_idx:%d cur_usr_peer_id:%d\n",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc,
|
||||||
"%s: %d peer_id:%d usr_idx:%d cur_usr_idx:%d cur_usr_peer_id:%d\n",
|
|
||||||
__func__, __LINE__,
|
|
||||||
peer_id, usr_idx,
|
peer_id, usr_idx,
|
||||||
cur_usr_idx, cur_user->peer_id);
|
cur_usr_idx, cur_user->peer_id);
|
||||||
continue;
|
continue;
|
||||||
@@ -3997,10 +3915,8 @@ dp_tx_mon_proc_pending_ppdus(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
|
|||||||
mpdu_nbuf = cur_user->mpdus[cur_index];
|
mpdu_nbuf = cur_user->mpdus[cur_index];
|
||||||
if (mpdu_nbuf) {
|
if (mpdu_nbuf) {
|
||||||
struct dp_peer *peer;
|
struct dp_peer *peer;
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: fill seqno %d (%d) from swretries",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc,
|
||||||
"%s: fill seqno %d (%d) from swretries",
|
|
||||||
__func__,
|
|
||||||
user->start_seq + i,
|
user->start_seq + i,
|
||||||
ppdu_desc->ppdu_id);
|
ppdu_desc->ppdu_id);
|
||||||
CHECK_MPDUS_NULL(user->mpdus[i]);
|
CHECK_MPDUS_NULL(user->mpdus[i]);
|
||||||
@@ -4021,11 +3937,8 @@ dp_tx_mon_proc_pending_ppdus(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
|
|||||||
|
|
||||||
cur_index++;
|
cur_index++;
|
||||||
if (cur_index >= cur_user->ba_size) {
|
if (cur_index >= cur_user->ba_size) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ba_size[%d] cur_index[%d]\n",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc, cur_user->ba_size, cur_index);
|
||||||
"%s: ba_size[%d] cur_index[%d]\n",
|
|
||||||
__func__,
|
|
||||||
cur_user->ba_size, cur_index);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4124,14 +4037,10 @@ dp_send_mgmt_ctrl_to_stack(struct dp_pdev *pdev,
|
|||||||
wh->i_seq[1] = (seq_le & 0xFF00) >> 8;
|
wh->i_seq[1] = (seq_le & 0xFF00) >> 8;
|
||||||
wh->i_seq[0] = seq_le & 0xFF;
|
wh->i_seq[0] = seq_le & 0xFF;
|
||||||
}
|
}
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_debug("%pK: ctrl/mgmt frm(0x%08x): fc 0x%x 0x%x\n",
|
||||||
QDF_TRACE_LEVEL_DEBUG,
|
pdev->soc, ptr_tx_cap_info->mpdu_info.ppdu_id,
|
||||||
"ctrl/mgmt frm(0x%08x): fc 0x%x 0x%x\n",
|
|
||||||
ptr_tx_cap_info->mpdu_info.ppdu_id,
|
|
||||||
wh->i_fc[1], wh->i_fc[0]);
|
wh->i_fc[1], wh->i_fc[0]);
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_debug("%pK: desc->ppdu_id 0x%08x\n", pdev->soc, ppdu_desc->ppdu_id);
|
||||||
QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"desc->ppdu_id 0x%08x\n", ppdu_desc->ppdu_id);
|
|
||||||
|
|
||||||
/* append ext list */
|
/* append ext list */
|
||||||
qdf_nbuf_append_ext_list(ptr_tx_cap_info->mpdu_nbuf,
|
qdf_nbuf_append_ext_list(ptr_tx_cap_info->mpdu_nbuf,
|
||||||
@@ -4151,10 +4060,8 @@ dp_send_mgmt_ctrl_to_stack(struct dp_pdev *pdev,
|
|||||||
QDF_MAC_ADDR_SIZE);
|
QDF_MAC_ADDR_SIZE);
|
||||||
qdf_nbuf_set_pktlen(ptr_tx_cap_info->mpdu_nbuf,
|
qdf_nbuf_set_pktlen(ptr_tx_cap_info->mpdu_nbuf,
|
||||||
sizeof(*wh_min));
|
sizeof(*wh_min));
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_debug("%pK: frm(0x%08x): fc %x %x, dur 0x%x%x\n",
|
||||||
QDF_TRACE_LEVEL_DEBUG,
|
pdev->soc, ptr_tx_cap_info->mpdu_info.ppdu_id,
|
||||||
"frm(0x%08x): fc %x %x, dur 0x%x%x\n",
|
|
||||||
ptr_tx_cap_info->mpdu_info.ppdu_id,
|
|
||||||
wh_min->i_fc[1], wh_min->i_fc[0],
|
wh_min->i_fc[1], wh_min->i_fc[0],
|
||||||
wh_min->i_dur[1], wh_min->i_dur[0]);
|
wh_min->i_dur[1], wh_min->i_dur[0]);
|
||||||
}
|
}
|
||||||
@@ -4388,10 +4295,8 @@ get_mgmt_pkt_from_queue:
|
|||||||
ptr_comp_info->tx_tsf +
|
ptr_comp_info->tx_tsf +
|
||||||
start_tsf;
|
start_tsf;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ppdu_id[m:%d desc:%d] start_tsf: %u mgmt_tsf:%u tsf_delta:%u bar_frm_with_data:%d",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc, ppdu_id, desc_ppdu_id,
|
||||||
"%s: ppdu_id[m:%d desc:%d] start_tsf: %u mgmt_tsf:%u tsf_delta:%u bar_frm_with_data:%d",
|
|
||||||
__func__, ppdu_id, desc_ppdu_id,
|
|
||||||
start_tsf, ptr_comp_info->tx_tsf,
|
start_tsf, ptr_comp_info->tx_tsf,
|
||||||
tsf_delta, bar_frm_with_data);
|
tsf_delta, bar_frm_with_data);
|
||||||
|
|
||||||
@@ -4467,10 +4372,8 @@ insert_mgmt_buf_to_queue:
|
|||||||
struct ieee80211_frame *wh;
|
struct ieee80211_frame *wh;
|
||||||
uint32_t retry_len = 0;
|
uint32_t retry_len = 0;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ppdu_id[m:%d desc:%d] start_tsf: %u mgmt_tsf:%u bar_frm_with_data:%d is_sgen:%d",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc, ppdu_id, desc_ppdu_id,
|
||||||
"%s: ppdu_id[m:%d desc:%d] start_tsf: %u mgmt_tsf:%u bar_frm_with_data:%d is_sgen:%d",
|
|
||||||
__func__, ppdu_id, desc_ppdu_id,
|
|
||||||
start_tsf, ptr_comp_info->tx_tsf,
|
start_tsf, ptr_comp_info->tx_tsf,
|
||||||
bar_frm_with_data, is_sgen_pkt);
|
bar_frm_with_data, is_sgen_pkt);
|
||||||
|
|
||||||
@@ -4490,9 +4393,7 @@ insert_mgmt_buf_to_queue:
|
|||||||
/* pull head based on sgen pkt or mgmt pkt */
|
/* pull head based on sgen pkt or mgmt pkt */
|
||||||
if (NULL == qdf_nbuf_pull_head(mgmt_ctl_nbuf,
|
if (NULL == qdf_nbuf_pull_head(mgmt_ctl_nbuf,
|
||||||
head_size)) {
|
head_size)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: No Head space to pull !!\n", pdev->soc);
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
" No Head space to pull !!\n");
|
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4525,10 +4426,8 @@ insert_mgmt_buf_to_queue:
|
|||||||
|
|
||||||
retry_len = qdf_nbuf_queue_len(retries_q);
|
retry_len = qdf_nbuf_queue_len(retries_q);
|
||||||
if (!nbuf_retry_ppdu) {
|
if (!nbuf_retry_ppdu) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: retry q type[%d][%d] retry q len = %d\n",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc,
|
||||||
"%s: %d retry q type[%d][%d] retry q len = %d\n",
|
|
||||||
__func__, __LINE__,
|
|
||||||
type, subtype, retry_len);
|
type, subtype, retry_len);
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
break;
|
break;
|
||||||
@@ -4541,9 +4440,7 @@ insert_mgmt_buf_to_queue:
|
|||||||
qdf_nbuf_copy_expand(mgmt_ctl_nbuf,
|
qdf_nbuf_copy_expand(mgmt_ctl_nbuf,
|
||||||
0, 0);
|
0, 0);
|
||||||
if (qdf_unlikely(!tmp_mgmt_ctl_nbuf)) {
|
if (qdf_unlikely(!tmp_mgmt_ctl_nbuf)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: No memory to do copy!!", pdev->soc);
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
|
||||||
"No memory to do copy!!");
|
|
||||||
qdf_assert_always(0);
|
qdf_assert_always(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4730,19 +4627,15 @@ dp_peer_tx_cap_tid_queue_flush_tlv(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
xretry_ppdu = tx_tid->xretry_ppdu;
|
xretry_ppdu = tx_tid->xretry_ppdu;
|
||||||
if (!xretry_ppdu) {
|
if (!xretry_ppdu) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: xretry_ppdu is NULL",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc);
|
||||||
"%s: xretry_ppdu is NULL",
|
|
||||||
__func__);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
xretry_user = &xretry_ppdu->user[0];
|
xretry_user = &xretry_ppdu->user[0];
|
||||||
if (!xretry_user) {
|
if (!xretry_user) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: xretry_user is NULL",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc);
|
||||||
"%s: xretry_user is NULL",
|
|
||||||
__func__);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4765,10 +4658,8 @@ dp_peer_tx_cap_tid_queue_flush_tlv(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
dp_tx_mon_proc_xretries(pdev, peer, tid);
|
dp_tx_mon_proc_xretries(pdev, peer, tid);
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: peer_id [%d 0x%x] tid[%d] qlen[%d -> %d]",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, ppdu_desc->user[usr_idx].peer_id, peer, tid, qlen, qlen_curr);
|
||||||
"peer_id [%d 0x%x] tid[%d] qlen[%d -> %d]",
|
|
||||||
ppdu_desc->user[usr_idx].peer_id, peer, tid, qlen, qlen_curr);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4975,10 +4866,8 @@ dp_check_ppdu_and_deliver(struct dp_pdev *pdev,
|
|||||||
user->ba_size);
|
user->ba_size);
|
||||||
|
|
||||||
if (qdf_unlikely(!user->mpdus)) {
|
if (qdf_unlikely(!user->mpdus)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: ppdu_desc->mpdus allocation failed",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc);
|
||||||
"%s: ppdu_desc->mpdus allocation failed",
|
|
||||||
__func__);
|
|
||||||
dp_ppdu_desc_free_all(ptr_nbuf_list, num_users);
|
dp_ppdu_desc_free_all(ptr_nbuf_list, num_users);
|
||||||
DP_TX_PEER_DEL_REF(peer);
|
DP_TX_PEER_DEL_REF(peer);
|
||||||
dp_print_pdev_tx_capture_stats(pdev);
|
dp_print_pdev_tx_capture_stats(pdev);
|
||||||
@@ -5018,10 +4907,8 @@ dp_check_ppdu_and_deliver(struct dp_pdev *pdev,
|
|||||||
!(SEQ_BIT(user->failed_bitmap, i))) {
|
!(SEQ_BIT(user->failed_bitmap, i))) {
|
||||||
uint8_t seq_idx;
|
uint8_t seq_idx;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_debug("%pK:find seq %d in next ppdu %d",
|
||||||
QDF_TRACE_LEVEL_DEBUG,
|
pdev->soc, seq_no,
|
||||||
"%s:find seq %d in next ppdu %d",
|
|
||||||
__func__, seq_no,
|
|
||||||
ppdu_desc_cnt);
|
ppdu_desc_cnt);
|
||||||
|
|
||||||
mpdu_nbuf =
|
mpdu_nbuf =
|
||||||
@@ -5200,10 +5087,8 @@ dp_check_ppdu_and_deliver(struct dp_pdev *pdev,
|
|||||||
uint8_t tmp_usr_idx;
|
uint8_t tmp_usr_idx;
|
||||||
qdf_nbuf_queue_t *tmp_ppdu_q;
|
qdf_nbuf_queue_t *tmp_ppdu_q;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("%pK: pending ppdus (%d, %d) : %d\n",
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
pdev->soc, peer_id,
|
||||||
"pending ppdus (%d, %d) : %d\n",
|
|
||||||
peer_id,
|
|
||||||
tx_tid->tid, pending_ppdus);
|
tx_tid->tid, pending_ppdus);
|
||||||
tmp_ppdu_q = &tx_tid->pending_ppdu_q;
|
tmp_ppdu_q = &tx_tid->pending_ppdu_q;
|
||||||
tmp_nbuf = qdf_nbuf_queue_remove(tmp_ppdu_q);
|
tmp_nbuf = qdf_nbuf_queue_remove(tmp_ppdu_q);
|
||||||
@@ -5353,10 +5238,8 @@ dp_tx_cap_proc_per_ppdu_info(struct dp_pdev *pdev, qdf_nbuf_t nbuf_ppdu,
|
|||||||
usr_idx,
|
usr_idx,
|
||||||
ppdu_desc->ppdu_id);
|
ppdu_desc->ppdu_id);
|
||||||
if (user->tid > DP_MAX_TIDS) {
|
if (user->tid > DP_MAX_TIDS) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("%pK: ppdu[%d] peer_id[%d] TID[%d] > NON_QOS_TID!",
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
pdev->soc,
|
||||||
"%s: ppdu[%d] peer_id[%d] TID[%d] > NON_QOS_TID!",
|
|
||||||
__func__,
|
|
||||||
ppdu_desc->ppdu_id,
|
ppdu_desc->ppdu_id,
|
||||||
user->peer_id,
|
user->peer_id,
|
||||||
user->tid);
|
user->tid);
|
||||||
@@ -5460,10 +5343,8 @@ dequeue_msdu_again:
|
|||||||
user->mpdu_tried_mcast;
|
user->mpdu_tried_mcast;
|
||||||
|
|
||||||
/* print ppdu_desc info for debugging purpose */
|
/* print ppdu_desc info for debugging purpose */
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ppdu[%d] b_ppdu_id[%d] p_id[%d], tid[%d], n_mpdu[%d %d] n_msdu[%d] retr[%d] qlen[%d] tsf[%u - %u] b_tsf[%u - %u] dur[%u] seq[%d] ppdu_desc_cnt[%d]",
|
||||||
QDF_TRACE_LEVEL_INFO,
|
pdev->soc,
|
||||||
"%s: ppdu[%d] b_ppdu_id[%d] p_id[%d], tid[%d], n_mpdu[%d %d] n_msdu[%d] retr[%d] qlen[%d] tsf[%u - %u] b_tsf[%u - %u] dur[%u] seq[%d] ppdu_desc_cnt[%d]",
|
|
||||||
__func__,
|
|
||||||
ppdu_desc->ppdu_id,
|
ppdu_desc->ppdu_id,
|
||||||
ppdu_desc->bar_ppdu_id,
|
ppdu_desc->bar_ppdu_id,
|
||||||
user->peer_id,
|
user->peer_id,
|
||||||
@@ -5508,10 +5389,8 @@ free_nbuf_dec_ref:
|
|||||||
* descriptor list
|
* descriptor list
|
||||||
*/
|
*/
|
||||||
/* print ppdu_desc info for debugging purpose */
|
/* print ppdu_desc info for debugging purpose */
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info_low("%pK: ppdu[%d], p_id[%d], tid[%d], fctrl[0x%x 0x%x] ftype[%d] h_frm_t[%d] seq[%d] tsf[%u b %u] dur[%u]",
|
||||||
QDF_TRACE_LEVEL_INFO_LOW,
|
pdev->soc, ppdu_desc->ppdu_id,
|
||||||
"%s: ppdu[%d], p_id[%d], tid[%d], fctrl[0x%x 0x%x] ftype[%d] h_frm_t[%d] seq[%d] tsf[%u b %u] dur[%u]",
|
|
||||||
__func__, ppdu_desc->ppdu_id,
|
|
||||||
ppdu_desc->user[0].peer_id,
|
ppdu_desc->user[0].peer_id,
|
||||||
ppdu_desc->user[0].tid,
|
ppdu_desc->user[0].tid,
|
||||||
ppdu_desc->frame_ctrl,
|
ppdu_desc->frame_ctrl,
|
||||||
@@ -5716,10 +5595,8 @@ void dp_tx_ppdu_stats_process(void *context)
|
|||||||
|
|
||||||
if (dp_tx_cap_nbuf_list_get_ref(
|
if (dp_tx_cap_nbuf_list_get_ref(
|
||||||
ptr_nbuf_list)) {
|
ptr_nbuf_list)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_alert("%pK: missing handling of ppdu_desc ref_cnt:%d ,i : %d ptr %p, ppdu_desc_cnt %d!!!\n",
|
||||||
QDF_TRACE_LEVEL_FATAL,
|
pdev->soc,
|
||||||
"%s: %d missing handling of ppdu_desc ref_cnt:%d ,i : %d ptr %p, ppdu_desc_cnt %d!!!\n",
|
|
||||||
__func__, __LINE__,
|
|
||||||
ptr_nbuf_list->ref_cnt, i, ptr_nbuf_list, ppdu_desc_cnt);
|
ptr_nbuf_list->ref_cnt, i, ptr_nbuf_list, ppdu_desc_cnt);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
}
|
}
|
||||||
@@ -5775,10 +5652,8 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
|
|||||||
|
|
||||||
if (!s_ppdu_info->done && !recv_ack_ba_done) {
|
if (!s_ppdu_info->done && !recv_ack_ba_done) {
|
||||||
if (time_delta < MAX_SCHED_STARVE) {
|
if (time_delta < MAX_SCHED_STARVE) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: pdev[%d] ppdu_id[0x%x %d] sched_cmdid[0x%x %d] TLV_B[0x%x] TSF[%u] D[%d]",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, pdev->pdev_id,
|
||||||
"pdev[%d] ppdu_id[0x%x %d] sched_cmdid[0x%x %d] TLV_B[0x%x] TSF[%u] D[%d]",
|
|
||||||
pdev->pdev_id,
|
|
||||||
s_ppdu_info->ppdu_id, s_ppdu_info->ppdu_id,
|
s_ppdu_info->ppdu_id, s_ppdu_info->ppdu_id,
|
||||||
s_ppdu_info->sched_cmdid, s_ppdu_info->sched_cmdid,
|
s_ppdu_info->sched_cmdid, s_ppdu_info->sched_cmdid,
|
||||||
s_ppdu_info->tlv_bitmap, s_ppdu_info->tsf_l32,
|
s_ppdu_info->tlv_bitmap, s_ppdu_info->tsf_l32,
|
||||||
@@ -5800,10 +5675,8 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
|
|||||||
ppdu_desc->sched_cmdid = ppdu_info->sched_cmdid;
|
ppdu_desc->sched_cmdid = ppdu_info->sched_cmdid;
|
||||||
|
|
||||||
if (starved) {
|
if (starved) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: ppdu starved fc[0x%x] h_ftype[%d] tlv_bitmap[0x%x] cs[%d]\n",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, ppdu_desc->frame_ctrl,
|
||||||
"ppdu starved fc[0x%x] h_ftype[%d] tlv_bitmap[0x%x] cs[%d]\n",
|
|
||||||
ppdu_desc->frame_ctrl,
|
|
||||||
ppdu_desc->htt_frame_type,
|
ppdu_desc->htt_frame_type,
|
||||||
ppdu_desc->tlv_bitmap,
|
ppdu_desc->tlv_bitmap,
|
||||||
ppdu_desc->user[0].completion_status);
|
ppdu_desc->user[0].completion_status);
|
||||||
@@ -5814,10 +5687,8 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
|
|||||||
ppdu_info->sched_cmdid == s_ppdu_info->sched_cmdid)
|
ppdu_info->sched_cmdid == s_ppdu_info->sched_cmdid)
|
||||||
matched = 1;
|
matched = 1;
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_info("%pK: pdev[%d] vdev[%d] ppdu_id[0x%x %d] sched_cmdid[0x%x %d] FC[0x%x] H_FTYPE[0x%x] TLV_B[0x%x] TSF[%u] cs[%d] M[%d] R_PID[%d S %d]",
|
||||||
QDF_TRACE_LEVEL_INFO_MED,
|
pdev->soc, pdev->pdev_id, ppdu_desc->vdev_id,
|
||||||
"pdev[%d] vdev[%d] ppdu_id[0x%x %d] sched_cmdid[0x%x %d] FC[0x%x] H_FTYPE[0x%x] TLV_B[0x%x] TSF[%u] cs[%d] M[%d] R_PID[%d S %d]",
|
|
||||||
pdev->pdev_id, ppdu_desc->vdev_id,
|
|
||||||
s_ppdu_info->ppdu_id, s_ppdu_info->ppdu_id,
|
s_ppdu_info->ppdu_id, s_ppdu_info->ppdu_id,
|
||||||
s_ppdu_info->sched_cmdid, s_ppdu_info->sched_cmdid,
|
s_ppdu_info->sched_cmdid, s_ppdu_info->sched_cmdid,
|
||||||
ppdu_desc->frame_ctrl,
|
ppdu_desc->frame_ctrl,
|
||||||
@@ -6321,8 +6192,7 @@ dp_bar_send_ack_frm_to_stack(struct dp_soc *soc,
|
|||||||
/* Get addr pointing to 80211 header */
|
/* Get addr pointing to 80211 header */
|
||||||
addr = dp_rx_mon_get_nbuf_80211_hdr(nbuf);
|
addr = dp_rx_mon_get_nbuf_80211_hdr(nbuf);
|
||||||
if (qdf_unlikely(!addr)) {
|
if (qdf_unlikely(!addr)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: Unable to get 80211 header address", soc);
|
||||||
"%s: Unable to get 80211 header address", __func__);
|
|
||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6379,8 +6249,7 @@ static void dp_gen_noack_frame(struct hal_rx_ppdu_info *ppdu_info,
|
|||||||
/* Get addr pointing to 80211 header */
|
/* Get addr pointing to 80211 header */
|
||||||
ndpa_buf = dp_rx_mon_get_nbuf_80211_hdr(mon_mpdu);
|
ndpa_buf = dp_rx_mon_get_nbuf_80211_hdr(mon_mpdu);
|
||||||
if (qdf_unlikely(!ndpa_buf)) {
|
if (qdf_unlikely(!ndpa_buf)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("Unable to get 80211 header address");
|
||||||
"%s: Unable to get 80211 header address", __func__);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6912,8 +6781,7 @@ void tx_cap_debugfs_log_ppdu_desc(struct dp_pdev *pdev, qdf_nbuf_t nbuf_ppdu)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
list_size = ppdu_desc_dbg_enqueue(ptr_log_info, ptr_dbg_ppdu);
|
list_size = ppdu_desc_dbg_enqueue(ptr_log_info, ptr_dbg_ppdu);
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_INFO_MED,
|
dp_tx_capture_info("%pK: enqueue list_size:%d\n", pdev->soc, list_size);
|
||||||
"%s: enqueue list_size:%d\n", __func__, list_size);
|
|
||||||
|
|
||||||
if (list_size >= ptr_log_info->ppdu_queue_size) {
|
if (list_size >= ptr_log_info->ppdu_queue_size) {
|
||||||
ptr_tmp_ppdu = ppdu_desc_dbg_dequeue(ptr_log_info);
|
ptr_tmp_ppdu = ppdu_desc_dbg_dequeue(ptr_log_info);
|
||||||
@@ -6996,8 +6864,7 @@ QDF_STATUS dp_tx_capture_debugfs_init(struct dp_pdev *pdev)
|
|||||||
dentry = qdf_debugfs_create_dir(buf, NULL);
|
dentry = qdf_debugfs_create_dir(buf, NULL);
|
||||||
|
|
||||||
if (!dentry) {
|
if (!dentry) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE, QDF_TRACE_LEVEL_ERROR,
|
dp_tx_capture_err("%pK: error while creating debugfs dir for %s", pdev->soc, buf);
|
||||||
"error while creating debugfs dir for %s", buf);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7020,10 +6887,8 @@ QDF_STATUS dp_tx_capture_debugfs_init(struct dp_pdev *pdev)
|
|||||||
&ptr_debugfs_info->ops);
|
&ptr_debugfs_info->ops);
|
||||||
|
|
||||||
if (!ptr_log_info->debugfs_de[i]) {
|
if (!ptr_log_info->debugfs_de[i]) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TX_CAPTURE,
|
dp_tx_capture_err("%pK: debug Entry creation failed[%s]!",
|
||||||
QDF_TRACE_LEVEL_ERROR,
|
pdev->soc, ptr_debugfs_info->name);
|
||||||
"debug Entry creation failed[%s]!",
|
|
||||||
ptr_debugfs_info->name);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -53,6 +53,17 @@ struct dp_tx_desc_s;
|
|||||||
|
|
||||||
#define TX_CAPTURE_WORK_Q_TIMER_MS 10
|
#define TX_CAPTURE_WORK_Q_TIMER_MS 10
|
||||||
|
|
||||||
|
#define dp_tx_capture_alert(params...) QDF_TRACE_FATAL(QDF_MODULE_ID_DP_TX_CAPTURE, params)
|
||||||
|
#define dp_tx_capture_err(params...) QDF_TRACE_ERROR(QDF_MODULE_ID_DP_TX_CAPTURE, params)
|
||||||
|
#define dp_tx_capture_warn(params...) QDF_TRACE_WARN(QDF_MODULE_ID_DP_TX_CAPTURE, params)
|
||||||
|
#define dp_tx_capture_info(params...) \
|
||||||
|
__QDF_TRACE_FL(QDF_TRACE_LEVEL_INFO, QDF_MODULE_ID_DP_TX_CAPTURE, ## params)
|
||||||
|
#define dp_tx_capture_info_high(params...) \
|
||||||
|
__QDF_TRACE_FL(QDF_TRACE_LEVEL_INFO_HIGH, QDF_MODULE_ID_DP_TX_CAPTURE, ## params)
|
||||||
|
#define dp_tx_capture_info_low(params...) \
|
||||||
|
__QDF_TRACE_FL(QDF_TRACE_LEVEL_INFO_LOW, QDF_MODULE_ID_DP_TX_CAPTURE, ## params)
|
||||||
|
#define dp_tx_capture_debug(params...) QDF_TRACE_DEBUG(QDF_MODULE_ID_DP_TX_CAPTURE, params)
|
||||||
|
|
||||||
/* stats */
|
/* stats */
|
||||||
enum CDP_PEER_MSDU_DESC {
|
enum CDP_PEER_MSDU_DESC {
|
||||||
PEER_MSDU_SUCC,
|
PEER_MSDU_SUCC,
|
||||||
|
Reference in New Issue
Block a user