aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2016-06-28 09:20:10 -0400
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-09-09 10:29:07 -0400
commitc49148e87a427e2cfb1fda760534021cfa251f45 (patch)
tree1b1eb6bbea9b9b50727bdebe716253b9e300d58e
parent147fcfca196d0c16ebe40bcdca18e8f3272a6fda (diff)
[media] v4l: ioctl: Clear the v4l2_pix_format_mplane reserved field
The S_FMT and TRY_FMT handlers in multiplane mode attempt at clearing the reserved fields of the v4l2_format structure after the pix_mp member. However, the reserved fields are inside pix_mp, not after it. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Tested-by: Kieran Bingham <kieran@bingham.xyz> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--drivers/media/v4l2-core/v4l2-ioctl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index eb6ccc70e9a8..c52d94c018bb 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1504,7 +1504,7 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops,
1504 case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: 1504 case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
1505 if (unlikely(!is_rx || !is_vid || !ops->vidioc_s_fmt_vid_cap_mplane)) 1505 if (unlikely(!is_rx || !is_vid || !ops->vidioc_s_fmt_vid_cap_mplane))
1506 break; 1506 break;
1507 CLEAR_AFTER_FIELD(p, fmt.pix_mp); 1507 CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
1508 return ops->vidioc_s_fmt_vid_cap_mplane(file, fh, arg); 1508 return ops->vidioc_s_fmt_vid_cap_mplane(file, fh, arg);
1509 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 1509 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
1510 if (unlikely(!is_rx || !is_vid || !ops->vidioc_s_fmt_vid_overlay)) 1510 if (unlikely(!is_rx || !is_vid || !ops->vidioc_s_fmt_vid_overlay))
@@ -1532,7 +1532,7 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops,
1532 case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: 1532 case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
1533 if (unlikely(!is_tx || !is_vid || !ops->vidioc_s_fmt_vid_out_mplane)) 1533 if (unlikely(!is_tx || !is_vid || !ops->vidioc_s_fmt_vid_out_mplane))
1534 break; 1534 break;
1535 CLEAR_AFTER_FIELD(p, fmt.pix_mp); 1535 CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
1536 return ops->vidioc_s_fmt_vid_out_mplane(file, fh, arg); 1536 return ops->vidioc_s_fmt_vid_out_mplane(file, fh, arg);
1537 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 1537 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
1538 if (unlikely(!is_tx || !is_vid || !ops->vidioc_s_fmt_vid_out_overlay)) 1538 if (unlikely(!is_tx || !is_vid || !ops->vidioc_s_fmt_vid_out_overlay))
@@ -1589,7 +1589,7 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops,
1589 case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: 1589 case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
1590 if (unlikely(!is_rx || !is_vid || !ops->vidioc_try_fmt_vid_cap_mplane)) 1590 if (unlikely(!is_rx || !is_vid || !ops->vidioc_try_fmt_vid_cap_mplane))
1591 break; 1591 break;
1592 CLEAR_AFTER_FIELD(p, fmt.pix_mp); 1592 CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
1593 return ops->vidioc_try_fmt_vid_cap_mplane(file, fh, arg); 1593 return ops->vidioc_try_fmt_vid_cap_mplane(file, fh, arg);
1594 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 1594 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
1595 if (unlikely(!is_rx || !is_vid || !ops->vidioc_try_fmt_vid_overlay)) 1595 if (unlikely(!is_rx || !is_vid || !ops->vidioc_try_fmt_vid_overlay))
@@ -1617,7 +1617,7 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops,
1617 case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: 1617 case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
1618 if (unlikely(!is_tx || !is_vid || !ops->vidioc_try_fmt_vid_out_mplane)) 1618 if (unlikely(!is_tx || !is_vid || !ops->vidioc_try_fmt_vid_out_mplane))
1619 break; 1619 break;
1620 CLEAR_AFTER_FIELD(p, fmt.pix_mp); 1620 CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
1621 return ops->vidioc_try_fmt_vid_out_mplane(file, fh, arg); 1621 return ops->vidioc_try_fmt_vid_out_mplane(file, fh, arg);
1622 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 1622 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
1623 if (unlikely(!is_tx || !is_vid || !ops->vidioc_try_fmt_vid_out_overlay)) 1623 if (unlikely(!is_tx || !is_vid || !ops->vidioc_try_fmt_vid_out_overlay))