Documented in 1 files:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c fill_ringbuffer() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
RX_PATH
TASK_NOT_RUNNING

drivers/media/platform/verisilicon/hantro_drv.c hantro_job_finish_no_pm() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
DATA_SOURCE 1 vbuf r v4l2_m2m_next_src_buf
PARAM_COMPARE 0 &m2m_ctx->cap_q_ctx.rdy_queue != $0->cap_q_ctx.rdy_queue.next
PARAM_COMPARE 0 &m2m_ctx->out_q_ctx.rdy_queue != $0->out_q_ctx.rdy_queue.next
RX_PATH
TASK_NOT_RUNNING

drivers/media/platform/allegro-dvt/allegro-core.c allegro_channel_finish_frame() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
DATA_SOURCE 1 vbuf r allegro_get_buffer
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 _T->lock

drivers/media/platform/imagination/e5010-jpeg-enc.c e5010_irq() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
DATA_SOURCE 1 vbuf r v4l2_m2m_src_buf_remove
PARAM_COMPARE 0 &m2m_ctx->cap_q_ctx.rdy_queue != $0->cap_q_ctx.rdy_queue.next
PARAM_COMPARE 0 &m2m_ctx->out_q_ctx.rdy_queue != $0->out_q_ctx.rdy_queue.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &e5010->hw_lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 flags
TYPE_LOCK (struct e5010_dev)->hw_lock

drivers/media/platform/imagination/e5010-jpeg-enc.c e5010_irq() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
CAPPED_DATA 1 vbuf 1
DATA_SOURCE 1 vbuf r v4l2_m2m_src_buf_remove
PARAM_COMPARE 0 &m2m_ctx->cap_q_ctx.rdy_queue != $0->cap_q_ctx.rdy_queue.next
PARAM_COMPARE 0 &m2m_ctx->out_q_ctx.rdy_queue != $0->out_q_ctx.rdy_queue.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &e5010->hw_lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 flags
TYPE_LOCK (struct e5010_dev)->hw_lock

drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c mxc_jpeg_check_and_set_last_buffer() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 0,4096-ptr_max
BUF_SIZE 1 vbuf (-1),1168
BUF_SIZE 1 vbuf (-1),1168
DATA_SOURCE 1 vbuf $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->mxc_jpeg->hw_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct mxc_jpeg_dev)->hw_lock

drivers/media/test-drivers/vicodec/vicodec-core.c device_run() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf (-1),1168
BUF_SIZE 1 vbuf (-1),1168
DATA_SOURCE 1 vbuf r v4l2_m2m_next_src_buf
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 ctx->lock

drivers/media/test-drivers/vicodec/vicodec-core.c job_ready() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
DATA_SOURCE 1 vbuf r v4l2_m2m_next_src_buf
PARAM_COMPARE 0 &m2m_ctx->out_q_ctx.rdy_queue != $0->out_q_ctx.rdy_queue.next
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m2m_dev->job_spinlock
LOCK2 flags_job
TYPE_LOCK (struct v4l2_m2m_dev)->job_spinlock

drivers/media/test-drivers/vicodec/vicodec-core.c job_ready() -> v4l2_m2m_is_last_draining_src_buf()

Type Parameter Key Value
PARAM_VALUE 0 m2m_ctx 4096-ptr_max
PARAM_VALUE 1 vbuf 4096-ptr_max
BUF_SIZE 1 vbuf 1168
DATA_SOURCE 1 vbuf r v4l2_m2m_next_src_buf
PARAM_COMPARE 0 &m2m_ctx->out_q_ctx.rdy_queue != $0->out_q_ctx.rdy_queue.next
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m2m_dev->job_spinlock
LOCK2 flags_job
TYPE_LOCK (struct v4l2_m2m_dev)->job_spinlock