History

Merge tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media updates from Mauro Carvalho Chehab: - new CEC pin injection code for testing purposes - DVB frontend cxd2099 promoted from staging - new platform driver for Sony cxd2880 DVB devices - new sensor drivers: mt9t112, ov2685, ov5695, ov772x, tda1997x, tw9910.c - removal of unused cx18 and ivtv alsa mixers - the reneseas-ceu driver doesn't depend on soc_camera anymore and moved from staging - removed the mantis_vp3028 driver, unused since 2009 - s5p-mfc: add support for version 10 of the MSP - added a decoder for imon protocol - atomisp: lots of cleanups - imx074 and mt9t031: don't depend on soc_camera anymore, being promoted from staging - added helper functions to better support DVB I2C binding - lots of driver improvements and cleanups * tag 'media/v4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (438 commits) media: v4l2-ioctl: rename a temp var that stores _IOC_SIZE(cmd) media: fimc-capture: get rid of two warnings media: dvb-usb-v2: fix a missing dependency of I2C_MUX media: uvc: to the right check at uvc_ioctl_enum_framesizes() media: cec-core: fix a bug at cec_error_inj_write() media: tda9840: cleanup a warning media: tm6000: avoid casting just to print pointer address media: em28xx-input: improve error handling code media: zr364xx: avoid casting just to print pointer address media: vivid-radio-rx: add a cast to avoid a warning media: saa7134-alsa: don't use casts to print a buffer address media: solo6x10: get rid of an address space warning media: zoran: don't cast pointers to print them media: ir-kbd-i2c: change the if logic to avoid a warning media: ir-kbd-i2c: improve error handling code media: saa7134-input: improve error handling media: s2255drv: fix a casting warning media: ivtvfb: Cleanup some warnings media: videobuf-dma-sg: Fix a weird cast soc_camera: fix a weird cast on printk ...

Linus Torvalds committed 8 years ago

Commit ef1c4a62 parents 147a89b f8a695c572 files · +37792 −21327Browse files

Showing the changes to include/uapi/linux (7 of 572 files). Show all

Unified · Split

7 files
  1. include/uapi/linux/cec-funcs.h +0 −29
  2. include/uapi/linux/cec.h +0 −29
  3. include/uapi/linux/lirc.h +2 −0
  4. include/uapi/linux/media.h +165 −179
  5. include/uapi/linux/v4l2-controls.h +92 −1
  6. include/uapi/linux/v4l2-mediabus.h +2 −2
  7. include/uapi/linux/videodev2.h +1 −0
