Lines Matching refs:post_deps
635 struct msm_submit_post_dep *post_deps; in msm_parse_post_deps() local
640 post_deps = kcalloc(nr_syncobjs, sizeof(*post_deps), in msm_parse_post_deps()
642 if (!post_deps) in msm_parse_post_deps()
655 post_deps[i].point = syncobj_desc.point; in msm_parse_post_deps()
669 post_deps[i].chain = dma_fence_chain_alloc(); in msm_parse_post_deps()
670 if (!post_deps[i].chain) { in msm_parse_post_deps()
676 post_deps[i].syncobj = in msm_parse_post_deps()
678 if (!post_deps[i].syncobj) { in msm_parse_post_deps()
686 dma_fence_chain_free(post_deps[j].chain); in msm_parse_post_deps()
687 if (post_deps[j].syncobj) in msm_parse_post_deps()
688 drm_syncobj_put(post_deps[j].syncobj); in msm_parse_post_deps()
691 kfree(post_deps); in msm_parse_post_deps()
695 return post_deps; in msm_parse_post_deps()
698 static void msm_process_post_deps(struct msm_submit_post_dep *post_deps, in msm_process_post_deps() argument
703 for (i = 0; post_deps && i < count; ++i) { in msm_process_post_deps()
704 if (post_deps[i].chain) { in msm_process_post_deps()
705 drm_syncobj_add_point(post_deps[i].syncobj, in msm_process_post_deps()
706 post_deps[i].chain, in msm_process_post_deps()
707 fence, post_deps[i].point); in msm_process_post_deps()
708 post_deps[i].chain = NULL; in msm_process_post_deps()
710 drm_syncobj_replace_fence(post_deps[i].syncobj, in msm_process_post_deps()
726 struct msm_submit_post_dep *post_deps = NULL; in msm_ioctl_gem_submit() local
814 post_deps = msm_parse_post_deps(dev, file, in msm_ioctl_gem_submit()
818 if (IS_ERR(post_deps)) { in msm_ioctl_gem_submit()
819 ret = PTR_ERR(post_deps); in msm_ioctl_gem_submit()
949 msm_process_post_deps(post_deps, args->nr_out_syncobjs, in msm_ioctl_gem_submit()
963 if (!IS_ERR_OR_NULL(post_deps)) { in msm_ioctl_gem_submit()
965 kfree(post_deps[i].chain); in msm_ioctl_gem_submit()
966 drm_syncobj_put(post_deps[i].syncobj); in msm_ioctl_gem_submit()
968 kfree(post_deps); in msm_ioctl_gem_submit()