Lines Matching refs: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()
155 struct panfrost_job *job) in panfrost_copy_in_sync() argument
161 job->in_fence_count = args->in_sync_count; in panfrost_copy_in_sync()
163 if (!job->in_fence_count) in panfrost_copy_in_sync()
166 job->in_fences = kvmalloc_array(job->in_fence_count, in panfrost_copy_in_sync()
169 if (!job->in_fences) { in panfrost_copy_in_sync()
174 handles = kvmalloc_array(job->in_fence_count, sizeof(u32), GFP_KERNEL); in panfrost_copy_in_sync()
183 job->in_fence_count * sizeof(u32))) { in panfrost_copy_in_sync()
189 for (i = 0; i < job->in_fence_count; i++) { in panfrost_copy_in_sync()
191 &job->in_fences[i]); in panfrost_copy_in_sync()
207 struct panfrost_job *job; in panfrost_ioctl_submit() local
222 job = kzalloc(sizeof(*job), GFP_KERNEL); in panfrost_ioctl_submit()
223 if (!job) { in panfrost_ioctl_submit()
228 kref_init(&job->refcount); in panfrost_ioctl_submit()
230 job->pfdev = pfdev; in panfrost_ioctl_submit()
231 job->jc = args->jc; in panfrost_ioctl_submit()
232 job->requirements = args->requirements; in panfrost_ioctl_submit()
233 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev); in panfrost_ioctl_submit()
234 job->file_priv = file->driver_priv; in panfrost_ioctl_submit()
236 ret = panfrost_copy_in_sync(dev, file, args, job); in panfrost_ioctl_submit()
240 ret = panfrost_lookup_bos(dev, file, args, job); in panfrost_ioctl_submit()
244 ret = panfrost_job_push(job); in panfrost_ioctl_submit()
250 drm_syncobj_replace_fence(sync_out, job->render_done_fence); in panfrost_ioctl_submit()
253 panfrost_job_put(job); in panfrost_ioctl_submit()