media: v4l2-core: fix touch support in v4l_g_fmt
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>alistair/sunxi64-5.5-dsi
parent
3cbd3d99fd
commit
545b618cfb
|
@ -1478,10 +1478,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)
|
||||
|
@ -1519,6 +1535,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);
|
||||
|
@ -1556,21 +1574,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 New Issue