qcacmn: Create IPA SMMU maps for host replenished bufs
Buffers replenished post processing entries in the REO2TCL ring do not have ipa smmu mappings created when RX_PREALLOC_BUFFER_POOL feature is disabled. This will result in SMMU fault when IPA HW accesses such replenished buffers. Fix is to create IPA SMMU mapping for replenished buffers when RX_PREALLOC_BUFFER_POOL feature is disabled as well. Change-Id: I0fe611a1279b91a3e45bc269348e05de9015d596 CRs-Fixed: 2915686
This commit is contained in:

committed by
snandini

parent
7d8f444b48
commit
6512d66c27
@@ -243,6 +243,11 @@ dp_pdev_nbuf_alloc_and_map_replenish(struct dp_soc *dp_soc,
|
|||||||
nbuf_frag_info_t->paddr =
|
nbuf_frag_info_t->paddr =
|
||||||
qdf_nbuf_get_frag_paddr((nbuf_frag_info_t->virt_addr).nbuf, 0);
|
qdf_nbuf_get_frag_paddr((nbuf_frag_info_t->virt_addr).nbuf, 0);
|
||||||
|
|
||||||
|
dp_ipa_handle_rx_buf_smmu_mapping(dp_soc,
|
||||||
|
(qdf_nbuf_t)((nbuf_frag_info_t->virt_addr).nbuf),
|
||||||
|
rx_desc_pool->buf_size,
|
||||||
|
true);
|
||||||
|
|
||||||
ret = dp_check_paddr(dp_soc, &((nbuf_frag_info_t->virt_addr).nbuf),
|
ret = dp_check_paddr(dp_soc, &((nbuf_frag_info_t->virt_addr).nbuf),
|
||||||
&nbuf_frag_info_t->paddr,
|
&nbuf_frag_info_t->paddr,
|
||||||
rx_desc_pool);
|
rx_desc_pool);
|
||||||
|
@@ -260,21 +260,12 @@ dp_rx_buffer_pool_nbuf_map(struct dp_soc *soc,
|
|||||||
{
|
{
|
||||||
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
QDF_STATUS ret = QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
if (!QDF_NBUF_CB_PADDR((nbuf_frag_info_t->virt_addr).nbuf)) {
|
if (!QDF_NBUF_CB_PADDR((nbuf_frag_info_t->virt_addr).nbuf))
|
||||||
ret = qdf_nbuf_map_nbytes_single(soc->osdev,
|
ret = qdf_nbuf_map_nbytes_single(soc->osdev,
|
||||||
(nbuf_frag_info_t->virt_addr).nbuf,
|
(nbuf_frag_info_t->virt_addr).nbuf,
|
||||||
QDF_DMA_FROM_DEVICE,
|
QDF_DMA_FROM_DEVICE,
|
||||||
rx_desc_pool->buf_size);
|
rx_desc_pool->buf_size);
|
||||||
|
|
||||||
if (qdf_unlikely(QDF_IS_STATUS_ERROR(ret)))
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
dp_ipa_handle_rx_buf_smmu_mapping(soc,
|
|
||||||
(qdf_nbuf_t)((nbuf_frag_info_t->virt_addr).nbuf),
|
|
||||||
rx_desc_pool->buf_size,
|
|
||||||
true);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user