v4l-utils: update the headers to the latest kernel version.
authorHans Verkuil <hans.verkuil@cisco.com>
Thu, 17 Jul 2014 17:26:17 +0000 (19:26 +0200)
committerHans Verkuil <hans.verkuil@cisco.com>
Thu, 17 Jul 2014 17:26:17 +0000 (19:26 +0200)
Ran 'make sync-with-kernel' to get everything synced up again.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
17 files changed:
contrib/freebsd/include/linux/input.h
contrib/freebsd/include/linux/ivtv.h
contrib/freebsd/include/linux/uinput.h
contrib/freebsd/include/linux/v4l2-controls.h
contrib/freebsd/include/linux/videodev2.h
contrib/test/ioctl-test.h
contrib/test/ioctl_32.h
contrib/test/ioctl_64.h
include/linux/dvb/dmx.h
include/linux/dvb/frontend.h
include/linux/dvb/video.h
include/linux/fb.h
include/linux/ivtv.h
include/linux/v4l2-controls.h
include/linux/videodev2.h
utils/keytable/parse.h
utils/v4l2-compliance/v4l2-test-formats.cpp

index 431deb7..097cc78 100644 (file)
@@ -5,10 +5,9 @@
  * under the terms of the GNU General Public License version 2 as published by
  * the Free Software Foundation.
  */
-#ifndef _UAPI_INPUT_H
-#define _UAPI_INPUT_H
+#ifndef _INPUT_H
+#define _INPUT_H
 
-#ifndef __KERNEL__
 #include <stdint.h>
 #include <sys/time.h>
 #include <sys/ioctl.h>
@@ -50,7 +49,6 @@ typedef int8_t __s8;
 #else
 #include <linux/types.h>
 #endif
-#endif
 
 
 /*
@@ -498,7 +496,10 @@ struct input_keymap_entry {
 #define KEY_VIDEO_NEXT         241     /* drive next video source */
 #define KEY_VIDEO_PREV         242     /* drive previous video source */
 #define KEY_BRIGHTNESS_CYCLE   243     /* brightness up, after max is min */
-#define KEY_BRIGHTNESS_ZERO    244     /* brightness off, use ambient */
+#define KEY_BRIGHTNESS_AUTO    244     /* Set Auto Brightness: manual
+                                         brightness control is off,
+                                         rely on ambient */
+#define KEY_BRIGHTNESS_ZERO    KEY_BRIGHTNESS_AUTO
 #define KEY_DISPLAY_OFF                245     /* display device to off state */
 
 #define KEY_WWAN               246     /* Wireless WAN (LTE, UMTS, GSM, etc.) */
