Lines Matching defs:v3d
91 struct v3d_dev *v3d = job->base.v3d;
92 struct drm_device *dev = &v3d->drm;
102 spin_lock_irqsave(&v3d->job_lock, irqflags);
103 v3d->bin_job = job;
108 spin_unlock_irqrestore(&v3d->job_lock, irqflags);
110 v3d_invalidate_caches(v3d);
112 fence = v3d_fence_create(v3d, V3D_BIN);
144 struct v3d_dev *v3d = job->base.v3d;
145 struct drm_device *dev = &v3d->drm;
151 v3d->render_job = job;
159 v3d_invalidate_caches(v3d);
161 fence = v3d_fence_create(v3d, V3D_RENDER);
187 struct v3d_dev *v3d = job->base.v3d;
188 struct drm_device *dev = &v3d->drm;
191 fence = v3d_fence_create(v3d, V3D_TFU);
195 v3d->tfu_job = job;
224 struct v3d_dev *v3d = job->base.v3d;
225 struct drm_device *dev = &v3d->drm;
229 v3d->csd_job = job;
231 v3d_invalidate_caches(v3d);
233 fence = v3d_fence_create(v3d, V3D_CSD);
255 struct v3d_dev *v3d = job->v3d;
257 v3d_clean_caches(v3d);
263 v3d_gpu_reset_for_timeout(struct v3d_dev *v3d, struct drm_sched_job *sched_job)
267 mutex_lock(&v3d->reset_lock);
271 drm_sched_stop(&v3d->queue[q].sched, sched_job);
277 v3d_reset(v3d);
280 drm_sched_resubmit_jobs(&v3d->queue[q].sched);
284 drm_sched_start(&v3d->queue[q].sched, true);
287 mutex_unlock(&v3d->reset_lock);
300 struct v3d_dev *v3d = job->v3d;
310 v3d_gpu_reset_for_timeout(v3d, sched_job);
336 v3d_gpu_reset_for_timeout(job->v3d, sched_job);
343 struct v3d_dev *v3d = job->base.v3d;
354 v3d_gpu_reset_for_timeout(v3d, sched_job);
393 v3d_sched_init(struct v3d_dev *v3d)
400 ret = drm_sched_init(&v3d->queue[V3D_BIN].sched,
406 dev_err(v3d->drm.dev, "Failed to create bin scheduler: %d.", ret);
410 ret = drm_sched_init(&v3d->queue[V3D_RENDER].sched,
416 dev_err(v3d->drm.dev, "Failed to create render scheduler: %d.",
418 v3d_sched_fini(v3d);
422 ret = drm_sched_init(&v3d->queue[V3D_TFU].sched,
428 dev_err(v3d->drm.dev, "Failed to create TFU scheduler: %d.",
430 v3d_sched_fini(v3d);
434 if (v3d_has_csd(v3d)) {
435 ret = drm_sched_init(&v3d->queue[V3D_CSD].sched,
441 dev_err(v3d->drm.dev, "Failed to create CSD scheduler: %d.",
443 v3d_sched_fini(v3d);
447 ret = drm_sched_init(&v3d->queue[V3D_CACHE_CLEAN].sched,
453 dev_err(v3d->drm.dev, "Failed to create CACHE_CLEAN scheduler: %d.",
455 v3d_sched_fini(v3d);
464 v3d_sched_fini(struct v3d_dev *v3d)
469 if (v3d->queue[q].sched.ready)
470 drm_sched_fini(&v3d->queue[q].sched);