qcacmn: Change nbuf unmap API when free rx nbuf
The DMA Map/Unmap was restricted to buffer size in rx process. But the Unmap API was not changed when free nbuf in rx desc, apply the new unmap API. Change-Id: Id10d746776aa9e41ef3425e166ba0207851358d6 CRs-Fixed: 2716690
This commit is contained in:
@@ -174,8 +174,12 @@ static QDF_STATUS __dp_rx_desc_nbuf_free(struct dp_soc *soc,
|
|||||||
if (!rx_desc->unmapped) {
|
if (!rx_desc->unmapped) {
|
||||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
||||||
false);
|
false);
|
||||||
qdf_nbuf_unmap_single(soc->osdev, nbuf,
|
qdf_nbuf_unmap_nbytes_single(
|
||||||
QDF_DMA_BIDIRECTIONAL);
|
soc->osdev,
|
||||||
|
rx_desc->nbuf,
|
||||||
|
QDF_DMA_BIDIRECTIONAL,
|
||||||
|
rx_desc_pool->buf_size);
|
||||||
|
rx_desc->unmapped = 1;
|
||||||
}
|
}
|
||||||
qdf_nbuf_free(nbuf);
|
qdf_nbuf_free(nbuf);
|
||||||
}
|
}
|
||||||
@@ -324,9 +328,11 @@ void dp_rx_desc_nbuf_and_pool_free(struct dp_soc *soc, uint32_t pool_id,
|
|||||||
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
|
if (!(rx_desc_pool->array[i].rx_desc.unmapped)) {
|
||||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
||||||
false);
|
false);
|
||||||
|
qdf_nbuf_unmap_nbytes_single(
|
||||||
qdf_nbuf_unmap_single(soc->osdev, nbuf,
|
soc->osdev, nbuf,
|
||||||
QDF_DMA_FROM_DEVICE);
|
QDF_DMA_FROM_DEVICE,
|
||||||
|
rx_desc_pool->buf_size);
|
||||||
|
rx_desc_pool->array[i].rx_desc.unmapped = 1;
|
||||||
}
|
}
|
||||||
qdf_nbuf_free(nbuf);
|
qdf_nbuf_free(nbuf);
|
||||||
}
|
}
|
||||||
@@ -351,8 +357,11 @@ void dp_rx_desc_nbuf_free(struct dp_soc *soc,
|
|||||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
||||||
false);
|
false);
|
||||||
|
|
||||||
qdf_nbuf_unmap_single(soc->osdev, nbuf,
|
qdf_nbuf_unmap_nbytes_single(
|
||||||
QDF_DMA_FROM_DEVICE);
|
soc->osdev, nbuf,
|
||||||
|
QDF_DMA_FROM_DEVICE,
|
||||||
|
rx_desc_pool->buf_size);
|
||||||
|
rx_desc_pool->array[i].rx_desc.unmapped = 1;
|
||||||
}
|
}
|
||||||
qdf_nbuf_free(nbuf);
|
qdf_nbuf_free(nbuf);
|
||||||
}
|
}
|
||||||
|
@@ -234,6 +234,7 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
|
|||||||
for (i = 0; i < num_msdus; i++) {
|
for (i = 0; i < num_msdus; i++) {
|
||||||
uint32_t l2_hdr_offset;
|
uint32_t l2_hdr_offset;
|
||||||
struct dp_rx_desc *rx_desc = NULL;
|
struct dp_rx_desc *rx_desc = NULL;
|
||||||
|
struct rx_desc_pool *rx_desc_pool;
|
||||||
|
|
||||||
rx_desc = dp_rx_get_mon_desc(soc,
|
rx_desc = dp_rx_get_mon_desc(soc,
|
||||||
msdu_list.sw_cookie[i]);
|
msdu_list.sw_cookie[i]);
|
||||||
@@ -260,8 +261,15 @@ dp_rx_mon_mpdu_pop(struct dp_soc *soc, uint32_t mac_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rx_desc->unmapped == 0) {
|
if (rx_desc->unmapped == 0) {
|
||||||
qdf_nbuf_unmap_single(soc->osdev, msdu,
|
rx_desc_pool = dp_rx_get_mon_desc_pool(
|
||||||
QDF_DMA_FROM_DEVICE);
|
soc,
|
||||||
|
mac_id,
|
||||||
|
dp_pdev->pdev_id);
|
||||||
|
qdf_nbuf_unmap_nbytes_single(
|
||||||
|
soc->osdev,
|
||||||
|
rx_desc->nbuf,
|
||||||
|
QDF_DMA_FROM_DEVICE,
|
||||||
|
rx_desc_pool->buf_size);
|
||||||
rx_desc->unmapped = 1;
|
rx_desc->unmapped = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user