Lines Matching full:gpu

29 		dev_dbg(submit->gpu->dev, "skipping bad job\n");  in etnaviv_sched_run_job()
38 struct etnaviv_gpu *gpu = submit->gpu; in etnaviv_sched_timedout_job() local
43 * If the GPU managed to complete this jobs fence, the timout is in etnaviv_sched_timedout_job()
50 * If the GPU is still making forward progress on the front-end (which in etnaviv_sched_timedout_job()
54 dma_addr = gpu_read(gpu, VIVS_FE_DMA_ADDRESS); in etnaviv_sched_timedout_job()
55 change = dma_addr - gpu->hangcheck_dma_addr; in etnaviv_sched_timedout_job()
58 mutex_lock(&gpu->lock); in etnaviv_sched_timedout_job()
59 gpu_write(gpu, VIVS_MC_PROFILE_CONFIG0, in etnaviv_sched_timedout_job()
62 primid = gpu_read(gpu, VIVS_MC_PROFILE_FE_READ); in etnaviv_sched_timedout_job()
63 mutex_unlock(&gpu->lock); in etnaviv_sched_timedout_job()
65 if (gpu->state == ETNA_GPU_STATE_RUNNING && in etnaviv_sched_timedout_job()
66 (gpu->completed_fence != gpu->hangcheck_fence || in etnaviv_sched_timedout_job()
69 gpu->hangcheck_primid != primid))) { in etnaviv_sched_timedout_job()
70 gpu->hangcheck_dma_addr = dma_addr; in etnaviv_sched_timedout_job()
71 gpu->hangcheck_primid = primid; in etnaviv_sched_timedout_job()
72 gpu->hangcheck_fence = gpu->completed_fence; in etnaviv_sched_timedout_job()
77 drm_sched_stop(&gpu->sched, sched_job); in etnaviv_sched_timedout_job()
82 /* get the GPU back into the init state */ in etnaviv_sched_timedout_job()
86 drm_sched_resubmit_jobs(&gpu->sched); in etnaviv_sched_timedout_job()
88 drm_sched_start(&gpu->sched, 0); in etnaviv_sched_timedout_job()
113 struct etnaviv_gpu *gpu = submit->gpu; in etnaviv_sched_push_job() local
121 mutex_lock(&gpu->sched_lock); in etnaviv_sched_push_job()
126 ret = xa_alloc_cyclic(&gpu->user_fences, &submit->out_fence_id, in etnaviv_sched_push_job()
128 &gpu->next_user_fence, GFP_KERNEL); in etnaviv_sched_push_job()
140 mutex_unlock(&gpu->sched_lock); in etnaviv_sched_push_job()
145 int etnaviv_sched_init(struct etnaviv_gpu *gpu) in etnaviv_sched_init() argument
149 ret = drm_sched_init(&gpu->sched, &etnaviv_sched_ops, NULL, in etnaviv_sched_init()
153 dev_name(gpu->dev), gpu->dev); in etnaviv_sched_init()
160 void etnaviv_sched_fini(struct etnaviv_gpu *gpu) in etnaviv_sched_fini() argument
162 drm_sched_fini(&gpu->sched); in etnaviv_sched_fini()