| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_tlb_inval_job.c | 50 struct xe_tlb_inval_job *job = in xe_tlb_inval_job_run() local 51 container_of(dep_job, typeof(*job), dep); in xe_tlb_inval_job_run() 53 container_of(job->fence, typeof(*ifence), base); in xe_tlb_inval_job_run() 56 if (xe_page_reclaim_list_valid(&job->prl)) { in xe_tlb_inval_job_run() 57 prl_sa = xe_page_reclaim_create_prl_bo(job->tlb_inval, &job->prl, ifence); in xe_tlb_inval_job_run() 62 xe_tlb_inval_range(job->tlb_inval, ifence, job->start, in xe_tlb_inval_job_run() 63 job->end, job->vm->usm.asid, prl_sa); in xe_tlb_inval_job_run() 65 return job->fence; in xe_tlb_inval_job_run() 70 struct xe_tlb_inval_job *job = in xe_tlb_inval_job_free() local 71 container_of(dep_job, typeof(*job), dep); in xe_tlb_inval_job_free() [all …]
|
| H A D | xe_ring_ops.c | 211 static int emit_render_cache_flush(struct xe_sched_job *job, u32 *dw, int i) in emit_render_cache_flush() argument 213 struct xe_exec_queue *q = job->q; in emit_render_cache_flush() 245 else if (job->q->class == XE_ENGINE_CLASS_COMPUTE) in emit_render_cache_flush() 272 static u32 get_ppgtt_flag(struct xe_sched_job *job) in get_ppgtt_flag() argument 274 if (job->q->vm && !job->ggtt) in get_ppgtt_flag() 334 static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc, in __emit_job_gen12_simple() argument 338 u32 ppgtt_flag = get_ppgtt_flag(job); in __emit_job_gen12_simple() 339 struct xe_gt *gt = job->q->gt; in __emit_job_gen12_simple() 343 if (job->ring_ops_force_reset) in __emit_job_gen12_simple() 348 if (job->ring_ops_flush_tlb) { in __emit_job_gen12_simple() [all …]
|
| /linux/drivers/gpu/drm/scheduler/tests/ |
| H A D | mock_scheduler.c | 60 static void drm_mock_sched_job_complete(struct drm_mock_sched_job *job) in drm_mock_sched_job_complete() argument 63 drm_sched_to_mock_sched(job->base.sched); in drm_mock_sched_job_complete() 67 job->flags |= DRM_MOCK_SCHED_JOB_DONE; in drm_mock_sched_job_complete() 68 list_del(&job->link); in drm_mock_sched_job_complete() 69 dma_fence_signal_locked(&job->hw_fence); in drm_mock_sched_job_complete() 70 complete(&job->done); in drm_mock_sched_job_complete() 76 struct drm_mock_sched_job *job = in drm_mock_sched_job_signal_timer() local 77 container_of(hrtimer, typeof(*job), timer); in drm_mock_sched_job_signal_timer() 79 drm_sched_to_mock_sched(job->base.sched); in drm_mock_sched_job_signal_timer() 86 list_for_each_entry_safe(job, next, &sched->job_list, link) { in drm_mock_sched_job_signal_timer() [all …]
|
| /linux/drivers/gpu/drm/imagination/ |
| H A D | pvr_queue.c | 376 static u32 job_cmds_size(struct pvr_job *job, u32 ufo_wait_count) in job_cmds_size() argument 384 pvr_cccb_get_size_of_cmd_with_hdr(job->cmd_len) + in job_cmds_size() 389 is_paired_job_fence(struct dma_fence *fence, struct pvr_job *job) in is_paired_job_fence() argument 392 return job->type == DRM_PVR_JOB_TYPE_FRAGMENT && in is_paired_job_fence() 393 job->paired_job && in is_paired_job_fence() 394 &job->paired_job->base.s_fence->scheduled == fence; in is_paired_job_fence() 403 static unsigned long job_count_remaining_native_deps(struct pvr_job *job) in job_count_remaining_native_deps() argument 409 xa_for_each(&job->base.dependencies, index, fence) { in job_count_remaining_native_deps() 412 if (is_paired_job_fence(fence, job)) { in job_count_remaining_native_deps() 447 pvr_queue_get_job_cccb_fence(struct pvr_queue *queue, struct pvr_job *job) in pvr_queue_get_job_cccb_fence() argument [all …]
|
| H A D | pvr_trace.h | 44 #define PVR_JOB_GET_HWRT_FW_ADDR(job) \ argument 46 struct pvr_job *_job = (job); \ 63 TP_PROTO(struct pvr_device *pvr_dev, struct pvr_job *job, 65 TP_ARGS(pvr_dev, job, sync_op_count), 71 __field(struct pvr_job *, job) 75 __entry->ctx = job->ctx; 76 __entry->fw_obj = job->ctx->fw_obj; 77 pvr_fw_object_get_fw_addr(job->ctx->fw_obj, &__entry->fw_addr); 78 __entry->hwrt_addr = PVR_JOB_GET_HWRT_FW_ADDR(job); 79 __entry->job = job; [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); 119 pvr_job_release_pm_ref(struct pvr_job *job) in pvr_job_release_pm_ref() argument 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() 136 pvr_job_get_pm_ref(struct pvr_job *job) in pvr_job_get_pm_ref() argument [all …]
|
| /linux/drivers/accel/ethosu/ |
| H A D | ethosu_job.c | 45 static void ethosu_job_hw_submit(struct ethosu_device *dev, struct ethosu_job *job) in ethosu_job_hw_submit() argument 47 struct drm_gem_dma_object *cmd_bo = to_drm_gem_dma_obj(job->cmd_bo); in ethosu_job_hw_submit() 48 struct ethosu_validated_cmdstream_info *cmd_info = to_ethosu_bo(job->cmd_bo)->info; in ethosu_job_hw_submit() 50 for (int i = 0; i < job->region_cnt; i++) { in ethosu_job_hw_submit() 52 int region = job->region_bo_num[i]; in ethosu_job_hw_submit() 54 bo = to_drm_gem_dma_obj(job->region_bo[i]); in ethosu_job_hw_submit() 60 if (job->sram_size) { in ethosu_job_hw_submit() 79 static int ethosu_acquire_object_fences(struct ethosu_job *job) in ethosu_acquire_object_fences() argument 82 struct drm_gem_object **bos = job->region_bo; in ethosu_acquire_object_fences() 83 struct ethosu_validated_cmdstream_info *info = to_ethosu_bo(job->cmd_bo)->info; in ethosu_acquire_object_fences() [all …]
|
| /linux/drivers/accel/rocket/ |
| H A D | rocket_job.c | 62 struct drm_rocket_job *job, in rocket_copy_tasks() argument 67 if (job->task_struct_size < sizeof(struct drm_rocket_task)) in rocket_copy_tasks() 70 rjob->task_count = job->task_count; in rocket_copy_tasks() 75 rjob->tasks = kvmalloc_objs(*rjob->tasks, job->task_count); in rocket_copy_tasks() 85 u64_to_user_ptr(job->tasks) + i * job->task_struct_size, in rocket_copy_tasks() 110 static void rocket_job_hw_submit(struct rocket_core *core, struct rocket_job *job) in rocket_job_hw_submit() argument 121 task = &job->tasks[job->next_task_idx]; in rocket_job_hw_submit() 122 job->next_task_idx++; in rocket_job_hw_submit() 159 struct drm_sched_job *job, in rocket_acquire_object_fences() argument 169 ret = drm_sched_job_add_implicit_dependencies(job, bos[i], in rocket_acquire_object_fences() [all …]
|
| /linux/drivers/accel/ivpu/ |
| H A D | ivpu_job.c | 74 struct ivpu_cmdq *cmdq, struct ivpu_job *job) in ivpu_preemption_job_init() argument 79 if (job->primary_preempt_buf) in ivpu_preemption_job_init() 90 job->primary_preempt_buf = cmdq->primary_preempt_buf; in ivpu_preemption_job_init() 91 job->secondary_preempt_buf = cmdq->secondary_preempt_buf; in ivpu_preemption_job_init() 439 static int ivpu_cmdq_push_job(struct ivpu_cmdq *cmdq, struct ivpu_job *job) in ivpu_cmdq_push_job() argument 441 struct ivpu_device *vdev = job->vdev; in ivpu_cmdq_push_job() 450 job->file_priv->ctx.id, cmdq->id, cmdq->db_id, header->head, tail); in ivpu_cmdq_push_job() 454 entry = &cmdq->jobq->slot[tail].job; in ivpu_cmdq_push_job() 455 entry->batch_buf_addr = job->cmd_buf_vpu_addr; in ivpu_cmdq_push_job() 456 entry->job_id = job->job_id; in ivpu_cmdq_push_job() [all …]
|
| /linux/drivers/accel/amdxdna/ |
| H A D | aie2_ctx.c | 78 struct amdxdna_sched_job *job; in aie2_job_release() local 80 job = container_of(ref, struct amdxdna_sched_job, refcnt); in aie2_job_release() 82 amdxdna_sched_job_cleanup(job); in aie2_job_release() 83 atomic64_inc(&job->hwctx->job_free_cnt); in aie2_job_release() 84 wake_up(&job->hwctx->priv->job_free_wq); in aie2_job_release() 85 if (job->out_fence) in aie2_job_release() 86 dma_fence_put(job->out_fence); in aie2_job_release() 87 if (job->drv_cmd) in aie2_job_release() 88 aie2_cmd_put(job->drv_cmd); in aie2_job_release() 89 kfree(job->aie2_job_health); in aie2_job_release() [all …]
|
| H A D | amdxdna_ctx.c | 165 struct amdxdna_sched_job *job, u32 cmd_idx, in amdxdna_cmd_set_error() argument 169 struct amdxdna_client *client = job->hwctx->client; in amdxdna_cmd_set_error() 519 amdxdna_arg_bos_put(struct amdxdna_sched_job *job) in amdxdna_arg_bos_put() argument 523 for (i = 0; i < job->bo_cnt; i++) { in amdxdna_arg_bos_put() 524 if (!job->bos[i]) in amdxdna_arg_bos_put() 526 drm_gem_object_put(job->bos[i]); in amdxdna_arg_bos_put() 532 struct amdxdna_sched_job *job, in amdxdna_arg_bos_lookup() argument 538 job->bo_cnt = bo_cnt; in amdxdna_arg_bos_lookup() 539 for (i = 0; i < job->bo_cnt; i++) { in amdxdna_arg_bos_lookup() 552 job->bos[i] = gobj; in amdxdna_arg_bos_lookup() [all …]
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_gem_vma.c | 153 static inline struct msm_vm_bind_job *to_msm_vm_bind_job(struct drm_sched_job *job) in to_msm_vm_bind_job() argument 155 return container_of(job, struct msm_vm_bind_job, base); in to_msm_vm_bind_job() 468 struct msm_vm_bind_job *job; member 481 list_add_tail(&op->node, &arg->job->vm_ops); in vm_op_enqueue() 492 return msm_gem_vma_new(arg->job->vm, op->gem.obj, op->gem.offset, in vma_from_op() 500 struct msm_vm_bind_job *job = arg->job; in msm_gem_vm_sm_step_map() local 533 .queue_id = job->queue->id, in msm_gem_vm_sm_step_map() 550 struct msm_vm_bind_job *job = ((struct op_arg *)arg)->job; in msm_gem_vm_sm_step_remap() local 551 struct drm_gpuvm *vm = job->vm; in msm_gem_vm_sm_step_remap() 572 .queue_id = job->queue->id, in msm_gem_vm_sm_step_remap() [all …]
|
| /linux/drivers/gpu/drm/nouveau/ |
| H A D | nouveau_exec.c | 89 nouveau_exec_job_submit(struct nouveau_job *job, in nouveau_exec_job_submit() argument 92 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_submit() 93 struct nouveau_cli *cli = job->cli; in nouveau_exec_job_submit() 120 nouveau_exec_job_armed_submit(struct nouveau_job *job, in nouveau_exec_job_armed_submit() argument 123 drm_gpuvm_exec_resv_add_fence(vme, job->done_fence, in nouveau_exec_job_armed_submit() 124 job->resv_usage, job->resv_usage); in nouveau_exec_job_armed_submit() 129 nouveau_exec_job_run(struct nouveau_job *job) in nouveau_exec_job_run() argument 131 struct nouveau_exec_job *exec_job = to_nouveau_exec_job(job); in nouveau_exec_job_run() 138 NV_PRINTK(err, job->cli, "nv50cal_space: %d\n", ret); in nouveau_exec_job_run() 154 NV_PRINTK(err, job->cli, "error fencing pushbuf: %d\n", ret); in nouveau_exec_job_run() [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_ib.c | 125 struct amdgpu_ib *ibs, struct amdgpu_job *job, in amdgpu_ib_schedule() argument 142 int vmid = AMDGPU_JOB_GET_VMID(job); in amdgpu_ib_schedule() 152 if (job) { in amdgpu_ib_schedule() 153 vm = job->vm; in amdgpu_ib_schedule() 154 fence_ctx = job->base.s_fence ? in amdgpu_ib_schedule() 155 job->base.s_fence->finished.context : 0; in amdgpu_ib_schedule() 156 shadow_va = job->shadow_va; in amdgpu_ib_schedule() 157 csa_va = job->csa_va; in amdgpu_ib_schedule() 158 gds_va = job->gds_va; in amdgpu_ib_schedule() 159 init_shadow = job->init_shadow; in amdgpu_ib_schedule() [all …]
|
| /linux/drivers/scsi/lpfc/ |
| H A D | lpfc_bsg.c | 305 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local 318 job = dd_data->set_job; in lpfc_bsg_send_mgmt_cmd_cmp() 319 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 320 bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd_cmp() 322 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd_cmp() 342 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 361 lpfc_bsg_copy_data(rmp, &job->reply_payload, in lpfc_bsg_send_mgmt_cmd_cmp() 376 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 378 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_send_mgmt_cmd_cmp() 389 lpfc_bsg_send_mgmt_cmd(struct bsg_job *job) in lpfc_bsg_send_mgmt_cmd() argument [all …]
|
| /linux/drivers/media/platform/renesas/rcar-isp/ |
| H A D | core.c | 141 struct rcar_isp_job *job; in risp_core_job_run() local 150 if (core->vspx.job) in risp_core_job_run() 153 job = list_first_entry_or_null(&core->risp_jobs, in risp_core_job_run() 156 if (!job) in risp_core_job_run() 159 list_del(&job->job_queue); in risp_core_job_run() 161 core->vspx.job = job; in risp_core_job_run() 165 struct risp_buffer *buf = job->buffers[i]; in risp_core_job_run() 169 risp_core_job_run_params(core, &job->vspx_job, buf); in risp_core_job_run() 177 if (vsp1_isp_job_run(core->vspx.dev, &job->vspx_job)) { in risp_core_job_run() 184 struct risp_buffer *buf = job->buffers[i]; in risp_core_job_run() [all …]
|
| /linux/drivers/gpu/drm/scheduler/ |
| H A D | sched_entity.c | 75 ktime_t drm_sched_entity_stats_job_add_gpu_time(struct drm_sched_job *job) in drm_sched_entity_stats_job_add_gpu_time() argument 77 struct drm_sched_entity_stats *stats = job->entity_stats; in drm_sched_entity_stats_job_add_gpu_time() 78 struct drm_sched_fence *s_fence = job->s_fence; in drm_sched_entity_stats_job_add_gpu_time() 246 struct drm_sched_job *job = container_of(wrk, typeof(*job), work); in drm_sched_entity_kill_jobs_work() local 251 xa_for_each(&job->dependencies, index, f) { in drm_sched_entity_kill_jobs_work() 269 xa_erase(&job->dependencies, index); in drm_sched_entity_kill_jobs_work() 270 if (f && !dma_fence_add_callback(f, &job->finish_cb, in drm_sched_entity_kill_jobs_work() 277 drm_sched_fence_scheduled(job->s_fence, NULL); in drm_sched_entity_kill_jobs_work() 278 drm_sched_fence_finished(job->s_fence, -ESRCH); in drm_sched_entity_kill_jobs_work() 279 WARN_ON(job->s_fence->parent); in drm_sched_entity_kill_jobs_work() [all …]
|
| /linux/drivers/accel/habanalabs/common/ |
| H A D | hw_queue.c | 279 static void ext_queue_schedule_job(struct hl_cs_job *job) in ext_queue_schedule_job() argument 281 struct hl_device *hdev = job->cs->ctx->hdev; in ext_queue_schedule_job() 282 struct hl_hw_queue *q = &hdev->kernel_queues[job->hw_queue_id]; in ext_queue_schedule_job() 297 cb = job->patched_cb; in ext_queue_schedule_job() 298 len = job->job_cb_size; in ext_queue_schedule_job() 302 if (!cs_needs_completion(job->cs)) in ext_queue_schedule_job() 322 job->user_cb_size, in ext_queue_schedule_job() 326 job->contains_dma_pkt); in ext_queue_schedule_job() 328 q->shadow_queue[hl_pi_2_offset(q->pi)] = job; in ext_queue_schedule_job() 344 static void int_queue_schedule_job(struct hl_cs_job *job) in int_queue_schedule_job() argument [all …]
|
| H A D | command_submission.c | 267 struct hl_cs_job *job = container_of(ref, struct hl_cs_job, refcount); in cs_job_do_release() local 269 kfree(job); in cs_job_do_release() 272 static void hl_cs_job_put(struct hl_cs_job *job) in hl_cs_job_put() argument 274 kref_put(&job->refcount, cs_job_do_release); in hl_cs_job_put() 299 static bool is_cb_patched(struct hl_device *hdev, struct hl_cs_job *job) in is_cb_patched() argument 302 return (job->queue_type == QUEUE_TYPE_EXT); in is_cb_patched() 316 static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job) in cs_parser() argument 322 parser.ctx_id = job->cs->ctx->asid; in cs_parser() 323 parser.cs_sequence = job->cs->sequence; in cs_parser() 324 parser.job_id = job->id; in cs_parser() [all …]
|
| H A D | irq.c | 81 struct hl_cs_job *job; in job_finish() local 84 job = queue->shadow_queue[hl_pi_2_offset(cs_seq)]; in job_finish() 85 job->timestamp = timestamp; in job_finish() 86 queue_work(hdev->cq_wq[cq->cq_idx], &job->finish_work); in job_finish() 104 struct hl_cs_job *job; in cs_finish() local 114 list_for_each_entry(job, &cs->job_list, cs_node) { in cs_finish() 115 queue = &hdev->kernel_queues[job->hw_queue_id]; in cs_finish() 205 struct timestamp_reg_work_obj *job = in hl_ts_free_objects() local 207 struct list_head *dynamic_alloc_free_list_head = job->dynamic_alloc_free_obj_head; in hl_ts_free_objects() 209 struct list_head *free_list_head = job->free_obj_head; in hl_ts_free_objects() [all …]
|
| /linux/drivers/scsi/libsas/ |
| H A D | sas_host_smp.c | 225 void sas_smp_host_handler(struct bsg_job *job, struct Scsi_Host *shost) in sas_smp_host_handler() argument 233 if (job->request_payload.payload_len < 8 || in sas_smp_host_handler() 234 job->reply_payload.payload_len < 8) in sas_smp_host_handler() 238 req_data = kzalloc(job->request_payload.payload_len, GFP_KERNEL); in sas_smp_host_handler() 241 sg_copy_to_buffer(job->request_payload.sg_list, in sas_smp_host_handler() 242 job->request_payload.sg_cnt, req_data, in sas_smp_host_handler() 243 job->request_payload.payload_len); in sas_smp_host_handler() 247 resp_data = kzalloc(max(job->reply_payload.payload_len, 128U), in sas_smp_host_handler() 282 if (job->request_payload.payload_len < 16) in sas_smp_host_handler() 294 if (job->request_payload.payload_len < 16) in sas_smp_host_handler() [all …]
|
| /linux/Documentation/devicetree/bindings/powerpc/fsl/ |
| H A D | raideng.txt | 30 There must be a sub-node for each job queue present in RAID Engine 33 - compatible: Should contain "fsl,raideng-v1.0-job-queue" as the value 34 This identifies the job queue interface 35 - reg: offset and length of the register set for job queue 42 compatible = "fsl,raideng-v1.0-job-queue"; 48 There must be a sub-node for each job ring present in RAID Engine 49 This node must be a sub-node of job queue node 51 - compatible: Must contain "fsl,raideng-v1.0-job-ring" as the value 52 This identifies job ring. Should contain either 55 - reg: offset and length of the register set for job ring [all …]
|
| /linux/drivers/crypto/tegra/ |
| H A D | tegra-se-main.c | 144 struct host1x_job *job; in tegra_se_host1x_submit() local 147 job = host1x_job_alloc(se->channel, 1, 0, true); in tegra_se_host1x_submit() 148 if (!job) { in tegra_se_host1x_submit() 153 job->syncpt = host1x_syncpt_get(se->syncpt); in tegra_se_host1x_submit() 154 job->syncpt_incrs = 1; in tegra_se_host1x_submit() 155 job->client = &se->client; in tegra_se_host1x_submit() 156 job->class = se->client.class; in tegra_se_host1x_submit() 157 job->serialize = true; in tegra_se_host1x_submit() 158 job->engine_fallback_streamid = se->stream_id; in tegra_se_host1x_submit() 159 job->engine_streamid_offset = SE_STREAM_ID; in tegra_se_host1x_submit() [all …]
|
| /linux/drivers/gpu/drm/panthor/ |
| H A D | panthor_sched.c | 1113 struct panthor_job *job; in queue_suspend_timeout_locked() local 1122 job = list_first_entry_or_null(&queue->fence_ctx.in_flight_jobs, in queue_suspend_timeout_locked() 1124 group = job ? job->group : NULL; in queue_suspend_timeout_locked() 1132 (group->blocked_queues & BIT(job->queue_idx)) && in queue_suspend_timeout_locked() 1141 if (!timer_was_active || !job) in queue_suspend_timeout_locked() 1541 struct panthor_job *job; in cs_slot_process_fault_event_locked() local 1544 list_for_each_entry(job, &queue->fence_ctx.in_flight_jobs, node) { in cs_slot_process_fault_event_locked() 1545 if (cs_extract >= job->ringbuf.end) in cs_slot_process_fault_event_locked() 1548 if (cs_extract < job->ringbuf.start) in cs_slot_process_fault_event_locked() 1551 dma_fence_set_error(job->done_fence, -EINVAL); in cs_slot_process_fault_event_locked() [all …]
|
| /linux/drivers/media/platform/renesas/ |
| H A D | rcar_fdp1.c | 655 struct fdp1_job *job; in list_remove_job() local 659 job = list_first_entry_or_null(list, struct fdp1_job, list); in list_remove_job() 660 if (job) in list_remove_job() 661 list_del(&job->list); in list_remove_job() 664 return job; in list_remove_job() 674 struct fdp1_job *job) in list_add_job() argument 679 list_add_tail(&job->list, list); in list_add_job() 688 static void fdp1_job_free(struct fdp1_dev *fdp1, struct fdp1_job *job) in fdp1_job_free() argument 691 memset(job, 0, sizeof(struct fdp1_job)); in fdp1_job_free() 693 list_add_job(fdp1, &fdp1->free_job_list, job); in fdp1_job_free() [all …]
|