Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/gpu/drm/vc4/vc4_irq.c vc4_cancel_bin_job() -> vc4_first_bin_job()

Type Parameter Key Value
PREEMPT_ADD
LOCK2 &vc4->job_lock
LOCK2 irqflags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_irq.c vc4_irq_finish_bin_job() -> vc4_first_bin_job()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vc4->job_lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_irq.c vc4_irq_finish_bin_job() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
PARAM_COMPARE 0 &vc4->bin_job_list != $0->bin_job_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vc4->job_lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_irq.c vc4_irq_finish_render_job() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
PARAM_COMPARE 0 &vc4->render_job_list != $0->render_job_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vc4->job_lock
HALF_LOCKED2 irqflags
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_irq.c vc4_overflow_mem_work() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
CAPPED_DATA 0 &vc4->bin_bo_lock 1
PREEMPT_ADD <- disables preempt
LOCK2 irqflags
LOCK2 0 &vc4->bin_bo_lock
LOCK2 0 &vc4->job_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vc4_dev)->bin_bo_lock
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_gem.c vc4_hangcheck_elapsed() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 irqflags
LOCK2 0 &vc4->job_lock
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_gem.c vc4_queue_submit() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 irqflags
LOCK2 0 &vc4->job_lock
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_gem.c vc4_save_hang_state() -> vc4_first_bin_job()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 irqflags
LOCK2 0 &vc4->job_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_gem.c vc4_submit_next_bin_job() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vc4->job_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 irqflags
TYPE_LOCK (struct vc4_dev)->job_lock

drivers/gpu/drm/vc4/vc4_gem.c vc4_submit_next_bin_job() -> vc4_first_bin_job()

Type Parameter Key Value
PARAM_VALUE 0 vc4 4096-ptr_max
PARAM_COMPARE 0 &vc4->bin_job_list != $0->bin_job_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vc4->job_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 irqflags
TYPE_LOCK (struct vc4_dev)->job_lock