media: vb2: add init_buffer buffer op
We need to initialize the request_fd field in struct vb2_v4l2_buffer to -1 instead of the default of 0. So we need to add a new op that is called when struct vb2_v4l2_buffer is allocated. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
62fed26ff4
commit
8e013700bc
|
@ -356,6 +356,8 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum vb2_memory memory,
|
|||
vb->planes[plane].length = plane_sizes[plane];
|
||||
vb->planes[plane].min_length = plane_sizes[plane];
|
||||
}
|
||||
call_void_bufop(q, init_buffer, vb);
|
||||
|
||||
q->bufs[vb->index] = vb;
|
||||
|
||||
/* Allocate video buffer memory for the MMAP type */
|
||||
|
|
|
@ -412,6 +412,9 @@ struct vb2_ops {
|
|||
* @verify_planes_array: Verify that a given user space structure contains
|
||||
* enough planes for the buffer. This is called
|
||||
* for each dequeued buffer.
|
||||
* @init_buffer: given a &vb2_buffer initialize the extra data after
|
||||
* struct vb2_buffer.
|
||||
* For V4L2 this is a &struct vb2_v4l2_buffer.
|
||||
* @fill_user_buffer: given a &vb2_buffer fill in the userspace structure.
|
||||
* For V4L2 this is a &struct v4l2_buffer.
|
||||
* @fill_vb2_buffer: given a userspace structure, fill in the &vb2_buffer.
|
||||
|
@ -422,6 +425,7 @@ struct vb2_ops {
|
|||
*/
|
||||
struct vb2_buf_ops {
|
||||
int (*verify_planes_array)(struct vb2_buffer *vb, const void *pb);
|
||||
void (*init_buffer)(struct vb2_buffer *vb);
|
||||
void (*fill_user_buffer)(struct vb2_buffer *vb, void *pb);
|
||||
int (*fill_vb2_buffer)(struct vb2_buffer *vb, struct vb2_plane *planes);
|
||||
void (*copy_timestamp)(struct vb2_buffer *vb, const void *pb);
|
||||
|
|
Loading…
Reference in New Issue