qcacmn: Defer IPA SMMU mapping to OPT_DP reserve
Currently, IPA SMMU map/unmap is called as part of init. This causes every nbuf to be mapped to IPA in the Rx path, causing throughputs to drop. This change resolves the problem by deferring the IPA SMMU map/unmap call to OPT_DP filter reserve/release, as nbuf needs to be mapped to IPA only in this scenario. Change-Id: If198a6c5f22af58fdaf9d9c020c74b1f76002e37 CRs-Fixed: 3496679
这个提交包含在:
@@ -2742,9 +2742,10 @@ void dp_rx_nbuf_unmap(struct dp_soc *soc,
|
||||
QDF_NBUF_CB_PADDR(rx_desc->nbuf),
|
||||
rx_desc_pool->buf_size);
|
||||
|
||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, rx_desc->nbuf,
|
||||
rx_desc_pool->buf_size,
|
||||
false, __func__, __LINE__);
|
||||
if (qdf_atomic_read(&soc->ipa_mapped))
|
||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, rx_desc->nbuf,
|
||||
rx_desc_pool->buf_size,
|
||||
false, __func__, __LINE__);
|
||||
|
||||
qdf_nbuf_unmap_nbytes_single(soc->osdev, rx_desc->nbuf,
|
||||
QDF_DMA_FROM_DEVICE,
|
||||
@@ -2760,8 +2761,10 @@ void dp_rx_nbuf_unmap_pool(struct dp_soc *soc,
|
||||
{
|
||||
dp_audio_smmu_unmap(soc->osdev, QDF_NBUF_CB_PADDR(nbuf),
|
||||
rx_desc_pool->buf_size);
|
||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf, rx_desc_pool->buf_size,
|
||||
false, __func__, __LINE__);
|
||||
if (qdf_atomic_read(&soc->ipa_mapped))
|
||||
dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf,
|
||||
rx_desc_pool->buf_size,
|
||||
false, __func__, __LINE__);
|
||||
qdf_nbuf_unmap_nbytes_single(soc->osdev, nbuf, QDF_DMA_FROM_DEVICE,
|
||||
rx_desc_pool->buf_size);
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户