aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-21 13:01:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-21 13:01:27 -0400
commit0c8027d50c070859314a88aaff42453ff4f71819 (patch)
tree440ecaefad24571853796df50eb2f238052dd3f2 /include/uapi/linux
parent1fc149933fd49a5b0e7738dc0853dbfbac4ae0e1 (diff)
parent64131a87f2aae2ed9e05d8227c5b009ca6c50d98 (diff)
Merge tag 'media/v4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - a new frontend driver for new ATSC devices: lgdt3306a - a new sensor driver: ov2659 - a new platform driver: xilinx - the m88ts2022 tuner driver was merged at ts2020 driver - the media controller gained experimental support for DVB and hybrid devices - lots of random cleanups, fixes and improvements on media drivers * tag 'media/v4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (404 commits) [media] uvcvideo: add support for VIDIOC_QUERY_EXT_CTRL [media] uvcvideo: fix cropcap v4l2-compliance failure [media] media: omap3isp: remove unused clkdev [media] coda: Add tracing support [media] coda: drop dma_sync_single_for_device in coda_bitstream_queue [media] coda: fix fill bitstream errors in nonstreaming case [media] coda: call SEQ_END when the first queue is stopped [media] coda: fail to start streaming if userspace set invalid formats [media] coda: remove duplicate error messages for buffer allocations [media] coda: move parameter buffer in together with context buffer allocation [media] coda: allocate bitstream buffer from REQBUFS, size depends on the format [media] coda: allocate per-context buffers from REQBUFS [media] coda: use strlcpy instead of snprintf [media] coda: bitstream payload is unsigned [media] coda: fix double call to debugfs_remove [media] coda: check kasprintf return value in coda_open [media] coda: bitrate can only be set in kbps steps [media] v4l2-mem2mem: no need to initialize b in v4l2_m2m_next_buf and v4l2_m2m_buf_remove [media] s5p-mfc: set allow_zero_bytesused flag for vb2_queue_init [media] coda: set allow_zero_bytesused flag for vb2_queue_init ...
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/Kbuild1
-rw-r--r--include/uapi/linux/am437x-vpfe.h2
-rw-r--r--include/uapi/linux/media-bus-format.h15
-rw-r--r--include/uapi/linux/media.h52
-rw-r--r--include/uapi/linux/v4l2-dv-timings.h64
-rw-r--r--include/uapi/linux/v4l2-subdev.h12
-rw-r--r--include/uapi/linux/videodev2.h18
-rw-r--r--include/uapi/linux/xilinx-v4l2-controls.h73
8 files changed, 192 insertions, 45 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 38df23435ebb..640954b9ecf9 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -447,5 +447,6 @@ header-y += wireless.h
447header-y += x25.h 447header-y += x25.h
448header-y += xattr.h 448header-y += xattr.h
449header-y += xfrm.h 449header-y += xfrm.h
450header-y += xilinx-v4l2-controls.h
450header-y += zorro.h 451header-y += zorro.h
451header-y += zorro_ids.h 452header-y += zorro_ids.h
diff --git a/include/uapi/linux/am437x-vpfe.h b/include/uapi/linux/am437x-vpfe.h
index 9b03033f9cd6..d75774317b9b 100644
--- a/include/uapi/linux/am437x-vpfe.h
+++ b/include/uapi/linux/am437x-vpfe.h
@@ -21,6 +21,8 @@
21#ifndef AM437X_VPFE_USER_H 21#ifndef AM437X_VPFE_USER_H
22#define AM437X_VPFE_USER_H 22#define AM437X_VPFE_USER_H
23 23
24#include <linux/videodev2.h>
25
24enum vpfe_ccdc_data_size { 26enum vpfe_ccdc_data_size {
25 VPFE_CCDC_DATA_16BITS = 0, 27 VPFE_CCDC_DATA_16BITS = 0,
26 VPFE_CCDC_DATA_15BITS, 28 VPFE_CCDC_DATA_15BITS,
diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h
index 73c78f18a328..190d491d5b13 100644
--- a/include/uapi/linux/media-bus-format.h
+++ b/include/uapi/linux/media-bus-format.h
@@ -45,6 +45,7 @@
45#define MEDIA_BUS_FMT_RGB565_2X8_BE 0x1007 45#define MEDIA_BUS_FMT_RGB565_2X8_BE 0x1007
46#define MEDIA_BUS_FMT_RGB565_2X8_LE 0x1008 46#define MEDIA_BUS_FMT_RGB565_2X8_LE 0x1008
47#define MEDIA_BUS_FMT_RGB666_1X18 0x1009 47#define MEDIA_BUS_FMT_RGB666_1X18 0x1009
48#define MEDIA_BUS_FMT_RBG888_1X24 0x100e
48#define MEDIA_BUS_FMT_RGB666_1X24_CPADHI 0x1015 49#define MEDIA_BUS_FMT_RGB666_1X24_CPADHI 0x1015
49#define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG 0x1010 50#define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG 0x1010
50#define MEDIA_BUS_FMT_BGR888_1X24 0x1013 51#define MEDIA_BUS_FMT_BGR888_1X24 0x1013
@@ -55,6 +56,7 @@
55#define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG 0x1011 56#define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG 0x1011
56#define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA 0x1012 57#define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA 0x1012
57#define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d 58#define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d
59#define MEDIA_BUS_FMT_RGB888_1X32_PADHI 0x100f
58 60
59/* YUV (including grey) - next is 0x2026 */ 61/* YUV (including grey) - next is 0x2026 */
60#define MEDIA_BUS_FMT_Y8_1X8 0x2001 62#define MEDIA_BUS_FMT_Y8_1X8 0x2001
@@ -73,6 +75,10 @@
73#define MEDIA_BUS_FMT_YUYV10_2X10 0x200b 75#define MEDIA_BUS_FMT_YUYV10_2X10 0x200b
74#define MEDIA_BUS_FMT_YVYU10_2X10 0x200c 76#define MEDIA_BUS_FMT_YVYU10_2X10 0x200c
75#define MEDIA_BUS_FMT_Y12_1X12 0x2013 77#define MEDIA_BUS_FMT_Y12_1X12 0x2013
78#define MEDIA_BUS_FMT_UYVY12_2X12 0x201c
79#define MEDIA_BUS_FMT_VYUY12_2X12 0x201d
80#define MEDIA_BUS_FMT_YUYV12_2X12 0x201e
81#define MEDIA_BUS_FMT_YVYU12_2X12 0x201f
76#define MEDIA_BUS_FMT_UYVY8_1X16 0x200f 82#define MEDIA_BUS_FMT_UYVY8_1X16 0x200f
77#define MEDIA_BUS_FMT_VYUY8_1X16 0x2010 83#define MEDIA_BUS_FMT_VYUY8_1X16 0x2010
78#define MEDIA_BUS_FMT_YUYV8_1X16 0x2011 84#define MEDIA_BUS_FMT_YUYV8_1X16 0x2011
@@ -82,17 +88,14 @@
82#define MEDIA_BUS_FMT_VYUY10_1X20 0x201b 88#define MEDIA_BUS_FMT_VYUY10_1X20 0x201b
83#define MEDIA_BUS_FMT_YUYV10_1X20 0x200d 89#define MEDIA_BUS_FMT_YUYV10_1X20 0x200d
84#define MEDIA_BUS_FMT_YVYU10_1X20 0x200e 90#define MEDIA_BUS_FMT_YVYU10_1X20 0x200e
91#define MEDIA_BUS_FMT_VUY8_1X24 0x2024
85#define MEDIA_BUS_FMT_YUV8_1X24 0x2025 92#define MEDIA_BUS_FMT_YUV8_1X24 0x2025
86#define MEDIA_BUS_FMT_YUV10_1X30 0x2016
87#define MEDIA_BUS_FMT_AYUV8_1X32 0x2017
88#define MEDIA_BUS_FMT_UYVY12_2X12 0x201c
89#define MEDIA_BUS_FMT_VYUY12_2X12 0x201d
90#define MEDIA_BUS_FMT_YUYV12_2X12 0x201e
91#define MEDIA_BUS_FMT_YVYU12_2X12 0x201f
92#define MEDIA_BUS_FMT_UYVY12_1X24 0x2020 93#define MEDIA_BUS_FMT_UYVY12_1X24 0x2020
93#define MEDIA_BUS_FMT_VYUY12_1X24 0x2021 94#define MEDIA_BUS_FMT_VYUY12_1X24 0x2021
94#define MEDIA_BUS_FMT_YUYV12_1X24 0x2022 95#define MEDIA_BUS_FMT_YUYV12_1X24 0x2022
95#define MEDIA_BUS_FMT_YVYU12_1X24 0x2023 96#define MEDIA_BUS_FMT_YVYU12_1X24 0x2023
97#define MEDIA_BUS_FMT_YUV10_1X30 0x2016
98#define MEDIA_BUS_FMT_AYUV8_1X32 0x2017
96 99
97/* Bayer - next is 0x3019 */ 100/* Bayer - next is 0x3019 */
98#define MEDIA_BUS_FMT_SBGGR8_1X8 0x3001 101#define MEDIA_BUS_FMT_SBGGR8_1X8 0x3001
diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
index d847c760e8f0..4e816be3de39 100644
--- a/include/uapi/linux/media.h
+++ b/include/uapi/linux/media.h
@@ -50,7 +50,14 @@ struct media_device_info {
50#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1) 50#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1)
51#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2) 51#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
52#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3) 52#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
53#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4) 53#define MEDIA_ENT_T_DEVNODE_DVB_FE (MEDIA_ENT_T_DEVNODE + 4)
54#define MEDIA_ENT_T_DEVNODE_DVB_DEMUX (MEDIA_ENT_T_DEVNODE + 5)
55#define MEDIA_ENT_T_DEVNODE_DVB_DVR (MEDIA_ENT_T_DEVNODE + 6)
56#define MEDIA_ENT_T_DEVNODE_DVB_CA (MEDIA_ENT_T_DEVNODE + 7)
57#define MEDIA_ENT_T_DEVNODE_DVB_NET (MEDIA_ENT_T_DEVNODE + 8)
58
59/* Legacy symbol. Use it to avoid userspace compilation breakages */
60#define MEDIA_ENT_T_DEVNODE_DVB MEDIA_ENT_T_DEVNODE_DVB_FE
54 61
55#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT) 62#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT)
56#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1) 63#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1)
@@ -59,6 +66,8 @@ struct media_device_info {
59/* A converter of analogue video to its digital representation. */ 66/* A converter of analogue video to its digital representation. */
60#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER (MEDIA_ENT_T_V4L2_SUBDEV + 4) 67#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER (MEDIA_ENT_T_V4L2_SUBDEV + 4)
61 68
69#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER (MEDIA_ENT_T_V4L2_SUBDEV + 5)
70
62#define MEDIA_ENT_FL_DEFAULT (1 << 0) 71#define MEDIA_ENT_FL_DEFAULT (1 << 0)
63 72
64struct media_entity_desc { 73struct media_entity_desc {
@@ -78,17 +87,48 @@ struct media_entity_desc {
78 struct { 87 struct {
79 __u32 major; 88 __u32 major;
80 __u32 minor; 89 __u32 minor;
81 } v4l; 90 } dev;
82 struct { 91
83 __u32 major; 92#if 1
84 __u32 minor; 93 /*
85 } fb; 94 * TODO: this shouldn't have been added without
95 * actual drivers that use this. When the first real driver
96 * appears that sets this information, special attention
97 * should be given whether this information is 1) enough, and
98 * 2) can deal with udev rules that rename devices. The struct
99 * dev would not be sufficient for this since that does not
100 * contain the subdevice information. In addition, struct dev
101 * can only refer to a single device, and not to multiple (e.g.
102 * pcm and mixer devices).
103 *
104 * So for now mark this as a to do.
105 */
86 struct { 106 struct {
87 __u32 card; 107 __u32 card;
88 __u32 device; 108 __u32 device;
89 __u32 subdevice; 109 __u32 subdevice;
90 } alsa; 110 } alsa;
111#endif
112
113#if 1
114 /*
115 * DEPRECATED: previous node specifications. Kept just to
116 * avoid breaking compilation, but media_entity_desc.dev
117 * should be used instead. In particular, alsa and dvb
118 * fields below are wrong: for all devnodes, there should
119 * be just major/minor inside the struct, as this is enough
120 * to represent any devnode, no matter what type.
121 */
122 struct {
123 __u32 major;