Lines Matching refs:sig_sync

356 panthor_sync_signal_free(struct panthor_sync_signal *sig_sync)  in panthor_sync_signal_free()  argument
358 if (!sig_sync) in panthor_sync_signal_free()
361 drm_syncobj_put(sig_sync->syncobj); in panthor_sync_signal_free()
362 dma_fence_chain_free(sig_sync->chain); in panthor_sync_signal_free()
363 dma_fence_put(sig_sync->fence); in panthor_sync_signal_free()
364 kfree(sig_sync); in panthor_sync_signal_free()
378 struct panthor_sync_signal *sig_sync; in panthor_submit_ctx_add_sync_signal() local
382 sig_sync = kzalloc(sizeof(*sig_sync), GFP_KERNEL); in panthor_submit_ctx_add_sync_signal()
383 if (!sig_sync) in panthor_submit_ctx_add_sync_signal()
386 sig_sync->handle = handle; in panthor_submit_ctx_add_sync_signal()
387 sig_sync->point = point; in panthor_submit_ctx_add_sync_signal()
390 sig_sync->chain = dma_fence_chain_alloc(); in panthor_submit_ctx_add_sync_signal()
391 if (!sig_sync->chain) { in panthor_submit_ctx_add_sync_signal()
397 sig_sync->syncobj = drm_syncobj_find(ctx->file, handle); in panthor_submit_ctx_add_sync_signal()
398 if (!sig_sync->syncobj) { in panthor_submit_ctx_add_sync_signal()
408 sig_sync->fence = cur_fence; in panthor_submit_ctx_add_sync_signal()
410 list_add_tail(&sig_sync->node, &ctx->signals); in panthor_submit_ctx_add_sync_signal()
415 panthor_sync_signal_free(sig_sync); in panthor_submit_ctx_add_sync_signal()
431 struct panthor_sync_signal *sig_sync; in panthor_submit_ctx_search_sync_signal() local
433 list_for_each_entry(sig_sync, &ctx->signals, node) { in panthor_submit_ctx_search_sync_signal()
434 if (handle == sig_sync->handle && point == sig_sync->point) in panthor_submit_ctx_search_sync_signal()
435 return sig_sync; in panthor_submit_ctx_search_sync_signal()
478 struct panthor_sync_signal *sig_sync; in panthor_submit_ctx_get_sync_signal() local
480 sig_sync = panthor_submit_ctx_search_sync_signal(ctx, handle, point); in panthor_submit_ctx_get_sync_signal()
481 if (sig_sync) in panthor_submit_ctx_get_sync_signal()
508 struct panthor_sync_signal *sig_sync; in panthor_submit_ctx_update_job_sync_signal_fences() local
513 sig_sync = panthor_submit_ctx_search_sync_signal(ctx, sync_ops[i].handle, in panthor_submit_ctx_update_job_sync_signal_fences()
515 if (drm_WARN_ON(&ptdev->base, !sig_sync)) in panthor_submit_ctx_update_job_sync_signal_fences()
518 old_fence = sig_sync->fence; in panthor_submit_ctx_update_job_sync_signal_fences()
519 sig_sync->fence = dma_fence_get(done_fence); in panthor_submit_ctx_update_job_sync_signal_fences()
522 if (drm_WARN_ON(&ptdev->base, !sig_sync->fence)) in panthor_submit_ctx_update_job_sync_signal_fences()
575 struct panthor_sync_signal *sig_sync; in panthor_submit_ctx_push_fences() local
577 list_for_each_entry(sig_sync, &ctx->signals, node) { in panthor_submit_ctx_push_fences()
578 if (sig_sync->chain) { in panthor_submit_ctx_push_fences()
579 drm_syncobj_add_point(sig_sync->syncobj, sig_sync->chain, in panthor_submit_ctx_push_fences()
580 sig_sync->fence, sig_sync->point); in panthor_submit_ctx_push_fences()
581 sig_sync->chain = NULL; in panthor_submit_ctx_push_fences()
583 drm_syncobj_replace_fence(sig_sync->syncobj, sig_sync->fence); in panthor_submit_ctx_push_fences()
609 struct panthor_sync_signal *sig_sync; in panthor_submit_ctx_add_sync_deps_to_job() local
619 sig_sync = panthor_submit_ctx_search_sync_signal(ctx, sync_ops[i].handle, in panthor_submit_ctx_add_sync_deps_to_job()
621 if (sig_sync) { in panthor_submit_ctx_add_sync_deps_to_job()
622 if (drm_WARN_ON(&ptdev->base, !sig_sync->fence)) in panthor_submit_ctx_add_sync_deps_to_job()
625 fence = dma_fence_get(sig_sync->fence); in panthor_submit_ctx_add_sync_deps_to_job()
745 struct panthor_sync_signal *sig_sync, *tmp; in panthor_submit_ctx_cleanup() local
750 list_for_each_entry_safe(sig_sync, tmp, &ctx->signals, node) in panthor_submit_ctx_cleanup()
751 panthor_sync_signal_free(sig_sync); in panthor_submit_ctx_cleanup()