Displaying 3 results from an estimated 3 matches for "fail_put_dmabuf".
2014 Sep 26
0
[RFC PATCH 7/7] drm/prime: Support explicit fence on export
...turn -EINVAL;
+ }
+ fence = fence_get(sf->cbs[0].sync_pt);
+ sync_fence_put(sf);
+ flags &= ~DRM_SYNC_FD;
+#else
+ return -ENODEV;
+#endif
+ }
mutex_lock(&file_priv->prime.lock);
obj = drm_gem_object_lookup(dev, file_priv, handle);
@@ -453,6 +473,14 @@ out_have_obj:
goto fail_put_dmabuf;
out_have_handle:
+ if (fence) {
+ if (!dmabuf->resv) {
+ ret = -ENODEV;
+ goto fail_put_dmabuf;
+ }
+ reservation_object_add_excl_fence(dmabuf->resv, fence);
+ }
+
ret = dma_buf_fd(dmabuf, flags);
/*
* We must _not_ remove the buffer from the handle cache since the newly
@@...
2014 Sep 29
1
[RFC PATCH 7/7] drm/prime: Support explicit fence on export
...ync_pt);
> + sync_fence_put(sf);
> + flags &= ~DRM_SYNC_FD;
> +#else
> + return -ENODEV;
> +#endif
> + }
>
> mutex_lock(&file_priv->prime.lock);
> obj = drm_gem_object_lookup(dev, file_priv, handle);
> @@ -453,6 +473,14 @@ out_have_obj:
> goto fail_put_dmabuf;
>
> out_have_handle:
> + if (fence) {
> + if (!dmabuf->resv) {
> + ret = -ENODEV;
> + goto fail_put_dmabuf;
> + }
> + reservation_object_add_excl_fence(dmabuf->resv, fence);
> + }
> +
> ret = dma_buf_fd(dmabuf, flags);
> /*
> * We must...
2014 Sep 26
14
[RFC] Explicit synchronization for Nouveau
Hi guys,
I'd like to start a new thread about explicit fence synchronization. This time
with a Nouveau twist. :-)
First, let me define what I understand by implicit/explicit sync:
Implicit synchronization
* Fences are attached to buffers
* Kernel manages fences automatically based on buffer read/write access
Explicit synchronization
* Fences are passed around independently
* Kernel takes