Lines Matching full:job

23 #include "job.h"
270 * Start timer that tracks the time spent by the job.
274 struct host1x_job *job) in cdma_start_timer_locked() argument
283 cdma->timeout.client = job->client; in cdma_start_timer_locked()
284 cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); in cdma_start_timer_locked()
285 cdma->timeout.syncpt_val = job->syncpt_end; in cdma_start_timer_locked()
289 msecs_to_jiffies(job->timeout)); in cdma_start_timer_locked()
316 struct host1x_job *job, *n; in update_cdma_locked() local
326 list_for_each_entry_safe(job, n, &cdma->sync_queue, list) { in update_cdma_locked()
328 host1x_syncpt_get(host1x, job->syncpt_id); in update_cdma_locked()
331 if (!host1x_syncpt_is_expired(sp, job->syncpt_end)) { in update_cdma_locked()
333 if (job->timeout) in update_cdma_locked()
334 cdma_start_timer_locked(cdma, job); in update_cdma_locked()
344 host1x_job_unpin(job); in update_cdma_locked()
347 if (job->num_slots) { in update_cdma_locked()
350 host1x_pushbuffer_pop(pb, job->num_slots); in update_cdma_locked()
356 list_del(&job->list); in update_cdma_locked()
357 host1x_job_put(job); in update_cdma_locked()
375 struct host1x_job *job, *next_job = NULL; in host1x_cdma_update_sync_queue() local
392 list_for_each_entry(job, &cdma->sync_queue, list) { in host1x_cdma_update_sync_queue()
393 if (syncpt_val < job->syncpt_end) { in host1x_cdma_update_sync_queue()
395 if (!list_is_last(&job->list, &cdma->sync_queue)) in host1x_cdma_update_sync_queue()
396 next_job = list_next_entry(job, list); in host1x_cdma_update_sync_queue()
401 host1x_job_dump(dev, job); in host1x_cdma_update_sync_queue()
405 job = NULL; in host1x_cdma_update_sync_queue()
410 * Increment with CPU the remaining syncpts of a partially executed job. in host1x_cdma_update_sync_queue()
412 * CDMA will continue execution starting with the next job or will get in host1x_cdma_update_sync_queue()
421 if (job) { in host1x_cdma_update_sync_queue()
426 job->timeout = 0; in host1x_cdma_update_sync_queue()
428 syncpt_incrs = job->syncpt_end - syncpt_val; in host1x_cdma_update_sync_queue()
431 host1x_job_dump(dev, job); in host1x_cdma_update_sync_queue()
434 host1x_hw_cdma_timeout_cpu_incr(host1x, cdma, job->first_get, in host1x_cdma_update_sync_queue()
435 syncpt_incrs, job->syncpt_end, in host1x_cdma_update_sync_queue()
436 job->num_slots); in host1x_cdma_update_sync_queue()
491 int host1x_cdma_begin(struct host1x_cdma *cdma, struct host1x_job *job) in host1x_cdma_begin() argument
497 if (job->timeout) { in host1x_cdma_begin()
503 job->syncpt_id); in host1x_cdma_begin()
518 trace_host1x_cdma_begin(dev_name(job->channel->dev)); in host1x_cdma_begin()
602 * Kick off DMA, add job to the sync queue, and a number of slots to be freed
607 struct host1x_job *job) in host1x_cdma_end() argument
614 job->first_get = cdma->first_get; in host1x_cdma_end()
615 job->num_slots = cdma->slots_used; in host1x_cdma_end()
616 host1x_job_get(job); in host1x_cdma_end()
617 list_add_tail(&job->list, &cdma->sync_queue); in host1x_cdma_end()
620 if (job->timeout && idle) in host1x_cdma_end()
621 cdma_start_timer_locked(cdma, job); in host1x_cdma_end()
623 trace_host1x_cdma_end(dev_name(job->channel->dev)); in host1x_cdma_end()