qcacmn: handle IPA buffer smmu map/unmap correctly

Handle ipa buffer smmu map/unmap with below changes,
(1) Do IPA smmu unmap for RX buffer received from REO
exception/WBM RX release/REO DST/RXDMA DST ring.
(2) Align IPA smmu map length to qdf_nbuf_map_nytes_single()
with fixed length.

Change-Id: I1ed46b31ed31f5b7e4e2484d519bc85d35ce1e69
CRs-Fixed: 2728644
Dieser Commit ist enthalten in:
Jinwei Chen
2020-07-20 16:35:28 +08:00
committet von snandini
Ursprung eec104893e
Commit f3bffbfdd2
6 geänderte Dateien mit 80 neuen und 21 gelöschten Zeilen

Datei anzeigen

@@ -172,8 +172,10 @@ static QDF_STATUS __dp_rx_desc_nbuf_free(struct dp_soc *soc,
if (rx_desc->in_use) {
nbuf = rx_desc->nbuf;
if (!rx_desc->unmapped) {
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
false);
dp_ipa_handle_rx_buf_smmu_mapping(
soc, nbuf,
rx_desc_pool->buf_size,
false);
qdf_nbuf_unmap_nbytes_single(
soc->osdev,
rx_desc->nbuf,
@@ -326,8 +328,10 @@ void dp_rx_desc_nbuf_and_pool_free(struct dp_soc *soc, uint32_t pool_id,
nbuf = rx_desc_pool->array[i].rx_desc.nbuf;
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
false);
dp_ipa_handle_rx_buf_smmu_mapping(
soc, nbuf,
rx_desc_pool->buf_size,
false);
qdf_nbuf_unmap_nbytes_single(
soc->osdev, nbuf,
QDF_DMA_FROM_DEVICE,
@@ -354,9 +358,10 @@ void dp_rx_desc_nbuf_free(struct dp_soc *soc,
nbuf = rx_desc_pool->array[i].rx_desc.nbuf;
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
false);
dp_ipa_handle_rx_buf_smmu_mapping(
soc, nbuf,
rx_desc_pool->buf_size,
false);
qdf_nbuf_unmap_nbytes_single(
soc->osdev, nbuf,
QDF_DMA_FROM_DEVICE,