Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git...
[GitHub/LineageOS/android_kernel_samsung_universal7580.git] / include / linux / videodev2.h
index 65d13ec13c1f7ed3c68913f140d2ca7ec17b52d8..047f7e6edb86f12dc38b55dc94e274fb38ef30bf 100644 (file)
@@ -542,6 +542,8 @@ struct v4l2_buffer {
 #define V4L2_BUF_FLAG_KEYFRAME 0x0008  /* Image is a keyframe (I-frame) */
 #define V4L2_BUF_FLAG_PFRAME   0x0010  /* Image is a P-frame */
 #define V4L2_BUF_FLAG_BFRAME   0x0020  /* Image is a B-frame */
+/* Buffer is ready, but the data contained within is corrupted. */
+#define V4L2_BUF_FLAG_ERROR    0x0040
 #define V4L2_BUF_FLAG_TIMECODE 0x0100  /* timecode field is valid */
 #define V4L2_BUF_FLAG_INPUT     0x0200  /* input field is valid */
 
@@ -1026,6 +1028,13 @@ enum v4l2_colorfx {
        V4L2_COLORFX_NONE       = 0,
        V4L2_COLORFX_BW         = 1,
        V4L2_COLORFX_SEPIA      = 2,
+       V4L2_COLORFX_NEGATIVE = 3,
+       V4L2_COLORFX_EMBOSS = 4,
+       V4L2_COLORFX_SKETCH = 5,
+       V4L2_COLORFX_SKY_BLUE = 6,
+       V4L2_COLORFX_GRASS_GREEN = 7,
+       V4L2_COLORFX_SKIN_WHITEN = 8,
+       V4L2_COLORFX_VIVID = 9,
 };
 #define V4L2_CID_AUTOBRIGHTNESS                        (V4L2_CID_BASE+32)
 #define V4L2_CID_BAND_STOP_FILTER              (V4L2_CID_BASE+33)
@@ -1629,6 +1638,38 @@ struct v4l2_streamparm {
        } parm;
 };
 
+/*
+ *     E V E N T S
+ */
+
+#define V4L2_EVENT_ALL                         0
+#define V4L2_EVENT_VSYNC                       1
+#define V4L2_EVENT_EOS                         2
+#define V4L2_EVENT_PRIVATE_START               0x08000000
+
+/* Payload for V4L2_EVENT_VSYNC */
+struct v4l2_event_vsync {
+       /* Can be V4L2_FIELD_ANY, _NONE, _TOP or _BOTTOM */
+       __u8 field;
+} __attribute__ ((packed));
+
+struct v4l2_event {
+       __u32                           type;
+       union {
+               struct v4l2_event_vsync vsync;
+               __u8                    data[64];
+       } u;
+       __u32                           pending;
+       __u32                           sequence;
+       struct timespec                 timestamp;
+       __u32                           reserved[9];
+};
+
+struct v4l2_event_subscription {
+       __u32                           type;
+       __u32                           reserved[7];
+};
+
 /*
  *     A D V A N C E D   D E B U G G I N G
  *
@@ -1751,6 +1792,9 @@ struct v4l2_dbg_chip_ident {
 #define        VIDIOC_QUERY_DV_PRESET  _IOR('V',  86, struct v4l2_dv_preset)
 #define        VIDIOC_S_DV_TIMINGS     _IOWR('V', 87, struct v4l2_dv_timings)
 #define        VIDIOC_G_DV_TIMINGS     _IOWR('V', 88, struct v4l2_dv_timings)
+#define        VIDIOC_DQEVENT           _IOR('V', 89, struct v4l2_event)
+#define        VIDIOC_SUBSCRIBE_EVENT   _IOW('V', 90, struct v4l2_event_subscription)
+#define        VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
 
 /* Reminder: when adding new ioctls please add support for them to
    drivers/media/video/v4l2-compat-ioctl32.c as well! */