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_gem_fence_array_add(&job->deps, fence); in panfrost_copy_in_sync()
238 struct panfrost_job *job; in panfrost_ioctl_submit() local
253 job = kzalloc(sizeof(*job), GFP_KERNEL); in panfrost_ioctl_submit()
254 if (!job) { in panfrost_ioctl_submit()
259 kref_init(&job->refcount); in panfrost_ioctl_submit()
261 xa_init_flags(&job->deps, XA_FLAGS_ALLOC); in panfrost_ioctl_submit()
263 job->pfdev = pfdev; in panfrost_ioctl_submit()
264 job->jc = args->jc; in panfrost_ioctl_submit()
265 job->requirements = args->requirements; in panfrost_ioctl_submit()
266 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev); in panfrost_ioctl_submit()
267 job->file_priv = file->driver_priv; in panfrost_ioctl_submit()
269 ret = panfrost_copy_in_sync(dev, file, args, job); in panfrost_ioctl_submit()
273 ret = panfrost_lookup_bos(dev, file, args, job); in panfrost_ioctl_submit()
277 ret = panfrost_job_push(job); in panfrost_ioctl_submit()
281 /* Update the return sync object for the job */ in panfrost_ioctl_submit()
283 drm_syncobj_replace_fence(sync_out, job->render_done_fence); in panfrost_ioctl_submit()
286 panfrost_job_put(job); in panfrost_ioctl_submit()