On Mon, Jul 29, 2019 at 05:38:29PM +0530, Ravulapati Vishnu vardhan rao wrote:
We shouldn't assume CPU physical address we get from page_to_phys() is same as DMA address we get from dma_alloc_coherent(). On x86_64, we won't run into any problem with the assumption when dma_ops is nommu_dma_ops. However, DMA address is IOVA when IOMMU is enabled. And it's most likely different from CPU physical address when AMD IOMMU is not in passthrough mode.
This doesn't build for me:
sound/soc/amd/raven/acp3x-pcm-dma.c: In function ‘acp3x_dma_hw_params’: sound/soc/amd/raven/acp3x-pcm-dma.c:356:2: error: ‘pg’ undeclared (first use in this function) pg = virt_to_page(substream->dma_buffer.area); ^~ sound/soc/amd/raven/acp3x-pcm-dma.c:356:2: note: each undeclared identifier is reported only once for each function it appears in
Please check and resend.