| /linux-6.15/drivers/gpu/drm/nouveau/ |
| H A D | nouveau_sched.c | 45 if (job->sync) in nouveau_job_init() 58 if (job->sync) { in nouveau_job_init() 72 job->out_sync.objs = kcalloc(job->out_sync.count, in nouveau_job_init() 80 job->out_sync.chains = kcalloc(job->out_sync.count, in nouveau_job_init() 115 job->ops->free(job); in nouveau_job_fini() 302 ret = job->ops->submit(job, &vm_exec); in nouveau_job_submit() 309 list_add(&job->entry, &sched->job.list.head); in nouveau_job_submit() 314 if (job->sync) in nouveau_job_submit() 318 job->ops->armed_submit(job, &vm_exec); in nouveau_job_submit() 351 fence = job->ops->run(job); in nouveau_job_run() [all …]
|
| H A D | nouveau_exec.c | 122 job->resv_usage, job->resv_usage); in nouveau_exec_job_armed_submit() 168 nouveau_job_done(job); in nouveau_exec_job_free() 169 nouveau_job_free(job); in nouveau_exec_job_free() 203 struct nouveau_exec_job *job; in nouveau_exec_job_init() local 218 job = *pjob = kzalloc(sizeof(*job), GFP_KERNEL); in nouveau_exec_job_init() 219 if (!job) in nouveau_exec_job_init() 228 if (!job->push.s) { in nouveau_exec_job_init() 235 job->chan = __args->chan; in nouveau_exec_job_init() 257 kfree(job->push.s); in nouveau_exec_job_init() 259 kfree(job); in nouveau_exec_job_init() [all …]
|
| /linux-6.15/drivers/gpu/host1x/ |
| H A D | job.c | 52 if (!job) in host1x_job_alloc() 70 job->reloc_addr_phys = job->addr_phys; in host1x_job_alloc() 71 job->gather_addr_phys = &job->addr_phys[num_relocs]; in host1x_job_alloc() 73 return job; in host1x_job_alloc() 80 return job; in host1x_job_get() 89 job->release(job); in job_free() 200 job->addr_phys[job->num_unpins] = map->phys; in pin_job() 201 job->unpins[job->num_unpins].map = map; in pin_job() 263 job->addr_phys[job->num_unpins] = map->phys; in pin_job() 264 job->unpins[job->num_unpins].map = map; in pin_job() [all …]
|
| H A D | cdma.c | 326 if (job->timeout) in update_cdma_locked() 340 if (job->num_slots) { in update_cdma_locked() 349 list_del(&job->list); in update_cdma_locked() 350 host1x_job_put(job); in update_cdma_locked() 398 job = NULL; in host1x_cdma_update_sync_queue() 413 if (!job) in host1x_cdma_update_sync_queue() 422 job->timeout = 0; in host1x_cdma_update_sync_queue() 432 job->num_slots); in host1x_cdma_update_sync_queue() 470 unsigned int next_job = (job->first_get/8 + job->num_slots) in host1x_cdma_update_sync_queue() 564 if (job->timeout) { in host1x_cdma_begin() [all …]
|
| /linux-6.15/drivers/gpu/drm/xe/ |
| H A D | xe_sched_job.c | 100 struct xe_sched_job *job; in xe_sched_job_create() local 109 if (!job) in xe_sched_job_create() 112 job->q = q; in xe_sched_job_create() 113 kref_init(&job->refcount); in xe_sched_job_create() 114 xe_exec_queue_get(job->q); in xe_sched_job_create() 150 return job; in xe_sched_job_create() 157 job_free(job); in xe_sched_job_create() 170 struct xe_sched_job *job = in xe_sched_job_destroy() local 178 job_free(job); in xe_sched_job_destroy() 289 xe_sched_job_get(job); in xe_sched_job_push() [all …]
|
| H A D | xe_sched_job.h | 33 kref_get(&job->refcount); in xe_sched_job_get() 34 return job; in xe_sched_job_get() 46 kref_put(&job->refcount, xe_sched_job_destroy); in xe_sched_job_put() 52 return job->fence->error < 0; in xe_sched_job_is_error() 55 bool xe_sched_job_started(struct xe_sched_job *job); 56 bool xe_sched_job_completed(struct xe_sched_job *job); 58 void xe_sched_job_arm(struct xe_sched_job *job); 59 void xe_sched_job_push(struct xe_sched_job *job); 73 return job->fence ? job->fence->seqno : 0; in xe_sched_job_seqno() 78 return job->lrc_seqno; in xe_sched_job_lrc_seqno() [all …]
|
| H A D | xe_ring_ops.c | 229 if (job->q->vm && !job->ggtt) in get_ppgtt_flag() 267 if (job->user_fence.used) { in __emit_job_gen12_simple() 270 job->user_fence.value, in __emit_job_gen12_simple() 330 if (job->user_fence.used) { in __emit_job_gen12_video() 333 job->user_fence.value, in __emit_job_gen12_video() 381 if (job->user_fence.used) in __emit_job_gen12_render_compute() 439 __emit_job_gen12_simple(job, job->q->lrc[0], in emit_job_gen12_gsc() 449 emit_migration_job_gen12(job, job->q->lrc[0], in emit_job_gen12_copy() 455 __emit_job_gen12_simple(job, job->q->lrc[i], in emit_job_gen12_copy() 466 __emit_job_gen12_video(job, job->q->lrc[i], in emit_job_gen12_video() [all …]
|
| /linux-6.15/drivers/md/ |
| H A D | dm-kcopyd.c | 434 job->master_job->write_offset += job->source.count; in pop_io_job() 460 return job; in pop() 500 if (job->pages && job->pages != &zero_page_list) in run_complete_job() 506 if (job->master_job == job) { in run_complete_job() 574 job->write_err = job->master_job->write_err; in run_io_job() 596 push(&job->kc->io_jobs, job); in run_pages_job() 715 if ((!job->read_err && !job->write_err) || in segment_complete() 829 memset(&job->source, 0, sizeof(job->source)); in dm_kcopyd_copy() 830 job->source.count = job->dests[0].count; in dm_kcopyd_copy() 846 job->master_job = job; in dm_kcopyd_copy() [all …]
|
| /linux-6.15/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_job.c | 213 if (!*job) in amdgpu_job_alloc() 244 kfree(*job); in amdgpu_job_alloc_with_ib() 273 if (job->base.s_fence && job->base.s_fence->finished.ops) in amdgpu_job_free_resources() 294 kfree(job); in amdgpu_job_free_cb() 322 if (job->gang_submit != &job->base.s_fence->scheduled) in amdgpu_job_free() 326 kfree(job); in amdgpu_job_free() 349 r = amdgpu_ib_schedule(ring, job->num_ibs, job->ibs, job, fence); in amdgpu_job_submit_direct() 381 if (job->vm && !job->vmid) { in amdgpu_job_prepare_job() 382 r = amdgpu_vmid_grab(job->vm, ring, job, &fence); in amdgpu_job_prepare_job() 419 (job->job_run_counter && job->gang_submit)) in amdgpu_job_run() [all …]
|
| H A D | amdgpu_ib.c | 149 if (job) { in amdgpu_ib_schedule() 150 vm = job->vm; in amdgpu_ib_schedule() 151 fence_ctx = job->base.s_fence ? in amdgpu_ib_schedule() 153 shadow_va = job->shadow_va; in amdgpu_ib_schedule() 154 csa_va = job->csa_va; in amdgpu_ib_schedule() 155 gds_va = job->gds_va; in amdgpu_ib_schedule() 156 init_shadow = job->init_shadow; in amdgpu_ib_schedule() 214 if (job) { in amdgpu_ib_schedule() 275 if (job && job->uf_addr) { in amdgpu_ib_schedule() 276 amdgpu_ring_emit_fence(ring, job->uf_addr, job->uf_sequence, in amdgpu_ib_schedule() [all …]
|
| H A D | amdgpu_ids.c | 169 struct amdgpu_job *job) in amdgpu_vmid_gds_switch_needed() argument 176 id->oa_size != job->oa_size; in amdgpu_vmid_gds_switch_needed() 181 struct amdgpu_job *job) in amdgpu_vmid_compatible() argument 338 struct amdgpu_job *job, in amdgpu_vmid_grab_used() argument 434 job->vm_needs_flush = true; in amdgpu_vmid_grab() 440 job->gds_switch_needed = amdgpu_vmid_gds_switch_needed(id, job); in amdgpu_vmid_grab() 441 if (job->vm_needs_flush) { in amdgpu_vmid_grab() 446 job->vmid = id - id_mgr->ids; in amdgpu_vmid_grab() 447 job->pasid = vm->pasid; in amdgpu_vmid_grab() 453 id->oa_base = job->oa_base; in amdgpu_vmid_grab() [all …]
|
| H A D | amdgpu_job.h | 42 #define AMDGPU_JOB_GET_VMID(job) ((job) ? (job)->vmid : 0) argument 86 static inline struct amdgpu_ring *amdgpu_job_ring(struct amdgpu_job *job) in amdgpu_job_ring() argument 88 return to_amdgpu_ring(job->base.entity->rq->sched); in amdgpu_job_ring() 93 unsigned int num_ibs, struct amdgpu_job **job); 97 struct amdgpu_job **job); 98 void amdgpu_job_set_resources(struct amdgpu_job *job, struct amdgpu_bo *gds, 100 void amdgpu_job_free_resources(struct amdgpu_job *job); 101 void amdgpu_job_set_gang_leader(struct amdgpu_job *job, 103 void amdgpu_job_free(struct amdgpu_job *job); 104 struct dma_fence *amdgpu_job_submit(struct amdgpu_job *job); [all …]
|
| /linux-6.15/drivers/gpu/host1x/hw/ |
| H A D | channel_hw.c | 233 submit_wait(job, job->syncpt->id, fence, job->class); in channel_program_cdma() 236 job->syncpt_end = host1x_syncpt_incr_max(sp, job->syncpt_incrs); in channel_program_cdma() 237 submit_gathers(job, job->syncpt_end - job->syncpt_incrs); in channel_program_cdma() 245 submit_wait(job, job->syncpt->id, fence, job->class); in channel_program_cdma() 268 if (job->class) in channel_program_cdma() 273 job->syncpt_end = host1x_syncpt_incr_max(sp, job->syncpt_incrs); in channel_program_cdma() 275 submit_gathers(job, job->syncpt_end - job->syncpt_incrs); in channel_program_cdma() 297 job->num_cmds, job->num_relocs, in channel_submit() 298 job->syncpt->id, job->syncpt_incrs); in channel_submit() 328 job->fence = NULL; in channel_submit() [all …]
|
| /linux-6.15/drivers/gpu/drm/imagination/ |
| H A D | pvr_job.c | 27 xa_erase(&job->pvr_dev->job_ids, job->id); in pvr_job_release() 37 kfree(job->cmd); in pvr_job_release() 38 kfree(job); in pvr_job_release() 48 if (job) in pvr_job_put() 74 if (!job->cmd) in pvr_job_process_stream() 418 job = kzalloc(sizeof(*job), GFP_KERNEL); in create_job() 419 if (!job) in create_job() 453 return job; in create_job() 541 struct pvr_job *job = job_data[i].job; in jobs_lock_all_objs() local 624 struct pvr_job *job = job_data[i - 1].job; in get_last_queued_job_scheduled_fence() local [all …]
|
| H A D | pvr_queue.c | 425 queue->cccb_fence_ctx.job = pvr_job_get(job); in pvr_queue_get_job_cccb_fence() 679 pvr_cccb_write_command_with_header(cccb, job->fw_ccb_cmd_type, job->cmd_len, job->cmd, in pvr_queue_submit_job_to_cccb() 680 job->id, job->id); in pvr_queue_submit_job_to_cccb() 720 job->hwrt != job->paired_job->hwrt || in pvr_queue_run_job() 721 job->ctx != job->paired_job->ctx))) in pvr_queue_run_job() 953 job = queue->cccb_fence_ctx.job; in pvr_queue_check_job_waiting_for_cccb_space() 954 if (!job) in pvr_queue_check_job_waiting_for_cccb_space() 961 job = NULL; in pvr_queue_check_job_waiting_for_cccb_space() 968 job = NULL; in pvr_queue_check_job_waiting_for_cccb_space() 978 job = NULL; in pvr_queue_check_job_waiting_for_cccb_space() [all …]
|
| H A D | pvr_job.h | 104 pvr_job_get(struct pvr_job *job) in pvr_job_get() argument 106 if (job) in pvr_job_get() 107 kref_get(&job->ref_count); in pvr_job_get() 109 return job; in pvr_job_get() 112 void pvr_job_put(struct pvr_job *job); 121 if (job->has_pm_ref) { in pvr_job_release_pm_ref() 122 pvr_power_put(job->pvr_dev); in pvr_job_release_pm_ref() 123 job->has_pm_ref = false; in pvr_job_release_pm_ref() 140 if (job->has_pm_ref) in pvr_job_get_pm_ref() 143 err = pvr_power_get(job->pvr_dev); in pvr_job_get_pm_ref() [all …]
|
| /linux-6.15/block/ |
| H A D | bsg-lib.c | 31 struct bsg_job *job; in bsg_transport_sg_io_fn() local 50 reply = job->reply; in bsg_transport_sg_io_fn() 51 memset(job, 0, sizeof(*job)); in bsg_transport_sg_io_fn() 52 job->reply = reply; in bsg_transport_sg_io_fn() 54 job->dd_data = job + 1; in bsg_transport_sg_io_fn() 76 job->bidi_bio = job->bidi_rq->bio; in bsg_transport_sg_io_fn() 140 if (job->bidi_rq) in bsg_transport_sg_io_fn() 143 if (job->bidi_rq) in bsg_transport_sg_io_fn() 245 ret = bsg_map_buffer(&job->reply_payload, job->bidi_rq); in bsg_prepare_job() 249 job->dev = dev; in bsg_prepare_job() [all …]
|
| /linux-6.15/drivers/gpu/drm/v3d/ |
| H A D | v3d_sched.c | 73 v3d_job_cleanup(job); in v3d_sched_job_free() 240 v3d->bin_job = job; in v3d_bin_job_run() 258 job->start, job->end); in v3d_bin_job_run() 266 if (job->qma) { in v3d_bin_job_run() 270 if (job->qts) { in v3d_bin_job_run() 273 job->qts); in v3d_bin_job_run() 312 job->start, job->end); in v3d_render_job_run() 341 v3d->tfu_job = job; in v3d_tfu_job_run() 694 cpu_job_function[job->job_type](job); in v3d_cpu_job_run() 788 &job->timedout_ctca, &job->timedout_ctra); in v3d_bin_job_timedout() [all …]
|
| H A D | v3d_submit.c | 84 job->bo_count, &job->bo); in v3d_lookup_bos() 105 kfree(job); in v3d_job_free() 124 if (!job) in v3d_job_cleanup() 133 if (!job) in v3d_job_put() 136 kref_put(&job->refcount, job->free); in v3d_job_put() 239 dma_resv_add_fence(job->bo[i]->resv, job->done_fence, in v3d_attach_fences_and_unlock_reservation() 278 ret = v3d_job_allocate((void *)job, sizeof(**job)); in v3d_setup_csd_jobs_and_bos() 417 if (!job) { in v3d_get_cpu_indirect_csd_params() 460 if (!job) { in v3d_get_cpu_timestamp_query_params() 1089 ret = v3d_job_allocate((void *)&job, sizeof(*job)); in v3d_submit_tfu_ioctl() [all …]
|
| /linux-6.15/drivers/gpu/drm/panfrost/ |
| H A D | panfrost_job.c | 161 WARN_ON(!job); in panfrost_dequeue_job() 163 if (job->is_profiled && job->engine_usage) { in panfrost_dequeue_job() 176 return job; in panfrost_dequeue_job() 303 ret = drm_gem_lock_reservations(job->bos, job->bo_count, in panfrost_job_push() 326 panfrost_attach_object_fences(job->bos, job->bo_count, in panfrost_job_push() 362 kfree(job); in panfrost_job_cleanup() 392 if (!job->jc) in panfrost_job_run() 461 job->jc = 0; in panfrost_job_handle_err() 468 job->jc = 0; in panfrost_job_handle_err() 491 job->jc = 0; in panfrost_job_handle_done() [all …]
|
| /linux-6.15/drivers/accel/ivpu/ |
| H A D | ivpu_job.c | 474 job->job_id, job->file_priv->ctx.id, job->cmdq_id, job->engine_idx); in ivpu_job_destroy() 482 kfree(job); in ivpu_job_destroy() 491 job = kzalloc(struct_size(job, bos, bo_count), GFP_KERNEL); in ivpu_job_create() 492 if (!job) in ivpu_job_create() 508 return job; in ivpu_job_create() 511 kfree(job); in ivpu_job_create() 527 return job; in ivpu_job_remove_from_submitted_jobs() 537 if (!job) in ivpu_job_signal_and_destroy() 557 if (!job) in ivpu_job_signal_and_destroy() 568 job->job_id, job->file_priv->ctx.id, job->cmdq_id, job->engine_idx, job_status); in ivpu_job_signal_and_destroy() [all …]
|
| /linux-6.15/drivers/accel/amdxdna/ |
| H A D | aie2_ctx.c | 39 if (job->out_fence) in aie2_job_release() 41 kfree(job); in aie2_job_release() 179 trace_xdna_job(&job->base, job->hwctx->name, "signaled fence", job->seq); in aie2_sched_notify() 187 aie2_job_put(job); in aie2_sched_notify() 327 aie2_job_put(job); in aie2_sched_job_run() 328 mmput(job->mm); in aie2_sched_job_run() 342 if (!job->job_done) in aie2_sched_job_free() 346 aie2_job_put(job); in aie2_sched_job_free() 875 job->out_fence = dma_fence_get(&job->base.s_fence->finished); in aie2_cmd_submit() 882 *seq = job->seq; in aie2_cmd_submit() [all …]
|
| /linux-6.15/drivers/gpu/drm/ |
| H A D | drm_writeback.c | 449 job->prepared = true; in drm_writeback_prepare_job() 476 struct drm_writeback_job *job; in drm_writeback_queue_job() local 497 if (job->fb) in drm_writeback_cleanup_job() 498 drm_framebuffer_put(job->fb); in drm_writeback_cleanup_job() 500 if (job->out_fence) in drm_writeback_cleanup_job() 503 kfree(job); in drm_writeback_cleanup_job() 551 if (job) in drm_writeback_signal_completion() 552 list_del(&job->list_entry); in drm_writeback_signal_completion() 556 if (WARN_ON(!job)) in drm_writeback_signal_completion() 559 out_fence = job->out_fence; in drm_writeback_signal_completion() [all …]
|
| /linux-6.15/drivers/gpu/drm/tegra/ |
| H A D | submit.c | 399 struct host1x_job *job; in submit_create_job() local 413 if (!job) { in submit_create_job() 425 job->serialize = true; in submit_create_job() 481 host1x_job_put(job); in submit_create_job() 482 job = ERR_PTR(err); in submit_create_job() 487 return job; in submit_create_job() 577 if (IS_ERR(job)) { in tegra_drm_ioctl_channel_submit() 578 err = PTR_ERR(job); in tegra_drm_ioctl_channel_submit() 630 job->timeout = 10000; in tegra_drm_ioctl_channel_submit() 664 host1x_job_unpin(job); in tegra_drm_ioctl_channel_submit() [all …]
|
| /linux-6.15/drivers/gpu/drm/scheduler/ |
| H A D | sched_main.c | 385 if (job && dma_fence_is_signaled(&job->s_fence->finished)) in drm_sched_run_free_queue() 552 if (job) { in drm_sched_job_timedout() 561 status = job->sched->ops->timedout_job(job); in drm_sched_job_timedout() 568 job->sched->ops->free_job(job); in drm_sched_job_timedout() 809 memset(job, 0, sizeof(*job)); in drm_sched_job_init() 814 if (!job->s_fence) in drm_sched_job_init() 851 drm_sched_fence_init(job->s_fence, job->entity); in drm_sched_job_arm() 1108 if (job && dma_fence_is_signaled(&job->s_fence->finished)) { in drm_sched_get_finished_job() 1127 job = NULL; in drm_sched_get_finished_job() 1132 return job; in drm_sched_get_finished_job() [all …]
|