Lines Matching refs:sched

25 			  struct drm_mock_scheduler *sched)  in drm_mock_sched_entity_new()  argument
34 drm_sched = &sched->base; in drm_mock_sched_entity_new()
60 struct drm_mock_scheduler *sched = in drm_mock_sched_job_complete() local
61 drm_sched_to_mock_sched(job->base.sched); in drm_mock_sched_job_complete()
63 lockdep_assert_held(&sched->lock); in drm_mock_sched_job_complete()
76 struct drm_mock_scheduler *sched = in drm_mock_sched_job_signal_timer() local
77 drm_sched_to_mock_sched(job->base.sched); in drm_mock_sched_job_signal_timer()
83 spin_lock_irqsave(&sched->lock, flags); in drm_mock_sched_job_signal_timer()
84 list_for_each_entry_safe(job, next, &sched->job_list, link) { in drm_mock_sched_job_signal_timer()
91 sched->hw_timeline.cur_seqno = job->hw_fence.seqno; in drm_mock_sched_job_signal_timer()
94 spin_unlock_irqrestore(&sched->lock, flags); in drm_mock_sched_job_signal_timer()
145 return (const char *)job->base.sched->name; in drm_mock_sched_hw_fence_timeline_name()
166 struct drm_mock_scheduler *sched = in mock_sched_run_job() local
167 drm_sched_to_mock_sched(sched_job->sched); in mock_sched_run_job()
172 &sched->lock, in mock_sched_run_job()
173 sched->hw_timeline.context, in mock_sched_run_job()
174 atomic_inc_return(&sched->hw_timeline.next_seqno)); in mock_sched_run_job()
178 spin_lock_irq(&sched->lock); in mock_sched_run_job()
182 if (!list_empty(&sched->job_list)) { in mock_sched_run_job()
184 list_last_entry(&sched->job_list, typeof(*prev), in mock_sched_run_job()
195 list_add_tail(&job->link, &sched->job_list); in mock_sched_run_job()
198 spin_unlock_irq(&sched->lock); in mock_sched_run_job()
217 struct drm_mock_scheduler *sched = drm_sched_to_mock_sched(sched_job->sched); in mock_sched_timedout_job() local
226 spin_lock_irqsave(&sched->lock, flags); in mock_sched_timedout_job()
233 spin_unlock_irqrestore(&sched->lock, flags); in mock_sched_timedout_job()
254 struct drm_mock_scheduler *sched = drm_sched_to_mock_sched(sched_job->sched); in mock_sched_cancel_job() local
260 spin_lock_irqsave(&sched->lock, flags); in mock_sched_cancel_job()
266 spin_unlock_irqrestore(&sched->lock, flags); in mock_sched_cancel_job()
299 struct drm_mock_scheduler *sched; in drm_mock_sched_new() local
302 sched = kunit_kzalloc(test, sizeof(*sched), GFP_KERNEL); in drm_mock_sched_new()
303 KUNIT_ASSERT_NOT_NULL(test, sched); in drm_mock_sched_new()
305 ret = drm_sched_init(&sched->base, &args); in drm_mock_sched_new()
308 sched->test = test; in drm_mock_sched_new()
309 sched->hw_timeline.context = dma_fence_context_alloc(1); in drm_mock_sched_new()
310 atomic_set(&sched->hw_timeline.next_seqno, 0); in drm_mock_sched_new()
311 INIT_LIST_HEAD(&sched->job_list); in drm_mock_sched_new()
312 spin_lock_init(&sched->lock); in drm_mock_sched_new()
314 return sched; in drm_mock_sched_new()
324 void drm_mock_sched_fini(struct drm_mock_scheduler *sched) in drm_mock_sched_fini() argument
326 drm_sched_fini(&sched->base); in drm_mock_sched_fini()
343 unsigned int drm_mock_sched_advance(struct drm_mock_scheduler *sched, in drm_mock_sched_advance() argument
351 spin_lock_irqsave(&sched->lock, flags); in drm_mock_sched_advance()
352 if (WARN_ON_ONCE(sched->hw_timeline.cur_seqno + num < in drm_mock_sched_advance()
353 sched->hw_timeline.cur_seqno)) in drm_mock_sched_advance()
355 sched->hw_timeline.cur_seqno += num; in drm_mock_sched_advance()
356 list_for_each_entry_safe(job, next, &sched->job_list, link) { in drm_mock_sched_advance()
357 if (sched->hw_timeline.cur_seqno < job->hw_fence.seqno) in drm_mock_sched_advance()
364 spin_unlock_irqrestore(&sched->lock, flags); in drm_mock_sched_advance()