Lines Matching full:job

113  * panfrost_lookup_bos() - Sets up job->bo[] with the GEM objects
114 * referenced by the job.
118 * @job: job being set up
120 * Resolve handles from userspace to BOs and attach them to job.
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()
171 * panfrost_copy_in_sync() - Sets up job->deps with the sync objects
172 * referenced by the job.
176 * @job: job being set up
178 * Resolve syncobjs from userspace to fences and attach them to job.
187 struct panfrost_job *job) in panfrost_copy_in_sync() argument
221 ret = drm_sched_job_add_dependency(&job->base, fence); in panfrost_copy_in_sync()
239 struct panfrost_job *job; in panfrost_ioctl_submit() local
254 job = kzalloc(sizeof(*job), GFP_KERNEL); in panfrost_ioctl_submit()
255 if (!job) { in panfrost_ioctl_submit()
260 kref_init(&job->refcount); in panfrost_ioctl_submit()
262 job->pfdev = pfdev; in panfrost_ioctl_submit()
263 job->jc = args->jc; in panfrost_ioctl_submit()
264 job->requirements = args->requirements; in panfrost_ioctl_submit()
265 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev); in panfrost_ioctl_submit()
266 job->mmu = file_priv->mmu; in panfrost_ioctl_submit()
268 slot = panfrost_job_get_slot(job); in panfrost_ioctl_submit()
270 ret = drm_sched_job_init(&job->base, in panfrost_ioctl_submit()
276 ret = panfrost_copy_in_sync(dev, file, args, job); in panfrost_ioctl_submit()
280 ret = panfrost_lookup_bos(dev, file, args, job); in panfrost_ioctl_submit()
284 ret = panfrost_job_push(job); in panfrost_ioctl_submit()
288 /* Update the return sync object for the job */ in panfrost_ioctl_submit()
290 drm_syncobj_replace_fence(sync_out, job->render_done_fence); in panfrost_ioctl_submit()
294 drm_sched_job_cleanup(&job->base); in panfrost_ioctl_submit()
296 panfrost_job_put(job); in panfrost_ioctl_submit()