include/uapi/linux/cec-funcs.h+0−29
@@ -3,35 +3,6 @@ · 2 unmodified lines
3 * cec - HDMI Consumer Electronics Control message functions3 * cec - HDMI Consumer Electronics Control message functions
4 *4 *
5 * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.5 * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
6 *
7 * This program is free software; you may redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2 of the License.
10 *
11 * Alternatively you can redistribute this file under the terms of the
12 * BSD license as stated below:
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
19 * 2. Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in
21 * the documentation and/or other materials provided with the
22 * distribution.
23 * 3. The names of its contributors may not be used to endorse or promote
24 * products derived from this software without specific prior written
25 * permission.
26 *
27 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
29 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
30 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
31 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
32 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
33 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34 * SOFTWARE.
35 */6 */
36 7
37#ifndef _CEC_UAPI_FUNCS_H8#ifndef _CEC_UAPI_FUNCS_H
include/uapi/linux/cec.h+0−29
@@ -3,35 +3,6 @@ · 2 unmodified lines
3 * cec - HDMI Consumer Electronics Control public header3 * cec - HDMI Consumer Electronics Control public header
4 *4 *
5 * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.5 * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
6 *
7 * This program is free software; you may redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2 of the License.
10 *
11 * Alternatively you can redistribute this file under the terms of the
12 * BSD license as stated below:
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
19 * 2. Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in
21 * the documentation and/or other materials provided with the
22 * distribution.
23 * 3. The names of its contributors may not be used to endorse or promote
24 * products derived from this software without specific prior written
25 * permission.
26 *
27 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
29 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
30 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
31 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
32 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
33 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34 * SOFTWARE.
35 */6 */
36 7
37#ifndef _CEC_UAPI_H8#ifndef _CEC_UAPI_H
include/uapi/linux/lirc.h+2−0
@@ -185,6 +185,7 @@ struct lirc_scancode { · 184 unmodified lines
185 * @RC_PROTO_SHARP: Sharp protocol185 * @RC_PROTO_SHARP: Sharp protocol
186 * @RC_PROTO_XMP: XMP protocol186 * @RC_PROTO_XMP: XMP protocol
187 * @RC_PROTO_CEC: CEC protocol187 * @RC_PROTO_CEC: CEC protocol
188 * @RC_PROTO_IMON: iMon Pad protocol
188 */189 */
189enum rc_proto {190enum rc_proto {
190 RC_PROTO_UNKNOWN = 0,191 RC_PROTO_UNKNOWN = 0,
@@ -210,6 +211,7 @@ enum rc_proto { · 19 unmodified lines
210 RC_PROTO_SHARP = 20,211 RC_PROTO_SHARP = 20,
211 RC_PROTO_XMP = 21,212 RC_PROTO_XMP = 21,
212 RC_PROTO_CEC = 22,213 RC_PROTO_CEC = 22,
214 RC_PROTO_IMON = 23,
213};215};
214 216
215#endif217#endif
include/uapi/linux/media.h+165−179
@@ -15,10 +15,6 @@ · 14 unmodified lines
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */18 */
23 19
24#ifndef __LINUX_MEDIA_H20#ifndef __LINUX_MEDIA_H
@@ -42,108 +38,66 @@ struct media_device_info { · 17 unmodified lines
42 __u32 reserved[31];38 __u32 reserved[31];
43};39};
44 40
45#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
46
47/*
48 * Initial value to be used when a new entity is created
49 * Drivers should change it to something useful
50 */
51#define MEDIA_ENT_F_UNKNOWN 0x00000000
52
53/*41/*
54 * Base number ranges for entity functions42 * Base number ranges for entity functions
55 *43 *
56 * NOTE: those ranges and entity function number are phased just to44 * NOTE: Userspace should not rely on these ranges to identify a group
57 * make it easier to maintain this file. Userspace should not rely on45 * of function types, as newer functions can be added with any name within
58 * the ranges to identify a group of function types, as newer46 * the full u32 range.
59 * functions can be added with any name within the full u32 range.47 *
60 */48 * Some older functions use the MEDIA_ENT_F_OLD_*_BASE range. Do not
61#define MEDIA_ENT_F_BASE 0x0000000049 * change this, this is for backwards compatibility. When adding new
62#define MEDIA_ENT_F_OLD_BASE 0x0001000050 * functions always use MEDIA_ENT_F_BASE.
63#define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
64
65/*
66 * DVB entities
67 */51 */
68#define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)52#define MEDIA_ENT_F_BASE 0x00000000
69#define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)53#define MEDIA_ENT_F_OLD_BASE 0x00010000
70#define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)54#define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
71#define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
72 55
73/*56/*
74 * I/O entities57 * Initial value to be used when a new entity is created
58 * Drivers should change it to something useful.
75 */59 */
76#define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)60#define MEDIA_ENT_F_UNKNOWN MEDIA_ENT_F_BASE
77#define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
78#define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
79 61
80/*62/*
81 * Analog TV IF-PLL decoders63 * Subdevs are initialized with MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN in order
82 *64 * to preserve backward compatibility. Drivers must change to the proper
83 * It is a responsibility of the master/bridge drivers to create links65 * subdev type before registering the entity.
84 * for MEDIA_ENT_F_IF_VID_DECODER and MEDIA_ENT_F_IF_AUD_DECODER.
85 */66 */
86#define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)67#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
87#define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
88 68
89/*69/*
90 * Audio Entity Functions70 * DVB entity functions
91 */71 */
92#define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)72#define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)
93#define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002)73#define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)
94#define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003)74#define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)
75#define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
95 76
96/*77/*
97 * Processing entities78 * I/O entity functions
98 */79 */
99#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4001)80#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
100#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER (MEDIA_ENT_F_BASE + 0x4002)81#define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)
101#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV (MEDIA_ENT_F_BASE + 0x4003)82#define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
102#define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004)83#define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
103#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005)
104#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
105 84
106/*85/*
107 * Switch and bridge entitites86 * Sensor functions
108 */87 */
109#define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)88#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
110#define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)89#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
90#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
111 91
112/*92/*
113 * Connectors93 * Video decoder functions
114 */94 */
115/* It is a responsibility of the entity drivers to add connectors and links */95#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
116#ifdef __KERNEL__96#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
117 /*
118 * For now, it should not be used in userspace, as some
119 * definitions may change
120 */
121
122#define MEDIA_ENT_F_CONN_RF (MEDIA_ENT_F_BASE + 0x30001)
123#define MEDIA_ENT_F_CONN_SVIDEO (MEDIA_ENT_F_BASE + 0x30002)
124#define MEDIA_ENT_F_CONN_COMPOSITE (MEDIA_ENT_F_BASE + 0x30003)
125
126#endif
127 97
128/*98/*
129 * Don't touch on those. The ranges MEDIA_ENT_F_OLD_BASE and99 * Digital TV, analog TV, radio and/or software defined radio tuner functions.
130 * MEDIA_ENT_F_OLD_SUBDEV_BASE are kept to keep backward compatibility
131 * with the legacy v1 API.The number range is out of range by purpose:
132 * several previously reserved numbers got excluded from this range.
133 *100 *
134 * Subdevs are initialized with MEDIA_ENT_T_V4L2_SUBDEV_UNKNOWN,
135 * in order to preserve backward compatibility.
136 * Drivers must change to the proper subdev type before
137 * registering the entity.
138 */
139
140#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
141
142#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
143#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
144#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
145#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
146/*
147 * It is a responsibility of the master/bridge drivers to add connectors101 * It is a responsibility of the master/bridge drivers to add connectors
148 * and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners102 * and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners
149 * may require the usage of separate I2C chips to decode analog TV signals,103 * may require the usage of separate I2C chips to decode analog TV signals,
@@ -151,49 +105,46 @@ struct media_device_info { · 1 unmodified line
151 * On such cases, the IF-PLL staging is mapped via one or two entities:105 * On such cases, the IF-PLL staging is mapped via one or two entities:
152 * MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER.106 * MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER.
153 */107 */
154#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)108#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
155 109
156#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE110/*
111 * Analog TV IF-PLL decoder functions
112 *
113 * It is a responsibility of the master/bridge drivers to create links
114 * for MEDIA_ENT_F_IF_VID_DECODER and MEDIA_ENT_F_IF_AUD_DECODER.
115 */
116#define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)
117#define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
157 118
158#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)119/*
120 * Audio entity functions
121 */
122#define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)
123#define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002)
124#define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003)
159 125
160/*126/*
161 * Legacy symbols used to avoid userspace compilation breakages127 * Processing entity functions
162 *
163 * Those symbols map the entity function into types and should be
164 * used only on legacy programs for legacy hardware. Don't rely
165 * on those for MEDIA_IOC_G_TOPOLOGY.
166 */128 */
167#define MEDIA_ENT_TYPE_SHIFT 16129#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4001)
168#define MEDIA_ENT_TYPE_MASK 0x00ff0000130#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER (MEDIA_ENT_F_BASE + 0x4002)
169#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff131#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV (MEDIA_ENT_F_BASE + 0x4003)
170 132#define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004)
171/* End of the old subdev reserved numberspace */133#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005)
172#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_T_DEVNODE | \134#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
173 MEDIA_ENT_SUBTYPE_MASK)
174
175#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
176#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
177#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
178#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
179#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
180
181#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
182#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
183#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
184#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
185#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
186#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
187#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
188#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
189 135
190/* Obsolete symbol for media_version, no longer used in the kernel */136/*
191#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)137 * Switch and bridge entity functions
192#endif138 */
139#define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)
140#define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)
193 141
194/* Entity flags */142/* Entity flags */
195#define MEDIA_ENT_FL_DEFAULT (1 << 0)143#define MEDIA_ENT_FL_DEFAULT (1 << 0)
196#define MEDIA_ENT_FL_CONNECTOR (1 << 1)144#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
145
146/* OR with the entity id value to find the next entity */
147#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
197 148
198struct media_entity_desc {149struct media_entity_desc {
199 __u32 id;150 __u32 id;
@@ -214,7 +165,7 @@ struct media_entity_desc { · 14 unmodified lines
214 __u32 minor;165 __u32 minor;
215 } dev;166 } dev;
216 167
217#if 1168#if !defined(__KERNEL__)
218 /*169 /*
219 * TODO: this shouldn't have been added without170 * TODO: this shouldn't have been added without
220 * actual drivers that use this. When the first real driver171 * actual drivers that use this. When the first real driver
@@ -225,24 +176,17 @@ struct media_entity_desc { · 4 unmodified lines
225 * contain the subdevice information. In addition, struct dev176 * contain the subdevice information. In addition, struct dev
226 * can only refer to a single device, and not to multiple (e.g.177 * can only refer to a single device, and not to multiple (e.g.
227 * pcm and mixer devices).178 * pcm and mixer devices).
228 *
229 * So for now mark this as a to do.
230 */179 */
231 struct {180 struct {
232 __u32 card;181 __u32 card;
233 __u32 device;182 __u32 device;
234 __u32 subdevice;183 __u32 subdevice;
235 } alsa;184 } alsa;
236#endif
237 185
238#if 1
239 /*186 /*
240 * DEPRECATED: previous node specifications. Kept just to187 * DEPRECATED: previous node specifications. Kept just to
241 * avoid breaking compilation, but media_entity_desc.dev188 * avoid breaking compilation. Use media_entity_desc.dev
242 * should be used instead. In particular, alsa and dvb189 * instead.
243 * fields below are wrong: for all devnodes, there should
244 * be just major/minor inside the struct, as this is enough
245 * to represent any devnode, no matter what type.
246 */190 */
247 struct {191 struct {
248 __u32 major;192 __u32 major;
@@ -261,9 +205,9 @@ struct media_entity_desc { · 12 unmodified lines
261 };205 };
262};206};
263 207
264#define MEDIA_PAD_FL_SINK (1 << 0)208#define MEDIA_PAD_FL_SINK (1 << 0)
265#define MEDIA_PAD_FL_SOURCE (1 << 1)209#define MEDIA_PAD_FL_SOURCE (1 << 1)
266#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)210#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
267 211
268struct media_pad_desc {212struct media_pad_desc {
269 __u32 entity; /* entity ID */213 __u32 entity; /* entity ID */
@@ -272,13 +216,13 @@ struct media_pad_desc { · 2 unmodified lines
272 __u32 reserved[2];216 __u32 reserved[2];
273};217};
274 218
275#define MEDIA_LNK_FL_ENABLED (1 << 0)219#define MEDIA_LNK_FL_ENABLED (1 << 0)
276#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)220#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
277#define MEDIA_LNK_FL_DYNAMIC (1 << 2)221#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
278 222
279#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)223#define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
280# define MEDIA_LNK_FL_DATA_LINK (0 << 28)224# define MEDIA_LNK_FL_DATA_LINK (0 << 28)
281# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)225# define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
282 226
283struct media_link_desc {227struct media_link_desc {
284 struct media_pad_desc source;228 struct media_pad_desc source;
@@ -298,57 +242,47 @@ struct media_links_enum { · 13 unmodified lines
298 242
299/* Interface type ranges */243/* Interface type ranges */
300 244
301#define MEDIA_INTF_T_DVB_BASE 0x00000100245#define MEDIA_INTF_T_DVB_BASE 0x00000100
302#define MEDIA_INTF_T_V4L_BASE 0x00000200246#define MEDIA_INTF_T_V4L_BASE 0x00000200
303#define MEDIA_INTF_T_ALSA_BASE 0x00000300
304 247
305/* Interface types */248/* Interface types */
306 249
307#define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)250#define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)
308#define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)251#define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)
309#define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)252#define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)
310#define MEDIA_INTF_T_DVB_CA (MEDIA_INTF_T_DVB_BASE + 3)253#define MEDIA_INTF_T_DVB_CA (MEDIA_INTF_T_DVB_BASE + 3)
311#define MEDIA_INTF_T_DVB_NET (MEDIA_INTF_T_DVB_BASE + 4)254#define MEDIA_INTF_T_DVB_NET (MEDIA_INTF_T_DVB_BASE + 4)
312 255
313#define MEDIA_INTF_T_V4L_VIDEO (MEDIA_INTF_T_V4L_BASE)256#define MEDIA_INTF_T_V4L_VIDEO (MEDIA_INTF_T_V4L_BASE)
314#define MEDIA_INTF_T_V4L_VBI (MEDIA_INTF_T_V4L_BASE + 1)257#define MEDIA_INTF_T_V4L_VBI (MEDIA_INTF_T_V4L_BASE + 1)
315#define MEDIA_INTF_T_V4L_RADIO (MEDIA_INTF_T_V4L_BASE + 2)258#define MEDIA_INTF_T_V4L_RADIO (MEDIA_INTF_T_V4L_BASE + 2)
316#define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)259#define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)
317#define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)260#define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)
318#define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)261#define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)
319 262
320#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)263#if defined(__KERNEL__)
321#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
322#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
323#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
324#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
325#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
326#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
327#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
328 264
329/*265/*
330 * MC next gen API definitions266 * Connector functions
331 *267 *
332 * NOTE: The declarations below are close to the MC RFC for the Media268 * For now these should not be used in userspace, as some definitions may
333 * Controller, the next generation. Yet, there are a few adjustments269 * change.
334 * to do, as we want to be able to have a functional API before
335 * the MC properties change. Those will be properly marked below.
336 * Please also notice that I removed "num_pads", "num_links",
337 * from the proposal, as a proper userspace application will likely
338 * use lists for pads/links, just as we intend to do in Kernelspace.
339 * The API definition should be freed from fields that are bound to
340 * some specific data structure.
341 *270 *
342 * FIXME: Currently, I opted to name the new types as "media_v2", as this271 * It is the responsibility of the entity drivers to add connectors and links.
343 * won't cause any conflict with the Kernelspace namespace, nor with
344 * the previous kAPI media_*_desc namespace. This can be changed
345 * later, before the adding this API upstream.
346 */272 */
273#define MEDIA_ENT_F_CONN_RF (MEDIA_ENT_F_BASE + 0x30001)
274#define MEDIA_ENT_F_CONN_SVIDEO (MEDIA_ENT_F_BASE + 0x30002)
275#define MEDIA_ENT_F_CONN_COMPOSITE (MEDIA_ENT_F_BASE + 0x30003)
347 276
277#endif
278
279/*
280 * MC next gen API definitions
281 */
348 282
349struct media_v2_entity {283struct media_v2_entity {
350 __u32 id;284 __u32 id;
351 char name[64]; /* FIXME: move to a property? (RFC says so) */285 char name[64];
352 __u32 function; /* Main function of the entity */286 __u32 function; /* Main function of the entity */
353 __u32 reserved[6];287 __u32 reserved[6];
354} __attribute__ ((packed));288} __attribute__ ((packed));
@@ -408,10 +342,62 @@ struct media_v2_topology { · 53 unmodified lines
408 342
409/* ioctls */343/* ioctls */
410 344
411#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)345#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
412#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)346#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
413#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)347#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
414#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)348#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
415#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)349#define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
350
351#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
352
353/*
354 * Legacy symbols used to avoid userspace compilation breakages.
355 * Do not use any of this in new applications!
356 *
357 * Those symbols map the entity function into types and should be
358 * used only on legacy programs for legacy hardware. Don't rely
359 * on those for MEDIA_IOC_G_TOPOLOGY.
360 */
361#define MEDIA_ENT_TYPE_SHIFT 16
362#define MEDIA_ENT_TYPE_MASK 0x00ff0000
363#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
364
365#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_F_OLD_BASE | \
366 MEDIA_ENT_SUBTYPE_MASK)
367
368#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
369#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
370#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_F_OLD_BASE + 2)
371#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_F_OLD_BASE + 3)
372#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_F_OLD_BASE + 4)
373
374#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
375#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
376#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
377#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
378#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
379#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
380#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
381#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
382
383/*
384 * There is still no ALSA support in the media controller. These
385 * defines should not have been added and we leave them here only
386 * in case some application tries to use these defines.
387 */
388#define MEDIA_INTF_T_ALSA_BASE 0x00000300
389#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
390#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
391#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
392#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
393#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
394#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
395#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
396#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
397
398/* Obsolete symbol for media_version, no longer used in the kernel */
399#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
400
401#endif
416 402
417#endif /* __LINUX_MEDIA_H */403#endif /* __LINUX_MEDIA_H */
include/uapi/linux/v4l2-controls.h+92−1
@@ -589,6 +589,98 @@ enum v4l2_vp8_golden_frame_sel { · 588 unmodified lines
589#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)589#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
590#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)590#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
591 591
592/* CIDs for HEVC encoding. */
593
594#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
595#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
596#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
597#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
598#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
599#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
600#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
601enum v4l2_mpeg_video_hevc_hier_coding_type {
602 V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
603 V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
604};
605#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
606#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
607#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
608#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
609#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
610#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
611#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
612#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
613#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
614enum v4l2_mpeg_video_hevc_profile {
615 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
616 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
617 V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
618};
619#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
620enum v4l2_mpeg_video_hevc_level {
621 V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
622 V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
623 V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
624 V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
625 V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
626 V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
627 V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
628 V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
629 V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
630 V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
631 V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
632 V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
633 V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
634};
635#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
636#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
637enum v4l2_mpeg_video_hevc_tier {
638 V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
639 V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
640};
641#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
642#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
643enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
644 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
645 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
646 V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
647};
648#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
649#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
650#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
651enum v4l2_cid_mpeg_video_hevc_refresh_type {
652 V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
653 V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
654 V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
655};
656#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
657#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
658#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
659#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
660#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
661#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
662#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
663#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
664#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
665#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
666#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
667#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
668enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
669 V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
670 V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
671 V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
672 V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
673};
674#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
675#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
676#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
677#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
678#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
679#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
680#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
681#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
682#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
683
592/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */684/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
593#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)685#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
594#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)686#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
@@ -657,7 +749,6 @@ enum v4l2_mpeg_mfc51_video_force_frame_type { · 62 unmodified lines
657#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)749#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
658#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)750#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
659 751
660
661/* Camera class control IDs */752/* Camera class control IDs */
662 753
663#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)754#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
include/uapi/linux/v4l2-mediabus.h+2−2
@@ -18,8 +18,8 @@ · 17 unmodified lines
18 18
19/**19/**
20 * struct v4l2_mbus_framefmt - frame format on the media bus20 * struct v4l2_mbus_framefmt - frame format on the media bus
21 * @width: frame width21 * @width: image width
22 * @height: frame height22 * @height: image height
23 * @code: data format code (from enum v4l2_mbus_pixelcode)23 * @code: data format code (from enum v4l2_mbus_pixelcode)
24 * @field: used interlacing type (from enum v4l2_field)24 * @field: used interlacing type (from enum v4l2_field)
25 * @colorspace: colorspace of the data (from enum v4l2_colorspace)25 * @colorspace: colorspace of the data (from enum v4l2_colorspace)
include/uapi/linux/videodev2.h+1−0
@@ -635,6 +635,7 @@ struct v4l2_pix_format { · 634 unmodified lines
635#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */635#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
636#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */636#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
637#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */637#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
638#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
638 639
639/* Vendor-specific formats */640/* Vendor-specific formats */
640#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */641#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */