qca-wifi: support flush tlv in tx capture

all pending excess retries  ppdu desc are handled
for flush tlv

Change-Id: Id34664eec0680cd3712d14e9abd6329f7d1b10aa
Cette révision appartient à :
nobelj
2019-12-13 13:00:17 -08:00
Parent 2e01bacee7
révision da95696a44

Voir le fichier

@@ -1797,6 +1797,35 @@ dp_tx_mon_proc_pending_ppdus(struct dp_pdev *pdev, struct dp_tx_tid *tx_tid,
}
}
/**
* dp_tx_ppdu_stats_flush(): Function to flush pending retried ppdu desc
* @pdev: DP pdev handle
* @nbuf: ppdu_desc
*
* return: void
*/
static void
dp_tx_ppdu_stats_flush(struct dp_pdev *pdev,
struct cdp_tx_completion_ppdu *ppdu_desc)
{
struct dp_peer *peer;
peer = dp_peer_find_by_id(pdev->soc,
ppdu_desc->user[0].peer_id);
if (!peer)
return;
/*
* for all drop reason we are invoking
* proc xretries
*/
dp_tx_mon_proc_xretries(pdev, peer, ppdu_desc->user[0].tid);
dp_peer_unref_del_find_by_id(peer);
return;
}
/**
* dp_check_ppdu_and_deliver(): Check PPDUs for any holes and deliver
* to upper layer if complete
@@ -1834,6 +1863,14 @@ dp_check_ppdu_and_deliver(struct dp_pdev *pdev,
ppdu_id = ppdu_desc->ppdu_id;
if (ppdu_desc->is_flush) {
dp_tx_ppdu_stats_flush(pdev, ppdu_desc);
tmp_nbuf = nbuf_ppdu_desc_list[desc_cnt];
nbuf_ppdu_desc_list[desc_cnt] = NULL;
qdf_nbuf_free(tmp_nbuf);
continue;
}
if (ppdu_desc->frame_type == CDP_PPDU_FTYPE_CTRL ||
ppdu_desc->htt_frame_type ==
HTT_STATS_FTYPE_SGEN_QOS_NULL) {