Lines Matching refs:mcs_compl

547 		struct multi_cs_completion *mcs_compl;  in force_complete_multi_cs()  local
549 mcs_compl = &hdev->multi_cs_completion[i]; in force_complete_multi_cs()
551 spin_lock(&mcs_compl->lock); in force_complete_multi_cs()
553 if (!mcs_compl->used) { in force_complete_multi_cs()
554 spin_unlock(&mcs_compl->lock); in force_complete_multi_cs()
566 complete_all(&mcs_compl->completion); in force_complete_multi_cs()
567 spin_unlock(&mcs_compl->lock); in force_complete_multi_cs()
596 struct multi_cs_completion *mcs_compl; in complete_multi_cs() local
598 mcs_compl = &hdev->multi_cs_completion[i]; in complete_multi_cs()
599 if (!mcs_compl->used) in complete_multi_cs()
602 spin_lock(&mcs_compl->lock); in complete_multi_cs()
610 if (mcs_compl->used && in complete_multi_cs()
612 mcs_compl->stream_master_qid_map)) { in complete_multi_cs()
614 if (!mcs_compl->timestamp) in complete_multi_cs()
615 mcs_compl->timestamp = ktime_to_ns(fence->timestamp); in complete_multi_cs()
617 complete_all(&mcs_compl->completion); in complete_multi_cs()
629 spin_unlock(&mcs_compl->lock); in complete_multi_cs()
2565 static int hl_cs_poll_fences(struct multi_cs_data *mcs_data, struct multi_cs_completion *mcs_compl) in hl_cs_poll_fences() argument
2588 reinit_completion(&mcs_compl->completion); in hl_cs_poll_fences()
2613 mcs_compl->stream_master_qid_map |= fence->stream_master_qid_map; in hl_cs_poll_fences()
2647 complete_all(&mcs_compl->completion); in hl_cs_poll_fences()
2738 struct multi_cs_completion *mcs_compl; in hl_wait_multi_cs_completion_init() local
2743 mcs_compl = &hdev->multi_cs_completion[i]; in hl_wait_multi_cs_completion_init()
2744 spin_lock(&mcs_compl->lock); in hl_wait_multi_cs_completion_init()
2745 if (!mcs_compl->used) { in hl_wait_multi_cs_completion_init()
2746 mcs_compl->used = 1; in hl_wait_multi_cs_completion_init()
2747 mcs_compl->timestamp = 0; in hl_wait_multi_cs_completion_init()
2752 mcs_compl->stream_master_qid_map = 0; in hl_wait_multi_cs_completion_init()
2753 spin_unlock(&mcs_compl->lock); in hl_wait_multi_cs_completion_init()
2756 spin_unlock(&mcs_compl->lock); in hl_wait_multi_cs_completion_init()
2763 return mcs_compl; in hl_wait_multi_cs_completion_init()
2773 struct multi_cs_completion *mcs_compl) in hl_wait_multi_cs_completion_fini() argument
2779 spin_lock(&mcs_compl->lock); in hl_wait_multi_cs_completion_fini()
2780 mcs_compl->used = 0; in hl_wait_multi_cs_completion_fini()
2781 spin_unlock(&mcs_compl->lock); in hl_wait_multi_cs_completion_fini()
2792 struct multi_cs_completion *mcs_compl) in hl_wait_multi_cs_completion() argument
2796 completion_rc = wait_for_completion_interruptible_timeout(&mcs_compl->completion, in hl_wait_multi_cs_completion()
2801 mcs_data->timestamp = mcs_compl->timestamp; in hl_wait_multi_cs_completion()
2835 struct multi_cs_completion *mcs_compl; in hl_multi_cs_wait_ioctl() local
2892 mcs_compl = hl_wait_multi_cs_completion_init(hdev); in hl_multi_cs_wait_ioctl()
2893 if (IS_ERR(mcs_compl)) { in hl_multi_cs_wait_ioctl()
2894 rc = PTR_ERR(mcs_compl); in hl_multi_cs_wait_ioctl()
2900 rc = hl_cs_poll_fences(&mcs_data, mcs_compl); in hl_multi_cs_wait_ioctl()
2911 rc = hl_wait_multi_cs_completion(&mcs_data, mcs_compl); in hl_multi_cs_wait_ioctl()
2920 rc = hl_cs_poll_fences(&mcs_data, mcs_compl); in hl_multi_cs_wait_ioctl()
2935 mcs_compl->timestamp = 0; in hl_multi_cs_wait_ioctl()
2939 hl_wait_multi_cs_completion_fini(mcs_compl); in hl_multi_cs_wait_ioctl()