Lines Matching defs:job

312 int drm_writeback_prepare_job(struct drm_writeback_job *job)
314 struct drm_writeback_connector *connector = job->connector;
320 ret = funcs->prepare_writeback_job(connector, job);
325 job->prepared = true;
331 * drm_writeback_queue_job - Queue a writeback job for later signalling
332 * @wb_connector: The writeback connector to queue a job on
333 * @conn_state: The connector state containing the job to queue
335 * This function adds the job contained in @conn_state to the job_queue for a
336 * writeback connector. It takes ownership of the writeback job and sets the
337 * @conn_state->writeback_job to NULL, and so no access to the job may be
352 struct drm_writeback_job *job;
355 job = conn_state->writeback_job;
359 list_add_tail(&job->list_entry, &wb_connector->job_queue);
364 void drm_writeback_cleanup_job(struct drm_writeback_job *job)
366 struct drm_writeback_connector *connector = job->connector;
370 if (job->prepared && funcs->cleanup_writeback_job)
371 funcs->cleanup_writeback_job(connector, job);
373 if (job->fb)
374 drm_framebuffer_put(job->fb);
376 if (job->out_fence)
377 dma_fence_put(job->out_fence);
379 kfree(job);
384 * @cleanup_work: deferred cleanup of a writeback job
386 * The job cannot be cleaned up directly in drm_writeback_signal_completion,
392 struct drm_writeback_job *job = container_of(work,
396 drm_writeback_cleanup_job(job);
400 * drm_writeback_signal_completion - Signal the completion of a writeback job
401 * @wb_connector: The writeback connector whose job is complete
405 * writeback job. It should be called as soon as possible after the hardware
420 struct drm_writeback_job *job;
424 job = list_first_entry_or_null(&wb_connector->job_queue,
427 if (job)
428 list_del(&job->list_entry);
432 if (WARN_ON(!job))
435 out_fence = job->out_fence;
441 job->out_fence = NULL;
444 INIT_WORK(&job->cleanup_work, cleanup_work);
445 queue_work(system_long_wq, &job->cleanup_work);