int v3d_sched_init(struct v3d_dev *v3d) { int hw_jobs_limit = 1; int job_hang_limit = 0; int hang_limit_ms = 500; int ret; ret = drm_sched_init(&v3d->queue[V3D_BIN].sched, &v3d_sched_ops, hw_jobs_limit, job_hang_limit, msecs_to_jiffies(hang_limit_ms), "v3d_bin"); if (ret) { dev_err(v3d->dev, "Failed to create bin scheduler: %d.", ret); return ret; } ret = drm_sched_init(&v3d->queue[V3D_RENDER].sched, &v3d_sched_ops, hw_jobs_limit, job_hang_limit, msecs_to_jiffies(hang_limit_ms), "v3d_render"); if (ret) { dev_err(v3d->dev, "Failed to create render scheduler: %d.", ret); drm_sched_fini(&v3d->queue[V3D_BIN].sched); return ret; } return 0; }
int etnaviv_sched_init(struct etnaviv_gpu *gpu) { int ret; ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops, etnaviv_hw_jobs_limit, etnaviv_job_hang_limit, msecs_to_jiffies(500), dev_name(gpu->dev)); if (ret) return ret; return 0; }