diff options
Diffstat (limited to 'lib/ioctl_wrappers.c')
-rw-r--r-- | lib/ioctl_wrappers.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c index 40712606..5d497293 100644 --- a/lib/ioctl_wrappers.c +++ b/lib/ioctl_wrappers.c @@ -1539,12 +1539,15 @@ off_t prime_get_size(int dma_buf_fd) * prime_sync_start * @dma_buf_fd: dma-buf fd handle */ -void prime_sync_start(int dma_buf_fd) +void prime_sync_start(int dma_buf_fd, bool write) { struct local_dma_buf_sync sync_start; memset(&sync_start, 0, sizeof(sync_start)); - sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW; + sync_start.flags = LOCAL_DMA_BUF_SYNC_START; + sync_start.flags |= LOCAL_DMA_BUF_SYNC_READ; + if (write) + sync_start.flags |= LOCAL_DMA_BUF_SYNC_WRITE; do_ioctl(dma_buf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start); } @@ -1552,12 +1555,15 @@ void prime_sync_start(int dma_buf_fd) * prime_sync_end * @dma_buf_fd: dma-buf fd handle */ -void prime_sync_end(int dma_buf_fd) +void prime_sync_end(int dma_buf_fd, bool write) { struct local_dma_buf_sync sync_end; memset(&sync_end, 0, sizeof(sync_end)); - sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW; + sync_end.flags = LOCAL_DMA_BUF_SYNC_END; + sync_end.flags |= LOCAL_DMA_BUF_SYNC_READ; + if (write) + sync_end.flags |= LOCAL_DMA_BUF_SYNC_WRITE; do_ioctl(dma_buf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end); } |