Lines Matching refs:mcs_data
2723 * @mcs_data: multi-CS internal data
2735 static int hl_cs_poll_fences(struct multi_cs_data *mcs_data, struct multi_cs_completion *mcs_compl)
2737 struct hl_fence **fence_ptr = mcs_data->fence_arr;
2738 struct hl_device *hdev = mcs_data->ctx->hdev;
2739 int i, rc, arr_len = mcs_data->arr_len;
2740 u64 *seq_arr = mcs_data->seq_arr;
2747 rc = hl_ctx_get_fences(mcs_data->ctx, seq_arr, fence_ptr, arr_len);
2789 rc = hl_wait_for_fence(mcs_data->ctx, seq_arr[i], fence, &status, 0, NULL);
2803 * Using mcs_handling_done to avoid possibility of mcs_data
2821 mcs_data->completion_bitmap |= BIT(i);
2827 if (fence && mcs_data->update_ts &&
2832 mcs_data->update_ts = false;
2833 mcs_data->gone_cs = true;
2840 mcs_data->completion_bitmap |= BIT(i);
2850 hl_fences_put(mcs_data->fence_arr, arr_len);
2852 if (mcs_data->update_ts &&
2854 mcs_data->timestamp = ktime_to_ns(first_cs_time);
2958 * @mcs_data: multi-CS internal data
2962 static int hl_wait_multi_cs_completion(struct multi_cs_data *mcs_data,
2968 mcs_data->timeout_jiffies);
2972 mcs_data->timestamp = mcs_compl->timestamp;
2977 mcs_data->wait_status = completion_rc;
3011 struct multi_cs_data mcs_data = {};
3063 mcs_data.ctx = ctx;
3064 mcs_data.seq_arr = cs_seq_arr;
3065 mcs_data.fence_arr = fence_arr;
3066 mcs_data.arr_len = seq_arr_len;
3071 mcs_data.timeout_jiffies = hl_usecs64_to_jiffies(args->in.timeout_us);
3079 mcs_data.update_ts = true;
3080 rc = hl_cs_poll_fences(&mcs_data, mcs_compl);
3087 if (rc || mcs_data.completion_bitmap || !args->in.timeout_us)
3091 rc = hl_wait_multi_cs_completion(&mcs_data, mcs_compl);
3092 if (rc || (mcs_data.wait_status == 0))
3099 mcs_data.update_ts = false;
3100 rc = hl_cs_poll_fences(&mcs_data, mcs_compl);
3102 if (rc || mcs_data.completion_bitmap)
3114 mcs_data.timeout_jiffies = mcs_data.wait_status;
3140 if (mcs_data.completion_bitmap) {
3142 args->out.cs_completion_map = mcs_data.completion_bitmap;
3145 if (mcs_data.timestamp) {
3146 args->out.timestamp_nsec = mcs_data.timestamp;
3151 if (!mcs_data.timestamp)