History

Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media update from Mauro Carvalho Chehab: - OF documentation and patches at core and drivers, to be used by for embedded media systems - some I2C drivers used on go7007 were rewritten/promoted from staging: sony-btf-mpx, tw2804, tw9903, tw9906, wis-ov7640, wis-uda1342 - add fimc-is driver (Exynos) - add a new radio driver: radio-si476x - add a two new tuners: r820t and tuner_it913x - split camera code on em28xx driver and add more models - the cypress firmware load is used outside dvb usb drivers. So, move it to a common directory to make easier to re-use it - siano media driver updated to work with sms2270 devices - several work done in order to promote go7007 and solo6x1x out of staging (still, there are some pending issues) - several API compliance fixes at v4l2 drivers that don't behave as expected - as usual, lots of driver fixes, improvements, cleanups and new device addition at the existing drivers. * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (831 commits) [media] cx88: make core less verbose [media] em28xx: fix oops at em28xx_dvb_bus_ctrl() [media] s5c73m3: fix indentation of the help section in Kconfig [media] cx25821-alsa: get rid of a __must_check warning [media] cx25821-video: declare cx25821_vidioc_s_std as static [media] cx25821-video: remove maxw from cx25821_vidioc_try_fmt_vid_cap [media] r820t: Remove a warning for an unused value [media] dib0090: Fix a warning at dib0090_set_EFUSE [media] dib8000: fix a warning [media] dib8000: Fix sub-channel range [media] dib8000: store dtv_property_cache in a temp var [media] dib8000: warning fix: declare internal functions as static [media] r820t: quiet gcc warning on n_ring [media] r820t: memory leak in release() [media] r820t: precendence bug in r820t_xtal_check() [media] videodev2.h: Remove the unused old V4L1 buffer types [media] anysee: Grammar s/report the/report to/ [media] anysee: Initialize ret = 0 in anysee_frontend_attach() [media] media: videobuf2: fix the length check for mmap [media] em28xx: save isoc endpoint number for DVB only if endpoint has alt settings with xMaxPacketSize != 0 ...

Linus Torvalds committed 13 years ago

Commit 240c3c32 parents 19b344e df90e22653 files · +40821 −28643Browse files

Showing the changes to include/uapi/linux (6 of 653 files). Show all

Unified · Split

6 files
  1. include/uapi/linux/dvb/dmx.h +1 −1
  2. include/uapi/linux/media.h +2 −0
  3. include/uapi/linux/v4l2-controls.h +28 −0
  4. include/uapi/linux/v4l2-dv-timings.h +18 −0
  5. include/uapi/linux/v4l2-mediabus.h +5 −1
  6. include/uapi/linux/videodev2.h +26 −85
