sync_file
struct sync_file *sync_file;
sync_file = sync_file_create(fence);
if (!sync_file) {
fd_install(fd, sync_file->file);
fput(sync_file->file);
struct sync_file *sync_file;
sync_file = sync_file_create(&pt->base);
if (!sync_file) {
fput(sync_file->file);
fd_install(fd, sync_file->file);
struct sync_file *sync_file;
sync_file = sync_file_fdget(fd);
if (!sync_file)
fence = dma_fence_get(sync_file->fence);
fput(sync_file->file);
char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len)
if (sync_file->user_name[0]) {
strscpy(buf, sync_file->user_name, len);
struct dma_fence *fence = sync_file->fence;
static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
struct sync_file *b)
struct sync_file *sync_file;
sync_file = sync_file_alloc();
if (!sync_file)
fput(sync_file->file);
sync_file->fence = fence;
strscpy(sync_file->user_name, name, sizeof(sync_file->user_name));
return sync_file;
struct sync_file *sync_file = file->private_data;
if (test_bit(POLL_ENABLED, &sync_file->flags))
dma_fence_remove_callback(sync_file->fence, &sync_file->cb);
dma_fence_put(sync_file->fence);
kfree(sync_file);
struct sync_file *sync_file = file->private_data;
poll_wait(file, &sync_file->wq, wait);
if (list_empty(&sync_file->cb.node) &&
!test_and_set_bit(POLL_ENABLED, &sync_file->flags)) {
if (dma_fence_add_callback(sync_file->fence, &sync_file->cb,
wake_up_all(&sync_file->wq);
return dma_fence_is_signaled(sync_file->fence) ? EPOLLIN : 0;
static long sync_file_ioctl_merge(struct sync_file *sync_file,
struct sync_file *fence2, *fence3;
static struct sync_file *sync_file_alloc(void)
fence3 = sync_file_merge(data.name, sync_file, fence2);
struct sync_file *sync_file;
sync_file = kzalloc_obj(*sync_file);
if (!sync_file)
static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
sync_file->file = anon_inode_getfile("sync_file", &sync_file_fops,
dma_fence_unwrap_for_each(fence, &iter, sync_file->fence)
sync_file, 0);
info.status = dma_fence_get_status(sync_file->fence);
if (IS_ERR(sync_file->file))
dma_fence_unwrap_for_each(fence, &iter, sync_file->fence) {
sync_file_get_name(sync_file, info.name, sizeof(info.name));
init_waitqueue_head(&sync_file->wq);
static int sync_file_ioctl_set_deadline(struct sync_file *sync_file,
dma_fence_set_deadline(sync_file->fence, ns_to_ktime(ts.deadline_ns));
INIT_LIST_HEAD(&sync_file->cb.node);
struct sync_file *sync_file = file->private_data;
return sync_file_ioctl_merge(sync_file, arg);
return sync_file_ioctl_fence_info(sync_file, arg);
return sync_file_ioctl_set_deadline(sync_file, arg);
return sync_file;
kfree(sync_file);
struct sync_file *sync_file;
sync_file = container_of(cb, struct sync_file, cb);
wake_up_all(&sync_file->wq);
struct sync_file *sync_file_create(struct dma_fence *fence)
struct sync_file *sync_file;
sync_file = sync_file_alloc();
if (!sync_file)
sync_file->fence = dma_fence_get(fence);
return sync_file;
static struct sync_file *sync_file_fdget(int fd)
struct sync_file *sync_file;
sync_file = sync_file_create(fence);
if (!sync_file) {
fd_install(fd, sync_file->file);
struct sync_file *sync_file;
fence_state->sync_file = sync_file_create(fence);
if (!fence_state->sync_file)
fence_state[i].sync_file->file);
if (fence_state[i].sync_file)
fput(fence_state[i].sync_file->file);
struct sync_file *sync_file;
sync_file = sync_file_create(fence);
if (!sync_file) {
fd_install(fd, sync_file->file);
struct sync_file *sync_file = NULL;
sync_file = sync_file_create(submit->out_fence);
if (!sync_file) {
fd_install(out_fence_fd, sync_file->file);
static struct sync_file *
struct sync_file *out_fence = NULL;
static struct sync_file *
struct sync_file *out_fence = NULL;
static struct sync_file *
struct sync_file *out_fence = NULL;
struct sync_file *out_fence = NULL;
struct sync_file *sync_file = NULL;
sync_file = sync_file_create(submit->user_fence);
if (!sync_file)
if (sync_file)
fput(sync_file->file);
} else if (sync_file) {
fd_install(out_fence_fd, sync_file->file);
struct sync_file *sync_file = NULL;
sync_file = sync_file_create(job->fence);
if (!sync_file)
if (sync_file)
fput(sync_file->file);
} else if (sync_file) {
fd_install(out_fence_fd, sync_file->file);
if (submit->sync_file)
fput(submit->sync_file->file);
submit->sync_file = NULL;
struct sync_file *sync_file;
submit->sync_file = sync_file_create(&out_fence->f);
if (!submit->sync_file)
if (submit->sync_file) {
fd_install(submit->out_fence_fd, submit->sync_file->file);
struct sync_file *sync_file = NULL;
sync_file = sync_file_create(&fence->base);
if (!sync_file) {
if (sync_file) {
fput(sync_file->file);
fd_install(out_fence_fd, sync_file->file);
struct sync_file *sync_file_create(struct dma_fence *fence);
char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len);