Lines Matching defs:job
123 * panfrost_lookup_bos() - Sets up job->bo[] with the GEM objects
124 * referenced by the job.
128 * @job: job being set up
130 * Resolve handles from userspace to BOs and attach them to job.
139 struct panfrost_job *job)
146 job->bo_count = args->bo_handle_count;
148 if (!job->bo_count)
153 job->bo_count, &job->bos);
157 job->mappings = kvmalloc_array(job->bo_count,
160 if (!job->mappings)
163 for (i = 0; i < job->bo_count; i++) {
166 bo = to_panfrost_bo(job->bos[i]);
174 job->mappings[i] = mapping;
181 * panfrost_copy_in_sync() - Sets up job->deps with the sync objects
182 * referenced by the job.
186 * @job: job being set up
188 * Resolve syncobjs from userspace to fences and attach them to job.
197 struct panfrost_job *job)
224 ret = drm_sched_job_add_syncobj_dependency(&job->base, file_priv,
242 struct panfrost_job *job;
257 job = kzalloc(sizeof(*job), GFP_KERNEL);
258 if (!job) {
263 kref_init(&job->refcount);
265 job->pfdev = pfdev;
266 job->jc = args->jc;
267 job->requirements = args->requirements;
268 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev);
269 job->mmu = file_priv->mmu;
271 slot = panfrost_job_get_slot(job);
273 ret = drm_sched_job_init(&job->base,
279 ret = panfrost_copy_in_sync(dev, file, args, job);
283 ret = panfrost_lookup_bos(dev, file, args, job);
287 ret = panfrost_job_push(job);
291 /* Update the return sync object for the job */
293 drm_syncobj_replace_fence(sync_out, job->render_done_fence);
297 drm_sched_job_cleanup(&job->base);
299 panfrost_job_put(job);