diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-04 12:50:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-04 12:50:07 -0400 |
commit | 3c83e61e67256e0bb08c46cc2db43b58fd617251 (patch) | |
tree | 0233e1e04e6449c60b01ff5dea8bea85bcf22f08 /include/uapi/linux | |
parent | 4a4389abdd9822fdf3cc2ac6ed87eb811fd43acc (diff) | |
parent | a83b93a7480441a47856dc9104bea970e84cda87 (diff) |
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
"The main set of series of patches for media subsystem, including:
- document RC sysfs class
- added an API to setup scancode to allow waking up systems using the
Remote Controller
- add API for SDR devices. Drivers are still on staging
- some API improvements for getting EDID data from media
inputs/outputs
- new DVB frontend driver for drx-j (ATSC)
- one driver (it913x/it9137) got removed, in favor of an improvement
on another driver (af9035)
- added a skeleton V4L2 PCI driver at documentation
- added a dual flash driver (lm3646)
- added a new IR driver (img-ir)
- added an IR scancode decoder for the Sharp protocol
- some improvements at the usbtv driver, to allow its core to be
reused.
- added a new SDR driver (rtl2832u_sdr)
- added a new tuner driver (msi001)
- several improvements at em28xx driver to fix PM support, device
removal and to split the V4L2 specific bits into a separate
sub-driver
- one driver got converted to videobuf2 (s2255drv)
- the e4000 tuner driver now follows an improved binding model
- some fixes at V4L2 compat32 code
- several fixes and enhancements at videobuf2 code
- some cleanups at V4L2 API documentation
- usual driver enhancements, new board additions and misc fixups"
[ NOTE! This merge effective drops commit 4329b93b283c ("of: Reduce
indentation in of_graph_get_next_endpoint").
The of_graph_get_next_endpoint() function was moved and renamed by
commit fd9fdb78a9bf ("[media] of: move graph helpers from
drivers/media/v4l2-core to drivers/of"). It was originally called
v4l2_of_get_next_endpoint() and lived in the file
drivers/media/v4l2-core/v4l2-of.c.
In that original location, it was then fixed to support empty port
nodes by commit b9db140c1e46 ("[media] v4l: of: Support empty port
nodes"), and that commit clashes badly with the dropped "Reduce
intendation" commit. I had to choose one or the other, and decided
that the "Support empty port nodes" commit was more important ]
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (426 commits)
[media] em28xx-dvb: fix PCTV 461e tuner I2C binding
Revert "[media] em28xx-dvb: fix PCTV 461e tuner I2C binding"
[media] em28xx: fix PCTV 290e LNA oops
[media] em28xx-dvb: fix PCTV 461e tuner I2C binding
[media] m88ds3103: fix bug on .set_tone()
[media] saa7134: fix WARN_ON during resume
[media] v4l2-dv-timings: add module name, description, license
[media] videodev2.h: add parenthesis around macro arguments
[media] saa6752hs: depends on CRC32
[media] si4713: fix Kconfig dependencies
[media] Sensoray 2255 uses videobuf2
[media] adv7180: free an interrupt on failure paths in init_device()
[media] e4000: make VIDEO_V4L2 dependency optional
[media] af9033: Don't export functions for the hardware filter
[media] af9035: use af9033 PID filters
[media] af9033: implement PID filter
[media] rtl2832_sdr: do not use dynamic stack allocation
[media] e4000: fix 32-bit build error
[media] em28xx-audio: make sure audio is unmuted on open()
[media] DocBook media: v4l2_format_sdr was renamed to v4l2_sdr_format
...
Diffstat (limited to 'include/uapi/linux')
-rw-r--r-- | include/uapi/linux/v4l2-common.h | 8 | ||||
-rw-r--r-- | include/uapi/linux/v4l2-controls.h | 19 | ||||
-rw-r--r-- | include/uapi/linux/v4l2-dv-timings.h | 17 | ||||
-rw-r--r-- | include/uapi/linux/v4l2-subdev.h | 14 | ||||
-rw-r--r-- | include/uapi/linux/videodev2.h | 74 |
5 files changed, 103 insertions, 29 deletions
diff --git a/include/uapi/linux/v4l2-common.h b/include/uapi/linux/v4l2-common.h index 4f0667e010dd..270db8914c01 100644 --- a/include/uapi/linux/v4l2-common.h +++ b/include/uapi/linux/v4l2-common.h | |||
@@ -68,4 +68,12 @@ | |||
68 | #define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE | 68 | #define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE |
69 | #define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG | 69 | #define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG |
70 | 70 | ||
71 | struct v4l2_edid { | ||
72 | __u32 pad; | ||
73 | __u32 start_block; | ||
74 | __u32 blocks; | ||
75 | __u32 reserved[5]; | ||
76 | __u8 __user *edid; | ||
77 | }; | ||
78 | |||
71 | #endif /* __V4L2_COMMON__ */ | 79 | #endif /* __V4L2_COMMON__ */ |
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index 2cbe605bbe04..2ac5597f3ee1 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h | |||
@@ -60,6 +60,7 @@ | |||
60 | #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ | 60 | #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ |
61 | #define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ | 61 | #define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ |
62 | #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ | 62 | #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ |
63 | #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ | ||
63 | 64 | ||
64 | /* User-class control IDs */ | 65 | /* User-class control IDs */ |
65 | 66 | ||
@@ -376,6 +377,8 @@ enum v4l2_mpeg_video_multi_slice_mode { | |||
376 | #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) | 377 | #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) |
377 | #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) | 378 | #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) |
378 | #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) | 379 | #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) |
380 | #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) | ||
381 | #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) | ||
379 | 382 | ||
380 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) | 383 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
381 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) | 384 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
@@ -812,6 +815,9 @@ enum v4l2_flash_strobe_source { | |||
812 | #define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) | 815 | #define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) |
813 | #define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) | 816 | #define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) |
814 | #define V4L2_FLASH_FAULT_INDICATOR (1 << 5) | 817 | #define V4L2_FLASH_FAULT_INDICATOR (1 << 5) |
818 | #define V4L2_FLASH_FAULT_UNDER_VOLTAGE (1 << 6) | ||
819 | #define V4L2_FLASH_FAULT_INPUT_VOLTAGE (1 << 7) | ||
820 | #define V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE (1 << 8) | ||
815 | 821 | ||
816 | #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) | 822 | #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) |
817 | #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) | 823 | #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) |
@@ -895,4 +901,17 @@ enum v4l2_deemphasis { | |||
895 | 901 | ||
896 | #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) | 902 | #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) |
897 | 903 | ||
904 | #define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900) | ||
905 | #define V4L2_CID_RF_TUNER_CLASS (V4L2_CTRL_CLASS_RF_TUNER | 1) | ||
906 | |||
907 | #define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11) | ||
908 | #define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12) | ||
909 | #define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41) | ||
910 | #define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42) | ||
911 | #define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51) | ||
912 | #define V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52) | ||
913 | #define V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61) | ||
914 | #define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62) | ||
915 | #define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91) | ||
916 | |||
898 | #endif | 917 | #endif |
diff --git a/include/uapi/linux/v4l2-dv-timings.h b/include/uapi/linux/v4l2-dv-timings.h index be709fe29552..b6a5fe00a470 100644 --- a/include/uapi/linux/v4l2-dv-timings.h +++ b/include/uapi/linux/v4l2-dv-timings.h | |||
@@ -823,4 +823,21 @@ | |||
823 | V4L2_DV_FL_REDUCED_BLANKING) \ | 823 | V4L2_DV_FL_REDUCED_BLANKING) \ |
824 | } | 824 | } |
825 | 825 | ||
826 | /* 4K resolutions */ | ||
827 | #define V4L2_DV_BT_DMT_4096X2160P60_RB { \ | ||
828 | .type = V4L2_DV_BT_656_1120, \ | ||
829 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \ | ||
830 | 556744000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \ | ||
831 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ | ||
832 | V4L2_DV_FL_REDUCED_BLANKING) \ | ||
833 | } | ||
834 | |||
835 | #define V4L2_DV_BT_DMT_4096X2160P59_94_RB { \ | ||
836 | .type = V4L2_DV_BT_656_1120, \ | ||
837 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \ | ||
838 | 556188000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \ | ||
839 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ | ||
840 | V4L2_DV_FL_REDUCED_BLANKING) \ | ||
841 | } | ||
842 | |||
826 | #endif | 843 | #endif |
diff --git a/include/uapi/linux/v4l2-subdev.h b/include/uapi/linux/v4l2-subdev.h index a33c4daadce3..87e05159f637 100644 --- a/include/uapi/linux/v4l2-subdev.h +++ b/include/uapi/linux/v4l2-subdev.h | |||
@@ -148,13 +148,8 @@ struct v4l2_subdev_selection { | |||
148 | __u32 reserved[8]; | 148 | __u32 reserved[8]; |
149 | }; | 149 | }; |
150 | 150 | ||
151 | struct v4l2_subdev_edid { | 151 | /* Backwards compatibility define --- to be removed */ |
152 | __u32 pad; | 152 | #define v4l2_subdev_edid v4l2_edid |
153 | __u32 start_block; | ||
154 | __u32 blocks; | ||
155 | __u32 reserved[5]; | ||
156 | __u8 __user *edid; | ||
157 | }; | ||
158 | 153 | ||
159 | #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) | 154 | #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) |
160 | #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) | 155 | #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) |
@@ -174,7 +169,8 @@ struct v4l2_subdev_edid { | |||
174 | _IOWR('V', 61, struct v4l2_subdev_selection) | 169 | _IOWR('V', 61, struct v4l2_subdev_selection) |
175 | #define VIDIOC_SUBDEV_S_SELECTION \ | 170 | #define VIDIOC_SUBDEV_S_SELECTION \ |
176 | _IOWR('V', 62, struct v4l2_subdev_selection) | 171 | _IOWR('V', 62, struct v4l2_subdev_selection) |
177 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_subdev_edid) | 172 | /* These two G/S_EDID ioctls are identical to the ioctls in videodev2.h */ |
178 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_subdev_edid) | 173 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) |
174 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) | ||
179 | 175 | ||
180 | #endif | 176 | #endif |
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 6ae7bbe988cc..ea468ee8fe21 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h | |||
@@ -139,6 +139,7 @@ enum v4l2_buf_type { | |||
139 | #endif | 139 | #endif |
140 | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, | 140 | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, |
141 | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, | 141 | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, |
142 | V4L2_BUF_TYPE_SDR_CAPTURE = 11, | ||
142 | /* Deprecated, do not use */ | 143 | /* Deprecated, do not use */ |
143 | V4L2_BUF_TYPE_PRIVATE = 0x80, | 144 | V4L2_BUF_TYPE_PRIVATE = 0x80, |
144 | }; | 145 | }; |
@@ -159,6 +160,8 @@ enum v4l2_tuner_type { | |||
159 | V4L2_TUNER_RADIO = 1, | 160 | V4L2_TUNER_RADIO = 1, |
160 | V4L2_TUNER_ANALOG_TV = 2, | 161 | V4L2_TUNER_ANALOG_TV = 2, |
161 | V4L2_TUNER_DIGITAL_TV = 3, | 162 | V4L2_TUNER_DIGITAL_TV = 3, |
163 | V4L2_TUNER_ADC = 4, | ||
164 | V4L2_TUNER_RF = 5, | ||
162 | }; | 165 | }; |
163 | 166 | ||
164 | enum v4l2_memory { | 167 | enum v4l2_memory { |
@@ -264,6 +267,8 @@ struct v4l2_capability { | |||
264 | #define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ | 267 | #define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ |
265 | #define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ | 268 | #define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ |
266 | 269 | ||
270 | #define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */ | ||
271 | |||
267 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ | 272 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ |
268 | #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ | 273 | #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ |
269 | #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ | 274 | #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ |
@@ -431,6 +436,10 @@ struct v4l2_pix_format { | |||
431 | #define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ | 436 | #define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ |
432 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ | 437 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ |
433 | 438 | ||
439 | /* SDR formats - used only for Software Defined Radio devices */ | ||
440 | #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ | ||
441 | #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */ | ||
442 | |||
434 | /* | 443 | /* |
435 | * F O R M A T E N U M E R A T I O N | 444 | * F O R M A T E N U M E R A T I O N |
436 | */ | 445 | */ |
@@ -669,24 +678,36 @@ struct v4l2_buffer { | |||
669 | }; | 678 | }; |
670 | 679 | ||
671 | /* Flags for 'flags' field */ | 680 | /* Flags for 'flags' field */ |
672 | #define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ | 681 | /* Buffer is mapped (flag) */ |
673 | #define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ | 682 | #define V4L2_BUF_FLAG_MAPPED 0x00000001 |
674 | #define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ | 683 | /* Buffer is queued for processing */ |
675 | #define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ | 684 | #define V4L2_BUF_FLAG_QUEUED 0x00000002 |
676 | #define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ | 685 | /* Buffer is ready */ |
677 | #define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ | 686 | #define V4L2_BUF_FLAG_DONE 0x00000004 |
687 | /* Image is a keyframe (I-frame) */ | ||
688 | #define V4L2_BUF_FLAG_KEYFRAME 0x00000008 | ||
689 | /* Image is a P-frame */ | ||
690 | #define V4L2_BUF_FLAG_PFRAME 0x00000010 | ||
691 | /* Image is a B-frame */ | ||
692 | #define V4L2_BUF_FLAG_BFRAME 0x00000020 | ||
678 | /* Buffer is ready, but the data contained within is corrupted. */ | 693 | /* Buffer is ready, but the data contained within is corrupted. */ |
679 | #define V4L2_BUF_FLAG_ERROR 0x0040 | 694 | #define V4L2_BUF_FLAG_ERROR 0x00000040 |
680 | #define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ | 695 | /* timecode field is valid */ |
681 | #define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */ | 696 | #define V4L2_BUF_FLAG_TIMECODE 0x00000100 |
697 | /* Buffer is prepared for queuing */ | ||
698 | #define V4L2_BUF_FLAG_PREPARED 0x00000400 | ||
682 | /* Cache handling flags */ | 699 | /* Cache handling flags */ |
683 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 | 700 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x00000800 |
684 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 | 701 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x00001000 |
685 | /* Timestamp type */ | 702 | /* Timestamp type */ |
686 | #define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 | 703 | #define V4L2_BUF_FLAG_TIMESTAMP_MASK 0x0000e000 |
687 | #define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 | 704 | #define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x00000000 |
688 | #define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 | 705 | #define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x00002000 |
689 | #define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x4000 | 706 | #define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x00004000 |
707 | /* Timestamp sources. */ | ||
708 | #define V4L2_BUF_FLAG_TSTAMP_SRC_MASK 0x00070000 | ||
709 | #define V4L2_BUF_FLAG_TSTAMP_SRC_EOF 0x00000000 | ||
710 | #define V4L2_BUF_FLAG_TSTAMP_SRC_SOE 0x00010000 | ||
690 | 711 | ||
691 | /** | 712 | /** |
692 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor | 713 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor |
@@ -1059,14 +1080,14 @@ struct v4l2_bt_timings { | |||
1059 | 1080 | ||
1060 | /* A few useful defines to calculate the total blanking and frame sizes */ | 1081 | /* A few useful defines to calculate the total blanking and frame sizes */ |
1061 | #define V4L2_DV_BT_BLANKING_WIDTH(bt) \ | 1082 | #define V4L2_DV_BT_BLANKING_WIDTH(bt) \ |
1062 | (bt->hfrontporch + bt->hsync + bt->hbackporch) | 1083 | ((bt)->hfrontporch + (bt)->hsync + (bt)->hbackporch) |
1063 | #define V4L2_DV_BT_FRAME_WIDTH(bt) \ | 1084 | #define V4L2_DV_BT_FRAME_WIDTH(bt) \ |
1064 | (bt->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) | 1085 | ((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) |
1065 | #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ | 1086 | #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ |
1066 | (bt->vfrontporch + bt->vsync + bt->vbackporch + \ | 1087 | ((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \ |
1067 | bt->il_vfrontporch + bt->il_vsync + bt->il_vbackporch) | 1088 | (bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) |
1068 | #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ | 1089 | #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ |
1069 | (bt->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) | 1090 | ((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) |
1070 | 1091 | ||
1071 | /** struct v4l2_dv_timings - DV timings | 1092 | /** struct v4l2_dv_timings - DV timings |
1072 | * @type: the type of the timings | 1093 | * @type: the type of the timings |
@@ -1339,6 +1360,7 @@ struct v4l2_modulator { | |||
1339 | #define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 | 1360 | #define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 |
1340 | #define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 | 1361 | #define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 |
1341 | #define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 | 1362 | #define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 |
1363 | #define V4L2_TUNER_CAP_1HZ 0x1000 | ||
1342 | 1364 | ||
1343 | /* Flags for the 'rxsubchans' field */ | 1365 | /* Flags for the 'rxsubchans' field */ |
1344 | #define V4L2_TUNER_SUB_MONO 0x0001 | 1366 | #define V4L2_TUNER_SUB_MONO 0x0001 |
@@ -1692,6 +1714,15 @@ struct v4l2_pix_format_mplane { | |||
1692 | } __attribute__ ((packed)); | 1714 | } __attribute__ ((packed)); |
1693 | 1715 | ||
1694 | /** | 1716 | /** |
1717 | * struct v4l2_sdr_format - SDR format definition | ||
1718 | * @pixelformat: little endian four character code (fourcc) | ||
1719 | */ | ||
1720 | struct v4l2_sdr_format { | ||
1721 | __u32 pixelformat; | ||
1722 | __u8 reserved[28]; | ||
1723 | } __attribute__ ((packed)); | ||
1724 | |||
1725 | /** | ||
1695 | * struct v4l2_format - stream data format | 1726 | * struct v4l2_format - stream data format |
1696 | * @type: enum v4l2_buf_type; type of the data stream | 1727 | * @type: enum v4l2_buf_type; type of the data stream |
1697 | * @pix: definition of an image format | 1728 | * @pix: definition of an image format |
@@ -1709,6 +1740,7 @@ struct v4l2_format { | |||
1709 | struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ | 1740 | struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ |
1710 | struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ | 1741 | struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ |
1711 | struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ | 1742 | struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ |
1743 | struct v4l2_sdr_format sdr; /* V4L2_BUF_TYPE_SDR_CAPTURE */ | ||
1712 | __u8 raw_data[200]; /* user-defined */ | 1744 | __u8 raw_data[200]; /* user-defined */ |
1713 | } fmt; | 1745 | } fmt; |
1714 | }; | 1746 | }; |
@@ -1885,6 +1917,8 @@ struct v4l2_create_buffers { | |||
1885 | #define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu) | 1917 | #define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu) |
1886 | #define VIDIOC_G_INPUT _IOR('V', 38, int) | 1918 | #define VIDIOC_G_INPUT _IOR('V', 38, int) |
1887 | #define VIDIOC_S_INPUT _IOWR('V', 39, int) | 1919 | #define VIDIOC_S_INPUT _IOWR('V', 39, int) |
1920 | #define VIDIOC_G_EDID _IOWR('V', 40, struct v4l2_edid) | ||
1921 | #define VIDIOC_S_EDID _IOWR('V', 41, struct v4l2_edid) | ||
1888 | #define VIDIOC_G_OUTPUT _IOR('V', 46, int) | 1922 | #define VIDIOC_G_OUTPUT _IOR('V', 46, int) |
1889 | #define VIDIOC_S_OUTPUT _IOWR('V', 47, int) | 1923 | #define VIDIOC_S_OUTPUT _IOWR('V', 47, int) |
1890 | #define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output) | 1924 | #define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output) |