Lines Matching refs:job_data
333 struct pvr_job_data *job_data, in prepare_job_syncs() argument
339 job_data->sync_op_count, in prepare_job_syncs()
340 job_data->sync_ops); in prepare_job_syncs()
345 err = pvr_sync_add_deps_to_job(pvr_file, &job_data->job->base, in prepare_job_syncs()
346 job_data->sync_op_count, in prepare_job_syncs()
347 job_data->sync_ops, signal_array); in prepare_job_syncs()
351 if (job_data->job->hwrt) { in prepare_job_syncs()
356 gem_from_pvr_gem(job_data->job->hwrt->fw_obj->gem); in prepare_job_syncs()
358 dma_resv_usage_rw(job_data->job->type == in prepare_job_syncs()
362 err = drm_sched_job_add_resv_dependencies(&job_data->job->base, in prepare_job_syncs()
370 done_fence = pvr_queue_job_arm(job_data->job); in prepare_job_syncs()
373 job_data->sync_op_count, in prepare_job_syncs()
374 job_data->sync_ops, in prepare_job_syncs()
392 struct pvr_job_data *job_data, in prepare_job_syncs_for_each() argument
397 int err = prepare_job_syncs(pvr_file, &job_data[i], in prepare_job_syncs_for_each()
473 pvr_job_data_fini(struct pvr_job_data *job_data, u32 job_count) in pvr_job_data_fini() argument
476 pvr_job_put(job_data[i].job); in pvr_job_data_fini()
477 kvfree(job_data[i].sync_ops); in pvr_job_data_fini()
531 push_jobs(struct pvr_job_data *job_data, u32 job_count) in push_jobs() argument
534 pvr_queue_job_push(job_data[i].job); in push_jobs()
544 jobs_lock_all_objs(struct drm_exec *exec, struct pvr_job_data *job_data, in jobs_lock_all_objs() argument
548 struct pvr_job *job = job_data[i].job; in jobs_lock_all_objs()
571 prepare_job_resvs_for_each(struct drm_exec *exec, struct pvr_job_data *job_data, in prepare_job_resvs_for_each() argument
575 int err = jobs_lock_all_objs(exec, job_data, job_count); in prepare_job_resvs_for_each()
598 update_job_resvs_for_each(struct pvr_job_data *job_data, u32 job_count) in update_job_resvs_for_each() argument
601 update_job_resvs(job_data[i].job); in update_job_resvs_for_each()
630 struct pvr_job_data *job_data, in get_last_queued_job_scheduled_fence() argument
637 struct pvr_job *job = job_data[i - 1].job; in get_last_queued_job_scheduled_fence()
650 pvr_jobs_link_geom_frag(struct pvr_job_data *job_data, u32 *job_count) in pvr_jobs_link_geom_frag() argument
653 struct pvr_job *geom_job = job_data[i].job; in pvr_jobs_link_geom_frag()
654 struct pvr_job *frag_job = job_data[i + 1].job; in pvr_jobs_link_geom_frag()
658 if (!can_combine_jobs(job_data[i].job, job_data[i + 1].job)) in pvr_jobs_link_geom_frag()
667 f = get_last_queued_job_scheduled_fence(frag_queue, job_data, in pvr_jobs_link_geom_frag()
713 struct pvr_job_data *job_data = NULL; in pvr_submit_jobs() local
727 job_data = kvmalloc_array(args->jobs.count, sizeof(*job_data), in pvr_submit_jobs()
729 if (!job_data) { in pvr_submit_jobs()
735 job_data); in pvr_submit_jobs()
753 err = prepare_job_syncs_for_each(pvr_file, job_data, &args->jobs.count, in pvr_submit_jobs()
758 err = prepare_job_resvs_for_each(&exec, job_data, args->jobs.count); in pvr_submit_jobs()
762 err = pvr_jobs_link_geom_frag(job_data, &args->jobs.count); in pvr_submit_jobs()
769 update_job_resvs_for_each(job_data, args->jobs.count); in pvr_submit_jobs()
770 push_jobs(job_data, args->jobs.count); in pvr_submit_jobs()
779 pvr_job_data_fini(job_data, jobs_alloced); in pvr_submit_jobs()
782 kvfree(job_data); in pvr_submit_jobs()