hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/include/media/v4l2-ioctl.h
....@@ -26,19 +26,13 @@
2626 * :ref:`VIDIOC_QUERYCAP <vidioc_querycap>` ioctl
2727 * @vidioc_enum_fmt_vid_cap: pointer to the function that implements
2828 * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic
29
- * for video capture in single plane mode
29
+ * for video capture in single and multi plane mode
3030 * @vidioc_enum_fmt_vid_overlay: pointer to the function that implements
3131 * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic
3232 * for video overlay
3333 * @vidioc_enum_fmt_vid_out: pointer to the function that implements
3434 * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic
35
- * for video output in single plane mode
36
- * @vidioc_enum_fmt_vid_cap_mplane: pointer to the function that implements
37
- * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic
38
- * for video capture in multiplane mode
39
- * @vidioc_enum_fmt_vid_out_mplane: pointer to the function that implements
40
- * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic
41
- * for video output in multiplane mode
35
+ * for video output in single and multi plane mode
4236 * @vidioc_enum_fmt_sdr_cap: pointer to the function that implements
4337 * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic
4438 * for Software Defined Radio capture
....@@ -229,12 +223,8 @@
229223 * :ref:`VIDIOC_G_MODULATOR <vidioc_g_modulator>` ioctl
230224 * @vidioc_s_modulator: pointer to the function that implements
231225 * :ref:`VIDIOC_S_MODULATOR <vidioc_g_modulator>` ioctl
232
- * @vidioc_cropcap: pointer to the function that implements
233
- * :ref:`VIDIOC_CROPCAP <vidioc_cropcap>` ioctl
234
- * @vidioc_g_crop: pointer to the function that implements
235
- * :ref:`VIDIOC_G_CROP <vidioc_g_crop>` ioctl
236
- * @vidioc_s_crop: pointer to the function that implements
237
- * :ref:`VIDIOC_S_CROP <vidioc_g_crop>` ioctl
226
+ * @vidioc_g_pixelaspect: pointer to the function that implements
227
+ * the pixelaspect part of the :ref:`VIDIOC_CROPCAP <vidioc_cropcap>` ioctl
238228 * @vidioc_g_selection: pointer to the function that implements
239229 * :ref:`VIDIOC_G_SELECTION <vidioc_g_selection>` ioctl
240230 * @vidioc_s_selection: pointer to the function that implements
....@@ -317,10 +307,6 @@
317307 struct v4l2_fmtdesc *f);
318308 int (*vidioc_enum_fmt_vid_out)(struct file *file, void *fh,
319309 struct v4l2_fmtdesc *f);
320
- int (*vidioc_enum_fmt_vid_cap_mplane)(struct file *file, void *fh,
321
- struct v4l2_fmtdesc *f);
322
- int (*vidioc_enum_fmt_vid_out_mplane)(struct file *file, void *fh,
323
- struct v4l2_fmtdesc *f);
324310 int (*vidioc_enum_fmt_sdr_cap)(struct file *file, void *fh,
325311 struct v4l2_fmtdesc *f);
326312 int (*vidioc_enum_fmt_sdr_out)(struct file *file, void *fh,
....@@ -508,12 +494,8 @@
508494 int (*vidioc_s_modulator)(struct file *file, void *fh,
509495 const struct v4l2_modulator *a);
510496 /* Crop ioctls */
511
- int (*vidioc_cropcap)(struct file *file, void *fh,
512
- struct v4l2_cropcap *a);
513
- int (*vidioc_g_crop)(struct file *file, void *fh,
514
- struct v4l2_crop *a);
515
- int (*vidioc_s_crop)(struct file *file, void *fh,
516
- const struct v4l2_crop *a);
497
+ int (*vidioc_g_pixelaspect)(struct file *file, void *fh,
498
+ int buf_type, struct v4l2_fract *aspect);
517499 int (*vidioc_g_selection)(struct file *file, void *fh,
518500 struct v4l2_selection *s);
519501 int (*vidioc_s_selection)(struct file *file, void *fh,
....@@ -620,6 +602,8 @@
620602 #define V4L2_DEV_DEBUG_STREAMING 0x08
621603 /* Log poll() */
622604 #define V4L2_DEV_DEBUG_POLL 0x10
605
+/* Log controls */
606
+#define V4L2_DEV_DEBUG_CTRL 0x20
623607
624608 /* Video standard functions */
625609
....@@ -740,4 +724,59 @@
740724 long int video_ioctl2(struct file *file,
741725 unsigned int cmd, unsigned long int arg);
742726
727
+/*
728
+ * The user space interpretation of the 'v4l2_event' differs
729
+ * based on the 'time_t' definition on 32-bit architectures, so
730
+ * the kernel has to handle both.
731
+ * This is the old version for 32-bit architectures.
732
+ */
733
+struct v4l2_event_time32 {
734
+ __u32 type;
735
+ union {
736
+ struct v4l2_event_vsync vsync;
737
+ struct v4l2_event_ctrl ctrl;
738
+ struct v4l2_event_frame_sync frame_sync;
739
+ struct v4l2_event_src_change src_change;
740
+ struct v4l2_event_motion_det motion_det;
741
+ __u8 data[64];
742
+ } u;
743
+ __u32 pending;
744
+ __u32 sequence;
745
+ struct old_timespec32 timestamp;
746
+ __u32 id;
747
+ __u32 reserved[8];
748
+};
749
+
750
+#define VIDIOC_DQEVENT_TIME32 _IOR('V', 89, struct v4l2_event_time32)
751
+
752
+struct v4l2_buffer_time32 {
753
+ __u32 index;
754
+ __u32 type;
755
+ __u32 bytesused;
756
+ __u32 flags;
757
+ __u32 field;
758
+ struct old_timeval32 timestamp;
759
+ struct v4l2_timecode timecode;
760
+ __u32 sequence;
761
+
762
+ /* memory location */
763
+ __u32 memory;
764
+ union {
765
+ __u32 offset;
766
+ unsigned long userptr;
767
+ struct v4l2_plane *planes;
768
+ __s32 fd;
769
+ } m;
770
+ __u32 length;
771
+ __u32 reserved2;
772
+ union {
773
+ __s32 request_fd;
774
+ __u32 reserved;
775
+ };
776
+};
777
+#define VIDIOC_QUERYBUF_TIME32 _IOWR('V', 9, struct v4l2_buffer_time32)
778
+#define VIDIOC_QBUF_TIME32 _IOWR('V', 15, struct v4l2_buffer_time32)
779
+#define VIDIOC_DQBUF_TIME32 _IOWR('V', 17, struct v4l2_buffer_time32)
780
+#define VIDIOC_PREPARE_BUF_TIME32 _IOWR('V', 93, struct v4l2_buffer_time32)
781
+
743782 #endif /* _V4L2_IOCTL_H */