Lines Matching refs:sem
43 static int amdgpu_cs_unreference_sem(amdgpu_semaphore_handle sem);
44 static int amdgpu_cs_reset_sem(amdgpu_semaphore_handle sem);
127 amdgpu_semaphore_handle sem; in amdgpu_cs_ctx_free() local
128 LIST_FOR_EACH_ENTRY(sem, &context->sem_list[i][j][k], list) { in amdgpu_cs_ctx_free()
129 list_del(&sem->list); in amdgpu_cs_ctx_free()
130 amdgpu_cs_reset_sem(sem); in amdgpu_cs_ctx_free()
131 amdgpu_cs_unreference_sem(sem); in amdgpu_cs_ctx_free()
182 amdgpu_semaphore_handle sem, tmp; in amdgpu_cs_submit_one() local
280 LIST_FOR_EACH_ENTRY(sem, sem_list, list) in amdgpu_cs_submit_one()
289 LIST_FOR_EACH_ENTRY_SAFE(sem, tmp, sem_list, list) { in amdgpu_cs_submit_one()
290 struct amdgpu_cs_fence *info = &sem->signal_fence; in amdgpu_cs_submit_one()
298 list_del(&sem->list); in amdgpu_cs_submit_one()
299 amdgpu_cs_reset_sem(sem); in amdgpu_cs_submit_one()
300 amdgpu_cs_unreference_sem(sem); in amdgpu_cs_submit_one()
446 int amdgpu_cs_create_semaphore(amdgpu_semaphore_handle *sem) in amdgpu_cs_create_semaphore() argument
450 if (NULL == sem) in amdgpu_cs_create_semaphore()
458 *sem = gpu_semaphore; in amdgpu_cs_create_semaphore()
467 amdgpu_semaphore_handle sem) in amdgpu_cs_signal_semaphore() argument
475 if (NULL == sem) in amdgpu_cs_signal_semaphore()
478 if (sem->signal_fence.context) in amdgpu_cs_signal_semaphore()
481 sem->signal_fence.context = ctx; in amdgpu_cs_signal_semaphore()
482 sem->signal_fence.ip_type = ip_type; in amdgpu_cs_signal_semaphore()
483 sem->signal_fence.ip_instance = ip_instance; in amdgpu_cs_signal_semaphore()
484 sem->signal_fence.ring = ring; in amdgpu_cs_signal_semaphore()
485 sem->signal_fence.fence = ctx->last_seq[ip_type][ip_instance][ring]; in amdgpu_cs_signal_semaphore()
486 update_references(NULL, &sem->refcount); in amdgpu_cs_signal_semaphore()
495 amdgpu_semaphore_handle sem) in amdgpu_cs_wait_semaphore() argument
503 if (NULL == sem) in amdgpu_cs_wait_semaphore()
506 if (NULL == sem->signal_fence.context) in amdgpu_cs_wait_semaphore()
510 list_add(&sem->list, &ctx->sem_list[ip_type][ip_instance][ring]); in amdgpu_cs_wait_semaphore()
515 static int amdgpu_cs_reset_sem(amdgpu_semaphore_handle sem) in amdgpu_cs_reset_sem() argument
517 if (NULL == sem) in amdgpu_cs_reset_sem()
519 if (NULL == sem->signal_fence.context) in amdgpu_cs_reset_sem()
522 sem->signal_fence.context = NULL;; in amdgpu_cs_reset_sem()
523 sem->signal_fence.ip_type = 0; in amdgpu_cs_reset_sem()
524 sem->signal_fence.ip_instance = 0; in amdgpu_cs_reset_sem()
525 sem->signal_fence.ring = 0; in amdgpu_cs_reset_sem()
526 sem->signal_fence.fence = 0; in amdgpu_cs_reset_sem()
531 static int amdgpu_cs_unreference_sem(amdgpu_semaphore_handle sem) in amdgpu_cs_unreference_sem() argument
533 if (NULL == sem) in amdgpu_cs_unreference_sem()
536 if (update_references(&sem->refcount, NULL)) in amdgpu_cs_unreference_sem()
537 free(sem); in amdgpu_cs_unreference_sem()
541 int amdgpu_cs_destroy_semaphore(amdgpu_semaphore_handle sem) in amdgpu_cs_destroy_semaphore() argument
543 return amdgpu_cs_unreference_sem(sem); in amdgpu_cs_destroy_semaphore()