Hi Christoph,
On 27-Oct-23 10:54 AM, Christoph Hellwig wrote:
On Wed, Oct 25, 2023 at 12:26:58PM +0530, jeshwank wrote:
+ tee_buf->vaddr = dma_alloc_coherent(psp->dev, size, &tee_buf->dma, gfp);
+ if (!tee_buf->vaddr || !tee_buf->dma) {
+ kfree(tee_buf);
+ return NULL;
+ }
+
+ tee_buf->size = size;
+
+ /* Check whether IOMMU is present. If present, translate IOVA
+ * to physical address, else the dma handle is the physical
+ * address.
+ */
+ dom = iommu_get_domain_for_dev(psp->dev);
+ if (dom)
+ tee_buf->paddr = iommu_iova_to_phys(dom, tee_buf->dma);
+ else
No, you can't mix the DMA API and iommu API. You need to stick to one
or the other.
Can you please elaborate?