Lines Matching refs:fence_state
2342 static int setup_out_fence(struct drm_out_fence_state *fence_state, in setup_out_fence() argument
2345 fence_state->fd = get_unused_fd_flags(O_CLOEXEC); in setup_out_fence()
2346 if (fence_state->fd < 0) in setup_out_fence()
2347 return fence_state->fd; in setup_out_fence()
2349 if (put_user(fence_state->fd, fence_state->out_fence_ptr)) in setup_out_fence()
2352 fence_state->sync_file = sync_file_create(fence); in setup_out_fence()
2353 if (!fence_state->sync_file) in setup_out_fence()
2363 struct drm_out_fence_state **fence_state, in prepare_signaling() argument
2409 f = krealloc(*fence_state, sizeof(**fence_state) * in prepare_signaling()
2417 *fence_state = f; in prepare_signaling()
2450 f = krealloc(*fence_state, sizeof(**fence_state) * in prepare_signaling()
2458 *fence_state = f; in prepare_signaling()
2486 struct drm_out_fence_state *fence_state, in complete_signaling() argument
2496 fd_install(fence_state[i].fd, in complete_signaling()
2497 fence_state[i].sync_file->file); in complete_signaling()
2499 kfree(fence_state); in complete_signaling()
2516 if (!fence_state) in complete_signaling()
2520 if (fence_state[i].sync_file) in complete_signaling()
2521 fput(fence_state[i].sync_file->file); in complete_signaling()
2522 if (fence_state[i].fd >= 0) in complete_signaling()
2523 put_unused_fd(fence_state[i].fd); in complete_signaling()
2526 if (fence_state[i].out_fence_ptr && in complete_signaling()
2527 put_user(-1, fence_state[i].out_fence_ptr)) in complete_signaling()
2531 kfree(fence_state); in complete_signaling()
2545 struct drm_out_fence_state *fence_state; in drm_mode_atomic_ioctl() local
2587 fence_state = NULL; in drm_mode_atomic_ioctl()
2658 ret = prepare_signaling(dev, state, arg, file_priv, &fence_state, in drm_mode_atomic_ioctl()
2675 complete_signaling(dev, state, fence_state, num_fences, !ret); in drm_mode_atomic_ioctl()