Merge tag 'media/v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - new Mediatek drivers: mtk-mdp and mtk-vcodec - some additions at the media documentation - the CEC core and drivers were promoted from staging to mainstream - some cleanups at the DVB core - the LIRC serial driver got promoted from staging to mainstream - added a driver for Renesas R-Car FDP1 driver - add DVBv5 statistics support to mn88473 driver - several fixes related to printk continuation lines - add support for HSV encoding formats - lots of other cleanups, fixups and driver improvements. * tag 'media/v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (496 commits) [media] v4l: tvp5150: Add missing break in set control handler [media] v4l: tvp5150: Don't inline the tvp5150_selmux() function [media] v4l: tvp5150: Compile tvp5150_link_setup out if !CONFIG_MEDIA_CONTROLLER [media] em28xx: don't store usb_device at struct em28xx [media] em28xx: use usb_interface for dev_foo() calls [media] em28xx: don't change the device's name [media] mn88472: fix chip id check on probe [media] mn88473: fix chip id check on probe [media] lirc: fix error paths in lirc_cdev_add() [media] s5p-mfc: Add support for MFC v8 available in Exynos 5433 SoCs [media] s5p-mfc: Rework clock handling [media] s5p-mfc: Don't keep clock prepared all the time [media] s5p-mfc: Kill all IS_ERR_OR_NULL in clocks management code [media] s5p-mfc: Remove dead conditional code [media] s5p-mfc: Ensure that clock is disabled before turning power off [media] s5p-mfc: Remove special clock rate management [media] s5p-mfc: Use printk_ratelimited for reporting ioctl errors [media] s5p-mfc: Set DMA_ATTR_ALLOC_SINGLE_PAGES [media] vivid: Set color_enc on HSV formats [media] v4l2-tpg: Init hv_enc field with a valid value ...
This commit is contained in:
@@ -84,6 +84,8 @@ header-y += capi.h
|
||||
header-y += cciss_defs.h
|
||||
header-y += cciss_ioctl.h
|
||||
header-y += cdrom.h
|
||||
header-y += cec.h
|
||||
header-y += cec-funcs.h
|
||||
header-y += cgroupstats.h
|
||||
header-y += chio.h
|
||||
header-y += cm4000_cs.h
|
||||
|
1965
include/uapi/linux/cec-funcs.h
Normal file
1965
include/uapi/linux/cec-funcs.h
Normal file
File diff suppressed because it is too large
Load Diff
1066
include/uapi/linux/cec.h
Normal file
1066
include/uapi/linux/cec.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -892,6 +892,7 @@ enum v4l2_jpeg_chroma_subsampling {
|
||||
#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
|
||||
#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
|
||||
#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
|
||||
#define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)
|
||||
|
||||
|
||||
/* DV-class control IDs defined by V4L2 */
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* V4L2 DV timings header.
|
||||
*
|
||||
* Copyright (C) 2012 Hans Verkuil <hans.verkuil@cisco.com>
|
||||
* Copyright (C) 2012-2016 Hans Verkuil <hans.verkuil@cisco.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -11,11 +11,6 @@
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _V4L2_DV_TIMINGS_H
|
||||
@@ -33,13 +28,14 @@
|
||||
.bt = { _width , ## args }
|
||||
#endif
|
||||
|
||||
/* CEA-861-E timings (i.e. standard HDTV timings) */
|
||||
/* CEA-861-F timings (i.e. standard HDTV timings) */
|
||||
|
||||
#define V4L2_DV_BT_CEA_640X480P59_94 { \
|
||||
.type = V4L2_DV_BT_656_1120, \
|
||||
V4L2_INIT_BT_TIMINGS(640, 480, 0, 0, \
|
||||
25175000, 16, 96, 48, 10, 2, 33, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, 0) \
|
||||
V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 1) \
|
||||
}
|
||||
|
||||
/* Note: these are the nominal timings, for HDMI links this format is typically
|
||||
@@ -49,14 +45,18 @@
|
||||
V4L2_INIT_BT_TIMINGS(720, 480, 1, 0, \
|
||||
13500000, 19, 62, 57, 4, 3, 15, 4, 3, 16, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_PICTURE_ASPECT | V4L2_DV_FL_HAS_CEA861_VIC, \
|
||||
{ 4, 3 }, 6) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_720X480P59_94 { \
|
||||
.type = V4L2_DV_BT_656_1120, \
|
||||
V4L2_INIT_BT_TIMINGS(720, 480, 0, 0, \
|
||||
27000000, 16, 62, 60, 9, 6, 30, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_PICTURE_ASPECT | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 4, 3 }, 2) \
|
||||
}
|
||||
|
||||
/* Note: these are the nominal timings, for HDMI links this format is typically
|
||||
@@ -66,14 +66,18 @@
|
||||
V4L2_INIT_BT_TIMINGS(720, 576, 1, 0, \
|
||||
13500000, 12, 63, 69, 2, 3, 19, 2, 3, 20, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_PICTURE_ASPECT | V4L2_DV_FL_HAS_CEA861_VIC, \
|
||||
{ 4, 3 }, 21) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_720X576P50 { \
|
||||
.type = V4L2_DV_BT_656_1120, \
|
||||
V4L2_INIT_BT_TIMINGS(720, 576, 0, 0, \
|
||||
27000000, 12, 64, 68, 5, 5, 39, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_PICTURE_ASPECT | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 4, 3 }, 17) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1280X720P24 { \
|
||||
@@ -82,7 +86,7 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
59400000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 60) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1280X720P25 { \
|
||||
@@ -90,7 +94,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 2420, 40, 220, 5, 5, 20, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 61) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1280X720P30 { \
|
||||
@@ -99,7 +104,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 1760, 40, 220, 5, 5, 20, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 62) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1280X720P50 { \
|
||||
@@ -107,7 +113,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(1280, 720, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 440, 40, 220, 5, 5, 20, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 19) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1280X720P60 { \
|
||||
@@ -116,7 +123,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 110, 40, 220, 5, 5, 20, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 4) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080P24 { \
|
||||
@@ -125,7 +133,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 638, 44, 148, 4, 5, 36, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 32) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080P25 { \
|
||||
@@ -133,7 +142,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 33) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080P30 { \
|
||||
@@ -142,7 +152,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 34) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080I50 { \
|
||||
@@ -151,7 +162,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
74250000, 528, 44, 148, 2, 5, 15, 2, 5, 16, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 20) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080P50 { \
|
||||
@@ -159,7 +171,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(1920, 1080, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
148500000, 528, 44, 148, 4, 5, 36, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 31) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080I60 { \
|
||||
@@ -169,7 +182,8 @@
|
||||
74250000, 88, 44, 148, 2, 5, 15, 2, 5, 16, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_HALF_LINE | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 5) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_1920X1080P60 { \
|
||||
@@ -178,7 +192,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
148500000, 88, 44, 148, 4, 5, 36, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 16) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_3840X2160P24 { \
|
||||
@@ -187,7 +202,9 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
297000000, 1276, 88, 296, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \
|
||||
{ 0, 0 }, 93, 3) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_3840X2160P25 { \
|
||||
@@ -195,7 +212,9 @@
|
||||
V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
297000000, 1056, 88, 296, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC | \
|
||||
V4L2_DV_FL_HAS_HDMI_VIC, { 0, 0 }, 94, 2) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_3840X2160P30 { \
|
||||
@@ -204,7 +223,9 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
297000000, 176, 88, 296, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \
|
||||
{ 0, 0 }, 95, 1) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_3840X2160P50 { \
|
||||
@@ -212,7 +233,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(3840, 2160, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
594000000, 1056, 88, 296, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 96) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_3840X2160P60 { \
|
||||
@@ -221,7 +243,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
594000000, 176, 88, 296, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 97) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_4096X2160P24 { \
|
||||
@@ -230,7 +253,9 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
297000000, 1020, 88, 296, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC | V4L2_DV_FL_HAS_HDMI_VIC, \
|
||||
{ 0, 0 }, 98, 4) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_4096X2160P25 { \
|
||||
@@ -238,7 +263,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
297000000, 968, 88, 128, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 99) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_4096X2160P30 { \
|
||||
@@ -247,7 +273,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
297000000, 88, 88, 128, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 100) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_4096X2160P50 { \
|
||||
@@ -255,7 +282,8 @@
|
||||
V4L2_INIT_BT_TIMINGS(4096, 2160, 0, \
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
594000000, 968, 88, 128, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_IS_CE_VIDEO | V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 101) \
|
||||
}
|
||||
|
||||
#define V4L2_DV_BT_CEA_4096X2160P60 { \
|
||||
@@ -264,7 +292,8 @@
|
||||
V4L2_DV_HSYNC_POS_POL | V4L2_DV_VSYNC_POS_POL, \
|
||||
594000000, 88, 88, 128, 8, 10, 72, 0, 0, 0, \
|
||||
V4L2_DV_BT_STD_CEA861, \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO) \
|
||||
V4L2_DV_FL_CAN_REDUCE_FPS | V4L2_DV_FL_IS_CE_VIDEO | \
|
||||
V4L2_DV_FL_HAS_CEA861_VIC, { 0, 0 }, 102) \
|
||||
}
|
||||
|
||||
|
||||
|
@@ -334,6 +334,19 @@ enum v4l2_ycbcr_encoding {
|
||||
V4L2_YCBCR_ENC_SMPTE240M = 8,
|
||||
};
|
||||
|
||||
/*
|
||||
* enum v4l2_hsv_encoding values should not collide with the ones from
|
||||
* enum v4l2_ycbcr_encoding.
|
||||
*/
|
||||
enum v4l2_hsv_encoding {
|
||||
|
||||
/* Hue mapped to 0 - 179 */
|
||||
V4L2_HSV_ENC_180 = 128,
|
||||
|
||||
/* Hue mapped to 0-255 */
|
||||
V4L2_HSV_ENC_256 = 129,
|
||||
};
|
||||
|
||||
/*
|
||||
* Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
|
||||
* This depends on the colorspace.
|
||||
@@ -362,9 +375,10 @@ enum v4l2_quantization {
|
||||
* This depends on whether the image is RGB or not, the colorspace and the
|
||||
* Y'CbCr encoding.
|
||||
*/
|
||||
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
|
||||
(((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? V4L2_QUANTIZATION_LIM_RANGE : \
|
||||
(((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
|
||||
#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \
|
||||
(((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \
|
||||
V4L2_QUANTIZATION_LIM_RANGE : \
|
||||
(((is_rgb_or_hsv) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
|
||||
(ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == V4L2_COLORSPACE_JPEG) || \
|
||||
(colsp) == V4L2_COLORSPACE_ADOBERGB || (colsp) == V4L2_COLORSPACE_SRGB ? \
|
||||
V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
|
||||
@@ -462,7 +476,12 @@ struct v4l2_pix_format {
|
||||
__u32 colorspace; /* enum v4l2_colorspace */
|
||||
__u32 priv; /* private data, depends on pixelformat */
|
||||
__u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
|
||||
__u32 ycbcr_enc; /* enum v4l2_ycbcr_encoding */
|
||||
union {
|
||||
/* enum v4l2_ycbcr_encoding */
|
||||
__u32 ycbcr_enc;
|
||||
/* enum v4l2_hsv_encoding */
|
||||
__u32 hsv_enc;
|
||||
};
|
||||
__u32 quantization; /* enum v4l2_quantization */
|
||||
__u32 xfer_func; /* enum v4l2_xfer_func */
|
||||
};
|
||||
@@ -586,6 +605,13 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
|
||||
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16 RGRG.. GBGB.. */
|
||||
|
||||
/* HSV formats */
|
||||
#define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3')
|
||||
#define V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4')
|
||||
|
||||
/* compressed formats */
|
||||
#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */
|
||||
@@ -603,6 +629,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
|
||||
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
|
||||
/* Vendor-specific formats */
|
||||
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
||||
@@ -634,6 +661,7 @@ struct v4l2_pix_format {
|
||||
#define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */
|
||||
#define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
|
||||
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
|
||||
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
|
||||
|
||||
/* SDR formats - used only for Software Defined Radio devices */
|
||||
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
|
||||
@@ -1229,6 +1257,9 @@ struct v4l2_standard {
|
||||
* (aka field 2) of interlaced field formats
|
||||
* @standards: Standards the timing belongs to
|
||||
* @flags: Flags
|
||||
* @picture_aspect: The picture aspect ratio (hor/vert).
|
||||
* @cea861_vic: VIC code as per the CEA-861 standard.
|
||||
* @hdmi_vic: VIC code as per the HDMI standard.
|
||||
* @reserved: Reserved fields, must be zeroed.
|
||||
*
|
||||
* A note regarding vertical interlaced timings: height refers to the total
|
||||
@@ -1258,7 +1289,10 @@ struct v4l2_bt_timings {
|
||||
__u32 il_vbackporch;
|
||||
__u32 standards;
|
||||
__u32 flags;
|
||||
__u32 reserved[14];
|
||||
struct v4l2_fract picture_aspect;
|
||||
__u8 cea861_vic;
|
||||
__u8 hdmi_vic;
|
||||
__u8 reserved[46];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* Interlaced or progressive format */
|
||||
@@ -1278,39 +1312,66 @@ struct v4l2_bt_timings {
|
||||
|
||||
/* Flags */
|
||||
|
||||
/* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
|
||||
GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
|
||||
intervals are reduced, allowing a higher resolution over the same
|
||||
bandwidth. This is a read-only flag. */
|
||||
/*
|
||||
* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary
|
||||
* GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
|
||||
* intervals are reduced, allowing a higher resolution over the same
|
||||
* bandwidth. This is a read-only flag.
|
||||
*/
|
||||
#define V4L2_DV_FL_REDUCED_BLANKING (1 << 0)
|
||||
/* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
|
||||
of six. These formats can be optionally played at 1 / 1.001 speed.
|
||||
This is a read-only flag. */
|
||||
/*
|
||||
* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
|
||||
* of six. These formats can be optionally played at 1 / 1.001 speed.
|
||||
* This is a read-only flag.
|
||||
*/
|
||||
#define V4L2_DV_FL_CAN_REDUCE_FPS (1 << 1)
|
||||
/* CEA-861 specific: only valid for video transmitters, the flag is cleared
|
||||
by receivers.
|
||||
If the framerate of the format is a multiple of six, then the pixelclock
|
||||
used to set up the transmitter is divided by 1.001 to make it compatible
|
||||
with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
|
||||
29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
|
||||
such frequencies, then the flag will also be cleared. */
|
||||
/*
|
||||
* CEA-861 specific: only valid for video transmitters, the flag is cleared
|
||||
* by receivers.
|
||||
* If the framerate of the format is a multiple of six, then the pixelclock
|
||||
* used to set up the transmitter is divided by 1.001 to make it compatible
|
||||
* with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
|
||||
* 29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate
|
||||
* such frequencies, then the flag will also be cleared.
|
||||
*/
|
||||
#define V4L2_DV_FL_REDUCED_FPS (1 << 2)
|
||||
/* Specific to interlaced formats: if set, then field 1 is really one half-line
|
||||
longer and field 2 is really one half-line shorter, so each field has
|
||||
exactly the same number of half-lines. Whether half-lines can be detected
|
||||
or used depends on the hardware. */
|
||||
/*
|
||||
* Specific to interlaced formats: if set, then field 1 is really one half-line
|
||||
* longer and field 2 is really one half-line shorter, so each field has
|
||||
* exactly the same number of half-lines. Whether half-lines can be detected
|
||||
* or used depends on the hardware.
|
||||
*/
|
||||
#define V4L2_DV_FL_HALF_LINE (1 << 3)
|
||||
/* If set, then this is a Consumer Electronics (CE) video format. Such formats
|
||||
/*
|
||||
* If set, then this is a Consumer Electronics (CE) video format. Such formats
|
||||
* differ from other formats (commonly called IT formats) in that if RGB
|
||||
* encoding is used then by default the RGB values use limited range (i.e.
|
||||
* use the range 16-235) as opposed to 0-255. All formats defined in CEA-861
|
||||
* except for the 640x480 format are CE formats. */
|
||||
* except for the 640x480 format are CE formats.
|
||||
*/
|
||||
#define V4L2_DV_FL_IS_CE_VIDEO (1 << 4)
|
||||
/* Some formats like SMPTE-125M have an interlaced signal with a odd
|
||||
* total height. For these formats, if this flag is set, the first
|
||||
* field has the extra line. If not, it is the second field.
|
||||
*/
|
||||
#define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE (1 << 5)
|
||||
#define V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE (1 << 5)
|
||||
/*
|
||||
* If set, then the picture_aspect field is valid. Otherwise assume that the
|
||||
* pixels are square, so the picture aspect ratio is the same as the width to
|
||||
* height ratio.
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_PICTURE_ASPECT (1 << 6)
|
||||
/*
|
||||
* If set, then the cea861_vic field is valid and contains the Video
|
||||
* Identification Code as per the CEA-861 standard.
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_CEA861_VIC (1 << 7)
|
||||
/*
|
||||
* If set, then the hdmi_vic field is valid and contains the Video
|
||||
* Identification Code as per the HDMI standard (HDMI Vendor Specific
|
||||
* InfoFrame).
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_HDMI_VIC (1 << 8)
|
||||
|
||||
/* A few useful defines to calculate the total blanking and frame sizes */
|
||||
#define V4L2_DV_BT_BLANKING_WIDTH(bt) \
|
||||
@@ -2006,7 +2067,10 @@ struct v4l2_pix_format_mplane {
|
||||
struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES];
|
||||
__u8 num_planes;
|
||||
__u8 flags;
|
||||
__u8 ycbcr_enc;
|
||||
union {
|
||||
__u8 ycbcr_enc;
|
||||
__u8 hsv_enc;
|
||||
};
|
||||
__u8 quantization;
|
||||
__u8 xfer_func;
|
||||
__u8 reserved[7];
|
||||
|
Reference in New Issue
Block a user