Lines Matching refs:semaphore

35 			    struct amdgpu_semaphore **semaphore)  in amdgpu_semaphore_create()  argument
39 *semaphore = kmalloc(sizeof(struct amdgpu_semaphore), GFP_KERNEL); in amdgpu_semaphore_create()
40 if (*semaphore == NULL) { in amdgpu_semaphore_create()
44 &(*semaphore)->sa_bo, 8, 8); in amdgpu_semaphore_create()
46 kfree(*semaphore); in amdgpu_semaphore_create()
47 *semaphore = NULL; in amdgpu_semaphore_create()
50 (*semaphore)->waiters = 0; in amdgpu_semaphore_create()
51 (*semaphore)->gpu_addr = amdgpu_sa_bo_gpu_addr((*semaphore)->sa_bo); in amdgpu_semaphore_create()
53 *((uint64_t *)amdgpu_sa_bo_cpu_addr((*semaphore)->sa_bo)) = 0; in amdgpu_semaphore_create()
59 struct amdgpu_semaphore *semaphore) in amdgpu_semaphore_emit_signal() argument
61 trace_amdgpu_semaphore_signale(ring->idx, semaphore); in amdgpu_semaphore_emit_signal()
63 if (amdgpu_ring_emit_semaphore(ring, semaphore, false)) { in amdgpu_semaphore_emit_signal()
64 --semaphore->waiters; in amdgpu_semaphore_emit_signal()
67 ring->last_semaphore_signal_addr = semaphore->gpu_addr; in amdgpu_semaphore_emit_signal()
74 struct amdgpu_semaphore *semaphore) in amdgpu_semaphore_emit_wait() argument
76 trace_amdgpu_semaphore_wait(ring->idx, semaphore); in amdgpu_semaphore_emit_wait()
78 if (amdgpu_ring_emit_semaphore(ring, semaphore, true)) { in amdgpu_semaphore_emit_wait()
79 ++semaphore->waiters; in amdgpu_semaphore_emit_wait()
82 ring->last_semaphore_wait_addr = semaphore->gpu_addr; in amdgpu_semaphore_emit_wait()
89 struct amdgpu_semaphore **semaphore, in amdgpu_semaphore_free() argument
92 if (semaphore == NULL || *semaphore == NULL) { in amdgpu_semaphore_free()
95 if ((*semaphore)->waiters > 0) { in amdgpu_semaphore_free()
97 " hardware lockup imminent!\n", *semaphore); in amdgpu_semaphore_free()
99 amdgpu_sa_bo_free(adev, &(*semaphore)->sa_bo, fence); in amdgpu_semaphore_free()
100 kfree(*semaphore); in amdgpu_semaphore_free()
101 *semaphore = NULL; in amdgpu_semaphore_free()