/Linux-v6.1/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_job.c | 37 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() local 55 amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout() 61 amdgpu_vm_get_task_info(ring->adev, job->pasid, &ti); in amdgpu_job_timedout() 63 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq), in amdgpu_job_timedout() 76 r = amdgpu_device_gpu_recover(ring->adev, job, &reset_context); in amdgpu_job_timedout() 92 struct amdgpu_job **job, struct amdgpu_vm *vm) in amdgpu_job_alloc() argument 97 *job = kzalloc(struct_size(*job, ibs, num_ibs), GFP_KERNEL); in amdgpu_job_alloc() 98 if (!*job) in amdgpu_job_alloc() 105 (*job)->base.sched = &adev->rings[0]->sched; in amdgpu_job_alloc() 106 (*job)->vm = vm; in amdgpu_job_alloc() [all …]
|
D | amdgpu_job.h | 42 #define AMDGPU_JOB_GET_VMID(job) ((job) ? (job)->vmid : 0) argument 76 static inline struct amdgpu_ring *amdgpu_job_ring(struct amdgpu_job *job) in amdgpu_job_ring() argument 78 return to_amdgpu_ring(job->base.entity->rq->sched); in amdgpu_job_ring() 82 struct amdgpu_job **job, struct amdgpu_vm *vm); 84 enum amdgpu_ib_pool_type pool, struct amdgpu_job **job); 85 void amdgpu_job_set_resources(struct amdgpu_job *job, struct amdgpu_bo *gds, 87 void amdgpu_job_free_resources(struct amdgpu_job *job); 88 void amdgpu_job_set_gang_leader(struct amdgpu_job *job, 90 void amdgpu_job_free(struct amdgpu_job *job); 91 int amdgpu_job_submit(struct amdgpu_job *job, struct drm_sched_entity *entity, [all …]
|
D | amdgpu_ib.c | 127 struct amdgpu_ib *ibs, struct amdgpu_job *job, in amdgpu_ib_schedule() argument 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() 152 job->base.s_fence->scheduled.context : 0; in amdgpu_ib_schedule() 163 if (vm && !job->vmid && !ring->is_mes_queue) { in amdgpu_ib_schedule() 184 if (ring->funcs->emit_pipeline_sync && job && in amdgpu_ib_schedule() 185 ((tmp = amdgpu_sync_get_fence(&job->sched_sync)) || in amdgpu_ib_schedule() 187 amdgpu_vm_need_pipeline_sync(ring, job))) { in amdgpu_ib_schedule() 191 trace_amdgpu_ib_pipe_sync(job, tmp); in amdgpu_ib_schedule() [all …]
|
D | amdgpu_trace.h | 35 #define AMDGPU_JOB_GET_TIMELINE_NAME(job) \ argument 36 job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished) 144 struct amdgpu_job *job, 146 TP_ARGS(p, job, ib), 156 __entry->ring = to_amdgpu_ring(job->base.sched)->idx; 159 to_amdgpu_ring(job->base.sched)); 167 TP_PROTO(struct amdgpu_job *job), 168 TP_ARGS(job), 171 __string(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)) 175 __string(ring, to_amdgpu_ring(job->base.sched)->name) [all …]
|
/Linux-v6.1/drivers/gpu/host1x/ |
D | job.c | 30 struct host1x_job *job = NULL; in host1x_job_alloc() local 51 mem = job = kzalloc(total, GFP_KERNEL); in host1x_job_alloc() 52 if (!job) in host1x_job_alloc() 55 job->enable_firewall = enable_firewall; in host1x_job_alloc() 57 kref_init(&job->ref); in host1x_job_alloc() 58 job->channel = ch; in host1x_job_alloc() 62 job->relocs = num_relocs ? mem : NULL; in host1x_job_alloc() 64 job->unpins = num_unpins ? mem : NULL; in host1x_job_alloc() 66 job->cmds = num_cmdbufs ? mem : NULL; in host1x_job_alloc() 68 job->addr_phys = num_unpins ? mem : NULL; in host1x_job_alloc() [all …]
|
D | cdma.c | 274 struct host1x_job *job) in cdma_start_timer_locked() argument 281 cdma->timeout.client = job->client; in cdma_start_timer_locked() 282 cdma->timeout.syncpt = job->syncpt; in cdma_start_timer_locked() 283 cdma->timeout.syncpt_val = job->syncpt_end; in cdma_start_timer_locked() 287 msecs_to_jiffies(job->timeout)); in cdma_start_timer_locked() 313 struct host1x_job *job, *n; in update_cdma_locked() local 319 list_for_each_entry_safe(job, n, &cdma->sync_queue, list) { in update_cdma_locked() 320 struct host1x_syncpt *sp = job->syncpt; in update_cdma_locked() 323 if (!host1x_syncpt_is_expired(sp, job->syncpt_end) && in update_cdma_locked() 324 !job->cancelled) { in update_cdma_locked() [all …]
|
/Linux-v6.1/drivers/md/ |
D | dm-kcopyd.c | 414 struct kcopyd_job *job; in pop_io_job() local 420 list_for_each_entry(job, jobs, list) { in pop_io_job() 421 if (job->op == REQ_OP_READ || in pop_io_job() 422 !(job->flags & BIT(DM_KCOPYD_WRITE_SEQ))) { in pop_io_job() 423 list_del(&job->list); in pop_io_job() 424 return job; in pop_io_job() 427 if (job->write_offset == job->master_job->write_offset) { in pop_io_job() 428 job->master_job->write_offset += job->source.count; in pop_io_job() 429 list_del(&job->list); in pop_io_job() 430 return job; in pop_io_job() [all …]
|
/Linux-v6.1/drivers/gpu/drm/v3d/ |
D | v3d_sched.c | 60 struct v3d_job *job = to_v3d_job(sched_job); in v3d_sched_job_free() local 62 v3d_job_cleanup(job); in v3d_sched_job_free() 66 v3d_switch_perfmon(struct v3d_dev *v3d, struct v3d_job *job) in v3d_switch_perfmon() argument 68 if (job->perfmon != v3d->active_perfmon) in v3d_switch_perfmon() 71 if (job->perfmon && v3d->active_perfmon != job->perfmon) in v3d_switch_perfmon() 72 v3d_perfmon_start(v3d, job->perfmon); in v3d_switch_perfmon() 77 struct v3d_bin_job *job = to_bin_job(sched_job); in v3d_bin_job_run() local 78 struct v3d_dev *v3d = job->base.v3d; in v3d_bin_job_run() 83 if (unlikely(job->base.base.s_fence->finished.error)) in v3d_bin_job_run() 90 v3d->bin_job = job; in v3d_bin_job_run() [all …]
|
D | v3d_gem.c | 251 v3d_lock_bo_reservations(struct v3d_job *job, in v3d_lock_bo_reservations() argument 256 ret = drm_gem_lock_reservations(job->bo, job->bo_count, acquire_ctx); in v3d_lock_bo_reservations() 260 for (i = 0; i < job->bo_count; i++) { in v3d_lock_bo_reservations() 261 ret = dma_resv_reserve_fences(job->bo[i]->resv, 1); in v3d_lock_bo_reservations() 265 ret = drm_sched_job_add_implicit_dependencies(&job->base, in v3d_lock_bo_reservations() 266 job->bo[i], true); in v3d_lock_bo_reservations() 274 drm_gem_unlock_reservations(job->bo, job->bo_count, acquire_ctx); in v3d_lock_bo_reservations() 297 struct v3d_job *job, in v3d_lookup_bos() argument 305 job->bo_count = bo_count; in v3d_lookup_bos() 307 if (!job->bo_count) { in v3d_lookup_bos() [all …]
|
/Linux-v6.1/drivers/gpu/host1x/hw/ |
D | channel_hw.c | 50 static void submit_wait(struct host1x_job *job, u32 id, u32 threshold, in submit_wait() argument 53 struct host1x_cdma *cdma = &job->channel->cdma; in submit_wait() 63 if (job->memory_context) in submit_wait() 64 stream_id = job->memory_context->stream_id; in submit_wait() 66 stream_id = job->engine_fallback_streamid; in submit_wait() 79 host1x_cdma_push_wide(&job->channel->cdma, in submit_wait() 80 host1x_opcode_setclass(job->class, 0, 0), in submit_wait() 82 host1x_opcode_setstreamid(job->engine_streamid_offset / 4), in submit_wait() 113 static void submit_gathers(struct host1x_job *job, u32 job_syncpt_base) in submit_gathers() argument 115 struct host1x_cdma *cdma = &job->channel->cdma; in submit_gathers() [all …]
|
D | debug_hw.c | 196 struct host1x_job *job; in show_channel_gathers() local 198 list_for_each_entry(job, &cdma->sync_queue, list) { in show_channel_gathers() 202 job->syncpt->id, job->syncpt_end, job->timeout, in show_channel_gathers() 203 job->num_slots, job->num_unpins); in show_channel_gathers() 205 show_gather(o, pb->dma + job->first_get, job->num_slots * 2, cdma, in show_channel_gathers() 206 pb->dma + job->first_get, pb->mapped + job->first_get); in show_channel_gathers() 208 for (i = 0; i < job->num_cmds; i++) { in show_channel_gathers() 212 if (job->cmds[i].is_wait) in show_channel_gathers() 215 g = &job->cmds[i].gather; in show_channel_gathers() 217 if (job->gather_copy_mapped) in show_channel_gathers() [all …]
|
/Linux-v6.1/block/ |
D | bsg-lib.c | 31 struct bsg_job *job; in bsg_transport_sg_io_fn() local 49 job = blk_mq_rq_to_pdu(rq); in bsg_transport_sg_io_fn() 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() 53 job->reply_len = SCSI_SENSE_BUFFERSIZE; in bsg_transport_sg_io_fn() 54 job->dd_data = job + 1; in bsg_transport_sg_io_fn() 56 job->request_len = hdr->request_len; in bsg_transport_sg_io_fn() 57 job->request = memdup_user(uptr64(hdr->request), hdr->request_len); in bsg_transport_sg_io_fn() 58 if (IS_ERR(job->request)) { in bsg_transport_sg_io_fn() [all …]
|
/Linux-v6.1/drivers/gpu/drm/panfrost/ |
D | panfrost_job.c | 106 int panfrost_job_get_slot(struct panfrost_job *job) in panfrost_job_get_slot() argument 112 if (job->requirements & PANFROST_JD_REQ_FS) in panfrost_job_get_slot() 117 if (job->requirements & PANFROST_JD_REQ_ONLY_COMPUTE) { in panfrost_job_get_slot() 118 if ((job->requirements & PANFROST_JD_REQ_CORE_GRP_MASK) && in panfrost_job_get_slot() 119 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot() 121 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot() 146 panfrost_get_job_chain_flag(const struct panfrost_job *job) in panfrost_get_job_chain_flag() argument 148 struct panfrost_fence *f = to_panfrost_fence(job->done_fence); in panfrost_get_job_chain_flag() 150 if (!panfrost_has_hw_feature(job->pfdev, HW_FEATURE_JOBCHAIN_DISAMBIGUATION)) in panfrost_get_job_chain_flag() 159 struct panfrost_job *job = pfdev->jobs[slot][0]; in panfrost_dequeue_job() local [all …]
|
D | panfrost_drv.c | 129 struct panfrost_job *job) in panfrost_lookup_bos() argument 136 job->bo_count = args->bo_handle_count; in panfrost_lookup_bos() 138 if (!job->bo_count) in panfrost_lookup_bos() 143 job->bo_count, &job->bos); in panfrost_lookup_bos() 147 job->mappings = kvmalloc_array(job->bo_count, in panfrost_lookup_bos() 150 if (!job->mappings) in panfrost_lookup_bos() 153 for (i = 0; i < job->bo_count; i++) { in panfrost_lookup_bos() 156 bo = to_panfrost_bo(job->bos[i]); in panfrost_lookup_bos() 164 job->mappings[i] = mapping; in panfrost_lookup_bos() 187 struct panfrost_job *job) in panfrost_copy_in_sync() argument [all …]
|
/Linux-v6.1/drivers/gpu/drm/ |
D | drm_writeback.c | 312 int drm_writeback_prepare_job(struct drm_writeback_job *job) in drm_writeback_prepare_job() argument 314 struct drm_writeback_connector *connector = job->connector; in drm_writeback_prepare_job() 320 ret = funcs->prepare_writeback_job(connector, job); in drm_writeback_prepare_job() 325 job->prepared = true; in drm_writeback_prepare_job() 352 struct drm_writeback_job *job; in drm_writeback_queue_job() local 355 job = conn_state->writeback_job; in drm_writeback_queue_job() 359 list_add_tail(&job->list_entry, &wb_connector->job_queue); in drm_writeback_queue_job() 364 void drm_writeback_cleanup_job(struct drm_writeback_job *job) in drm_writeback_cleanup_job() argument 366 struct drm_writeback_connector *connector = job->connector; in drm_writeback_cleanup_job() 370 if (job->prepared && funcs->cleanup_writeback_job) in drm_writeback_cleanup_job() [all …]
|
/Linux-v6.1/drivers/scsi/lpfc/ |
D | lpfc_bsg.c | 295 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local 308 job = dd_data->set_job; in lpfc_bsg_send_mgmt_cmd_cmp() 309 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 310 bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd_cmp() 312 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd_cmp() 332 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 351 lpfc_bsg_copy_data(rmp, &job->reply_payload, in lpfc_bsg_send_mgmt_cmd_cmp() 366 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() 368 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_send_mgmt_cmd_cmp() 379 lpfc_bsg_send_mgmt_cmd(struct bsg_job *job) in lpfc_bsg_send_mgmt_cmd() argument [all …]
|
/Linux-v6.1/drivers/gpu/drm/tegra/ |
D | submit.c | 332 static int submit_get_syncpt(struct tegra_drm_context *context, struct host1x_job *job, in submit_get_syncpt() argument 349 job->syncpt = host1x_syncpt_get(sp); in submit_get_syncpt() 350 job->syncpt_incrs = args->syncpt.increments; in submit_get_syncpt() 355 static int submit_job_add_gather(struct host1x_job *job, struct tegra_drm_context *context, in submit_job_add_gather() argument 390 host1x_job_add_gather(job, &bo->base, cmd->words, *offset * 4); in submit_job_add_gather() 404 struct host1x_job *job; in submit_create_job() local 417 job = host1x_job_alloc(context->channel, args->num_cmds, 0, true); in submit_create_job() 418 if (!job) { in submit_create_job() 420 job = ERR_PTR(-ENOMEM); in submit_create_job() 424 err = submit_get_syncpt(context, job, syncpoints, args); in submit_create_job() [all …]
|
/Linux-v6.1/drivers/gpu/drm/scheduler/ |
D | sched_main.c | 318 struct drm_sched_job *job; in drm_sched_job_timedout() local 325 job = list_first_entry_or_null(&sched->pending_list, in drm_sched_job_timedout() 328 if (job) { in drm_sched_job_timedout() 334 list_del_init(&job->list); in drm_sched_job_timedout() 337 status = job->sched->ops->timedout_job(job); in drm_sched_job_timedout() 344 job->sched->ops->free_job(job); in drm_sched_job_timedout() 591 int drm_sched_job_init(struct drm_sched_job *job, in drm_sched_job_init() argument 598 job->entity = entity; in drm_sched_job_init() 599 job->s_fence = drm_sched_fence_alloc(entity, owner); in drm_sched_job_init() 600 if (!job->s_fence) in drm_sched_job_init() [all …]
|
D | sched_entity.c | 195 struct drm_sched_job *job = container_of(wrk, typeof(*job), work); in drm_sched_entity_kill_jobs_work() local 197 drm_sched_fence_finished(job->s_fence); in drm_sched_entity_kill_jobs_work() 198 WARN_ON(job->s_fence->parent); in drm_sched_entity_kill_jobs_work() 199 job->sched->ops->free_job(job); in drm_sched_entity_kill_jobs_work() 207 struct drm_sched_job *job = container_of(cb, struct drm_sched_job, in drm_sched_entity_kill_jobs_cb() local 211 INIT_WORK(&job->work, drm_sched_entity_kill_jobs_work); in drm_sched_entity_kill_jobs_cb() 212 schedule_work(&job->work); in drm_sched_entity_kill_jobs_cb() 216 drm_sched_job_dependency(struct drm_sched_job *job, in drm_sched_job_dependency() argument 219 if (!xa_empty(&job->dependencies)) in drm_sched_job_dependency() 220 return xa_erase(&job->dependencies, job->last_dependency++); in drm_sched_job_dependency() [all …]
|
/Linux-v6.1/drivers/ufs/core/ |
D | ufs_bsg.c | 48 static int ufs_bsg_alloc_desc_buffer(struct ufs_hba *hba, struct bsg_job *job, in ufs_bsg_alloc_desc_buffer() argument 52 struct ufs_bsg_request *bsg_request = job->request; in ufs_bsg_alloc_desc_buffer() 66 if (*desc_len > job->request_payload.payload_len) { in ufs_bsg_alloc_desc_buffer() 76 sg_copy_to_buffer(job->request_payload.sg_list, in ufs_bsg_alloc_desc_buffer() 77 job->request_payload.sg_cnt, descp, in ufs_bsg_alloc_desc_buffer() 86 static int ufs_bsg_request(struct bsg_job *job) in ufs_bsg_request() argument 88 struct ufs_bsg_request *bsg_request = job->request; in ufs_bsg_request() 89 struct ufs_bsg_reply *bsg_reply = job->reply; in ufs_bsg_request() 90 struct ufs_hba *hba = shost_priv(dev_to_shost(job->dev->parent)); in ufs_bsg_request() 91 unsigned int req_len = job->request_len; in ufs_bsg_request() [all …]
|
/Linux-v6.1/drivers/misc/habanalabs/common/ |
D | hw_queue.c | 268 static void ext_queue_schedule_job(struct hl_cs_job *job) in ext_queue_schedule_job() argument 270 struct hl_device *hdev = job->cs->ctx->hdev; in ext_queue_schedule_job() 271 struct hl_hw_queue *q = &hdev->kernel_queues[job->hw_queue_id]; in ext_queue_schedule_job() 286 cb = job->patched_cb; in ext_queue_schedule_job() 287 len = job->job_cb_size; in ext_queue_schedule_job() 291 if (!cs_needs_completion(job->cs)) in ext_queue_schedule_job() 311 job->user_cb_size, in ext_queue_schedule_job() 315 job->contains_dma_pkt); in ext_queue_schedule_job() 317 q->shadow_queue[hl_pi_2_offset(q->pi)] = job; in ext_queue_schedule_job() 333 static void int_queue_schedule_job(struct hl_cs_job *job) in int_queue_schedule_job() argument [all …]
|
D | command_submission.c | 248 struct hl_cs_job *job = container_of(ref, struct hl_cs_job, refcount); in cs_job_do_release() local 250 kfree(job); in cs_job_do_release() 253 static void hl_cs_job_put(struct hl_cs_job *job) in hl_cs_job_put() argument 255 kref_put(&job->refcount, cs_job_do_release); in hl_cs_job_put() 280 static bool is_cb_patched(struct hl_device *hdev, struct hl_cs_job *job) in is_cb_patched() argument 286 return (job->queue_type == QUEUE_TYPE_EXT || in is_cb_patched() 287 (job->queue_type == QUEUE_TYPE_HW && in is_cb_patched() 288 job->is_kernel_allocated_cb && in is_cb_patched() 303 static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job) in cs_parser() argument 309 parser.ctx_id = job->cs->ctx->asid; in cs_parser() [all …]
|
/Linux-v6.1/drivers/scsi/libsas/ |
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-v6.1/Documentation/devicetree/bindings/powerpc/fsl/ |
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-v6.1/drivers/scsi/mpi3mr/ |
D | mpi3mr_app.c | 140 struct bsg_job *job) in mpi3mr_enable_logdata() argument 159 if (job->request_payload.payload_len >= sizeof(logdata_enable)) { in mpi3mr_enable_logdata() 160 sg_copy_from_buffer(job->request_payload.sg_list, in mpi3mr_enable_logdata() 161 job->request_payload.sg_cnt, in mpi3mr_enable_logdata() 178 struct bsg_job *job) in mpi3mr_get_logdata() argument 182 if ((!mrioc->logdata_buf) || (job->request_payload.payload_len < entry_sz)) in mpi3mr_get_logdata() 185 num_entries = job->request_payload.payload_len / entry_sz; in mpi3mr_get_logdata() 190 if (job->request_payload.payload_len >= sz) { in mpi3mr_get_logdata() 191 sg_copy_from_buffer(job->request_payload.sg_list, in mpi3mr_get_logdata() 192 job->request_payload.sg_cnt, in mpi3mr_get_logdata() [all …]
|