@@ -668,6 +669,7 @@ struct input_keymap_entry {
 #define KEY_ADDRESSBOOK                0x1ad   /* AL Contacts/Address Book */
 #define KEY_MESSENGER          0x1ae   /* AL Instant Messaging */
 #define KEY_DISPLAYTOGGLE      0x1af   /* Turn display (LCD) on and off */
+#define KEY_BRIGHTNESS_TOGGLE  KEY_DISPLAYTOGGLE
 #define KEY_SPELLCHECK         0x1b0   /* AL Spell Check */
 #define KEY_LOGOFF             0x1b1   /* AL Logoff */
 
@@ -759,6 +761,17 @@ struct input_keymap_entry {
 
 #define KEY_ALS_TOGGLE         0x230   /* Ambient light sensor */
 
+#define KEY_BUTTONCONFIG               0x240   /* AL Button Configuration */
+#define KEY_TASKMANAGER                0x241   /* AL Task/Project Manager */
+#define KEY_JOURNAL            0x242   /* AL Log/Journal/Timecard */
+#define KEY_CONTROLPANEL               0x243   /* AL Control Panel */
+#define KEY_APPSELECT          0x244   /* AL Select Task/Application */
+#define KEY_SCREENSAVER                0x245   /* AL Screen Saver */
+#define KEY_VOICECOMMAND               0x246   /* Listening Voice Command */
+
+#define KEY_BRIGHTNESS_MIN             0x250   /* Set Brightness to Minimum */
+#define KEY_BRIGHTNESS_MAX             0x251   /* Set Brightness to Maximum */
+
 #define BTN_TRIGGER_HAPPY              0x2c0
 #define BTN_TRIGGER_HAPPY1             0x2c0
 #define BTN_TRIGGER_HAPPY2             0x2c1
@@ -1114,7 +1127,7 @@ struct ff_periodic_effect {
        struct ff_envelope envelope;
 
        __u32 custom_len;
-       __s16 __user *custom_data;
+       __s16 *custom_data;
 };
 
 /**
@@ -1209,4 +1222,4 @@ struct ff_effect {
 #define FF_MAX         0x7f
 #define FF_CNT         (FF_MAX+1)
 
-#endif /* _UAPI_INPUT_H */
+#endif /* _INPUT_H */
index c6da75a..73fbc42 100644 (file)
@@ -21,6 +21,7 @@
 #ifndef __LINUX_IVTV_H__
 #define __LINUX_IVTV_H__
 
+
 #include <stdint.h>
 #include <sys/types.h>
 #include <linux/videodev2.h>
@@ -49,9 +50,9 @@
 struct ivtv_dma_frame {
        enum v4l2_buf_type type; /* V4L2_BUF_TYPE_VIDEO_OUTPUT */
        uint32_t pixelformat;    /* 0 == same as destination */
-       void  *y_source;   /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT,
+       void *y_source;   /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT,
                                    then just switch to user DMA YUV output mode */
-       void  *uv_source;  /* Unused for RGB pixelformats */
+       void *uv_source;  /* Unused for RGB pixelformats */
        struct v4l2_rect src;
        struct v4l2_rect dst;
        uint32_t src_width;
index add58b9..83270d3 100644 (file)
@@ -31,8 +31,8 @@
  *     0.1     20/06/2002
  *             - first public version
  */
-#ifndef _UAPI__UINPUT_H_
-#define _UAPI__UINPUT_H_
+#ifndef __UINPUT_H_
+#define __UINPUT_H_
 
 #include <linux/input.h>
 
@@ -144,4 +144,4 @@ struct uinput_user_dev {
        int32_t absfuzz[ABS_CNT];
        int32_t absflat[ABS_CNT];
 };
-#endif /* _UAPI__UINPUT_H_ */
+#endif /* __UINPUT_H_ */
index 2ac5597..db526d1 100644 (file)
@@ -61,6 +61,7 @@
 #define V4L2_CTRL_CLASS_DV             0x00a00000      /* Digital Video controls */
 #define V4L2_CTRL_CLASS_FM_RX          0x00a10000      /* FM Receiver controls */
 #define V4L2_CTRL_CLASS_RF_TUNER       0x00a20000      /* RF tuner controls */
+#define V4L2_CTRL_CLASS_DETECT         0x00a30000      /* Detection controls */
 
 /* User-class control IDs */
 
@@ -914,4 +915,20 @@ enum v4l2_deemphasis {
 #define V4L2_CID_RF_TUNER_IF_GAIN              (V4L2_CID_RF_TUNER_CLASS_BASE + 62)
 #define V4L2_CID_RF_TUNER_PLL_LOCK                     (V4L2_CID_RF_TUNER_CLASS_BASE + 91)
 
+
+/*  Detection-class control IDs defined by V4L2 */
+#define V4L2_CID_DETECT_CLASS_BASE             (V4L2_CTRL_CLASS_DETECT | 0x900)
+#define V4L2_CID_DETECT_CLASS                  (V4L2_CTRL_CLASS_DETECT | 1)
+
+#define V4L2_CID_DETECT_MD_MODE                        (V4L2_CID_DETECT_CLASS_BASE + 1)
+enum v4l2_detect_md_mode {
+       V4L2_DETECT_MD_MODE_DISABLED            = 0,
+       V4L2_DETECT_MD_MODE_GLOBAL              = 1,
+       V4L2_DETECT_MD_MODE_THRESHOLD_GRID      = 2,
+       V4L2_DETECT_MD_MODE_REGION_GRID         = 3,
+};
+#define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD    (V4L2_CID_DETECT_CLASS_BASE + 2)
+#define V4L2_CID_DETECT_MD_THRESHOLD_GRID      (V4L2_CID_DETECT_CLASS_BASE + 3)
+#define V4L2_CID_DETECT_MD_REGION_GRID         (V4L2_CID_DETECT_CLASS_BASE + 4)
+
 #endif
index 9458583..3ea993f 100644 (file)
  *              Hans Verkuil <hverkuil@xs4all.nl>
  *             et al.
  */
-#ifndef _UAPI__LINUX_VIDEODEV2_H
-#define _UAPI__LINUX_VIDEODEV2_H
+#ifndef __LINUX_VIDEODEV2_H
+#define __LINUX_VIDEODEV2_H
 
-#ifndef __KERNEL__
 #include <stdint.h>
 #include <sys/time.h>
 #include <sys/types.h>
@@ -91,8 +90,7 @@ typedef int8_t __s8;
 #endif
 #endif
 
-#else
-#include <linux/compiler.h>
+#ifdef __KERNEL__
 #include <linux/ioctl.h>
 #include <linux/types.h>
 #endif
@@ -302,6 +300,7 @@ struct v4l2_capability {
 #define V4L2_CAP_MODULATOR             0x00080000  /* has a modulator */
 
 #define V4L2_CAP_SDR_CAPTURE           0x00100000  /* Is a SDR capture device */
+#define V4L2_CAP_EXT_PIX_FORMAT                0x00200000  /* Supports the extended pixel format */
 
 #define V4L2_CAP_READWRITE              0x01000000  /* read/write systemcalls */
 #define V4L2_CAP_ASYNCIO                0x02000000  /* async I/O */
@@ -321,6 +320,7 @@ struct v4l2_pix_format {
        uint32_t                        sizeimage;
        uint32_t                        colorspace;     /* enum v4l2_colorspace */
        uint32_t                        priv;           /* private data, depends on pixelformat */
+       uint32_t                        flags;          /* format flags (V4L2_PIX_FMT_FLAG_*) */
 };
 
 /*      Pixel format         FOURCC                          depth  Description  */
@@ -328,7 +328,11 @@ struct v4l2_pix_format {
 /* RGB formats */
 #define V4L2_PIX_FMT_RGB332  v4l2_fourcc('R', 'G', 'B', '1') /*  8  RGB-3-3-2     */
 #define V4L2_PIX_FMT_RGB444  v4l2_fourcc('R', '4', '4', '4') /* 16  xxxxrrrr ggggbbbb */
+#define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16  aaaarrrr ggggbbbb */
+#define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') /* 16  xxxxrrrr ggggbbbb */
 #define V4L2_PIX_FMT_RGB555  v4l2_fourcc('R', 'G', 'B', 'O') /* 16  RGB-5-5-5     */
+#define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16  ARGB-1-5-5-5  */
+#define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16  XRGB-1-5-5-5  */
 #define V4L2_PIX_FMT_RGB565  v4l2_fourcc('R', 'G', 'B', 'P') /* 16  RGB-5-6-5     */
 #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16  RGB-5-5-5 BE  */
 #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16  RGB-5-6-5 BE  */
@@ -336,7 +340,11 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */
 #define V4L2_PIX_FMT_RGB24   v4l2_fourcc('R', 'G', 'B', '3') /* 24  RGB-8-8-8     */
 #define V4L2_PIX_FMT_BGR32   v4l2_fourcc('B', 'G', 'R', '4') /* 32  BGR-8-8-8-8   */
+#define V4L2_PIX_FMT_ABGR32  v4l2_fourcc('A', 'R', '2', '4') /* 32  BGRA-8-8-8-8  */
+#define V4L2_PIX_FMT_XBGR32  v4l2_fourcc('X', 'R', '2', '4') /* 32  BGRX-8-8-8-8  */
 #define V4L2_PIX_FMT_RGB32   v4l2_fourcc('R', 'G', 'B', '4') /* 32  RGB-8-8-8-8   */
+#define V4L2_PIX_FMT_ARGB32  v4l2_fourcc('B', 'A', '2', '4') /* 32  ARGB-8-8-8-8  */
+#define V4L2_PIX_FMT_XRGB32  v4l2_fourcc('B', 'X', '2', '4') /* 32  XRGB-8-8-8-8  */
 
 /* Grey formats */
 #define V4L2_PIX_FMT_GREY    v4l2_fourcc('G', 'R', 'E', 'Y') /*  8  Greyscale     */
@@ -474,6 +482,12 @@ struct v4l2_pix_format {
 #define V4L2_SDR_FMT_CU8          v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
 #define V4L2_SDR_FMT_CU16LE       v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
 
+/* priv field value to indicates that subsequent fields are valid. */
+#define V4L2_PIX_FMT_PRIV_MAGIC                0xfeedcafe
+
+/* Flags */
+#define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001
+
 /*
  *     F O R M A T   E N U M E R A T I O N
  */
@@ -778,7 +792,16 @@ struct v4l2_framebuffer {
 /* FIXME: in theory we should pass something like PCI device + memory
  * region + offset instead of some physical address */
        void                    *base;
-       struct v4l2_pix_format  fmt;
+       struct {
+               uint32_t                width;
+               uint32_t                height;
+               uint32_t                pixelformat;
+               uint32_t                field;          /* enum v4l2_field */
+               uint32_t                bytesperline;   /* for padding, zero if unused */
+               uint32_t                sizeimage;
+               uint32_t                colorspace;     /* enum v4l2_colorspace */
+               uint32_t                priv;           /* reserved field, set to 0 */
+       } fmt;
 };
 /*  Flags for the 'capability' field. Read only */
 #define V4L2_FBUF_CAP_EXTERNOVERLAY    0x0001
@@ -800,16 +823,16 @@ struct v4l2_framebuffer {
 
 struct v4l2_clip {
        struct v4l2_rect        c;
-       struct v4l2_clip         *next;
+       struct v4l2_clip        *next;
 };
 
 struct v4l2_window {
        struct v4l2_rect        w;
        uint32_t                        field;   /* enum v4l2_field */
        uint32_t                        chromakey;
-       struct v4l2_clip         *clips;
+       struct v4l2_clip        *clips;
        uint32_t                        clipcount;
-       void                     *bitmap;
+       void                    *bitmap;
        uint8_t                    global_alpha;
 };
 
@@ -1288,6 +1311,9 @@ struct v4l2_ext_control {
                int32_t value;
                int64_t value64;
                char *string;
+               uint8_t *p_u8;
+               uint16_t *p_u16;
+               void *ptr;
        };
 } __attribute__ ((packed));
 
@@ -1302,6 +1328,7 @@ struct v4l2_ext_controls {
 #define V4L2_CTRL_ID_MASK                (0x0fffffff)
 #define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL)
 #define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
+#define V4L2_CTRL_MAX_DIMS       (4)
 
 enum v4l2_ctrl_type {
        V4L2_CTRL_TYPE_INTEGER       = 1,
@@ -1312,7 +1339,12 @@ enum v4l2_ctrl_type {
        V4L2_CTRL_TYPE_CTRL_CLASS    = 6,
        V4L2_CTRL_TYPE_STRING        = 7,
        V4L2_CTRL_TYPE_BITMASK       = 8,
-       V4L2_CTRL_TYPE_INTEGER_MENU = 9,
+       V4L2_CTRL_TYPE_INTEGER_MENU  = 9,
+
+       /* Compound types are >= 0x0100 */
+       V4L2_CTRL_COMPOUND_TYPES     = 0x0100,
+       V4L2_CTRL_TYPE_U8            = 0x0100,
+       V4L2_CTRL_TYPE_U16           = 0x0101,
 };
 
 /*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@@ -1328,6 +1360,23 @@ struct v4l2_queryctrl {
        uint32_t                     reserved[2];
 };
 
+/*  Used in the VIDIOC_QUERY_EXT_CTRL ioctl for querying extended controls */
+struct v4l2_query_ext_ctrl {
+       uint32_t                     id;
+       uint32_t                     type;
+       char                 name[32];
+       int64_t              minimum;
+       int64_t              maximum;
+       uint64_t                     step;
+       int64_t              default_value;
+       uint32_t                flags;
+       uint32_t                elem_size;
+       uint32_t                elems;
+       uint32_t                nr_of_dims;
+       uint32_t                dims[V4L2_CTRL_MAX_DIMS];
+       uint32_t                     reserved[32];
+};
+
 /*  Used in the VIDIOC_QUERYMENU ioctl for querying menu items */
 struct v4l2_querymenu {
        uint32_t                id;
@@ -1348,9 +1397,11 @@ struct v4l2_querymenu {
 #define V4L2_CTRL_FLAG_SLIDER          0x0020
 #define V4L2_CTRL_FLAG_WRITE_ONLY      0x0040
 #define V4L2_CTRL_FLAG_VOLATILE                0x0080
+#define V4L2_CTRL_FLAG_HAS_PAYLOAD     0x0100
 
-/*  Query flag, to be ORed with the control ID */
+/*  Query flags, to be ORed with the control ID */
 #define V4L2_CTRL_FLAG_NEXT_CTRL       0x80000000
+#define V4L2_CTRL_FLAG_NEXT_COMPOUND   0x40000000
 
 /*  User-class control IDs defined by V4L2 */
 #define V4L2_CID_MAX_CTRLS             1024
@@ -1739,6 +1790,7 @@ struct v4l2_plane_pix_format {
  * @colorspace:                enum v4l2_colorspace; supplemental to pixelformat
  * @plane_fmt:         per-plane information
  * @num_planes:                number of planes for this format
+ * @flags:             format flags (V4L2_PIX_FMT_FLAG_*)
  */
 struct v4l2_pix_format_mplane {
        uint32_t                                width;
@@ -1749,7 +1801,8 @@ struct v4l2_pix_format_mplane {
 
        struct v4l2_plane_pix_format    plane_fmt[VIDEO_MAX_PLANES];
        uint8_t                         num_planes;
-       uint8_t                         reserved[11];
+       uint8_t                         flags;
+       uint8_t                         reserved[10];
 } __attribute__ ((packed));
 
 /**
@@ -1805,6 +1858,7 @@ struct v4l2_streamparm {
 #define V4L2_EVENT_CTRL                                3
 #define V4L2_EVENT_FRAME_SYNC                  4
 #define V4L2_EVENT_SOURCE_CHANGE               5
+#define V4L2_EVENT_MOTION_DET                  6
 #define V4L2_EVENT_PRIVATE_START               0x08000000
 
 /* Payload for V4L2_EVENT_VSYNC */
@@ -1842,6 +1896,21 @@ struct v4l2_event_src_change {
        uint32_t changes;
 };
 
+#define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ        (1 << 0)
+
+/**
+ * struct v4l2_event_motion_det - motion detection event
+ * @flags:             if V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ is set, then the
+ *                     frame_sequence field is valid.
+ * @frame_sequence:    the frame sequence number associated with this event.
+ * @region_mask:       which regions detected motion.
+ */
+struct v4l2_event_motion_det {
+       uint32_t flags;
+       uint32_t frame_sequence;
+       uint32_t region_mask;
+};
+
 struct v4l2_event {
        uint32_t                                type;
        union {
@@ -1849,6 +1918,7 @@ struct v4l2_event {
                struct v4l2_event_ctrl          ctrl;
                struct v4l2_event_frame_sync    frame_sync;
                struct v4l2_event_src_change    src_change;
+               struct v4l2_event_motion_det    motion_det;
                uint8_t                         data[64];
        } u;
        uint32_t                                pending;
@@ -2039,9 +2109,11 @@ struct v4l2_create_buffers {
    Never use these in applications! */
 #define VIDIOC_DBG_G_CHIP_INFO  _IOWR('V', 102, struct v4l2_dbg_chip_info)
 
+#define VIDIOC_QUERY_EXT_CTRL  _IOWR('V', 103, struct v4l2_query_ext_ctrl)
+
 /* Reminder: when adding new ioctls please add support for them to
    drivers/media/video/v4l2-compat-ioctl32.c as well! */
 
 #define BASE_VIDIOC_PRIVATE    192             /* 192-255 are private */
 
-#endif /* _UAPI__LINUX_VIDEODEV2_H */
+#endif /* __LINUX_VIDEODEV2_H */
index a2b6b07..9a213ca 100644 (file)
@@ -57,6 +57,7 @@ union v4l_parms {
        struct v4l2_jpegcompression             p_v4l2_jpegcompression;
        struct v4l2_modulator                   p_v4l2_modulator;
        struct v4l2_output                      p_v4l2_output;
+       struct v4l2_query_ext_ctrl              p_v4l2_query_ext_ctrl;
        struct v4l2_queryctrl                   p_v4l2_queryctrl;
        struct v4l2_querymenu                   p_v4l2_querymenu;
        struct v4l2_requestbuffers              p_v4l2_requestbuffers;
@@ -167,6 +168,7 @@ static const struct {
        ioc(video, VIDIOC_QUERYMENU),                                                   /*  struct v4l2_querymenu */
        ioc(video, VIDIOC_QUERYSTD),                                                    /*  v4l2_std_id */
        ioc(video, VIDIOC_QUERY_DV_TIMINGS),                                            /*  struct v4l2_dv_timings */
+       ioc(video, VIDIOC_QUERY_EXT_CTRL),                                              /*  struct v4l2_query_ext_ctrl */
        ioc(video, VIDIOC_REQBUFS),                                                     /*  struct v4l2_requestbuffers */
        ioc(video, VIDIOC_RESERVED),                                                    /*  void */
        ioc(video, VIDIOC_STREAMOFF),                                                   /*  int */
index 2a5c70e..25bfef3 100644 (file)
@@ -83,6 +83,7 @@
 #define CMD32_VIDIOC_QUERYMENU 0xc02c5625
 #define CMD32_VIDIOC_QUERYSTD 0x8008563f
 #define CMD32_VIDIOC_QUERY_DV_TIMINGS 0x80845663
+#define CMD32_VIDIOC_QUERY_EXT_CTRL 0xc0e85667
 #define CMD32_VIDIOC_REQBUFS 0xc0145608
 #define CMD32_VIDIOC_RESERVED 0x5601
 #define CMD32_VIDIOC_STREAMOFF 0x40045613
index 6487ea3..fa36603 100644 (file)
@@ -83,6 +83,7 @@
 #define CMD64_VIDIOC_QUERYMENU 0xc02c5625
 #define CMD64_VIDIOC_QUERYSTD 0x8008563f
 #define CMD64_VIDIOC_QUERY_DV_TIMINGS 0x80845663
+#define CMD64_VIDIOC_QUERY_EXT_CTRL 0xc0e85667
 #define CMD64_VIDIOC_REQBUFS 0xc0145608
 #define CMD64_VIDIOC_RESERVED 0x5601
 #define CMD64_VIDIOC_STREAMOFF 0x40045613
index b4fb650..4ed210a 100644 (file)
  *
  */
 
-#ifndef _UAPI_DVBDMX_H_
-#define _UAPI_DVBDMX_H_
+#ifndef _DVBDMX_H_
+#define _DVBDMX_H_
 
 #include <linux/types.h>
-#ifndef __KERNEL__
 #include <time.h>
-#endif
 
 
 #define DMX_FILTER_SIZE 16
@@ -152,4 +150,4 @@ struct dmx_stc {
 #define DMX_ADD_PID              _IOW('o', 51, __u16)
 #define DMX_REMOVE_PID           _IOW('o', 52, __u16)
 
-#endif /* _UAPI_DVBDMX_H_ */
+#endif /* _DVBDMX_H_ */
index c56d77c..5cb498d 100644 (file)
@@ -197,7 +197,6 @@ typedef enum fe_transmit_mode {
        TRANSMISSION_MODE_C3780,
 } fe_transmit_mode_t;
 
-#if defined(__DVB_CORE__) || !defined (__KERNEL__)
 typedef enum fe_bandwidth {
        BANDWIDTH_8_MHZ,
        BANDWIDTH_7_MHZ,
@@ -207,7 +206,6 @@ typedef enum fe_bandwidth {
        BANDWIDTH_10_MHZ,
        BANDWIDTH_1_712_MHZ,
 } fe_bandwidth_t;
-#endif
 
 typedef enum fe_guard_interval {
        GUARD_INTERVAL_1_32,
@@ -239,7 +237,6 @@ enum fe_interleaving {
        INTERLEAVING_720,
 };
 
-#if defined(__DVB_CORE__) || !defined (__KERNEL__)
 struct dvb_qpsk_parameters {
        __u32           symbol_rate;  /* symbol rate in Symbols per second */
        fe_code_rate_t  fec_inner;    /* forward error correction (see above) */
@@ -282,7 +279,6 @@ struct dvb_frontend_event {
        fe_status_t status;
        struct dvb_frontend_parameters parameters;
 };
-#endif
 
 /* S2API Commands */
 #define DTV_UNDEFINED          0
index d3d14a5..4bb276c 100644 (file)
  *
  */
 
-#ifndef _UAPI_DVBVIDEO_H_
-#define _UAPI_DVBVIDEO_H_
+#ifndef _DVBVIDEO_H_
+#define _DVBVIDEO_H_
 
 #include <linux/types.h>
-#ifndef __KERNEL__
 #include <stdint.h>
 #include <time.h>
-#endif
 
 typedef enum {
        VIDEO_FORMAT_4_3,     /* Select 4:3 format */
@@ -154,7 +152,7 @@ struct video_status {
 
 
 struct video_still_picture {
-       char __user *iFrame;        /* pointer to a single iframe in memory */
+       char *iFrame;        /* pointer to a single iframe in memory */
        __s32 size;
 };
 
@@ -187,7 +185,7 @@ typedef struct video_spu {
 
 typedef struct video_spu_palette {      /* SPU Palette information */
        int length;
-       __u8 __user *palette;
+       __u8 *palette;
 } video_spu_palette_t;
 
 
@@ -271,4 +269,4 @@ typedef __u16 video_attributes_t;
 #define VIDEO_COMMAND             _IOWR('o', 59, struct video_command)
 #define VIDEO_TRY_COMMAND         _IOWR('o', 60, struct video_command)
 
-#endif /* _UAPI_DVBVIDEO_H_ */
+#endif /* _DVBVIDEO_H_ */
index fb795c3..1b3b239 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _UAPI_LINUX_FB_H
-#define _UAPI_LINUX_FB_H
+#ifndef _LINUX_FB_H
+#define _LINUX_FB_H
 
 #include <linux/types.h>
 #include <linux/i2c.h>
@@ -16,9 +16,7 @@
 #define FBIOGETCMAP            0x4604
 #define FBIOPUTCMAP            0x4605
 #define FBIOPAN_DISPLAY                0x4606
-#ifndef __KERNEL__
 #define FBIO_CURSOR            _IOWR('F', 0x08, struct fb_cursor)
-#endif
 /* 0x4607-0x460B are defined below */
 /* #define FBIOGET_MONITORSPEC 0x460C */
 /* #define FBIOPUT_MONITORSPEC 0x460D */
@@ -399,4 +397,4 @@ struct fb_cursor {
 #endif
 
 
-#endif /* _UAPI_LINUX_FB_H */
+#endif /* _LINUX_FB_H */
index 42bf725..120e82c 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef __LINUX_IVTV_H__
 #define __LINUX_IVTV_H__
 
-#include <linux/compiler.h>
+
 #include <linux/types.h>
 #include <linux/videodev2.h>
 
@@ -49,9 +49,9 @@
 struct ivtv_dma_frame {
        enum v4l2_buf_type type; /* V4L2_BUF_TYPE_VIDEO_OUTPUT */
        __u32 pixelformat;       /* 0 == same as destination */
-       void __user *y_source;   /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT,
+       void *y_source;   /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT,
                                    then just switch to user DMA YUV output mode */
-       void __user *uv_source;  /* Unused for RGB pixelformats */
+       void *uv_source;  /* Unused for RGB pixelformats */
        struct v4l2_rect src;
        struct v4l2_rect dst;
        __u32 src_width;
index 2ac5597..db526d1 100644 (file)
@@ -61,6 +61,7 @@
 #define V4L2_CTRL_CLASS_DV             0x00a00000      /* Digital Video controls */
 #define V4L2_CTRL_CLASS_FM_RX          0x00a10000      /* FM Receiver controls */
 #define V4L2_CTRL_CLASS_RF_TUNER       0x00a20000      /* RF tuner controls */
+#define V4L2_CTRL_CLASS_DETECT         0x00a30000      /* Detection controls */
 
 /* User-class control IDs */
 
@@ -914,4 +915,20 @@ enum v4l2_deemphasis {
 #define V4L2_CID_RF_TUNER_IF_GAIN              (V4L2_CID_RF_TUNER_CLASS_BASE + 62)
 #define V4L2_CID_RF_TUNER_PLL_LOCK                     (V4L2_CID_RF_TUNER_CLASS_BASE + 91)
 
+
+/*  Detection-class control IDs defined by V4L2 */
+#define V4L2_CID_DETECT_CLASS_BASE             (V4L2_CTRL_CLASS_DETECT | 0x900)
+#define V4L2_CID_DETECT_CLASS                  (V4L2_CTRL_CLASS_DETECT | 1)
+
+#define V4L2_CID_DETECT_MD_MODE                        (V4L2_CID_DETECT_CLASS_BASE + 1)
+enum v4l2_detect_md_mode {
+       V4L2_DETECT_MD_MODE_DISABLED            = 0,
+       V4L2_DETECT_MD_MODE_GLOBAL              = 1,
+       V4L2_DETECT_MD_MODE_THRESHOLD_GRID      = 2,
+       V4L2_DETECT_MD_MODE_REGION_GRID         = 3,
+};
+#define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD    (V4L2_CID_DETECT_CLASS_BASE + 2)
+#define V4L2_CID_DETECT_MD_THRESHOLD_GRID      (V4L2_CID_DETECT_CLASS_BASE + 3)
+#define V4L2_CID_DETECT_MD_REGION_GRID         (V4L2_CID_DETECT_CLASS_BASE + 4)
+
 #endif
index 168ff50..ac700c9 100644 (file)
  *              Hans Verkuil <hverkuil@xs4all.nl>
  *             et al.
  */
-#ifndef _UAPI__LINUX_VIDEODEV2_H
-#define _UAPI__LINUX_VIDEODEV2_H
+#ifndef __LINUX_VIDEODEV2_H
+#define __LINUX_VIDEODEV2_H
 
-#ifndef __KERNEL__
 #include <sys/time.h>
-#endif
-#include <linux/compiler.h>
+
 #include <linux/ioctl.h>
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
@@ -268,6 +266,7 @@ struct v4l2_capability {
 #define V4L2_CAP_MODULATOR             0x00080000  /* has a modulator */
 
 #define V4L2_CAP_SDR_CAPTURE           0x00100000  /* Is a SDR capture device */
+#define V4L2_CAP_EXT_PIX_FORMAT                0x00200000  /* Supports the extended pixel format */
 
 #define V4L2_CAP_READWRITE              0x01000000  /* read/write systemcalls */
 #define V4L2_CAP_ASYNCIO                0x02000000  /* async I/O */
@@ -287,6 +286,7 @@ struct v4l2_pix_format {
        __u32                   sizeimage;
        __u32                   colorspace;     /* enum v4l2_colorspace */
        __u32                   priv;           /* private data, depends on pixelformat */
+       __u32                   flags;          /* format flags (V4L2_PIX_FMT_FLAG_*) */
 };
 
 /*      Pixel format         FOURCC                          depth  Description  */
@@ -294,7 +294,11 @@ struct v4l2_pix_format {
 /* RGB formats */
 #define V4L2_PIX_FMT_RGB332  v4l2_fourcc('R', 'G', 'B', '1') /*  8  RGB-3-3-2     */
 #define V4L2_PIX_FMT_RGB444  v4l2_fourcc('R', '4', '4', '4') /* 16  xxxxrrrr ggggbbbb */
+#define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16  aaaarrrr ggggbbbb */
+#define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') /* 16  xxxxrrrr ggggbbbb */
 #define V4L2_PIX_FMT_RGB555  v4l2_fourcc('R', 'G', 'B', 'O') /* 16  RGB-5-5-5     */
+#define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16  ARGB-1-5-5-5  */
+#define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16  XRGB-1-5-5-5  */
 #define V4L2_PIX_FMT_RGB565  v4l2_fourcc('R', 'G', 'B', 'P') /* 16  RGB-5-6-5     */
 #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16  RGB-5-5-5 BE  */
 #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16  RGB-5-6-5 BE  */
@@ -302,7 +306,11 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */
 #define V4L2_PIX_FMT_RGB24   v4l2_fourcc('R', 'G', 'B', '3') /* 24  RGB-8-8-8     */
 #define V4L2_PIX_FMT_BGR32   v4l2_fourcc('B', 'G', 'R', '4') /* 32  BGR-8-8-8-8   */
+#define V4L2_PIX_FMT_ABGR32  v4l2_fourcc('A', 'R', '2', '4') /* 32  BGRA-8-8-8-8  */
+#define V4L2_PIX_FMT_XBGR32  v4l2_fourcc('X', 'R', '2', '4') /* 32  BGRX-8-8-8-8  */
 #define V4L2_PIX_FMT_RGB32   v4l2_fourcc('R', 'G', 'B', '4') /* 32  RGB-8-8-8-8   */
+#define V4L2_PIX_FMT_ARGB32  v4l2_fourcc('B', 'A', '2', '4') /* 32  ARGB-8-8-8-8  */
+#define V4L2_PIX_FMT_XRGB32  v4l2_fourcc('B', 'X', '2', '4') /* 32  XRGB-8-8-8-8  */
 
 /* Grey formats */
 #define V4L2_PIX_FMT_GREY    v4l2_fourcc('G', 'R', 'E', 'Y') /*  8  Greyscale     */
@@ -440,6 +448,12 @@ struct v4l2_pix_format {
 #define V4L2_SDR_FMT_CU8          v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
 #define V4L2_SDR_FMT_CU16LE       v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
 
+/* priv field value to indicates that subsequent fields are valid. */
+#define V4L2_PIX_FMT_PRIV_MAGIC                0xfeedcafe
+
+/* Flags */
+#define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001
+
 /*
  *     F O R M A T   E N U M E R A T I O N
  */
@@ -744,7 +758,16 @@ struct v4l2_framebuffer {
 /* FIXME: in theory we should pass something like PCI device + memory
  * region + offset instead of some physical address */
        void                    *base;
-       struct v4l2_pix_format  fmt;
+       struct {
+               __u32           width;
+               __u32           height;
+               __u32           pixelformat;
+               __u32           field;          /* enum v4l2_field */
+               __u32           bytesperline;   /* for padding, zero if unused */
+               __u32           sizeimage;
+               __u32           colorspace;     /* enum v4l2_colorspace */
+               __u32           priv;           /* reserved field, set to 0 */
+       } fmt;
 };
 /*  Flags for the 'capability' field. Read only */
 #define V4L2_FBUF_CAP_EXTERNOVERLAY    0x0001
@@ -766,16 +789,16 @@ struct v4l2_framebuffer {
 
 struct v4l2_clip {
        struct v4l2_rect        c;
-       struct v4l2_clip        __user *next;
+       struct v4l2_clip        *next;
 };
 
 struct v4l2_window {
        struct v4l2_rect        w;
        __u32                   field;   /* enum v4l2_field */
        __u32                   chromakey;
-       struct v4l2_clip        __user *clips;
+       struct v4l2_clip        *clips;
        __u32                   clipcount;
-       void                    __user *bitmap;
+       void                    *bitmap;
        __u8                    global_alpha;
 };
 
@@ -1254,6 +1277,9 @@ struct v4l2_ext_control {
                __s32 value;
                __s64 value64;
                char *string;
+               __u8 *p_u8;
+               __u16 *p_u16;
+               void *ptr;
        };
 } __attribute__ ((packed));
 
@@ -1268,6 +1294,7 @@ struct v4l2_ext_controls {
 #define V4L2_CTRL_ID_MASK                (0x0fffffff)
 #define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL)
 #define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
+#define V4L2_CTRL_MAX_DIMS       (4)
 
 enum v4l2_ctrl_type {
        V4L2_CTRL_TYPE_INTEGER       = 1,
@@ -1278,7 +1305,12 @@ enum v4l2_ctrl_type {
        V4L2_CTRL_TYPE_CTRL_CLASS    = 6,
        V4L2_CTRL_TYPE_STRING        = 7,
        V4L2_CTRL_TYPE_BITMASK       = 8,
-       V4L2_CTRL_TYPE_INTEGER_MENU = 9,
+       V4L2_CTRL_TYPE_INTEGER_MENU  = 9,
+
+       /* Compound types are >= 0x0100 */
+       V4L2_CTRL_COMPOUND_TYPES     = 0x0100,
+       V4L2_CTRL_TYPE_U8            = 0x0100,
+       V4L2_CTRL_TYPE_U16           = 0x0101,
 };
 
 /*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@@ -1294,6 +1326,23 @@ struct v4l2_queryctrl {
        __u32                reserved[2];
 };
 
+/*  Used in the VIDIOC_QUERY_EXT_CTRL ioctl for querying extended controls */
+struct v4l2_query_ext_ctrl {
+       __u32                id;
+       __u32                type;
+       char                 name[32];
+       __s64                minimum;
+       __s64                maximum;
+       __u64                step;
+       __s64                default_value;
+       __u32                flags;
+       __u32                elem_size;
+       __u32                elems;
+       __u32                nr_of_dims;
+       __u32                dims[V4L2_CTRL_MAX_DIMS];
+       __u32                reserved[32];
+};
+
 /*  Used in the VIDIOC_QUERYMENU ioctl for querying menu items */
 struct v4l2_querymenu {
        __u32           id;
@@ -1314,9 +1363,11 @@ struct v4l2_querymenu {
 #define V4L2_CTRL_FLAG_SLIDER          0x0020
 #define V4L2_CTRL_FLAG_WRITE_ONLY      0x0040
 #define V4L2_CTRL_FLAG_VOLATILE                0x0080
+#define V4L2_CTRL_FLAG_HAS_PAYLOAD     0x0100
 
-/*  Query flag, to be ORed with the control ID */
+/*  Query flags, to be ORed with the control ID */
 #define V4L2_CTRL_FLAG_NEXT_CTRL       0x80000000
+#define V4L2_CTRL_FLAG_NEXT_COMPOUND   0x40000000
 
 /*  User-class control IDs defined by V4L2 */
 #define V4L2_CID_MAX_CTRLS             1024
@@ -1705,6 +1756,7 @@ struct v4l2_plane_pix_format {
  * @colorspace:                enum v4l2_colorspace; supplemental to pixelformat
  * @plane_fmt:         per-plane information
  * @num_planes:                number of planes for this format
+ * @flags:             format flags (V4L2_PIX_FMT_FLAG_*)
  */
 struct v4l2_pix_format_mplane {
        __u32                           width;
@@ -1715,7 +1767,8 @@ struct v4l2_pix_format_mplane {
 
        struct v4l2_plane_pix_format    plane_fmt[VIDEO_MAX_PLANES];
        __u8                            num_planes;
-       __u8                            reserved[11];
+       __u8                            flags;
+       __u8                            reserved[10];
 } __attribute__ ((packed));
 
 /**
@@ -1771,6 +1824,7 @@ struct v4l2_streamparm {
 #define V4L2_EVENT_CTRL                                3
 #define V4L2_EVENT_FRAME_SYNC                  4
 #define V4L2_EVENT_SOURCE_CHANGE               5
+#define V4L2_EVENT_MOTION_DET                  6
 #define V4L2_EVENT_PRIVATE_START               0x08000000
 
 /* Payload for V4L2_EVENT_VSYNC */
@@ -1808,6 +1862,21 @@ struct v4l2_event_src_change {
        __u32 changes;
 };
 
+#define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ        (1 << 0)
+
+/**
+ * struct v4l2_event_motion_det - motion detection event
+ * @flags:             if V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ is set, then the
+ *                     frame_sequence field is valid.
+ * @frame_sequence:    the frame sequence number associated with this event.
+ * @region_mask:       which regions detected motion.
+ */
+struct v4l2_event_motion_det {
+       __u32 flags;
+       __u32 frame_sequence;
+       __u32 region_mask;
+};
+
 struct v4l2_event {
        __u32                           type;
        union {
@@ -1815,6 +1884,7 @@ struct v4l2_event {
                struct v4l2_event_ctrl          ctrl;
                struct v4l2_event_frame_sync    frame_sync;
                struct v4l2_event_src_change    src_change;
+               struct v4l2_event_motion_det    motion_det;
                __u8                            data[64];
        } u;
        __u32                           pending;
@@ -2005,9 +2075,11 @@ struct v4l2_create_buffers {
    Never use these in applications! */
 #define VIDIOC_DBG_G_CHIP_INFO  _IOWR('V', 102, struct v4l2_dbg_chip_info)
 
+#define VIDIOC_QUERY_EXT_CTRL  _IOWR('V', 103, struct v4l2_query_ext_ctrl)
+
 /* Reminder: when adding new ioctls please add support for them to
    drivers/media/video/v4l2-compat-ioctl32.c as well! */
 
 #define BASE_VIDIOC_PRIVATE    192             /* 192-255 are private */
 
-#endif /* _UAPI__LINUX_VIDEODEV2_H */
+#endif /* __LINUX_VIDEODEV2_H */
index 6e93cc3..93d8046 100644 (file)
@@ -267,7 +267,7 @@ struct parse_event key_events[] = {
        {"KEY_VIDEO_NEXT", 241},
        {"KEY_VIDEO_PREV", 242},
        {"KEY_BRIGHTNESS_CYCLE", 243},
-       {"KEY_BRIGHTNESS_ZERO", 244},
+       {"KEY_BRIGHTNESS_AUTO", 244},
        {"KEY_DISPLAY_OFF", 245},
        {"KEY_WWAN", 246},
        {"KEY_RFKILL", 247},
@@ -499,6 +499,15 @@ struct parse_event key_events[] = {
        {"BTN_DPAD_LEFT", 0x222},
        {"BTN_DPAD_RIGHT", 0x223},
        {"KEY_ALS_TOGGLE", 0x230},
+       {"KEY_BUTTONCONFIG", 0x240},
+       {"KEY_TASKMANAGER", 0x241},
+       {"KEY_JOURNAL", 0x242},
+       {"KEY_CONTROLPANEL", 0x243},
+       {"KEY_APPSELECT", 0x244},
+       {"KEY_SCREENSAVER", 0x245},
+       {"KEY_VOICECOMMAND", 0x246},
+       {"KEY_BRIGHTNESS_MIN", 0x250},
+       {"KEY_BRIGHTNESS_MAX", 0x251},
        {"BTN_TRIGGER_HAPPY", 0x2c0},
        {"BTN_TRIGGER_HAPPY1", 0x2c0},
        {"BTN_TRIGGER_HAPPY2", 0x2c1},
index 166495d..e0466f7 100644 (file)
@@ -323,7 +323,6 @@ static int testColorspace(__u32 pixelformat, __u32 colorspace)
 int testFBuf(struct node *node)
 {
        struct v4l2_framebuffer fbuf;
-       struct v4l2_pix_format &fmt = fbuf.fmt;
        __u32 caps;
        __u32 flags;
        int ret;
@@ -351,18 +350,18 @@ int testFBuf(struct node *node)
                fail_on_test(!(caps & V4L2_FBUF_CAP_LOCAL_INV_ALPHA));
        if (flags & V4L2_FBUF_FLAG_SRC_CHROMAKEY)
                fail_on_test(!(caps & V4L2_FBUF_CAP_SRC_CHROMAKEY));
-       fail_on_test(!fmt.width || !fmt.height);
-       if (fmt.priv)
+       fail_on_test(!fbuf.fmt.width || !fbuf.fmt.height);
+       if (fbuf.fmt.priv)
                warn("fbuf.fmt.priv is non-zero\n");
        /* Not yet: unclear what EXTERNOVERLAY means in a output overlay context
        if (caps & V4L2_FBUF_CAP_EXTERNOVERLAY) {
-               fail_on_test(fmt.bytesperline);
-               fail_on_test(fmt.sizeimage);
+               fail_on_test(fbuf.fmt.bytesperline);
+               fail_on_test(fbuf.fmt.sizeimage);
                fail_on_test(fbuf.base);
        }*/
-       fail_on_test(fmt.bytesperline && fmt.bytesperline < fmt.width);
-       fail_on_test(fmt.sizeimage && fmt.sizeimage < fmt.bytesperline * fmt.height);
-       fail_on_test(testColorspace(fmt.pixelformat, fmt.colorspace));
+       fail_on_test(fbuf.fmt.bytesperline && fbuf.fmt.bytesperline < fbuf.fmt.width);
+       fail_on_test(fbuf.fmt.sizeimage && fbuf.fmt.sizeimage < fbuf.fmt.bytesperline * fbuf.fmt.height);
+       fail_on_test(testColorspace(fbuf.fmt.pixelformat, fbuf.fmt.colorspace));
        return 0;
 }