Lines Matching refs:job

71 	struct v3d_job *job = to_v3d_job(sched_job);  in v3d_sched_job_free()  local
73 v3d_job_cleanup(job); in v3d_sched_job_free()
109 struct v3d_cpu_job *job = to_cpu_job(sched_job); in v3d_cpu_job_free() local
111 v3d_timestamp_query_info_free(&job->timestamp_query, in v3d_cpu_job_free()
112 job->timestamp_query.count); in v3d_cpu_job_free()
114 v3d_performance_query_info_free(&job->performance_query, in v3d_cpu_job_free()
115 job->performance_query.count); in v3d_cpu_job_free()
117 v3d_job_cleanup(&job->base); in v3d_cpu_job_free()
121 v3d_switch_perfmon(struct v3d_dev *v3d, struct v3d_job *job) in v3d_switch_perfmon() argument
126 perfmon = job->perfmon; in v3d_switch_perfmon()
139 v3d_job_start_stats(struct v3d_job *job, enum v3d_queue queue) in v3d_job_start_stats() argument
141 struct v3d_dev *v3d = job->v3d; in v3d_job_start_stats()
142 struct v3d_file_priv *file = job->file->driver_priv; in v3d_job_start_stats()
197 v3d_job_update_stats(struct v3d_job *job, enum v3d_queue queue) in v3d_job_update_stats() argument
199 struct v3d_dev *v3d = job->v3d; in v3d_job_update_stats()
200 struct v3d_file_priv *file = job->file->driver_priv; in v3d_job_update_stats()
227 struct v3d_bin_job *job = to_bin_job(sched_job); in v3d_bin_job_run() local
228 struct v3d_dev *v3d = job->base.v3d; in v3d_bin_job_run()
233 if (unlikely(job->base.base.s_fence->finished.error)) { in v3d_bin_job_run()
244 v3d->bin_job = job; in v3d_bin_job_run()
257 if (job->base.irq_fence) in v3d_bin_job_run()
258 dma_fence_put(job->base.irq_fence); in v3d_bin_job_run()
259 job->base.irq_fence = dma_fence_get(fence); in v3d_bin_job_run()
262 job->start, job->end); in v3d_bin_job_run()
264 v3d_job_start_stats(&job->base, V3D_BIN); in v3d_bin_job_run()
265 v3d_switch_perfmon(v3d, &job->base); in v3d_bin_job_run()
270 if (job->qma) { in v3d_bin_job_run()
271 V3D_CORE_WRITE(0, V3D_CLE_CT0QMA, job->qma); in v3d_bin_job_run()
272 V3D_CORE_WRITE(0, V3D_CLE_CT0QMS, job->qms); in v3d_bin_job_run()
274 if (job->qts) { in v3d_bin_job_run()
277 job->qts); in v3d_bin_job_run()
279 V3D_CORE_WRITE(0, V3D_CLE_CT0QBA, job->start); in v3d_bin_job_run()
280 V3D_CORE_WRITE(0, V3D_CLE_CT0QEA, job->end); in v3d_bin_job_run()
287 struct v3d_render_job *job = to_render_job(sched_job); in v3d_render_job_run() local
288 struct v3d_dev *v3d = job->base.v3d; in v3d_render_job_run()
292 if (unlikely(job->base.base.s_fence->finished.error)) { in v3d_render_job_run()
297 v3d->render_job = job; in v3d_render_job_run()
311 if (job->base.irq_fence) in v3d_render_job_run()
312 dma_fence_put(job->base.irq_fence); in v3d_render_job_run()
313 job->base.irq_fence = dma_fence_get(fence); in v3d_render_job_run()
316 job->start, job->end); in v3d_render_job_run()
318 v3d_job_start_stats(&job->base, V3D_RENDER); in v3d_render_job_run()
319 v3d_switch_perfmon(v3d, &job->base); in v3d_render_job_run()
326 V3D_CORE_WRITE(0, V3D_CLE_CT1QBA, job->start); in v3d_render_job_run()
327 V3D_CORE_WRITE(0, V3D_CLE_CT1QEA, job->end); in v3d_render_job_run()
335 struct v3d_tfu_job *job = to_tfu_job(sched_job); in v3d_tfu_job_run() local
336 struct v3d_dev *v3d = job->base.v3d; in v3d_tfu_job_run()
340 if (unlikely(job->base.base.s_fence->finished.error)) { in v3d_tfu_job_run()
345 v3d->tfu_job = job; in v3d_tfu_job_run()
351 if (job->base.irq_fence) in v3d_tfu_job_run()
352 dma_fence_put(job->base.irq_fence); in v3d_tfu_job_run()
353 job->base.irq_fence = dma_fence_get(fence); in v3d_tfu_job_run()
357 v3d_job_start_stats(&job->base, V3D_TFU); in v3d_tfu_job_run()
359 V3D_WRITE(V3D_TFU_IIA(v3d->ver), job->args.iia); in v3d_tfu_job_run()
360 V3D_WRITE(V3D_TFU_IIS(v3d->ver), job->args.iis); in v3d_tfu_job_run()
361 V3D_WRITE(V3D_TFU_ICA(v3d->ver), job->args.ica); in v3d_tfu_job_run()
362 V3D_WRITE(V3D_TFU_IUA(v3d->ver), job->args.iua); in v3d_tfu_job_run()
363 V3D_WRITE(V3D_TFU_IOA(v3d->ver), job->args.ioa); in v3d_tfu_job_run()
365 V3D_WRITE(V3D_V7_TFU_IOC, job->args.v71.ioc); in v3d_tfu_job_run()
366 V3D_WRITE(V3D_TFU_IOS(v3d->ver), job->args.ios); in v3d_tfu_job_run()
367 V3D_WRITE(V3D_TFU_COEF0(v3d->ver), job->args.coef[0]); in v3d_tfu_job_run()
368 if (v3d->ver >= V3D_GEN_71 || (job->args.coef[0] & V3D_TFU_COEF0_USECOEF)) { in v3d_tfu_job_run()
369 V3D_WRITE(V3D_TFU_COEF1(v3d->ver), job->args.coef[1]); in v3d_tfu_job_run()
370 V3D_WRITE(V3D_TFU_COEF2(v3d->ver), job->args.coef[2]); in v3d_tfu_job_run()
371 V3D_WRITE(V3D_TFU_COEF3(v3d->ver), job->args.coef[3]); in v3d_tfu_job_run()
374 V3D_WRITE(V3D_TFU_ICFG(v3d->ver), job->args.icfg | V3D_TFU_ICFG_IOC); in v3d_tfu_job_run()
382 struct v3d_csd_job *job = to_csd_job(sched_job); in v3d_csd_job_run() local
383 struct v3d_dev *v3d = job->base.v3d; in v3d_csd_job_run()
388 if (unlikely(job->base.base.s_fence->finished.error)) { in v3d_csd_job_run()
393 v3d->csd_job = job; in v3d_csd_job_run()
401 if (job->base.irq_fence) in v3d_csd_job_run()
402 dma_fence_put(job->base.irq_fence); in v3d_csd_job_run()
403 job->base.irq_fence = dma_fence_get(fence); in v3d_csd_job_run()
407 v3d_job_start_stats(&job->base, V3D_CSD); in v3d_csd_job_run()
408 v3d_switch_perfmon(v3d, &job->base); in v3d_csd_job_run()
412 V3D_CORE_WRITE(0, csd_cfg0_reg + 4 * i, job->args.cfg[i]); in v3d_csd_job_run()
423 V3D_CORE_WRITE(0, csd_cfg0_reg, job->args.cfg[0]); in v3d_csd_job_run()
429 v3d_rewrite_csd_job_wg_counts_from_indirect(struct v3d_cpu_job *job) in v3d_rewrite_csd_job_wg_counts_from_indirect() argument
431 struct v3d_indirect_csd_info *indirect_csd = &job->indirect_csd; in v3d_rewrite_csd_job_wg_counts_from_indirect()
432 struct v3d_bo *bo = to_v3d_bo(job->base.bo[0]); in v3d_rewrite_csd_job_wg_counts_from_indirect()
434 struct drm_v3d_submit_csd *args = &indirect_csd->job->args; in v3d_rewrite_csd_job_wg_counts_from_indirect()
435 struct v3d_dev *v3d = job->base.v3d; in v3d_rewrite_csd_job_wg_counts_from_indirect()
474 v3d_timestamp_query(struct v3d_cpu_job *job) in v3d_timestamp_query() argument
476 struct v3d_timestamp_query_info *timestamp_query = &job->timestamp_query; in v3d_timestamp_query()
477 struct v3d_bo *bo = to_v3d_bo(job->base.bo[0]); in v3d_timestamp_query()
487 job->base.done_fence); in v3d_timestamp_query()
494 v3d_reset_timestamp_queries(struct v3d_cpu_job *job) in v3d_reset_timestamp_queries() argument
496 struct v3d_timestamp_query_info *timestamp_query = &job->timestamp_query; in v3d_reset_timestamp_queries()
498 struct v3d_bo *bo = to_v3d_bo(job->base.bo[0]); in v3d_reset_timestamp_queries()
533 v3d_copy_query_results(struct v3d_cpu_job *job) in v3d_copy_query_results() argument
535 struct v3d_timestamp_query_info *timestamp_query = &job->timestamp_query; in v3d_copy_query_results()
537 struct v3d_bo *bo = to_v3d_bo(job->base.bo[0]); in v3d_copy_query_results()
538 struct v3d_bo *timestamp = to_v3d_bo(job->base.bo[1]); in v3d_copy_query_results()
539 struct v3d_copy_query_results_info *copy = &job->copy; in v3d_copy_query_results()
574 v3d_reset_performance_queries(struct v3d_cpu_job *job) in v3d_reset_performance_queries() argument
576 struct v3d_performance_query_info *performance_query = &job->performance_query; in v3d_reset_performance_queries()
577 struct v3d_file_priv *v3d_priv = job->base.file->driver_priv; in v3d_reset_performance_queries()
578 struct v3d_dev *v3d = job->base.v3d; in v3d_reset_performance_queries()
602 v3d_write_performance_query_result(struct v3d_cpu_job *job, void *data, in v3d_write_performance_query_result() argument
606 &job->performance_query; in v3d_write_performance_query_result()
607 struct v3d_file_priv *v3d_priv = job->base.file->driver_priv; in v3d_write_performance_query_result()
610 struct v3d_dev *v3d = job->base.v3d; in v3d_write_performance_query_result()
627 if (job->copy.do_64bit) { in v3d_write_performance_query_result()
642 v3d_copy_performance_query(struct v3d_cpu_job *job) in v3d_copy_performance_query() argument
644 struct v3d_performance_query_info *performance_query = &job->performance_query; in v3d_copy_performance_query()
645 struct v3d_copy_query_results_info *copy = &job->copy; in v3d_copy_performance_query()
646 struct v3d_bo *bo = to_v3d_bo(job->base.bo[0]); in v3d_copy_performance_query()
661 v3d_write_performance_query_result(job, data, i); in v3d_copy_performance_query()
687 struct v3d_cpu_job *job = to_cpu_job(sched_job); in v3d_cpu_job_run() local
688 struct v3d_dev *v3d = job->base.v3d; in v3d_cpu_job_run()
690 if (job->job_type >= ARRAY_SIZE(cpu_job_function)) { in v3d_cpu_job_run()
691 DRM_DEBUG_DRIVER("Unknown CPU job: %d\n", job->job_type); in v3d_cpu_job_run()
695 v3d_job_start_stats(&job->base, V3D_CPU); in v3d_cpu_job_run()
696 trace_v3d_cpu_job_begin(&v3d->drm, job->job_type); in v3d_cpu_job_run()
698 cpu_job_function[job->job_type](job); in v3d_cpu_job_run()
700 trace_v3d_cpu_job_end(&v3d->drm, job->job_type); in v3d_cpu_job_run()
701 v3d_job_update_stats(&job->base, V3D_CPU); in v3d_cpu_job_run()
709 struct v3d_job *job = to_v3d_job(sched_job); in v3d_cache_clean_job_run() local
710 struct v3d_dev *v3d = job->v3d; in v3d_cache_clean_job_run()
712 v3d_job_start_stats(job, V3D_CACHE_CLEAN); in v3d_cache_clean_job_run()
716 v3d_job_update_stats(job, V3D_CACHE_CLEAN); in v3d_cache_clean_job_run()
765 struct v3d_job *job = to_v3d_job(sched_job); in v3d_cl_job_timedout() local
766 struct v3d_dev *v3d = job->v3d; in v3d_cl_job_timedout()
789 struct v3d_bin_job *job = to_bin_job(sched_job); in v3d_bin_job_timedout() local
792 &job->timedout_ctca, &job->timedout_ctra); in v3d_bin_job_timedout()
798 struct v3d_render_job *job = to_render_job(sched_job); in v3d_render_job_timedout() local
801 &job->timedout_ctca, &job->timedout_ctra); in v3d_render_job_timedout()
807 struct v3d_job *job = to_v3d_job(sched_job); in v3d_generic_job_timedout() local
809 return v3d_gpu_reset_for_timeout(job->v3d, sched_job); in v3d_generic_job_timedout()
815 struct v3d_csd_job *job = to_csd_job(sched_job); in v3d_csd_job_timedout() local
816 struct v3d_dev *v3d = job->base.v3d; in v3d_csd_job_timedout()
822 if (job->timedout_batches != batches) { in v3d_csd_job_timedout()
823 job->timedout_batches = batches; in v3d_csd_job_timedout()