[media] v4l2-mem2mem: add support for prepare_buf
This was never added for some reason, so add it now. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
f00245c2e8
commit
e68cf471e7
@ -426,6 +426,25 @@ int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(v4l2_m2m_dqbuf);
|
EXPORT_SYMBOL_GPL(v4l2_m2m_dqbuf);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* v4l2_m2m_prepare_buf() - prepare a source or destination buffer, depending on
|
||||||
|
* the type
|
||||||
|
*/
|
||||||
|
int v4l2_m2m_prepare_buf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||||
|
struct v4l2_buffer *buf)
|
||||||
|
{
|
||||||
|
struct vb2_queue *vq;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
vq = v4l2_m2m_get_vq(m2m_ctx, buf->type);
|
||||||
|
ret = vb2_prepare_buf(vq, buf);
|
||||||
|
if (!ret)
|
||||||
|
v4l2_m2m_try_schedule(m2m_ctx);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(v4l2_m2m_prepare_buf);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* v4l2_m2m_create_bufs() - create a source or destination buffer, depending
|
* v4l2_m2m_create_bufs() - create a source or destination buffer, depending
|
||||||
* on the type
|
* on the type
|
||||||
@ -811,6 +830,15 @@ int v4l2_m2m_ioctl_dqbuf(struct file *file, void *priv,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_dqbuf);
|
EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_dqbuf);
|
||||||
|
|
||||||
|
int v4l2_m2m_ioctl_prepare_buf(struct file *file, void *priv,
|
||||||
|
struct v4l2_buffer *buf)
|
||||||
|
{
|
||||||
|
struct v4l2_fh *fh = file->private_data;
|
||||||
|
|
||||||
|
return v4l2_m2m_prepare_buf(file, fh->m2m_ctx, buf);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_prepare_buf);
|
||||||
|
|
||||||
int v4l2_m2m_ioctl_expbuf(struct file *file, void *priv,
|
int v4l2_m2m_ioctl_expbuf(struct file *file, void *priv,
|
||||||
struct v4l2_exportbuffer *eb)
|
struct v4l2_exportbuffer *eb)
|
||||||
{
|
{
|
||||||
|
@ -116,6 +116,8 @@ int v4l2_m2m_qbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
|||||||
struct v4l2_buffer *buf);
|
struct v4l2_buffer *buf);
|
||||||
int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||||
struct v4l2_buffer *buf);
|
struct v4l2_buffer *buf);
|
||||||
|
int v4l2_m2m_prepare_buf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||||
|
struct v4l2_buffer *buf);
|
||||||
int v4l2_m2m_create_bufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
int v4l2_m2m_create_bufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||||
struct v4l2_create_buffers *create);
|
struct v4l2_create_buffers *create);
|
||||||
|
|
||||||
@ -248,6 +250,8 @@ int v4l2_m2m_ioctl_qbuf(struct file *file, void *fh,
|
|||||||
struct v4l2_buffer *buf);
|
struct v4l2_buffer *buf);
|
||||||
int v4l2_m2m_ioctl_dqbuf(struct file *file, void *fh,
|
int v4l2_m2m_ioctl_dqbuf(struct file *file, void *fh,
|
||||||
struct v4l2_buffer *buf);
|
struct v4l2_buffer *buf);
|
||||||
|
int v4l2_m2m_ioctl_prepare_buf(struct file *file, void *fh,
|
||||||
|
struct v4l2_buffer *buf);
|
||||||
int v4l2_m2m_ioctl_streamon(struct file *file, void *fh,
|
int v4l2_m2m_ioctl_streamon(struct file *file, void *fh,
|
||||||
enum v4l2_buf_type type);
|
enum v4l2_buf_type type);
|
||||||
int v4l2_m2m_ioctl_streamoff(struct file *file, void *fh,
|
int v4l2_m2m_ioctl_streamoff(struct file *file, void *fh,
|
||||||
|
Loading…
Reference in New Issue
Block a user