mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
media: v4l2-core: fix touch support in v4l_g_fmt
[ Upstream commit 545b618cfb5cadacd00c25066b9a36540e5ca9e9 ] v4l_s_fmt, for VFL_TYPE_TOUCH, sets unneeded members of the v4l2_pix_format structure to default values.This was missing in v4l_g_fmt, which would lead to failures in v4l2-compliance tests. Signed-off-by: Vandana BN <bnvandana@gmail.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
96d7c3cb33
commit
6e7a164f18
1 changed files with 18 additions and 15 deletions
|
|
@ -1466,10 +1466,26 @@ static int v4l_enum_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void v4l_pix_format_touch(struct v4l2_pix_format *p)
|
||||
{
|
||||
/*
|
||||
* The v4l2_pix_format structure contains fields that make no sense for
|
||||
* touch. Set them to default values in this case.
|
||||
*/
|
||||
|
||||
p->field = V4L2_FIELD_NONE;
|
||||
p->colorspace = V4L2_COLORSPACE_RAW;
|
||||
p->flags = 0;
|
||||
p->ycbcr_enc = 0;
|
||||
p->quantization = 0;
|
||||
p->xfer_func = 0;
|
||||
}
|
||||
|
||||
static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops,
|
||||
struct file *file, void *fh, void *arg)
|
||||
{
|
||||
struct v4l2_format *p = arg;
|
||||
struct video_device *vfd = video_devdata(file);
|
||||
int ret = check_fmt(file, p->type);
|
||||
|
||||
if (ret)
|
||||
|
|
@ -1507,6 +1523,8 @@ static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
ret = ops->vidioc_g_fmt_vid_cap(file, fh, arg);
|
||||
/* just in case the driver zeroed it again */
|
||||
p->fmt.pix.priv = V4L2_PIX_FMT_PRIV_MAGIC;
|
||||
if (vfd->vfl_type == VFL_TYPE_TOUCH)
|
||||
v4l_pix_format_touch(&p->fmt.pix);
|
||||
return ret;
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
|
||||
return ops->vidioc_g_fmt_vid_cap_mplane(file, fh, arg);
|
||||
|
|
@ -1544,21 +1562,6 @@ static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
static void v4l_pix_format_touch(struct v4l2_pix_format *p)
|
||||
{
|
||||
/*
|
||||
* The v4l2_pix_format structure contains fields that make no sense for
|
||||
* touch. Set them to default values in this case.
|
||||
*/
|
||||
|
||||
p->field = V4L2_FIELD_NONE;
|
||||
p->colorspace = V4L2_COLORSPACE_RAW;
|
||||
p->flags = 0;
|
||||
p->ycbcr_enc = 0;
|
||||
p->quantization = 0;
|
||||
p->xfer_func = 0;
|
||||
}
|
||||
|
||||
static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops,
|
||||
struct file *file, void *fh, void *arg)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue