diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-24 20:35:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-24 20:35:10 -0500 |
commit | 21fbd5809ad126b949206d78e0a0e07ec872ea11 (patch) | |
tree | a824045df99fc1f0690095a925cceb50207e332b /include/uapi | |
parent | d9978ec5680059d727b39d6c706777c6973587f2 (diff) | |
parent | ed72d37a33fdf43dc47787fe220532cdec9da528 (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:
- Some cleanups at V4L2 documentation
- new drivers: ts2020 frontend, ov9650 sensor, s5c73m3 sensor,
sh-mobile veu mem2mem driver, radio-ma901, davinci_vpfe staging
driver
- Lots of missing MAINTAINERS entries added
- several em28xx driver improvements, including its conversion to
videobuf2
- several fixups on drivers to make them to better comply with the API
- DVB core: add support for DVBv5 stats, allowing the implementation of
statistics for new standards like ISDB
- mb86a20s: add statistics to the driver
- lots of new board additions, cleanups, and driver improvements.
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (596 commits)
[media] media: Add 0x3009 USB PID to ttusb2 driver (fixed diff)
[media] rtl28xxu: Add USB IDs for Compro VideoMate U620F
[media] em28xx: add usb id for terratec h5 rev. 3
[media] media: rc: gpio-ir-recv: add support for device tree parsing
[media] mceusb: move check earlier to make smatch happy
[media] radio-si470x doc: add info about v4l2-ctl and sox+alsa
[media] staging: media: Remove unnecessary OOM messages
[media] sh_vou: Use vou_dev instead of vou_file wherever possible
[media] sh_vou: Use video_drvdata()
[media] drivers/media/platform/soc_camera/pxa_camera.c: use devm_ functions
[media] mt9t112: mt9t111 format set up differs from mt9t112
[media] sh-mobile-ceu-camera: fix SHARPNESS control default
Revert "[media] fc0011: Return early, if the frequency is already tuned"
[media] cx18/ivtv: fix regression: remove __init from a non-init function
[media] em28xx: fix analog streaming with USB bulk transfers
[media] stv0900: remove unnecessary null pointer check
[media] fc0011: Return early, if the frequency is already tuned
[media] fc0011: Add some sanity checks and cleanups
[media] fc0011: Fix xin value clamping
Revert "[media] [PATH,1/2] mxl5007 move reset to attach"
...
Diffstat (limited to 'include/uapi')
-rw-r--r-- | include/uapi/linux/dvb/frontend.h | 79 | ||||
-rw-r--r-- | include/uapi/linux/dvb/version.h | 2 | ||||
-rw-r--r-- | include/uapi/linux/meye.h | 8 | ||||
-rw-r--r-- | include/uapi/linux/v4l2-controls.h | 33 | ||||
-rw-r--r-- | include/uapi/linux/v4l2-mediabus.h | 11 | ||||
-rw-r--r-- | include/uapi/linux/videodev2.h | 35 |
6 files changed, 133 insertions, 35 deletions
diff --git a/include/uapi/linux/dvb/frontend.h b/include/uapi/linux/dvb/frontend.h index c12d452cb40d..c56d77c496a5 100644 --- a/include/uapi/linux/dvb/frontend.h +++ b/include/uapi/linux/dvb/frontend.h | |||
@@ -365,7 +365,17 @@ struct dvb_frontend_event { | |||
365 | #define DTV_INTERLEAVING 60 | 365 | #define DTV_INTERLEAVING 60 |
366 | #define DTV_LNA 61 | 366 | #define DTV_LNA 61 |
367 | 367 | ||
368 | #define DTV_MAX_COMMAND DTV_LNA | 368 | /* Quality parameters */ |
369 | #define DTV_STAT_SIGNAL_STRENGTH 62 | ||
370 | #define DTV_STAT_CNR 63 | ||
371 | #define DTV_STAT_PRE_ERROR_BIT_COUNT 64 | ||
372 | #define DTV_STAT_PRE_TOTAL_BIT_COUNT 65 | ||
373 | #define DTV_STAT_POST_ERROR_BIT_COUNT 66 | ||
374 | #define DTV_STAT_POST_TOTAL_BIT_COUNT 67 | ||
375 | #define DTV_STAT_ERROR_BLOCK_COUNT 68 | ||
376 | #define DTV_STAT_TOTAL_BLOCK_COUNT 69 | ||
377 | |||
378 | #define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT | ||
369 | 379 | ||
370 | typedef enum fe_pilot { | 380 | typedef enum fe_pilot { |
371 | PILOT_ON, | 381 | PILOT_ON, |
@@ -452,11 +462,78 @@ struct dtv_cmds_h { | |||
452 | __u32 reserved:30; /* Align */ | 462 | __u32 reserved:30; /* Align */ |
453 | }; | 463 | }; |
454 | 464 | ||
465 | /** | ||
466 | * Scale types for the quality parameters. | ||
467 | * @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That | ||
468 | * could indicate a temporary or a permanent | ||
469 | * condition. | ||
470 | * @FE_SCALE_DECIBEL: The scale is measured in 0.0001 dB steps, typically | ||
471 | * used on signal measures. | ||
472 | * @FE_SCALE_RELATIVE: The scale is a relative percentual measure, | ||
473 | * ranging from 0 (0%) to 0xffff (100%). | ||
474 | * @FE_SCALE_COUNTER: The scale counts the occurrence of an event, like | ||
475 | * bit error, block error, lapsed time. | ||
476 | */ | ||
477 | enum fecap_scale_params { | ||
478 | FE_SCALE_NOT_AVAILABLE = 0, | ||
479 | FE_SCALE_DECIBEL, | ||
480 | FE_SCALE_RELATIVE, | ||
481 | FE_SCALE_COUNTER | ||
482 | }; | ||
483 | |||
484 | /** | ||
485 | * struct dtv_stats - Used for reading a DTV status property | ||
486 | * | ||
487 | * @value: value of the measure. Should range from 0 to 0xffff; | ||
488 | * @scale: Filled with enum fecap_scale_params - the scale | ||
489 | * in usage for that parameter | ||
490 | * | ||
491 | * For most delivery systems, this will return a single value for each | ||
492 | * parameter. | ||
493 | * It should be noticed, however, that new OFDM delivery systems like | ||
494 | * ISDB can use different modulation types for each group of carriers. | ||
495 | * On such standards, up to 8 groups of statistics can be provided, one | ||
496 | * for each carrier group (called "layer" on ISDB). | ||
497 | * In order to be consistent with other delivery systems, the first | ||
498 | * value refers to the entire set of carriers ("global"). | ||
499 | * dtv_status:scale should use the value FE_SCALE_NOT_AVAILABLE when | ||
500 | * the value for the entire group of carriers or from one specific layer | ||
501 | * is not provided by the hardware. | ||
502 | * st.len should be filled with the latest filled status + 1. | ||
503 | * | ||
504 | * In other words, for ISDB, those values should be filled like: | ||
505 | * u.st.stat.svalue[0] = global statistics; | ||
506 | * u.st.stat.scale[0] = FE_SCALE_DECIBELS; | ||
507 | * u.st.stat.value[1] = layer A statistics; | ||
508 | * u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available); | ||
509 | * u.st.stat.svalue[2] = layer B statistics; | ||
510 | * u.st.stat.scale[2] = FE_SCALE_DECIBELS; | ||
511 | * u.st.stat.svalue[3] = layer C statistics; | ||
512 | * u.st.stat.scale[3] = FE_SCALE_DECIBELS; | ||
513 | * u.st.len = 4; | ||
514 | */ | ||
515 | struct dtv_stats { | ||
516 | __u8 scale; /* enum fecap_scale_params type */ | ||
517 | union { | ||
518 | __u64 uvalue; /* for counters and relative scales */ | ||
519 | __s64 svalue; /* for 0.0001 dB measures */ | ||
520 | }; | ||
521 | } __attribute__ ((packed)); | ||
522 | |||
523 | |||
524 | #define MAX_DTV_STATS 4 | ||
525 | |||
526 | struct dtv_fe_stats { | ||
527 | __u8 len; | ||
528 | struct dtv_stats stat[MAX_DTV_STATS]; | ||
529 | } __attribute__ ((packed)); | ||
530 | |||
455 | struct dtv_property { | 531 | struct dtv_property { |
456 | __u32 cmd; | 532 | __u32 cmd; |
457 | __u32 reserved[3]; | 533 | __u32 reserved[3]; |
458 | union { | 534 | union { |
459 | __u32 data; | 535 | __u32 data; |
536 | struct dtv_fe_stats st; | ||
460 | struct { | 537 | struct { |
461 | __u8 data[32]; | 538 | __u8 data[32]; |
462 | __u32 len; | 539 | __u32 len; |
diff --git a/include/uapi/linux/dvb/version.h b/include/uapi/linux/dvb/version.h index 827cce7e33e3..e53e2ad4444f 100644 --- a/include/uapi/linux/dvb/version.h +++ b/include/uapi/linux/dvb/version.h | |||
@@ -24,6 +24,6 @@ | |||
24 | #define _DVBVERSION_H_ | 24 | #define _DVBVERSION_H_ |
25 | 25 | ||
26 | #define DVB_API_VERSION 5 | 26 | #define DVB_API_VERSION 5 |
27 | #define DVB_API_VERSION_MINOR 9 | 27 | #define DVB_API_VERSION_MINOR 10 |
28 | 28 | ||
29 | #endif /*_DVBVERSION_H_*/ | 29 | #endif /*_DVBVERSION_H_*/ |
diff --git a/include/uapi/linux/meye.h b/include/uapi/linux/meye.h index 0dd49954f746..8ff50fe9e481 100644 --- a/include/uapi/linux/meye.h +++ b/include/uapi/linux/meye.h | |||
@@ -57,10 +57,8 @@ struct meye_params { | |||
57 | #define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int) | 57 | #define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int) |
58 | 58 | ||
59 | /* V4L2 private controls */ | 59 | /* V4L2 private controls */ |
60 | #define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE | 60 | #define V4L2_CID_MEYE_AGC (V4L2_CID_USER_MEYE_BASE + 0) |
61 | #define V4L2_CID_MEYE_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1) | 61 | #define V4L2_CID_MEYE_PICTURE (V4L2_CID_USER_MEYE_BASE + 1) |
62 | #define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2) | 62 | #define V4L2_CID_MEYE_FRAMERATE (V4L2_CID_USER_MEYE_BASE + 2) |
63 | #define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3) | ||
64 | #define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4) | ||
65 | 63 | ||
66 | #endif | 64 | #endif |
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index f56c945cecd4..dcd63745e83a 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h | |||
@@ -88,10 +88,6 @@ | |||
88 | #define V4L2_CID_HFLIP (V4L2_CID_BASE+20) | 88 | #define V4L2_CID_HFLIP (V4L2_CID_BASE+20) |
89 | #define V4L2_CID_VFLIP (V4L2_CID_BASE+21) | 89 | #define V4L2_CID_VFLIP (V4L2_CID_BASE+21) |
90 | 90 | ||
91 | /* Deprecated; use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */ | ||
92 | #define V4L2_CID_HCENTER (V4L2_CID_BASE+22) | ||
93 | #define V4L2_CID_VCENTER (V4L2_CID_BASE+23) | ||
94 | |||
95 | #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) | 91 | #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) |
96 | enum v4l2_power_line_frequency { | 92 | enum v4l2_power_line_frequency { |
97 | V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, | 93 | V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, |
@@ -144,6 +140,11 @@ enum v4l2_colorfx { | |||
144 | /* last CID + 1 */ | 140 | /* last CID + 1 */ |
145 | #define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) | 141 | #define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) |
146 | 142 | ||
143 | /* USER-class private control IDs */ | ||
144 | |||
145 | /* The base for the meye driver controls. See linux/meye.h for the list | ||
146 | * of controls. We reserve 16 controls for this driver. */ | ||
147 | #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000) | ||
147 | 148 | ||
148 | /* MPEG-class control IDs */ | 149 | /* MPEG-class control IDs */ |
149 | 150 | ||
@@ -782,6 +783,7 @@ enum v4l2_jpeg_chroma_subsampling { | |||
782 | #define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) | 783 | #define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) |
783 | #define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) | 784 | #define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) |
784 | 785 | ||
786 | |||
785 | /* Image source controls */ | 787 | /* Image source controls */ |
786 | #define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) | 788 | #define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) |
787 | #define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) | 789 | #define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) |
@@ -800,4 +802,27 @@ enum v4l2_jpeg_chroma_subsampling { | |||
800 | #define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) | 802 | #define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) |
801 | #define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) | 803 | #define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) |
802 | 804 | ||
805 | |||
806 | /* DV-class control IDs defined by V4L2 */ | ||
807 | #define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) | ||
808 | #define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) | ||
809 | |||
810 | #define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) | ||
811 | #define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) | ||
812 | #define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) | ||
813 | #define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) | ||
814 | enum v4l2_dv_tx_mode { | ||
815 | V4L2_DV_TX_MODE_DVI_D = 0, | ||
816 | V4L2_DV_TX_MODE_HDMI = 1, | ||
817 | }; | ||
818 | #define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) | ||
819 | enum v4l2_dv_rgb_range { | ||
820 | V4L2_DV_RGB_RANGE_AUTO = 0, | ||
821 | V4L2_DV_RGB_RANGE_LIMITED = 1, | ||
822 | V4L2_DV_RGB_RANGE_FULL = 2, | ||
823 | }; | ||
824 | |||
825 | #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) | ||
826 | #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) | ||
827 | |||
803 | #endif | 828 | #endif |
diff --git a/include/uapi/linux/v4l2-mediabus.h b/include/uapi/linux/v4l2-mediabus.h index 7d64e0e1a18b..b9b7bea04537 100644 --- a/include/uapi/linux/v4l2-mediabus.h +++ b/include/uapi/linux/v4l2-mediabus.h | |||
@@ -47,8 +47,9 @@ enum v4l2_mbus_pixelcode { | |||
47 | V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, | 47 | V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, |
48 | V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, | 48 | V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, |
49 | 49 | ||
50 | /* YUV (including grey) - next is 0x2014 */ | 50 | /* YUV (including grey) - next is 0x2017 */ |
51 | V4L2_MBUS_FMT_Y8_1X8 = 0x2001, | 51 | V4L2_MBUS_FMT_Y8_1X8 = 0x2001, |
52 | V4L2_MBUS_FMT_UV8_1X8 = 0x2015, | ||
52 | V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, | 53 | V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, |
53 | V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, | 54 | V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, |
54 | V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, | 55 | V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, |
@@ -65,14 +66,20 @@ enum v4l2_mbus_pixelcode { | |||
65 | V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, | 66 | V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, |
66 | V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, | 67 | V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, |
67 | V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, | 68 | V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, |
69 | V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014, | ||
68 | V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, | 70 | V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, |
69 | V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, | 71 | V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, |
72 | V4L2_MBUS_FMT_YUV10_1X30 = 0x2016, | ||
70 | 73 | ||
71 | /* Bayer - next is 0x3015 */ | 74 | /* Bayer - next is 0x3019 */ |
72 | V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, | 75 | V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, |
73 | V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, | 76 | V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, |
74 | V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, | 77 | V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, |
75 | V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, | 78 | V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, |
79 | V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8 = 0x3015, | ||
80 | V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8 = 0x3016, | ||
81 | V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8 = 0x3017, | ||
82 | V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8 = 0x3018, | ||
76 | V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, | 83 | V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, |
77 | V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, | 84 | V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, |
78 | V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, | 85 | V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, |
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 3cf3e946e331..234d1d870914 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h | |||
@@ -334,6 +334,9 @@ struct v4l2_pix_format { | |||
334 | /* Palette formats */ | 334 | /* Palette formats */ |
335 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ | 335 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
336 | 336 | ||
337 | /* Chrominance formats */ | ||
338 | #define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */ | ||
339 | |||
337 | /* Luminance+Chrominance formats */ | 340 | /* Luminance+Chrominance formats */ |
338 | #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ | 341 | #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ |
339 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ | 342 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ |
@@ -386,6 +389,11 @@ struct v4l2_pix_format { | |||
386 | #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ | 389 | #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ |
387 | #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ | 390 | #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ |
388 | #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ | 391 | #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ |
392 | /* 10bit raw bayer a-law compressed to 8 bits */ | ||
393 | #define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') | ||
394 | #define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') | ||
395 | #define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8') | ||
396 | #define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8') | ||
389 | /* 10bit raw bayer DPCM compressed to 8 bits */ | 397 | /* 10bit raw bayer DPCM compressed to 8 bits */ |
390 | #define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') | 398 | #define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') |
391 | #define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') | 399 | #define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') |
@@ -693,6 +701,10 @@ struct v4l2_buffer { | |||
693 | /* Cache handling flags */ | 701 | /* Cache handling flags */ |
694 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 | 702 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 |
695 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 | 703 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 |
704 | /* Timestamp type */ | ||
705 | #define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 | ||
706 | #define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 | ||
707 | #define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 | ||
696 | 708 | ||
697 | /** | 709 | /** |
698 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor | 710 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor |
@@ -1342,28 +1354,6 @@ struct v4l2_querymenu { | |||
1342 | #define V4L2_CID_PRIVATE_BASE 0x08000000 | 1354 | #define V4L2_CID_PRIVATE_BASE 0x08000000 |
1343 | 1355 | ||
1344 | 1356 | ||
1345 | /* DV-class control IDs defined by V4L2 */ | ||
1346 | #define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) | ||
1347 | #define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) | ||
1348 | |||
1349 | #define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) | ||
1350 | #define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) | ||
1351 | #define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) | ||
1352 | #define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) | ||
1353 | enum v4l2_dv_tx_mode { | ||
1354 | V4L2_DV_TX_MODE_DVI_D = 0, | ||
1355 | V4L2_DV_TX_MODE_HDMI = 1, | ||
1356 | }; | ||
1357 | #define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) | ||
1358 | enum v4l2_dv_rgb_range { | ||
1359 | V4L2_DV_RGB_RANGE_AUTO = 0, | ||
1360 | V4L2_DV_RGB_RANGE_LIMITED = 1, | ||
1361 | V4L2_DV_RGB_RANGE_FULL = 2, | ||
1362 | }; | ||
1363 | |||
1364 | #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) | ||
1365 | #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) | ||
1366 | |||
1367 | /* | 1357 | /* |
1368 | * T U N I N G | 1358 | * T U N I N G |
1369 | */ | 1359 | */ |
@@ -1810,6 +1800,7 @@ struct v4l2_event_vsync { | |||
1810 | /* Payload for V4L2_EVENT_CTRL */ | 1800 | /* Payload for V4L2_EVENT_CTRL */ |
1811 | #define V4L2_EVENT_CTRL_CH_VALUE (1 << 0) | 1801 | #define V4L2_EVENT_CTRL_CH_VALUE (1 << 0) |
1812 | #define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1) | 1802 | #define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1) |
1803 | #define V4L2_EVENT_CTRL_CH_RANGE (1 << 2) | ||
1813 | 1804 | ||
1814 | struct v4l2_event_ctrl { | 1805 | struct v4l2_event_ctrl { |
1815 | __u32 changes; | 1806 | __u32 changes; |