Lines Matching refs: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()
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()
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 job->pfdev = pfdev; in panfrost_ioctl_submit()
262 job->jc = args->jc; in panfrost_ioctl_submit()
263 job->requirements = args->requirements; in panfrost_ioctl_submit()
264 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev); in panfrost_ioctl_submit()
265 job->file_priv = file->driver_priv; in panfrost_ioctl_submit()
267 slot = panfrost_job_get_slot(job); in panfrost_ioctl_submit()
269 ret = drm_sched_job_init(&job->base, in panfrost_ioctl_submit()
270 &job->file_priv->sched_entity[slot], in panfrost_ioctl_submit()
275 ret = panfrost_copy_in_sync(dev, file, args, job); in panfrost_ioctl_submit()
279 ret = panfrost_lookup_bos(dev, file, args, job); in panfrost_ioctl_submit()
283 ret = panfrost_job_push(job); in panfrost_ioctl_submit()
289 drm_syncobj_replace_fence(sync_out, job->render_done_fence); in panfrost_ioctl_submit()
293 drm_sched_job_cleanup(&job->base); in panfrost_ioctl_submit()
295 panfrost_job_put(job); in panfrost_ioctl_submit()