aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-24 20:35:10 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-24 20:35:10 -0500
commit21fbd5809ad126b949206d78e0a0e07ec872ea11 (patch)
treea824045df99fc1f0690095a925cceb50207e332b /include/uapi
parentd9978ec5680059d727b39d6c706777c6973587f2 (diff)
parented72d37a33fdf43dc47787fe220532cdec9da528 (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.h79
-rw-r--r--include/uapi/linux/dvb/version.h2
-rw-r--r--include/uapi/linux/meye.h8
-rw-r--r--include/uapi/linux/v4l2-controls.h33
-rw-r--r--include/uapi/linux/v4l2-mediabus.h11
-rw-r--r--include/uapi/linux/videodev2.h35
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
370typedef enum fe_pilot { 380typedef 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 */
477enum 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 */
515struct 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
526struct dtv_fe_stats {
527 __u8 len;
528 struct dtv_stats stat[MAX_DTV_STATS];
529} __attribute__ ((packed));
530
455struct dtv_property { 531struct 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)
96enum v4l2_power_line_frequency { 92enum 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)
814enum 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)
819enum 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)
1353enum 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)
1358enum 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
1814struct v4l2_event_ctrl { 1805struct v4l2_event_ctrl {
1815 __u32 changes; 1806 __u32 changes;