media: videobuf2: Prepare to dynamic dma-buf locking specification
authorDmitry Osipenko <dmitry.osipenko@collabora.com>
Mon, 17 Oct 2022 17:22:21 +0000 (20:22 +0300)
committerDmitry Osipenko <dmitry.osipenko@collabora.com>
Mon, 17 Oct 2022 22:21:48 +0000 (01:21 +0300)
Prepare V4L2 memory allocators to the common dynamic dma-buf locking
convention by starting to use the unlocked versions of dma-buf API
functions.

Acked-by: Tomasz Figa <tfiga@chromium.org>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221017172229.42269-14-dmitry.osipenko@collabora.com
drivers/media/common/videobuf2/videobuf2-dma-contig.c
drivers/media/common/videobuf2/videobuf2-dma-sg.c
drivers/media/common/videobuf2/videobuf2-vmalloc.c

index 678b359..79f4d83 100644 (file)
@@ -101,7 +101,7 @@ static void *vb2_dc_vaddr(struct vb2_buffer *vb, void *buf_priv)
        if (buf->db_attach) {
                struct iosys_map map;
 
-               if (!dma_buf_vmap(buf->db_attach->dmabuf, &map))
+               if (!dma_buf_vmap_unlocked(buf->db_attach->dmabuf, &map))
                        buf->vaddr = map.vaddr;
 
                return buf->vaddr;
@@ -711,7 +711,7 @@ static int vb2_dc_map_dmabuf(void *mem_priv)
        }
 
        /* get the associated scatterlist for this buffer */
-       sgt = dma_buf_map_attachment(buf->db_attach, buf->dma_dir);
+       sgt = dma_buf_map_attachment_unlocked(buf->db_attach, buf->dma_dir);
        if (IS_ERR(sgt)) {
                pr_err("Error getting dmabuf scatterlist\n");
                return -EINVAL;
@@ -722,7 +722,8 @@ static int vb2_dc_map_dmabuf(void *mem_priv)
        if (contig_size < buf->size) {
                pr_err("contiguous chunk is too small %lu/%lu\n",
                       contig_size, buf->size);
-               dma_buf_unmap_attachment(buf->db_attach, sgt, buf->dma_dir);
+               dma_buf_unmap_attachment_unlocked(buf->db_attach, sgt,
+                                                 buf->dma_dir);
                return -EFAULT;
        }
 
@@ -750,10 +751,10 @@ static void vb2_dc_unmap_dmabuf(void *mem_priv)
        }
 
        if (buf->vaddr) {
-               dma_buf_vunmap(buf->db_attach->dmabuf, &map);
+               dma_buf_vunmap_unlocked(buf->db_attach->dmabuf, &map);
                buf->vaddr = NULL;
        }
-       dma_buf_unmap_attachment(buf->db_attach, sgt, buf->dma_dir);
+       dma_buf_unmap_attachment_unlocked(buf->db_attach, sgt, buf->dma_dir);
 
        buf->dma_addr = 0;
        buf->dma_sgt = NULL;
index fa69158..36ecdea 100644 (file)
@@ -309,7 +309,7 @@ static void *vb2_dma_sg_vaddr(struct vb2_buffer *vb, void *buf_priv)
 
        if (!buf->vaddr) {
                if (buf->db_attach) {
-                       ret = dma_buf_vmap(buf->db_attach->dmabuf, &map);
+                       ret = dma_buf_vmap_unlocked(buf->db_attach->dmabuf, &map);
                        buf->vaddr = ret ? NULL : map.vaddr;
                } else {
                        buf->vaddr = vm_map_ram(buf->pages, buf->num_pages, -1);
@@ -565,7 +565,7 @@ static int vb2_dma_sg_map_dmabuf(void *mem_priv)
        }
 
        /* get the associated scatterlist for this buffer */
-       sgt = dma_buf_map_attachment(buf->db_attach, buf->dma_dir);
+       sgt = dma_buf_map_attachment_unlocked(buf->db_attach, buf->dma_dir);
        if (IS_ERR(sgt)) {
                pr_err("Error getting dmabuf scatterlist\n");
                return -EINVAL;
@@ -594,10 +594,10 @@ static void vb2_dma_sg_unmap_dmabuf(void *mem_priv)
        }
 
        if (buf->vaddr) {
-               dma_buf_vunmap(buf->db_attach->dmabuf, &map);
+               dma_buf_vunmap_unlocked(buf->db_attach->dmabuf, &map);
                buf->vaddr = NULL;
        }
-       dma_buf_unmap_attachment(buf->db_attach, sgt, buf->dma_dir);
+       dma_buf_unmap_attachment_unlocked(buf->db_attach, sgt, buf->dma_dir);
 
        buf->dma_sgt = NULL;
 }
index 948152f..7831bf5 100644 (file)
@@ -376,7 +376,7 @@ static int vb2_vmalloc_map_dmabuf(void *mem_priv)
        struct iosys_map map;
        int ret;
 
-       ret = dma_buf_vmap(buf->dbuf, &map);
+       ret = dma_buf_vmap_unlocked(buf->dbuf, &map);
        if (ret)
                return -EFAULT;
        buf->vaddr = map.vaddr;
@@ -389,7 +389,7 @@ static void vb2_vmalloc_unmap_dmabuf(void *mem_priv)
        struct vb2_vmalloc_buf *buf = mem_priv;
        struct iosys_map map = IOSYS_MAP_INIT_VADDR(buf->vaddr);
 
-       dma_buf_vunmap(buf->dbuf, &map);
+       dma_buf_vunmap_unlocked(buf->dbuf, &map);
        buf->vaddr = NULL;
 }
 
@@ -399,7 +399,7 @@ static void vb2_vmalloc_detach_dmabuf(void *mem_priv)
        struct iosys_map map = IOSYS_MAP_INIT_VADDR(buf->vaddr);
 
        if (buf->vaddr)
-               dma_buf_vunmap(buf->dbuf, &map);
+               dma_buf_vunmap_unlocked(buf->dbuf, &map);
 
        kfree(buf);
 }