diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2012-09-17 04:02:26 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-09-26 08:38:15 -0400 |
commit | 633c98e52a64ac8548b5d27dca1497cd4f0a6d4c (patch) | |
tree | 140cfba2c7ea9ddeb02e7e31fbb4b0de3946a1f0 | |
parent | 72c2af6ec1485604c6aa068cca2932d48d8a5f7a (diff) |
[media] v4l2-core: deprecate V4L2_BUF_TYPE_PRIVATE
This buffer type isn't used at all, and since it is effectively undefined
what it should do it is deprecated. The define still exists, but any
internal support for such buffers is removed.
The decisions to deprecate this was taken during the 2012 Media Workshop.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-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); |