Lines Matching refs:ipc
514 struct task_ipc *ipc = container_of(work, typeof(*ipc), work); in task_ipc() local
516 complete(&ipc->started); in task_ipc()
518 i915_sw_fence_wait(ipc->in); in task_ipc()
519 smp_store_mb(ipc->value, 1); in task_ipc()
520 i915_sw_fence_commit(ipc->out); in task_ipc()
525 struct task_ipc ipc; in test_ipc() local
529 ipc.in = alloc_fence(); in test_ipc()
530 if (!ipc.in) in test_ipc()
532 ipc.out = alloc_fence(); in test_ipc()
533 if (!ipc.out) { in test_ipc()
539 init_completion(&ipc.started); in test_ipc()
541 ipc.value = 0; in test_ipc()
542 INIT_WORK_ONSTACK(&ipc.work, task_ipc); in test_ipc()
543 schedule_work(&ipc.work); in test_ipc()
545 wait_for_completion(&ipc.started); in test_ipc()
548 if (READ_ONCE(ipc.value)) { in test_ipc()
553 i915_sw_fence_commit(ipc.in); in test_ipc()
554 i915_sw_fence_wait(ipc.out); in test_ipc()
556 if (!READ_ONCE(ipc.value)) { in test_ipc()
561 flush_work(&ipc.work); in test_ipc()
562 destroy_work_on_stack(&ipc.work); in test_ipc()
563 free_fence(ipc.out); in test_ipc()
565 free_fence(ipc.in); in test_ipc()