include/uapi/linux/dvb/dmx.h+1−1
@@ -51,7 +51,7 @@ typedef enum · 50 unmodified lines
5151 } dmx_input_t;
5252
5353
54−typedef enum
54+typedef enum dmx_ts_pes
5555 {
5656 DMX_PES_AUDIO0,
5757 DMX_PES_VIDEO0,
include/uapi/linux/media.h+2−0
@@ -56,6 +56,8 @@ struct media_device_info { · 55 unmodified lines
5656 #define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1)
5757 #define MEDIA_ENT_T_V4L2_SUBDEV_FLASH (MEDIA_ENT_T_V4L2_SUBDEV + 2)
5858 #define MEDIA_ENT_T_V4L2_SUBDEV_LENS (MEDIA_ENT_T_V4L2_SUBDEV + 3)
59+/* A converter of analogue video to its digital representation. */
60+#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER (MEDIA_ENT_T_V4L2_SUBDEV + 4)
5961
6062 #define MEDIA_ENT_FL_DEFAULT (1 << 0)
6163
include/uapi/linux/v4l2-controls.h+28−0
@@ -59,6 +59,7 @@ · 58 unmodified lines
5959 #define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000 /* Image source controls */
6060 #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */
6161 #define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */
62+#define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* Digital Video controls */
6263
6364 /* User-class control IDs */
6465
@@ -146,6 +147,19 @@ enum v4l2_colorfx { · 81 unmodified lines
146147 * of controls. We reserve 16 controls for this driver. */
147148 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
148149
150+/* The base for the bttv driver controls.
151+ * We reserve 32 controls for this driver. */
152+#define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
153+
154+
155+/* The base for the s2255 driver controls.
156+ * We reserve 16 controls for this driver. */
157+#define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
158+
159+/* The base for the si476x driver controls. See include/media/si476x.h for the list
160+ * of controls. Total of 16 controls is reserved for this driver */
161+#define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040)
162+
149163 /* MPEG-class control IDs */
150164
151165 #define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
@@ -351,6 +365,7 @@ enum v4l2_mpeg_video_multi_slice_mode { · 199 unmodified lines
351365 #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
352366 #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224)
353367 #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225)
368+#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226)
354369
355370 #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
356371 #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
@@ -643,6 +658,7 @@ enum v4l2_exposure_metering { · 286 unmodified lines
643658 V4L2_EXPOSURE_METERING_AVERAGE = 0,
644659 V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1,
645660 V4L2_EXPOSURE_METERING_SPOT = 2,
661+ V4L2_EXPOSURE_METERING_MATRIX = 3,
646662 };
647663
648664 #define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26)
@@ -825,4 +841,16 @@ enum v4l2_dv_rgb_range { · 176 unmodified lines
825841 #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
826842 #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
827843
844+#define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900)
845+#define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1)
846+
847+#define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1)
848+enum v4l2_deemphasis {
849+ V4L2_DEEMPHASIS_DISABLED = V4L2_PREEMPHASIS_DISABLED,
850+ V4L2_DEEMPHASIS_50_uS = V4L2_PREEMPHASIS_50_uS,
851+ V4L2_DEEMPHASIS_75_uS = V4L2_PREEMPHASIS_75_uS,
852+};
853+
854+#define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2)
855+
828856 #endif
include/uapi/linux/v4l2-dv-timings.h+18−0
@@ -42,6 +42,15 @@ · 41 unmodified lines
4242 V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, 0) \
4343 }
4444
45+/* Note: these are the nominal timings, for HDMI links this format is typically
46+ * double-clocked to meet the minimum pixelclock requirements. */
47+#define V4L2_DV_BT_CEA_720X480I59_94 { \
48+ .type = V4L2_DV_BT_656_1120, \
49+ V4L2_INIT_BT_TIMINGS(720, 480, 1, 0, \
50+ 13500000, 19, 62, 57, 4, 3, 15, 4, 3, 16, \
51+ V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_HALF_LINE) \
52+}
53+
4554 #define V4L2_DV_BT_CEA_720X480P59_94 { \
4655 .type = V4L2_DV_BT_656_1120, \
4756 V4L2_INIT_BT_TIMINGS(720, 480, 0, 0, \
@@ -49,6 +58,15 @@ · 1 unmodified line
4958 V4L2_DV_BT_STD_CEA861, 0) \
5059 }
5160
61+/* Note: these are the nominal timings, for HDMI links this format is typically
62+ * double-clocked to meet the minimum pixelclock requirements. */
63+#define V4L2_DV_BT_CEA_720X576I50 { \
64+ .type = V4L2_DV_BT_656_1120, \
65+ V4L2_INIT_BT_TIMINGS(720, 576, 1, 0, \
66+ 13500000, 12, 63, 69, 2, 3, 19, 2, 3, 20, \
67+ V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_HALF_LINE) \
68+}
69+
5270 #define V4L2_DV_BT_CEA_720X576P50 { \
5371 .type = V4L2_DV_BT_656_1120, \
5472 V4L2_INIT_BT_TIMINGS(720, 576, 0, 0, \
include/uapi/linux/v4l2-mediabus.h+5−1
@@ -37,7 +37,7 @@ · 36 unmodified lines
3737 enum v4l2_mbus_pixelcode {
3838 V4L2_MBUS_FMT_FIXED = 0x0001,
3939
40− /* RGB - next is 0x1009 */
40+ /* RGB - next is 0x100d */
4141 V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001,
4242 V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002,
4343 V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003,
@@ -46,6 +46,10 @@ enum v4l2_mbus_pixelcode { · 2 unmodified lines
4646 V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006,
4747 V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
4848 V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
49+ V4L2_MBUS_FMT_RGB666_1X18 = 0x1009,
50+ V4L2_MBUS_FMT_RGB888_1X24 = 0x100a,
51+ V4L2_MBUS_FMT_RGB888_2X12_BE = 0x100b,
52+ V4L2_MBUS_FMT_RGB888_2X12_LE = 0x100c,
4953
5054 /* YUV (including grey) - next is 0x2017 */
5155 V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
include/uapi/linux/videodev2.h+26−85
@@ -72,27 +72,6 @@ · 71 unmodified lines
7272 #define VIDEO_MAX_FRAME 32
7373 #define VIDEO_MAX_PLANES 8
7474
75−#ifndef __KERNEL__
76−
77−/* These defines are V4L1 specific and should not be used with the V4L2 API!
78− They will be removed from this header in the future. */
79−
80−#define VID_TYPE_CAPTURE 1 /* Can capture */
81−#define VID_TYPE_TUNER 2 /* Can tune */
82−#define VID_TYPE_TELETEXT 4 /* Does teletext */
83−#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */
84−#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */
85−#define VID_TYPE_CLIPPING 32 /* Can clip */
86−#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */
87−#define VID_TYPE_SCALES 128 /* Scalable */
88−#define VID_TYPE_MONOCHROME 256 /* Monochrome only */
89−#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */
90−#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */
91−#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */
92−#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */
93−#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */
94−#endif
95−
9675 /*
9776 * M I S C E L L A N E O U S
9877 */
@@ -705,6 +684,7 @@ struct v4l2_buffer { · 606 unmodified lines
705684 #define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000
706685 #define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000
707686 #define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000
687+#define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x4000
708688
709689 /**
710690 * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
@@ -980,52 +960,6 @@ struct v4l2_standard { · 269 unmodified lines
980960 __u32 reserved[4];
981961 };
982962
983−/* The DV Preset API is deprecated in favor of the DV Timings API.
984− New drivers shouldn't use this anymore! */
985−
986−/*
987− * V I D E O T I M I N G S D V P R E S E T
988− */
989−struct v4l2_dv_preset {
990− __u32 preset;
991− __u32 reserved[4];
992−};
993−
994−/*
995− * D V P R E S E T S E N U M E R A T I O N
996− */
997−struct v4l2_dv_enum_preset {
998− __u32 index;
999− __u32 preset;
1000− __u8 name[32]; /* Name of the preset timing */
1001− __u32 width;
1002− __u32 height;
1003− __u32 reserved[4];
1004−};
1005−
1006−/*
1007− * D V P R E S E T V A L U E S
1008− */
1009−#define V4L2_DV_INVALID 0
1010−#define V4L2_DV_480P59_94 1 /* BT.1362 */
1011−#define V4L2_DV_576P50 2 /* BT.1362 */
1012−#define V4L2_DV_720P24 3 /* SMPTE 296M */
1013−#define V4L2_DV_720P25 4 /* SMPTE 296M */
1014−#define V4L2_DV_720P30 5 /* SMPTE 296M */
1015−#define V4L2_DV_720P50 6 /* SMPTE 296M */
1016−#define V4L2_DV_720P59_94 7 /* SMPTE 274M */
1017−#define V4L2_DV_720P60 8 /* SMPTE 274M/296M */
1018−#define V4L2_DV_1080I29_97 9 /* BT.1120/ SMPTE 274M */
1019−#define V4L2_DV_1080I30 10 /* BT.1120/ SMPTE 274M */
1020−#define V4L2_DV_1080I25 11 /* BT.1120 */
1021−#define V4L2_DV_1080I50 12 /* SMPTE 296M */
1022−#define V4L2_DV_1080I60 13 /* SMPTE 296M */
1023−#define V4L2_DV_1080P24 14 /* SMPTE 296M */
1024−#define V4L2_DV_1080P25 15 /* SMPTE 296M */
1025−#define V4L2_DV_1080P30 16 /* SMPTE 296M */
1026−#define V4L2_DV_1080P50 17 /* BT.1120 */
1027−#define V4L2_DV_1080P60 18 /* BT.1120 */
1028−
1029963 /*
1030964 * D V B T T I M I N G S
1031965 */
@@ -1119,7 +1053,7 @@ struct v4l2_bt_timings { · 87 unmodified lines
11191053 longer and field 2 is really one half-line shorter, so each field has
11201054 exactly the same number of half-lines. Whether half-lines can be detected
11211055 or used depends on the hardware. */
1122−#define V4L2_DV_FL_HALF_LINE (1 << 0)
1056+#define V4L2_DV_FL_HALF_LINE (1 << 3)
11231057
11241058
11251059 /** struct v4l2_dv_timings - DV timings
@@ -1239,7 +1173,6 @@ struct v4l2_input { · 113 unmodified lines
12391173 #define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */
12401174
12411175 /* capabilities flags */
1242−#define V4L2_IN_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */
12431176 #define V4L2_IN_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
12441177 #define V4L2_IN_CAP_CUSTOM_TIMINGS V4L2_IN_CAP_DV_TIMINGS /* For compatibility */
12451178 #define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */
@@ -1263,7 +1196,6 @@ struct v4l2_output { · 17 unmodified lines
12631196 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
12641197
12651198 /* capabilities flags */
1266−#define V4L2_OUT_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */
12671199 #define V4L2_OUT_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
12681200 #define V4L2_OUT_CAP_CUSTOM_TIMINGS V4L2_OUT_CAP_DV_TIMINGS /* For compatibility */
12691201 #define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */
@@ -1854,10 +1786,12 @@ struct v4l2_event_subscription { · 584 unmodified lines
18541786
18551787 /* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
18561788
1857−#define V4L2_CHIP_MATCH_HOST 0 /* Match against chip ID on host (0 for the host) */
1858−#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */
1859−#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */
1860−#define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */
1789+#define V4L2_CHIP_MATCH_BRIDGE 0 /* Match against chip ID on the bridge (0 for the bridge) */
1790+#define V4L2_CHIP_MATCH_HOST V4L2_CHIP_MATCH_BRIDGE
1791+#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */
1792+#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */
1793+#define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */
1794+#define V4L2_CHIP_MATCH_SUBDEV 4 /* Match against subdev index */
18611795
18621796 struct v4l2_dbg_match {
18631797 __u32 type; /* Match type */
@@ -1881,6 +1815,17 @@ struct v4l2_dbg_chip_ident { · 17 unmodified lines
18811815 __u32 revision; /* chip revision, chip specific */
18821816 } __attribute__ ((packed));
18831817
1818+#define V4L2_CHIP_FL_READABLE (1 << 0)
1819+#define V4L2_CHIP_FL_WRITABLE (1 << 1)
1820+
1821+/* VIDIOC_DBG_G_CHIP_INFO */
1822+struct v4l2_dbg_chip_info {
1823+ struct v4l2_dbg_match match;
1824+ char name[32];
1825+ __u32 flags;
1826+ __u32 reserved[32];
1827+} __attribute__ ((packed));
1828+
18841829 /**
18851830 * struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument
18861831 * @index: on return, index of the first created buffer
@@ -1958,15 +1903,12 @@ struct v4l2_create_buffers { · 71 unmodified lines
19581903 #define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct v4l2_ext_controls)
19591904 #define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct v4l2_ext_controls)
19601905 #define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct v4l2_ext_controls)
1961−#if 1
19621906 #define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum)
19631907 #define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum)
19641908 #define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx)
19651909 #define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd)
19661910 #define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd)
1967−#endif
19681911
1969−#if 1
19701912 /* Experimental, meant for debugging, testing and internal use.
19711913 Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
19721914 You must be root to use these ioctls. Never use these in applications! */
@@ -1974,18 +1916,13 @@ struct v4l2_create_buffers { · 1 unmodified line
19741916 #define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
19751917
19761918 /* Experimental, meant for debugging, testing and internal use.
1977− Never use this ioctl in applications! */
1919+ Never use this ioctl in applications!
1920+ Note: this ioctl is deprecated in favor of VIDIOC_DBG_G_CHIP_INFO and
1921+ will go away in the future. */
19781922 #define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident)
1979−#endif
19801923
19811924 #define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
19821925
1983−/* These four DV Preset ioctls are deprecated in favor of the DV Timings
1984− ioctls. */
1985−#define VIDIOC_ENUM_DV_PRESETS _IOWR('V', 83, struct v4l2_dv_enum_preset)
1986−#define VIDIOC_S_DV_PRESET _IOWR('V', 84, struct v4l2_dv_preset)
1987−#define VIDIOC_G_DV_PRESET _IOWR('V', 85, struct v4l2_dv_preset)
1988−#define VIDIOC_QUERY_DV_PRESET _IOR('V', 86, struct v4l2_dv_preset)
19891926 #define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
19901927 #define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
19911928 #define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
@@ -2016,6 +1953,10 @@ struct v4l2_create_buffers { · 24 unmodified lines
20161953 versions. */
20171954 #define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band)
20181955
1956+/* Experimental, meant for debugging, testing and internal use.
1957+ Never use these in applications! */
1958+#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
1959+
20191960 /* Reminder: when adding new ioctls please add support for them to
20201961 drivers/media/video/v4l2-compat-ioctl32.c as well! */
20211962

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t