Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87e332d5 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

dma-buf: Update docs for SYNC ioctl



Just a bit of wording polish plus mentioning that it can fail and must
be restarted.

Requested by Sumit.

v2: Fix them typos (Hans).

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tiago Vignatti <tiago.vignatti@intel.com>
Cc: Stéphane Marchesin <marcheu@chromium.org>
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Daniel Vetter <daniel.vetter@intel.com>
CC: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Cc: intel-gfx@lists.freedesktop.org
Cc: devel@driverdev.osuosl.org
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Acked-by: default avatarSumit Semwal <sumit.semwal@linaro.org>
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
parent 3c66f4aa
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -352,7 +352,8 @@ Being able to mmap an export dma-buf buffer object has 2 main use-cases:

   No special interfaces, userspace simply calls mmap on the dma-buf fd, making
   sure that the cache synchronization ioctl (DMA_BUF_IOCTL_SYNC) is *always*
   used when the access happens. This is discussed next paragraphs.
   used when the access happens. Note that DMA_BUF_IOCTL_SYNC can fail with
   -EAGAIN or -EINTR, in which case it must be restarted.

   Some systems might need some sort of cache coherency management e.g. when
   CPU and GPU domains are being accessed through dma-buf at the same time. To
@@ -366,10 +367,10 @@ Being able to mmap an export dma-buf buffer object has 2 main use-cases:
       want (with the new data being consumed by the GPU or say scanout device)
     - munmap once you don't need the buffer any more

    Therefore, for correctness and optimal performance, systems with the memory
    cache shared by the GPU and CPU i.e. the "coherent" and also the
    "incoherent" are always required to use SYNC_START and SYNC_END before and
    after, respectively, when accessing the mapped address.
    For correctness and optimal performance, it is always required to use
    SYNC_START and SYNC_END before and after, respectively, when accessing the
    mapped address. Userspace cannot rely on coherent access, even when there
    are systems where it just works without calling these ioctls.

2. Supporting existing mmap interfaces in importers

+1 −1
Original line number Diff line number Diff line
@@ -612,7 +612,7 @@ EXPORT_SYMBOL_GPL(dma_buf_begin_cpu_access);
 * @dmabuf:	[in]	buffer to complete cpu access for.
 * @direction:	[in]	length of range for cpu access.
 *
 * This call must always succeed.
 * Can return negative error values, returns 0 on success.
 */
int dma_buf_end_cpu_access(struct dma_buf *dmabuf,
			   enum dma_data_direction direction)