• Home
  • Raw
  • Download

Lines Matching full:job

34 #include "job.h"
221 * Start timer that tracks the time spent by the job.
225 struct host1x_job *job) in cdma_start_timer_locked() argument
234 cdma->timeout.client = job->client; in cdma_start_timer_locked()
235 cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); in cdma_start_timer_locked()
236 cdma->timeout.syncpt_val = job->syncpt_end; in cdma_start_timer_locked()
240 msecs_to_jiffies(job->timeout)); in cdma_start_timer_locked()
267 struct host1x_job *job, *n; in update_cdma_locked() local
277 list_for_each_entry_safe(job, n, &cdma->sync_queue, list) { in update_cdma_locked()
279 host1x_syncpt_get(host1x, job->syncpt_id); in update_cdma_locked()
282 if (!host1x_syncpt_is_expired(sp, job->syncpt_end)) { in update_cdma_locked()
284 if (job->timeout) in update_cdma_locked()
285 cdma_start_timer_locked(cdma, job); in update_cdma_locked()
295 host1x_job_unpin(job); in update_cdma_locked()
298 if (job->num_slots) { in update_cdma_locked()
301 host1x_pushbuffer_pop(pb, job->num_slots); in update_cdma_locked()
307 list_del(&job->list); in update_cdma_locked()
308 host1x_job_put(job); in update_cdma_locked()
326 struct host1x_job *job = NULL; in host1x_cdma_update_sync_queue() local
343 list_for_each_entry(job, &cdma->sync_queue, list) { in host1x_cdma_update_sync_queue()
344 if (syncpt_val < job->syncpt_end) in host1x_cdma_update_sync_queue()
347 host1x_job_dump(dev, job); in host1x_cdma_update_sync_queue()
369 restart_addr = job->first_get; in host1x_cdma_update_sync_queue()
374 list_for_each_entry_from(job, &cdma->sync_queue, list) { in host1x_cdma_update_sync_queue()
376 if (job->client != cdma->timeout.client) in host1x_cdma_update_sync_queue()
380 job->timeout = 0; in host1x_cdma_update_sync_queue()
382 syncpt_incrs = job->syncpt_end - syncpt_val; in host1x_cdma_update_sync_queue()
385 host1x_job_dump(dev, job); in host1x_cdma_update_sync_queue()
388 host1x_hw_cdma_timeout_cpu_incr(host1x, cdma, job->first_get, in host1x_cdma_update_sync_queue()
389 syncpt_incrs, job->syncpt_end, in host1x_cdma_update_sync_queue()
390 job->num_slots); in host1x_cdma_update_sync_queue()
401 list_for_each_entry_from(job, &cdma->sync_queue, list) in host1x_cdma_update_sync_queue()
402 if (job->client == cdma->timeout.client) in host1x_cdma_update_sync_queue()
403 job->timeout = min_t(unsigned int, job->timeout, 500); in host1x_cdma_update_sync_queue()
456 int host1x_cdma_begin(struct host1x_cdma *cdma, struct host1x_job *job) in host1x_cdma_begin() argument
462 if (job->timeout) { in host1x_cdma_begin()
468 job->syncpt_id); in host1x_cdma_begin()
483 trace_host1x_cdma_begin(dev_name(job->channel->dev)); in host1x_cdma_begin()
514 * Kick off DMA, add job to the sync queue, and a number of slots to be freed
519 struct host1x_job *job) in host1x_cdma_end() argument
526 job->first_get = cdma->first_get; in host1x_cdma_end()
527 job->num_slots = cdma->slots_used; in host1x_cdma_end()
528 host1x_job_get(job); in host1x_cdma_end()
529 list_add_tail(&job->list, &cdma->sync_queue); in host1x_cdma_end()
532 if (job->timeout && idle) in host1x_cdma_end()
533 cdma_start_timer_locked(cdma, job); in host1x_cdma_end()
535 trace_host1x_cdma_end(dev_name(job->channel->dev)); in host1x_cdma_end()