/Linux-v5.4/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_job.c | 34 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() local 39 if (amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout() 45 amdgpu_vm_get_task_info(ring->adev, job->pasid, &ti); in amdgpu_job_timedout() 47 job->base.sched->name, atomic_read(&ring->fence_drv.last_seq), in amdgpu_job_timedout() 53 amdgpu_device_gpu_recover(ring->adev, job); in amdgpu_job_timedout() 59 struct amdgpu_job **job, struct amdgpu_vm *vm) in amdgpu_job_alloc() argument 68 *job = kzalloc(size, GFP_KERNEL); in amdgpu_job_alloc() 69 if (!*job) in amdgpu_job_alloc() 76 (*job)->base.sched = &adev->rings[0]->sched; in amdgpu_job_alloc() 77 (*job)->vm = vm; in amdgpu_job_alloc() [all …]
|
D | amdgpu_ib.c | 123 struct amdgpu_ib *ibs, struct amdgpu_job *job, in amdgpu_ib_schedule() argument 143 /* ring tests don't use a job */ in amdgpu_ib_schedule() 144 if (job) { in amdgpu_ib_schedule() 145 vm = job->vm; in amdgpu_ib_schedule() 146 fence_ctx = job->base.s_fence ? in amdgpu_ib_schedule() 147 job->base.s_fence->scheduled.context : 0; in amdgpu_ib_schedule() 158 if (vm && !job->vmid) { in amdgpu_ib_schedule() 173 if (ring->funcs->emit_pipeline_sync && job && in amdgpu_ib_schedule() 174 ((tmp = amdgpu_sync_get_fence(&job->sched_sync, NULL)) || in amdgpu_ib_schedule() 176 amdgpu_vm_need_pipeline_sync(ring, job))) { 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) 155 __entry->dw = p->job->ibs[i].length_dw; 165 TP_PROTO(struct amdgpu_job *job), 166 TP_ARGS(job), 169 __string(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)) 178 __entry->sched_job_id = job->base.id; 179 __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)) 180 __entry->context = job->base.s_fence->finished.context; 181 __entry->seqno = job->base.s_fence->finished.seqno; [all …]
|
D | amdgpu_job.h | 38 #define AMDGPU_JOB_GET_VMID(job) ((job) ? (job)->vmid : 0) argument 69 struct amdgpu_job **job, struct amdgpu_vm *vm); 71 struct amdgpu_job **job); 73 void amdgpu_job_free_resources(struct amdgpu_job *job); 74 void amdgpu_job_free(struct amdgpu_job *job); 75 int amdgpu_job_submit(struct amdgpu_job *job, struct drm_sched_entity *entity, 77 int amdgpu_job_submit_direct(struct amdgpu_job *job, struct amdgpu_ring *ring,
|
/Linux-v5.4/drivers/gpu/host1x/ |
D | job.c | 3 * Tegra host1x Job 20 #include "job.h" 28 struct host1x_job *job = NULL; in host1x_job_alloc() local 43 mem = job = kzalloc(total, GFP_KERNEL); in host1x_job_alloc() 44 if (!job) in host1x_job_alloc() 47 kref_init(&job->ref); in host1x_job_alloc() 48 job->channel = ch; in host1x_job_alloc() 52 job->relocs = num_relocs ? mem : NULL; in host1x_job_alloc() 54 job->unpins = num_unpins ? mem : NULL; in host1x_job_alloc() 56 job->gathers = num_cmdbufs ? mem : NULL; in host1x_job_alloc() [all …]
|
D | cdma.c | 23 #include "job.h" 270 * Start timer that tracks the time spent by the job. 274 struct host1x_job *job) in cdma_start_timer_locked() argument 283 cdma->timeout.client = job->client; in cdma_start_timer_locked() 284 cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); in cdma_start_timer_locked() 285 cdma->timeout.syncpt_val = job->syncpt_end; in cdma_start_timer_locked() 289 msecs_to_jiffies(job->timeout)); in cdma_start_timer_locked() 316 struct host1x_job *job, *n; in update_cdma_locked() local 326 list_for_each_entry_safe(job, n, &cdma->sync_queue, list) { in update_cdma_locked() 328 host1x_syncpt_get(host1x, job->syncpt_id); in update_cdma_locked() [all …]
|
/Linux-v5.4/block/ |
D | bsg-lib.c | 39 struct bsg_job *job = blk_mq_rq_to_pdu(rq); in bsg_transport_fill_hdr() local 42 job->request_len = hdr->request_len; in bsg_transport_fill_hdr() 43 job->request = memdup_user(uptr64(hdr->request), hdr->request_len); in bsg_transport_fill_hdr() 44 if (IS_ERR(job->request)) in bsg_transport_fill_hdr() 45 return PTR_ERR(job->request); in bsg_transport_fill_hdr() 48 job->bidi_rq = blk_get_request(rq->q, REQ_OP_SCSI_IN, 0); in bsg_transport_fill_hdr() 49 if (IS_ERR(job->bidi_rq)) { in bsg_transport_fill_hdr() 50 ret = PTR_ERR(job->bidi_rq); in bsg_transport_fill_hdr() 54 ret = blk_rq_map_user(rq->q, job->bidi_rq, NULL, in bsg_transport_fill_hdr() 60 job->bidi_bio = job->bidi_rq->bio; in bsg_transport_fill_hdr() [all …]
|
/Linux-v5.4/drivers/md/ |
D | dm-kcopyd.c | 40 MODULE_PARM_DESC(kcopyd_subjob_size_kb, "Sub-job size for dm-kcopyd clients"); 347 * Error state of the job. 367 * Set this to ensure you are notified when the job has 374 * These fields are only used if the job has been split 408 * Functions to push and pop a job onto the head of a given job 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->rw == READ || !test_bit(DM_KCOPYD_WRITE_SEQ, &job->flags)) { in pop_io_job() 422 list_del(&job->list); in pop_io_job() 423 return job; in pop_io_job() [all …]
|
/Linux-v5.4/drivers/gpu/drm/v3d/ |
D | v3d_sched.c | 10 * scheduler will round-robin between clients to submit the next job. 13 * jobs when bulk background jobs are queued up, we submit a new job 60 struct v3d_job *job = to_v3d_job(sched_job); in v3d_job_free() local 63 v3d_job_put(job); in v3d_job_free() 67 * Returns the fences that the job depends on, one by one. 76 struct v3d_job *job = to_v3d_job(sched_job); in v3d_job_dependency() local 82 if (!xa_empty(&job->deps)) in v3d_job_dependency() 83 return xa_erase(&job->deps, job->last_dep++); in v3d_job_dependency() 90 struct v3d_bin_job *job = to_bin_job(sched_job); in v3d_bin_job_run() local 91 struct v3d_dev *v3d = job->base.v3d; in v3d_bin_job_run() [all …]
|
D | v3d_gem.c | 167 * need to wait for completion before dispatching the job -- in v3d_flush_l2t() 171 * synchronously clean after a job. in v3d_flush_l2t() 184 * signaling job completion. So, we synchronously wait before 250 v3d_lock_bo_reservations(struct v3d_job *job, in v3d_lock_bo_reservations() argument 255 ret = drm_gem_lock_reservations(job->bo, job->bo_count, acquire_ctx); in v3d_lock_bo_reservations() 259 for (i = 0; i < job->bo_count; i++) { in v3d_lock_bo_reservations() 260 ret = drm_gem_fence_array_add_implicit(&job->deps, in v3d_lock_bo_reservations() 261 job->bo[i], true); in v3d_lock_bo_reservations() 263 drm_gem_unlock_reservations(job->bo, job->bo_count, in v3d_lock_bo_reservations() 273 * v3d_lookup_bos() - Sets up job->bo[] with the GEM objects [all …]
|
/Linux-v5.4/drivers/gpu/drm/panfrost/ |
D | panfrost_job.c | 102 static int panfrost_job_get_slot(struct panfrost_job *job) in panfrost_job_get_slot() argument 108 if (job->requirements & PANFROST_JD_REQ_FS) in panfrost_job_get_slot() 113 if (job->requirements & PANFROST_JD_REQ_ONLY_COMPUTE) { in panfrost_job_get_slot() 114 if ((job->requirements & PANFROST_JD_REQ_CORE_GRP_MASK) && in panfrost_job_get_slot() 115 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot() 117 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot() 141 static void panfrost_job_hw_submit(struct panfrost_job *job, int js) in panfrost_job_hw_submit() argument 143 struct panfrost_device *pfdev = job->pfdev; in panfrost_job_hw_submit() 145 u64 jc_head = job->jc; in panfrost_job_hw_submit() 157 cfg = panfrost_mmu_as_get(pfdev, &job->file_priv->mmu); in panfrost_job_hw_submit() [all …]
|
D | panfrost_drv.c | 104 * panfrost_lookup_bos() - Sets up job->bo[] with the GEM objects 105 * referenced by the job. 109 * @job: job being set up 111 * Resolve handles from userspace to BOs and attach them to job. 120 struct panfrost_job *job) in panfrost_lookup_bos() argument 122 job->bo_count = args->bo_handle_count; in panfrost_lookup_bos() 124 if (!job->bo_count) in panfrost_lookup_bos() 127 job->implicit_fences = kvmalloc_array(job->bo_count, in panfrost_lookup_bos() 130 if (!job->implicit_fences) in panfrost_lookup_bos() 135 job->bo_count, &job->bos); in panfrost_lookup_bos() [all …]
|
/Linux-v5.4/drivers/misc/habanalabs/ |
D | command_submission.c | 72 * @job : pointer to the job that holds the command submission info 79 static int cs_parser(struct hl_fpriv *hpriv, struct hl_cs_job *job) in cs_parser() argument 85 parser.ctx_id = job->cs->ctx->asid; in cs_parser() 86 parser.cs_sequence = job->cs->sequence; in cs_parser() 87 parser.job_id = job->id; in cs_parser() 89 parser.hw_queue_id = job->hw_queue_id; in cs_parser() 90 parser.job_userptr_list = &job->userptr_list; in cs_parser() 92 parser.user_cb = job->user_cb; in cs_parser() 93 parser.user_cb_size = job->user_cb_size; in cs_parser() 94 parser.ext_queue = job->ext_queue; in cs_parser() [all …]
|
/Linux-v5.4/drivers/gpu/host1x/hw/ |
D | channel_hw.c | 17 #include "../job.h" 50 static void submit_gathers(struct host1x_job *job) in submit_gathers() argument 52 struct host1x_cdma *cdma = &job->channel->cdma; in submit_gathers() 54 struct device *dev = job->channel->dev; in submit_gathers() 58 for (i = 0; i < job->num_gathers; i++) { in submit_gathers() 59 struct host1x_job_gather *g = &job->gathers[i]; in submit_gathers() 87 static inline void synchronize_syncpt_base(struct host1x_job *job) in synchronize_syncpt_base() argument 89 struct host1x *host = dev_get_drvdata(job->channel->dev->parent); in synchronize_syncpt_base() 90 struct host1x_syncpt *sp = host->syncpt + job->syncpt_id; in synchronize_syncpt_base() 97 host1x_cdma_push(&job->channel->cdma, in synchronize_syncpt_base() [all …]
|
D | debug_hw.c | 195 struct host1x_job *job; in show_channel_gathers() local 197 list_for_each_entry(job, &cdma->sync_queue, list) { in show_channel_gathers() 200 …host1x_debug_output(o, "\n%p: JOB, syncpt_id=%d, syncpt_val=%d, first_get=%08x, timeout=%d num_slo… in show_channel_gathers() 201 job, job->syncpt_id, job->syncpt_end, in show_channel_gathers() 202 job->first_get, job->timeout, in show_channel_gathers() 203 job->num_slots, job->num_unpins); in show_channel_gathers() 205 for (i = 0; i < job->num_gathers; i++) { in show_channel_gathers() 206 struct host1x_job_gather *g = &job->gathers[i]; in show_channel_gathers() 209 if (job->gather_copy_mapped) in show_channel_gathers() 210 mapped = (u32 *)job->gather_copy_mapped; in show_channel_gathers() [all …]
|
/Linux-v5.4/include/drm/ |
D | gpu_scheduler.h | 48 * struct drm_sched_entity - A wrapper around a job queue (typically 66 * @dependency: the dependency fence of the job which is on the top 67 * of the job queue. 71 * @last_scheduled: points to the finished fence of the last scheduled job. 72 * @last_user: last group leader pushing a job into the entity. 119 * struct drm_sched_fence - fences corresponding to the scheduling of a job. 124 * when the job is scheduled. 130 * when the job is completed. 132 * When setting up an out fence for the job, you should use 142 * when scheduling the job on hardware. We signal the [all …]
|
/Linux-v5.4/drivers/gpu/drm/ |
D | drm_writeback.c | 263 int drm_writeback_prepare_job(struct drm_writeback_job *job) in drm_writeback_prepare_job() argument 265 struct drm_writeback_connector *connector = job->connector; in drm_writeback_prepare_job() 271 ret = funcs->prepare_writeback_job(connector, job); in drm_writeback_prepare_job() 276 job->prepared = true; in drm_writeback_prepare_job() 282 * drm_writeback_queue_job - Queue a writeback job for later signalling 283 * @wb_connector: The writeback connector to queue a job on 284 * @conn_state: The connector state containing the job to queue 286 * This function adds the job contained in @conn_state to the job_queue for a 287 * writeback connector. It takes ownership of the writeback job and sets the 288 * @conn_state->writeback_job to NULL, and so no access to the job may be [all …]
|
/Linux-v5.4/drivers/scsi/lpfc/ |
D | lpfc_bsg.c | 71 /* driver data associated with the job */ 104 struct bsg_job *set_job; /* job waiting for this iocb to finish */ 304 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local 316 /* Determine if job has been aborted */ in lpfc_bsg_send_mgmt_cmd_cmp() 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() 321 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_send_mgmt_cmd_cmp() 322 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd_cmp() 340 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp() [all …]
|
/Linux-v5.4/drivers/crypto/caam/ |
D | Kconfig | 19 This module creates job ring devices, and configures h/w 35 tristate "Freescale CAAM Job Ring driver backend" 38 Enables the driver module for Job Rings which are part of 40 and Assurance Module (CAAM). This module adds a job ring operation 49 int "Job Ring size" 53 Select size of Job Rings as a power of 2, within the 66 bool "Job Ring interrupt coalescing" 68 Enable the Job Ring's interrupt coalescing feature. 74 int "Job Ring interrupt coalescing count threshold" 82 equal or greater than the job ring size will force timeouts. [all …]
|
/Linux-v5.4/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-v5.4/drivers/gpu/drm/scheduler/ |
D | sched_main.c | 32 * backend operations to the scheduler like submitting a job to hardware run queue, 33 * returning the dependencies of a job etc. 119 * drm_sched_rq_select_entity - Select an entity which could provide a job to run 214 * drm_sched_suspend_timeout - Suspend scheduler job timeout 245 * drm_sched_resume_timeout - Resume scheduler job timeout 283 struct drm_sched_job *job; in drm_sched_job_timedout() local 287 job = list_first_entry_or_null(&sched->ring_mirror_list, in drm_sched_job_timedout() 290 if (job) { in drm_sched_job_timedout() 291 job->sched->ops->timedout_job(job); in drm_sched_job_timedout() 294 * Guilty job did complete and hence needs to be manually removed in drm_sched_job_timedout() [all …]
|
/Linux-v5.4/drivers/scsi/ufs/ |
D | ufs_bsg.c | 43 static int ufs_bsg_alloc_desc_buffer(struct ufs_hba *hba, struct bsg_job *job, in ufs_bsg_alloc_desc_buffer() argument 47 struct ufs_bsg_request *bsg_request = job->request; in ufs_bsg_alloc_desc_buffer() 61 if (*desc_len > job->request_payload.payload_len) { in ufs_bsg_alloc_desc_buffer() 71 sg_copy_to_buffer(job->request_payload.sg_list, in ufs_bsg_alloc_desc_buffer() 72 job->request_payload.sg_cnt, descp, in ufs_bsg_alloc_desc_buffer() 81 static int ufs_bsg_request(struct bsg_job *job) in ufs_bsg_request() argument 83 struct ufs_bsg_request *bsg_request = job->request; in ufs_bsg_request() 84 struct ufs_bsg_reply *bsg_reply = job->reply; in ufs_bsg_request() 85 struct ufs_hba *hba = shost_priv(dev_to_shost(job->dev->parent)); in ufs_bsg_request() 86 unsigned int req_len = job->request_len; in ufs_bsg_request() [all …]
|
/Linux-v5.4/Documentation/devicetree/bindings/crypto/ |
D | fsl-sec6.txt | 5 -Job Ring Node 72 Job Ring (JR) Node 84 Definition: Must include "fsl,sec-v6.0-job-ring". 103 compatible = "fsl,sec-v6.0-job-ring"; 123 compatible = "fsl,sec-v6.0-job-ring", 124 "fsl,sec-v5.2-job-ring", 125 "fsl,sec-v5.0-job-ring", 126 "fsl,sec-v4.4-job-ring", 127 "fsl,sec-v4.0-job-ring"; 132 compatible = "fsl,sec-v6.0-job-ring", [all …]
|
/Linux-v5.4/arch/powerpc/boot/dts/fsl/ |
D | qoriq-sec6.0-0.dtsi | 42 compatible = "fsl,sec-v6.0-job-ring", 43 "fsl,sec-v5.2-job-ring", 44 "fsl,sec-v5.0-job-ring", 45 "fsl,sec-v4.4-job-ring", 46 "fsl,sec-v4.0-job-ring"; 51 compatible = "fsl,sec-v6.0-job-ring", 52 "fsl,sec-v5.2-job-ring", 53 "fsl,sec-v5.0-job-ring", 54 "fsl,sec-v4.4-job-ring", 55 "fsl,sec-v4.0-job-ring";
|
D | qoriq-sec5.2-0.dtsi | 45 compatible = "fsl,sec-v5.2-job-ring", 46 "fsl,sec-v5.0-job-ring", 47 "fsl,sec-v4.0-job-ring"; 53 compatible = "fsl,sec-v5.2-job-ring", 54 "fsl,sec-v5.0-job-ring", 55 "fsl,sec-v4.0-job-ring"; 61 compatible = "fsl,sec-v5.2-job-ring", 62 "fsl,sec-v5.0-job-ring", 63 "fsl,sec-v4.0-job-ring"; 69 compatible = "fsl,sec-v5.2-job-ring", [all …]
|