diff options
author | Pankaj Gupta <quic_gpankaj@quicinc.com> | 2023-01-11 18:48:36 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2023-03-06 04:53:50 -0800 |
commit | d0f7fc0412b8769039f1e88db393823b2f5be7ed (patch) | |
tree | 0d2396c2f82b7c0a58ef562af8c0c881329d4a87 | |
parent | 56f897d61e54c87bee2b887a0bec280127382fb4 (diff) | |
download | graphics-d0f7fc0412b8769039f1e88db393823b2f5be7ed.tar.gz |
Revert "msm: kgsl: Call dma_buf_unmap_attachment() early"
This reverts msm-5.10 commit b84bd97e37f8ac3a0f3194ebcbb1fa962e42cd73.
Warnings for direct dma clients during cache operations are now being
handled by dma-buf driver. Instead of doing dma_buf_unmap_attachment
early if we do it in destroy path, it helps in saving cycles and
improving performance during app launch.
Change-Id: Ic66dd3b66136318abf59685f95fee17890377fd4
Signed-off-by: Pankaj Gupta <quic_gpankaj@quicinc.com>
Signed-off-by: Archana Sriram <quic_c_apsrir@quicinc.com>
-rw-r--r-- | kgsl.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -332,6 +332,7 @@ static void kgsl_destroy_ion(struct kgsl_memdesc *memdesc) if (metadata != NULL) { remove_dmabuf_list(metadata); + dma_buf_unmap_attachment(metadata->attach, memdesc->sgt, DMA_BIDIRECTIONAL); dma_buf_detach(metadata->dmabuf, metadata->attach); dma_buf_put(metadata->dmabuf); kfree(metadata); @@ -3289,7 +3290,7 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, { int ret = 0; struct scatterlist *s; - struct sg_table *sg_table; + struct sg_table *sg_table = NULL; struct dma_buf_attachment *attach = NULL; struct kgsl_dma_buf_meta *metadata; @@ -3331,8 +3332,6 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, goto out; } - dma_buf_unmap_attachment(attach, sg_table, DMA_BIDIRECTIONAL); - metadata->table = sg_table; entry->priv_data = metadata; entry->memdesc.sgt = sg_table; @@ -3355,6 +3354,9 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device, out: if (ret) { + if (!IS_ERR_OR_NULL(sg_table)) + dma_buf_unmap_attachment(attach, sg_table, DMA_BIDIRECTIONAL); + if (!IS_ERR_OR_NULL(attach)) dma_buf_detach(dmabuf, attach); |