qcacmn: Update TX HP only for last TSO segment

Currently HW TX queue HP value is updated for every TSO segment enqueue,
as a part of optimization update HP only for the last segment.

Change-Id: Ibe349a1e6f55932bf780e1f755f13841078a493f
CRs-Fixed: 3138142
这个提交包含在:
Karthik Kantamneni
2022-03-07 18:51:46 +05:30
提交者 Madan Koyyalamudi
父节点 fb2b00a1b9
当前提交 842db6aafc
修改 4 个文件,包含 63 行新增7 行删除

查看文件

@@ -188,6 +188,7 @@ struct dp_tx_queue {
* @ix_tx_sniffer: Indicates if the packet has to be sniffed
* @gsn: global sequence for reinjected mcast packets
* @vdev_id : vdev_id for reinjected mcast packets
* @skip_hp_update : Skip HP update for TSO segments and update in last segment
*
* This structure holds the complete MSDU information needed to program the
* Hardware TCL and MSDU extension descriptors for different frame types
@@ -212,6 +213,9 @@ struct dp_tx_msdu_info_s {
uint8_t vdev_id;
#endif
#endif
#ifdef WLAN_DP_FEATURE_SW_LATENCY_MGR
uint8_t skip_hp_update;
#endif
};
#ifndef QCA_HOST_MODE_WIFI_DISABLED
@@ -786,6 +790,7 @@ void dp_tx_update_stats(struct dp_soc *soc,
* @soc: Datapath soc handle
* @tx_desc: tx packet descriptor
* @tid: TID for pkt transmission
* @msdu_info: MSDU info of tx packet
*
* Returns: 1, if coalescing is to be done
* 0, if coalescing is not to be done
@@ -793,7 +798,7 @@ void dp_tx_update_stats(struct dp_soc *soc,
int
dp_tx_attempt_coalescing(struct dp_soc *soc, struct dp_vdev *vdev,
struct dp_tx_desc_s *tx_desc,
uint8_t tid);
uint8_t tid, struct dp_tx_msdu_info_s *msdu_info);
/**
* dp_tx_ring_access_end() - HAL ring access end for data transmission
@@ -826,7 +831,8 @@ dp_tx_ring_access_end(struct dp_soc *soc, hal_ring_handle_t hal_ring_hdl,
static inline int
dp_tx_attempt_coalescing(struct dp_soc *soc, struct dp_vdev *vdev,
struct dp_tx_desc_s *tx_desc,
uint8_t tid)
uint8_t tid,
struct dp_tx_msdu_info_s *msdu_info)
{
return 0;
}