diff options
-rw-r--r-- | drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 8 | ||||
-rw-r--r-- | drivers/media/v4l2-core/v4l2-dev.c | 12 | ||||
-rw-r--r-- | drivers/media/v4l2-core/v4l2-ioctl.c | 26 | ||||
-rw-r--r-- | include/linux/videodev2.h | 1 | ||||
-rw-r--r-- | include/media/v4l2-ioctl.h | 8 |
5 files changed, 7 insertions, 48 deletions
diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c index e8437051d3ef..83ffb6436baf 100644 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c | |||
@@ -195,10 +195,6 @@ static int __get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us | |||
195 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: | 195 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: |
196 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: | 196 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: |
197 | return get_v4l2_sliced_vbi_format(&kp->fmt.sliced, &up->fmt.sliced); | 197 | return get_v4l2_sliced_vbi_format(&kp->fmt.sliced, &up->fmt.sliced); |
198 | case V4L2_BUF_TYPE_PRIVATE: | ||
199 | if (copy_from_user(kp, up, sizeof(kp->fmt.raw_data))) | ||
200 | return -EFAULT; | ||
201 | return 0; | ||
202 | default: | 198 | default: |
203 | printk(KERN_INFO "compat_ioctl32: unexpected VIDIOC_FMT type %d\n", | 199 | printk(KERN_INFO "compat_ioctl32: unexpected VIDIOC_FMT type %d\n", |
204 | kp->type); | 200 | kp->type); |
@@ -241,10 +237,6 @@ static int __put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us | |||
241 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: | 237 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: |
242 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: | 238 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: |
243 | return put_v4l2_sliced_vbi_format(&kp->fmt.sliced, &up->fmt.sliced); | 239 | return put_v4l2_sliced_vbi_format(&kp->fmt.sliced, &up->fmt.sliced); |
244 | case V4L2_BUF_TYPE_PRIVATE: | ||
245 | if (copy_to_user(up, kp, sizeof(up->fmt.raw_data))) | ||
246 | return -EFAULT; | ||
247 | return 0; | ||
248 | default: | 240 | default: |
249 | printk(KERN_INFO "compat_ioctl32: unexpected VIDIOC_FMT type %d\n", | 241 | printk(KERN_INFO "compat_ioctl32: unexpected VIDIOC_FMT type %d\n", |
250 | kp->type); | 242 | kp->type); |
diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c index 71237f5f85f4..95f92ea4dbd5 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c | |||
@@ -565,8 +565,7 @@ static void determine_valid_ioctls(struct video_device *vdev) | |||
565 | ops->vidioc_enum_fmt_vid_out || | 565 | ops->vidioc_enum_fmt_vid_out || |
566 | ops->vidioc_enum_fmt_vid_cap_mplane || | 566 | ops->vidioc_enum_fmt_vid_cap_mplane || |
567 | ops->vidioc_enum_fmt_vid_out_mplane || | 567 | ops->vidioc_enum_fmt_vid_out_mplane || |
568 | ops->vidioc_enum_fmt_vid_overlay || | 568 | ops->vidioc_enum_fmt_vid_overlay) |
569 | ops->vidioc_enum_fmt_type_private) | ||
570 | set_bit(_IOC_NR(VIDIOC_ENUM_FMT), valid_ioctls); | 569 | set_bit(_IOC_NR(VIDIOC_ENUM_FMT), valid_ioctls); |
571 | if (ops->vidioc_g_fmt_vid_cap || | 570 | if (ops->vidioc_g_fmt_vid_cap || |
572 | ops->vidioc_g_fmt_vid_out || | 571 | ops->vidioc_g_fmt_vid_out || |
@@ -577,8 +576,7 @@ static void determine_valid_ioctls(struct video_device *vdev) | |||
577 | ops->vidioc_g_fmt_vid_out_overlay || | 576 | ops->vidioc_g_fmt_vid_out_overlay || |
578 | ops->vidioc_g_fmt_vbi_out || | 577 | ops->vidioc_g_fmt_vbi_out || |
579 | ops->vidioc_g_fmt_sliced_vbi_cap || | 578 | ops->vidioc_g_fmt_sliced_vbi_cap || |
580 | ops->vidioc_g_fmt_sliced_vbi_out || | 579 | ops->vidioc_g_fmt_sliced_vbi_out) |
581 | ops->vidioc_g_fmt_type_private) | ||
582 | set_bit(_IOC_NR(VIDIOC_G_FMT), valid_ioctls); | 580 | set_bit(_IOC_NR(VIDIOC_G_FMT), valid_ioctls); |
583 | if (ops->vidioc_s_fmt_vid_cap || | 581 | if (ops->vidioc_s_fmt_vid_cap || |
584 | ops->vidioc_s_fmt_vid_out || | 582 | ops->vidioc_s_fmt_vid_out || |
@@ -589,8 +587,7 @@ static void determine_valid_ioctls(struct video_device *vdev) | |||
589 | ops->vidioc_s_fmt_vid_out_overlay || | 587 | ops->vidioc_s_fmt_vid_out_overlay || |
590 | ops->vidioc_s_fmt_vbi_out || | 588 | ops->vidioc_s_fmt_vbi_out || |
591 | ops->vidioc_s_fmt_sliced_vbi_cap || | 589 | ops->vidioc_s_fmt_sliced_vbi_cap || |
592 | ops->vidioc_s_fmt_sliced_vbi_out || | 590 | ops->vidioc_s_fmt_sliced_vbi_out) |
593 | ops->vidioc_s_fmt_type_private) | ||
594 | set_bit(_IOC_NR(VIDIOC_S_FMT), valid_ioctls); | 591 | set_bit(_IOC_NR(VIDIOC_S_FMT), valid_ioctls); |
595 | if (ops->vidioc_try_fmt_vid_cap || | 592 | if (ops->vidioc_try_fmt_vid_cap || |
596 | ops->vidioc_try_fmt_vid_out || | 593 | ops->vidioc_try_fmt_vid_out || |
@@ -601,8 +598,7 @@ static void determine_valid_ioctls(struct video_device *vdev) | |||
601 | ops->vidioc_try_fmt_vid_out_overlay || | 598 | ops->vidioc_try_fmt_vid_out_overlay || |
602 | ops->vidioc_try_fmt_vbi_out || | 599 | ops->vidioc_try_fmt_vbi_out || |
603 | ops->vidioc_try_fmt_sliced_vbi_cap || | 600 | ops->vidioc_try_fmt_sliced_vbi_cap || |
604 | ops->vidioc_try_fmt_sliced_vbi_out || | 601 | ops->vidioc_try_fmt_sliced_vbi_out) |
605 | ops->vidioc_try_fmt_type_private) | ||
606 | set_bit(_IOC_NR(VIDIOC_TRY_FMT), valid_ioctls); | 602 | set_bit(_IOC_NR(VIDIOC_TRY_FMT), valid_ioctls); |
607 | SET_VALID_IOCTL(ops, VIDIOC_REQBUFS, vidioc_reqbufs); | 603 | SET_VALID_IOCTL(ops, VIDIOC_REQBUFS, vidioc_reqbufs); |
608 | SET_VALID_IOCTL(ops, VIDIOC_QUERYBUF, vidioc_querybuf); | 604 | SET_VALID_IOCTL(ops, VIDIOC_QUERYBUF, vidioc_querybuf); |
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c index 932d9bf5990a..2f26e9496a3b 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c | |||
@@ -316,9 +316,6 @@ static void v4l_print_format(const void *arg, bool write_only) | |||
316 | sliced->service_lines[0][i], | 316 | sliced->service_lines[0][i], |
317 | sliced->service_lines[1][i]); | 317 | sliced->service_lines[1][i]); |
318 | break; | 318 | break; |
319 | case V4L2_BUF_TYPE_PRIVATE: | ||
320 | pr_cont("\n"); | ||
321 | break; | ||
322 | } | 319 | } |
323 | } | 320 | } |
324 | 321 | ||
@@ -927,9 +924,7 @@ static int check_fmt(const struct v4l2_ioctl_ops *ops, enum v4l2_buf_type type) | |||
927 | if (ops->vidioc_g_fmt_sliced_vbi_out) | 924 | if (ops->vidioc_g_fmt_sliced_vbi_out) |
928 | return 0; | 925 | return 0; |
929 | break; | 926 | break; |
930 | case V4L2_BUF_TYPE_PRIVATE: | 927 | default: |
931 | if (ops->vidioc_g_fmt_type_private) | ||
932 | return 0; | ||
933 | break; | 928 | break; |
934 | } | 929 | } |
935 | return -EINVAL; | 930 | return -EINVAL; |
@@ -1051,10 +1046,6 @@ static int v4l_enum_fmt(const struct v4l2_ioctl_ops *ops, | |||
1051 | if (unlikely(!ops->vidioc_enum_fmt_vid_out_mplane)) | 1046 | if (unlikely(!ops->vidioc_enum_fmt_vid_out_mplane)) |
1052 | break; | 1047 | break; |
1053 | return ops->vidioc_enum_fmt_vid_out_mplane(file, fh, arg); | 1048 | return ops->vidioc_enum_fmt_vid_out_mplane(file, fh, arg); |
1054 | case V4L2_BUF_TYPE_PRIVATE: | ||
1055 | if (unlikely(!ops->vidioc_enum_fmt_type_private)) | ||
1056 | break; | ||
1057 | return ops->vidioc_enum_fmt_type_private(file, fh, arg); | ||
1058 | } | 1049 | } |
1059 | return -EINVAL; | 1050 | return -EINVAL; |
1060 | } | 1051 | } |
@@ -1105,10 +1096,6 @@ static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops, | |||
1105 | if (unlikely(!ops->vidioc_g_fmt_sliced_vbi_out)) | 1096 | if (unlikely(!ops->vidioc_g_fmt_sliced_vbi_out)) |
1106 | break; | 1097 | break; |
1107 | return ops->vidioc_g_fmt_sliced_vbi_out(file, fh, arg); | 1098 | return ops->vidioc_g_fmt_sliced_vbi_out(file, fh, arg); |
1108 | case V4L2_BUF_TYPE_PRIVATE: | ||
1109 | if (unlikely(!ops->vidioc_g_fmt_type_private)) | ||
1110 | break; | ||
1111 | return ops->vidioc_g_fmt_type_private(file, fh, arg); | ||
1112 | } | 1099 | } |
1113 | return -EINVAL; | 1100 | return -EINVAL; |
1114 | } | 1101 | } |
@@ -1169,10 +1156,6 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops, | |||
1169 | break; | 1156 | break; |
1170 | CLEAR_AFTER_FIELD(p, fmt.sliced); | 1157 | CLEAR_AFTER_FIELD(p, fmt.sliced); |
1171 | return ops->vidioc_s_fmt_sliced_vbi_out(file, fh, arg); | 1158 | return ops->vidioc_s_fmt_sliced_vbi_out(file, fh, arg); |
1172 | case V4L2_BUF_TYPE_PRIVATE: | ||
1173 | if (unlikely(!ops->vidioc_s_fmt_type_private)) | ||
1174 | break; | ||
1175 | return ops->vidioc_s_fmt_type_private(file, fh, arg); | ||
1176 | } | 1159 | } |
1177 | return -EINVAL; | 1160 | return -EINVAL; |
1178 | } | 1161 | } |
@@ -1233,10 +1216,6 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops, | |||
1233 | break; | 1216 | break; |
1234 | CLEAR_AFTER_FIELD(p, fmt.sliced); | 1217 | CLEAR_AFTER_FIELD(p, fmt.sliced); |
1235 | return ops->vidioc_try_fmt_sliced_vbi_out(file, fh, arg); | 1218 | return ops->vidioc_try_fmt_sliced_vbi_out(file, fh, arg); |
1236 | case V4L2_BUF_TYPE_PRIVATE: | ||
1237 | if (unlikely(!ops->vidioc_try_fmt_type_private)) | ||
1238 | break; | ||
1239 | return ops->vidioc_try_fmt_type_private(file, fh, arg); | ||
1240 | } | 1219 | } |
1241 | return -EINVAL; | 1220 | return -EINVAL; |
1242 | } | 1221 | } |
@@ -1425,8 +1404,7 @@ static int v4l_reqbufs(const struct v4l2_ioctl_ops *ops, | |||
1425 | if (ret) | 1404 | if (ret) |
1426 | return ret; | 1405 | return ret; |
1427 | 1406 | ||
1428 | if (p->type < V4L2_BUF_TYPE_PRIVATE) | 1407 | CLEAR_AFTER_FIELD(p, memory); |
1429 | CLEAR_AFTER_FIELD(p, memory); | ||
1430 | 1408 | ||
1431 | return ops->vidioc_reqbufs(file, fh, p); | 1409 | return ops->vidioc_reqbufs(file, fh, p); |
1432 | } | 1410 | } |
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 1b72a38b7c8c..1ed8f904567d 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
@@ -162,6 +162,7 @@ enum v4l2_buf_type { | |||
162 | #endif | 162 | #endif |
163 | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, | 163 | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, |
164 | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, | 164 | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, |
165 | /* Deprecated, do not use */ | ||
165 | V4L2_BUF_TYPE_PRIVATE = 0x80, | 166 | V4L2_BUF_TYPE_PRIVATE = 0x80, |
166 | }; | 167 | }; |
167 | 168 | ||
diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h index e614c9c15e56..0bc1444e50ee 100644 --- a/include/media/v4l2-ioctl.h +++ b/include/media/v4l2-ioctl.h | |||
@@ -40,8 +40,6 @@ struct v4l2_ioctl_ops { | |||
40 | struct v4l2_fmtdesc *f); | 40 | struct v4l2_fmtdesc *f); |
41 | int (*vidioc_enum_fmt_vid_out_mplane)(struct file *file, void *fh, | 41 | int (*vidioc_enum_fmt_vid_out_mplane)(struct file *file, void *fh, |
42 | struct v4l2_fmtdesc *f); | 42 | struct v4l2_fmtdesc *f); |
43 | int (*vidioc_enum_fmt_type_private)(struct file *file, void *fh, | ||
44 | struct v4l2_fmtdesc *f); | ||
45 | 43 | ||
46 | /* VIDIOC_G_FMT handlers */ | 44 | /* VIDIOC_G_FMT handlers */ |
47 | int (*vidioc_g_fmt_vid_cap) (struct file *file, void *fh, | 45 | int (*vidioc_g_fmt_vid_cap) (struct file *file, void *fh, |
@@ -64,8 +62,6 @@ struct v4l2_ioctl_ops { | |||
64 | struct v4l2_format *f); | 62 | struct v4l2_format *f); |
65 | int (*vidioc_g_fmt_vid_out_mplane)(struct file *file, void *fh, | 63 | int (*vidioc_g_fmt_vid_out_mplane)(struct file *file, void *fh, |
66 | struct v4l2_format *f); | 64 | struct v4l2_format *f); |
67 | int (*vidioc_g_fmt_type_private)(struct file *file, void *fh, | ||
68 | struct v4l2_format *f); | ||
69 | 65 | ||
70 | /* VIDIOC_S_FMT handlers */ | 66 | /* VIDIOC_S_FMT handlers */ |
71 | int (*vidioc_s_fmt_vid_cap) (struct file *file, void *fh, | 67 | int (*vidioc_s_fmt_vid_cap) (struct file *file, void *fh, |
@@ -88,8 +84,6 @@ struct v4l2_ioctl_ops { | |||
88 | struct v4l2_format *f); | 84 | struct v4l2_format *f); |
89 | int (*vidioc_s_fmt_vid_out_mplane)(struct file *file, void *fh, | 85 | int (*vidioc_s_fmt_vid_out_mplane)(struct file *file, void *fh, |
90 | struct v4l2_format *f); | 86 | struct v4l2_format *f); |
91 | int (*vidioc_s_fmt_type_private)(struct file *file, void *fh, | ||
92 | struct v4l2_format *f); | ||
93 | 87 | ||
94 | /* VIDIOC_TRY_FMT handlers */ | 88 | /* VIDIOC_TRY_FMT handlers */ |
95 | int (*vidioc_try_fmt_vid_cap) (struct file *file, void *fh, | 89 | int (*vidioc_try_fmt_vid_cap) (struct file *file, void *fh, |
@@ -112,8 +106,6 @@ struct v4l2_ioctl_ops { | |||
112 | struct v4l2_format *f); | 106 | struct v4l2_format *f); |
113 | int (*vidioc_try_fmt_vid_out_mplane)(struct file *file, void *fh, | 107 | int (*vidioc_try_fmt_vid_out_mplane)(struct file *file, void *fh, |
114 | struct v4l2_format *f); | 108 | struct v4l2_format *f); |
115 | int (*vidioc_try_fmt_type_private)(struct file *file, void *fh, | ||
116 | struct v4l2_format *f); | ||
117 | 109 | ||
118 | /* Buffer handlers */ | 110 | /* Buffer handlers */ |
119 | int (*vidioc_reqbufs) (struct file *file, void *fh, struct v4l2_requestbuffers *b); | 111 | int (*vidioc_reqbufs) (struct file *file, void *fh, struct v4l2_requestbuffers *b); |