qcacmn: Add fast TX support for STA mode

Add fast TX support for STA mode too

Change-Id: I416076bf7faa2d48fa4d2749f4b08cee2767e279
CRs-Fixed: 3289179
This commit is contained in:
Tallapragada Kalyan
2022-09-12 12:58:07 +05:30
committed by Madan Koyyalamudi
parent a560466b61
commit 3366de83ac
2 changed files with 10 additions and 5 deletions

View File

@@ -1363,6 +1363,7 @@ qdf_nbuf_t dp_tx_fast_send_be(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
hal_ring_handle_t hal_ring_hdl = NULL;
uint32_t *hal_tx_desc_cached;
void *hal_tx_desc;
uint8_t desc_size = DP_TX_FAST_DESC_SIZE;
if (qdf_unlikely(vdev_id >= MAX_VDEV_CNT))
return nbuf;
@@ -1431,6 +1432,13 @@ qdf_nbuf_t dp_tx_fast_send_be(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
hal_tx_desc_cached[5] = vdev->lmac_id << TCL_DATA_CMD_PMAC_ID_LSB;
hal_tx_desc_cached[5] |= vdev->vdev_id << TCL_DATA_CMD_VDEV_ID_LSB;
if (vdev->opmode == wlan_op_mode_sta) {
hal_tx_desc_cached[6] = vdev->bss_ast_idx |
((vdev->bss_ast_hash & 0xF) <<
TCL_DATA_CMD_CACHE_SET_NUM_LSB);
desc_size = DP_TX_FAST_DESC_SIZE + 4;
}
hal_ring_hdl = dp_tx_get_hal_ring_hdl(soc, desc_pool_id);
if (qdf_unlikely(dp_tx_hal_ring_access_start(soc, hal_ring_hdl))) {
@@ -1451,7 +1459,7 @@ qdf_nbuf_t dp_tx_fast_send_be(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
tx_desc->flags |= DP_TX_DESC_FLAG_QUEUED_TX;
/* Sync cached descriptor with HW */
qdf_mem_copy(hal_tx_desc, hal_tx_desc_cached, DP_TX_FAST_DESC_SIZE);
qdf_mem_copy(hal_tx_desc, hal_tx_desc_cached, desc_size);
qdf_dsb();
DP_STATS_INC_PKT(vdev, tx_i.processed, 1, tx_desc->length);

View File

@@ -7185,10 +7185,7 @@ static inline void dp_vdev_fetch_tx_handler(struct dp_vdev *vdev,
ctx->tx_fast = dp_tx_send_vdev_id_check;
} else {
ctx->tx = dp_tx_send;
if (vdev->opmode == wlan_op_mode_ap)
ctx->tx_fast = soc->arch_ops.dp_tx_send_fast;
else
ctx->tx_fast = dp_tx_send;
}
/* Avoid check in regular exception Path */