__vb2_queue_alloc 分配vivi_buffer结构体的空间(缓存区头部信息), 如果使用的是V4L2_MEMORY_MMAP类型则 调用==>__vb2_buf_mem_alloc ==> q->mem_ops->alloc 即vb2_vmalloc_alloc 分配空间,将分配的空间指向vb2_buffer->planes[0].mem_priv ,该指针保存着分配到的空间,该指针指向vb2_vmalloc_buf结构体 ...
.buf_queue = buffer_queue, .start_streaming = start_streaming, .stop_streaming = stop_streaming, .wait_prepare = vb2_ops_wait_prepare, .wait_finish = vb2_ops_wait_finish, };/*0 comments on commit d020ca1 Please sign in to comment. Footer...
When we use yavta to test the function flow of V4L2, we will be stuck at __vb2_wait_for_done_vb. Our command: yavta -fUYVY -s720x480 -n4 --capture=5 /dev/video0 After analyzing the log, we found that mx6s_vidioc_dqbuf is not returned and mx6s_csi_irq_handler...
> +++ b/drivers/media/v4l2-core/videobuf2-core.c > @@ -2586,6 +2586,9 @@ unsigned int vb2_poll(struct vb2_queue *q, struct file > *file, poll_table *wait) > * There is nothing to wait for if no buffer has been queued and the > * queue isn't streaming, or if the error...
v4l2_dbg(1, debug, &vpbe_dev->v4l2_dev, "vpbe_buffer_setup\n"); @@ -271,12 +269,11 @@ vpbe_buffer_queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt, static void vpbe_buffer_queue(struct vb2_buffer *vb) { /* Get the file handle object and layer object */ - ...
vb->v4l2_buf.sequence = sequence; vb->v4l2_buf.timestamp = *ts; vb->v4l2_buf.reserved = reserved; vb2_buffer_done(vb, VB2_BUF_STATE_DONE); msm_vb2->in_freeq = 0; // vb2_buffer_done ()的实现在videobuf2-core.c中,将vb->done_entry挂到vb->vb2_queue ->done_list上 ...
this patch makes use of vb2_ops_wait_prepare/finish helper functions. Signed-off-by: Lad, Prabhakar <prabhakar.cse...@gmail.com> --- drivers/media/platform/davinci/vpbe_display.c | 20 +++--- 1 file changed, 3 insertions(+), 17 deletions(-)...