• Home
  • Raw
  • Download

Lines Matching full:v3d

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