• Home
  • Raw
  • Download

Lines Matching refs:vc4

64 	struct vc4_dev *vc4 =  in vc4_overflow_mem_work()  local
71 mutex_lock(&vc4->bin_bo_lock); in vc4_overflow_mem_work()
73 if (!vc4->bin_bo) in vc4_overflow_mem_work()
76 bo = vc4->bin_bo; in vc4_overflow_mem_work()
78 bin_bo_slot = vc4_v3d_get_bin_slot(vc4); in vc4_overflow_mem_work()
84 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
86 if (vc4->bin_alloc_overflow) { in vc4_overflow_mem_work()
93 exec = vc4_first_bin_job(vc4); in vc4_overflow_mem_work()
95 exec = vc4_last_render_job(vc4); in vc4_overflow_mem_work()
97 exec->bin_slots |= vc4->bin_alloc_overflow; in vc4_overflow_mem_work()
102 vc4->bin_alloc_used &= ~vc4->bin_alloc_overflow; in vc4_overflow_mem_work()
105 vc4->bin_alloc_overflow = BIT(bin_bo_slot); in vc4_overflow_mem_work()
107 V3D_WRITE(V3D_BPOA, bo->base.paddr + bin_bo_slot * vc4->bin_alloc_size); in vc4_overflow_mem_work()
111 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
114 mutex_unlock(&vc4->bin_bo_lock); in vc4_overflow_mem_work()
120 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_finish_bin_job() local
121 struct vc4_exec_info *next, *exec = vc4_first_bin_job(vc4); in vc4_irq_finish_bin_job()
127 next = vc4_first_bin_job(vc4); in vc4_irq_finish_bin_job()
140 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_cancel_bin_job() local
141 struct vc4_exec_info *exec = vc4_first_bin_job(vc4); in vc4_cancel_bin_job()
148 vc4_perfmon_stop(vc4, exec->perfmon, false); in vc4_cancel_bin_job()
150 list_move_tail(&exec->head, &vc4->bin_job_list); in vc4_cancel_bin_job()
157 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_finish_render_job() local
158 struct vc4_exec_info *exec = vc4_first_render_job(vc4); in vc4_irq_finish_render_job()
164 vc4->finished_seqno++; in vc4_irq_finish_render_job()
165 list_move_tail(&exec->head, &vc4->job_done_list); in vc4_irq_finish_render_job()
167 nextbin = vc4_first_bin_job(vc4); in vc4_irq_finish_render_job()
168 nextrender = vc4_first_render_job(vc4); in vc4_irq_finish_render_job()
175 vc4_perfmon_stop(vc4, exec->perfmon, true); in vc4_irq_finish_render_job()
195 wake_up_all(&vc4->job_wait_queue); in vc4_irq_finish_render_job()
196 schedule_work(&vc4->job_done_work); in vc4_irq_finish_render_job()
203 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq() local
220 schedule_work(&vc4->overflow_mem_work); in vc4_irq()
225 spin_lock(&vc4->job_lock); in vc4_irq()
227 spin_unlock(&vc4->job_lock); in vc4_irq()
232 spin_lock(&vc4->job_lock); in vc4_irq()
234 spin_unlock(&vc4->job_lock); in vc4_irq()
244 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_prepare() local
246 if (!vc4->v3d) in vc4_irq_prepare()
249 init_waitqueue_head(&vc4->job_wait_queue); in vc4_irq_prepare()
250 INIT_WORK(&vc4->overflow_mem_work, vc4_overflow_mem_work); in vc4_irq_prepare()
261 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_enable() local
263 if (!vc4->v3d) in vc4_irq_enable()
275 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_disable() local
277 if (!vc4->v3d) in vc4_irq_disable()
287 disable_irq(vc4->irq); in vc4_irq_disable()
289 cancel_work_sync(&vc4->overflow_mem_work); in vc4_irq_disable()
312 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_uninstall() local
315 free_irq(vc4->irq, dev); in vc4_irq_uninstall()
321 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_reset() local
335 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_irq_reset()
338 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_irq_reset()