qcacmn: Add support for lock less access of Tx rings

For 4 core CPU system, Tx access can be made lockless by associating
one Tx ring per CPU. Three Tx DATA rings and one SW2TX command ring
can be used for sending data to Tx.

Change-Id: I6e38cad52dffa4e46ff2b736cd6b949d061fa2a4
This commit is contained in:
Radha Krishna Simha Jiguru
2020-03-23 10:08:25 +05:30
committed by nshrivas
parent 6ba047a381
commit c4ae3d34b6
2 changed files with 65 additions and 3 deletions

View File

@@ -1205,7 +1205,7 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
hal_ring_hdl = dp_tx_get_hal_ring_hdl(soc, ring_id);
if (qdf_unlikely(hal_srng_access_start(soc->hal_soc, hal_ring_hdl))) {
if (qdf_unlikely(dp_tx_hal_ring_access_start(soc, hal_ring_hdl))) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"%s %d : HAL RING Access Failed -- %pK",
__func__, __LINE__, hal_ring_hdl);
@@ -1233,11 +1233,11 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
ring_access_fail:
if (hif_pm_runtime_get(soc->hif_handle,
RTPM_ID_DW_TX_HW_ENQUEUE) == 0) {
hal_srng_access_end(soc->hal_soc, hal_ring_hdl);
dp_tx_hal_ring_access_end(soc, hal_ring_hdl);
hif_pm_runtime_put(soc->hif_handle,
RTPM_ID_DW_TX_HW_ENQUEUE);
} else {
hal_srng_access_end_reap(soc->hal_soc, hal_ring_hdl);
dp_tx_hal_ring_access_end_reap(soc, hal_ring_hdl);
}
return status;