qcacmn: fix tid overwrite/save FRs for HK

Fix tid overwrite and save features' brokage for HK

Change-Id: I71985a73f65ad4ddf79ae9a2efb00c5de12b9cd8
This commit is contained in:
Neil Zhao
2018-03-22 11:23:02 -07:00
committed by nshrivas
parent d9d0e52555
commit 488763687b
3 changed files with 23 additions and 2 deletions

View File

@@ -1076,6 +1076,9 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc,
nss = hal_rx_msdu_start_nss_get(rx_tlv_hdr); nss = hal_rx_msdu_start_nss_get(rx_tlv_hdr);
pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr); pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr);
/* Save tid to skb->priority */
DP_RX_TID_SAVE(nbuf, tid);
DP_STATS_INC(vdev->pdev, rx.bw[bw], 1); DP_STATS_INC(vdev->pdev, rx.bw[bw], 1);
DP_STATS_INC(vdev->pdev, rx.reception_type[reception_type], 1); DP_STATS_INC(vdev->pdev, rx.reception_type[reception_type], 1);
DP_STATS_INCC(vdev->pdev, rx.nss[nss], 1, DP_STATS_INCC(vdev->pdev, rx.nss[nss], 1,

View File

@@ -1036,6 +1036,11 @@ static void dp_tx_classify_tid(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
qdf_llc_t *llcHdr; qdf_llc_t *llcHdr;
struct dp_pdev *pdev = (struct dp_pdev *)vdev->pdev; struct dp_pdev *pdev = (struct dp_pdev *)vdev->pdev;
DP_TX_TID_OVERRIDE(msdu_info, nbuf);
if (vdev->dscp_tid_map_id <= 1)
return;
/* for mesh packets don't do any classification */ /* for mesh packets don't do any classification */
if (qdf_unlikely(vdev->mesh_vdev)) if (qdf_unlikely(vdev->mesh_vdev))
return; return;
@@ -1922,8 +1927,7 @@ qdf_nbuf_t dp_tx_send(void *vap_dev, qdf_nbuf_t nbuf)
* map to a TID and store in msdu_info. This is later used * map to a TID and store in msdu_info. This is later used
* to fill in TCL Input descriptor (per-packet TID override). * to fill in TCL Input descriptor (per-packet TID override).
*/ */
if (vdev->dscp_tid_map_id > 1) dp_tx_classify_tid(vdev, nbuf, &msdu_info);
dp_tx_classify_tid(vdev, nbuf, &msdu_info);
/* Reset the control block */ /* Reset the control block */
qdf_nbuf_reset_ctxt(nbuf); qdf_nbuf_reset_ctxt(nbuf);

View File

@@ -206,6 +206,20 @@ void dp_send_completion_to_stack(struct dp_soc *soc, struct dp_pdev *pdev,
qdf_nbuf_t netbuf); qdf_nbuf_t netbuf);
#endif #endif
#ifdef ATH_TX_PRI_OVERRIDE
#define DP_TX_TID_OVERRIDE((_msdu_info), _nbuf) \
((_msdu_info)->tid = qdf_nbuf_get_priority(_nbuf))
#else
#define DP_TX_TID_OVERRIDE(_msdu_info, _nbuf)
#endif
#ifdef ATH_RX_PRI_SAVE
#define DP_RX_TID_SAVE(_nbuf, _tid) \
(qdf_nbuf_set_priority(_nbuf, _tid))
#else
#define DP_RX_TID_SAVE(_nbuf, _tid)
#endif
/* TODO TX_FEATURE_NOT_YET */ /* TODO TX_FEATURE_NOT_YET */
static inline void dp_tx_comp_process_exception(struct dp_tx_desc_s *tx_desc) static inline void dp_tx_comp_process_exception(struct dp_tx_desc_s *tx_desc)
{ {