diff --git a/dp/wifi3.0/dp_htt.c b/dp/wifi3.0/dp_htt.c index ddac2487b4f0..b69dc704839f 100644 --- a/dp/wifi3.0/dp_htt.c +++ b/dp/wifi3.0/dp_htt.c @@ -3029,6 +3029,39 @@ dp_process_ppdu_stats_user_compltn_flush_tlv(struct dp_pdev *pdev, dp_peer_unref_del_find_by_id(peer); } +/** + * dp_process_ppdu_stats_sch_cmd_status_tlv: Process schedule command status tlv + * Here we are not going to process the buffer. + * @pdev: DP PDEV handle + * @ppdu_info: per ppdu tlv structure + * + * return:void + */ +static void +dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev, + struct ppdu_info *ppdu_info) +{ + struct cdp_tx_completion_ppdu *ppdu_desc; + uint8_t num_users; + uint8_t i; + + ppdu_desc = (struct cdp_tx_completion_ppdu *) + qdf_nbuf_data(ppdu_info->nbuf); + + num_users = ppdu_desc->num_users; + + if (ppdu_desc->frame_type == CDP_PPDU_FTYPE_BAR) { + for (i = 0; i < num_users; i++) { + if (ppdu_desc->user[i].user_pos == 0) { + /* update phy mode for bar frame */ + ppdu_desc->phy_mode = + ppdu_desc->user[i].preamble; + break; + } + } + } +} + #ifndef WLAN_TX_PKT_CAPTURE_ENH /* * dp_deliver_mgmt_frm: Process @@ -3255,6 +3288,9 @@ static void dp_process_ppdu_tag(struct dp_pdev *pdev, uint32_t *tag_buf, dp_process_ppdu_stats_user_compltn_flush_tlv(pdev, tlv_desc, ppdu_info); break; + case HTT_PPDU_STATS_SCH_CMD_STATUS_TLV: + dp_process_ppdu_stats_sch_cmd_status_tlv(pdev, ppdu_info); + break; default: break; }