Skip to content

Commit 0a6730e

Browse files
amingriyueeasy2rememberchk
authored andcommitted
drm: expand drm_syncobj_find_fence to support timeline point v2
we can fetch timeline point fence after expanded. v2: The parameter fence is the result of the function and should come last. Signed-off-by: Chunming Zhou <david1.zhou@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/246541/
1 parent e28bd10 commit 0a6730e

File tree

5 files changed

+8
-7
lines changed

5 files changed

+8
-7
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1102,7 +1102,7 @@ static int amdgpu_syncobj_lookup_and_add_to_sync(struct amdgpu_cs_parser *p,
11021102
{
11031103
int r;
11041104
struct dma_fence *fence;
1105-
r = drm_syncobj_find_fence(p->filp, handle, &fence);
1105+
r = drm_syncobj_find_fence(p->filp, handle, 0, &fence);
11061106
if (r)
11071107
return r;
11081108

drivers/gpu/drm/drm_syncobj.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ static int drm_syncobj_assign_null_handle(struct drm_syncobj *syncobj)
222222
* drm_syncobj_find_fence - lookup and reference the fence in a sync object
223223
* @file_private: drm file private pointer
224224
* @handle: sync object handle to lookup.
225+
* @point: timeline point
225226
* @fence: out parameter for the fence
226227
*
227228
* This is just a convenience function that combines drm_syncobj_find() and
@@ -232,7 +233,7 @@ static int drm_syncobj_assign_null_handle(struct drm_syncobj *syncobj)
232233
* dma_fence_put().
233234
*/
234235
int drm_syncobj_find_fence(struct drm_file *file_private,
235-
u32 handle,
236+
u32 handle, u64 point,
236237
struct dma_fence **fence)
237238
{
238239
struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle);
@@ -503,7 +504,7 @@ static int drm_syncobj_export_sync_file(struct drm_file *file_private,
503504
if (fd < 0)
504505
return fd;
505506

506-
ret = drm_syncobj_find_fence(file_private, handle, &fence);
507+
ret = drm_syncobj_find_fence(file_private, handle, 0, &fence);
507508
if (ret)
508509
goto err_put_fd;
509510

drivers/gpu/drm/v3d/v3d_gem.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,12 +521,12 @@ v3d_submit_cl_ioctl(struct drm_device *dev, void *data,
521521
kref_init(&exec->refcount);
522522

523523
ret = drm_syncobj_find_fence(file_priv, args->in_sync_bcl,
524-
&exec->bin.in_fence);
524+
0, &exec->bin.in_fence);
525525
if (ret == -EINVAL)
526526
goto fail;
527527

528528
ret = drm_syncobj_find_fence(file_priv, args->in_sync_rcl,
529-
&exec->render.in_fence);
529+
0, &exec->render.in_fence);
530530
if (ret == -EINVAL)
531531
goto fail;
532532

drivers/gpu/drm/vc4/vc4_gem.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ vc4_submit_cl_ioctl(struct drm_device *dev, void *data,
11731173

11741174
if (args->in_sync) {
11751175
ret = drm_syncobj_find_fence(file_priv, args->in_sync,
1176-
&in_fence);
1176+
0, &in_fence);
11771177
if (ret)
11781178
goto fail;
11791179

include/drm/drm_syncobj.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ struct drm_syncobj *drm_syncobj_find(struct drm_file *file_private,
134134
void drm_syncobj_replace_fence(struct drm_syncobj *syncobj,
135135
struct dma_fence *fence);
136136
int drm_syncobj_find_fence(struct drm_file *file_private,
137-
u32 handle,
137+
u32 handle, u64 point,
138138
struct dma_fence **fence);
139139
void drm_syncobj_free(struct kref *kref);
140140
int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,

0 commit comments

Comments
 (0)