Lines Matching refs:vc4
59 struct vc4_dev *vc4 = in vc4_overflow_mem_work() local
61 struct drm_device *dev = vc4->dev; in vc4_overflow_mem_work()
80 if (vc4->overflow_mem) { in vc4_overflow_mem_work()
84 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
85 current_exec = vc4_first_bin_job(vc4); in vc4_overflow_mem_work()
87 current_exec = vc4_last_render_job(vc4); in vc4_overflow_mem_work()
89 vc4->overflow_mem->seqno = current_exec->seqno; in vc4_overflow_mem_work()
90 list_add_tail(&vc4->overflow_mem->unref_head, in vc4_overflow_mem_work()
92 vc4->overflow_mem = NULL; in vc4_overflow_mem_work()
94 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
97 if (vc4->overflow_mem) in vc4_overflow_mem_work()
98 drm_gem_object_unreference_unlocked(&vc4->overflow_mem->base.base); in vc4_overflow_mem_work()
99 vc4->overflow_mem = bo; in vc4_overflow_mem_work()
110 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_finish_bin_job() local
111 struct vc4_exec_info *exec = vc4_first_bin_job(vc4); in vc4_irq_finish_bin_job()
123 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_cancel_bin_job() local
124 struct vc4_exec_info *exec = vc4_first_bin_job(vc4); in vc4_cancel_bin_job()
129 list_move_tail(&exec->head, &vc4->bin_job_list); in vc4_cancel_bin_job()
136 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_finish_render_job() local
137 struct vc4_exec_info *exec = vc4_first_render_job(vc4); in vc4_irq_finish_render_job()
142 vc4->finished_seqno++; in vc4_irq_finish_render_job()
143 list_move_tail(&exec->head, &vc4->job_done_list); in vc4_irq_finish_render_job()
146 wake_up_all(&vc4->job_wait_queue); in vc4_irq_finish_render_job()
147 schedule_work(&vc4->job_done_work); in vc4_irq_finish_render_job()
154 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq() local
171 schedule_work(&vc4->overflow_mem_work); in vc4_irq()
176 spin_lock(&vc4->job_lock); in vc4_irq()
178 spin_unlock(&vc4->job_lock); in vc4_irq()
183 spin_lock(&vc4->job_lock); in vc4_irq()
185 spin_unlock(&vc4->job_lock); in vc4_irq()
195 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_preinstall() local
197 init_waitqueue_head(&vc4->job_wait_queue); in vc4_irq_preinstall()
198 INIT_WORK(&vc4->overflow_mem_work, vc4_overflow_mem_work); in vc4_irq_preinstall()
209 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_postinstall() local
220 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_uninstall() local
231 cancel_work_sync(&vc4->overflow_mem_work); in vc4_irq_uninstall()
237 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_irq_reset() local
251 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_irq_reset()
254 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_irq_reset()