diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 19:36:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 19:36:30 -0400 |
| commit | f4d33337eac4007793ca11fd1ab68d91ce7aa762 (patch) | |
| tree | b775ad213179822225a3e1c1a27e4cc16f8aff68 /include/uapi | |
| parent | 91c2ff7708d4edf73ef1f0abb3ea4a44b4b0cf1d (diff) | |
| parent | 0f3bf3dc1ca394a8385079a5653088672b65c5c4 (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:
- removal of sn9c102. This device driver was replaced a long time ago
by gspca
- solo6x10 and go7007 webcam drivers moved from staging into
mainstream. They were waiting for an API to allow setting the image
detection matrix
- SDR drivers moved from staging into mainstream: sdr-msi3101 (renamed
as msi2500) and rtl2832
- added SDR driver for airspy
- added demux driver: si2165
- rework at several RC subsystem, making the code for RC-5 SZ variant
to be added at the standard RC5 decoder
- added decoder for the XMP IR protocol
- tuner driver moved from staging into mainstream: msi3101 (renamed as
msi001)
- added documentation for some additional SDR pixfmt
- some device tree bindings documented
- added support for exynos3250 at s5p-jpeg
- remove the obsolete, unmaintained and broken mx1_camera driver
- added support for remote controllers at au0828 driver
- added a RC driver: sunxi-cir
- several driver fixes, enhancements and cleanups.
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (455 commits)
[media] cx23885: fix UNSET/TUNER_ABSENT confusion
[media] coda: fix build error by making reset control optional
[media] radio-miropcm20: fix sparse NULL pointer warning
[media] MAINTAINERS: Update go7007 pattern
[media] MAINTAINERS: Update solo6x10 patterns
[media] media: atmel-isi: add primary DT support
[media] media: atmel-isi: convert the pdata from pointer to structure
[media] media: atmel-isi: add v4l2 async probe support
[media] rcar_vin: add devicetree support
[media] media: pxa_camera device-tree support
[media] media: mt9m111: add device-tree suppport
[media] soc_camera: add support for dt binding soc_camera drivers
[media] media: soc_camera: pxa_camera documentation device-tree support
[media] media: mt9m111: add device-tree documentation
[media] s5p-mfc: remove unnecessary calling to function video_devdata()
[media] s5p-jpeg: add chroma subsampling adjustment for Exynos3250
[media] s5p-jpeg: Prevent erroneous downscaling for Exynos3250 SoC
[media] s5p-jpeg: Assure proper crop rectangle initialization
[media] s5p-jpeg: fix g_selection op
[media] s5p-jpeg: Adjust jpeg_bound_align_image to Exynos3250 needs
...
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/linux/v4l2-controls.h | 32 | ||||
| -rw-r--r-- | include/uapi/linux/videodev2.h | 101 |
2 files changed, 128 insertions, 5 deletions
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index 2ac5597f3ee1..e946e43fb8d5 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h | |||
| @@ -61,6 +61,7 @@ | |||
| 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 | #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ |
| 64 | #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */ | ||
| 64 | 65 | ||
| 65 | /* User-class control IDs */ | 66 | /* User-class control IDs */ |
| 66 | 67 | ||
| @@ -756,6 +757,15 @@ enum v4l2_auto_focus_range { | |||
| 756 | #define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3) | 757 | #define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3) |
| 757 | #define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5) | 758 | #define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5) |
| 758 | #define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6) | 759 | #define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6) |
| 760 | #define V4L2_CID_RDS_TX_MONO_STEREO (V4L2_CID_FM_TX_CLASS_BASE + 7) | ||
| 761 | #define V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (V4L2_CID_FM_TX_CLASS_BASE + 8) | ||
| 762 | #define V4L2_CID_RDS_TX_COMPRESSED (V4L2_CID_FM_TX_CLASS_BASE + 9) | ||
| 763 | #define V4L2_CID_RDS_TX_DYNAMIC_PTY (V4L2_CID_FM_TX_CLASS_BASE + 10) | ||
| 764 | #define V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_TX_CLASS_BASE + 11) | ||
| 765 | #define V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (V4L2_CID_FM_TX_CLASS_BASE + 12) | ||
| 766 | #define V4L2_CID_RDS_TX_MUSIC_SPEECH (V4L2_CID_FM_TX_CLASS_BASE + 13) | ||
| 767 | #define V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (V4L2_CID_FM_TX_CLASS_BASE + 14) | ||
| 768 | #define V4L2_CID_RDS_TX_ALT_FREQS (V4L2_CID_FM_TX_CLASS_BASE + 15) | ||
| 759 | 769 | ||
| 760 | #define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64) | 770 | #define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64) |
| 761 | #define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65) | 771 | #define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65) |
| @@ -900,6 +910,12 @@ enum v4l2_deemphasis { | |||
| 900 | }; | 910 | }; |
| 901 | 911 | ||
| 902 | #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) | 912 | #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) |
| 913 | #define V4L2_CID_RDS_RX_PTY (V4L2_CID_FM_RX_CLASS_BASE + 3) | ||
| 914 | #define V4L2_CID_RDS_RX_PS_NAME (V4L2_CID_FM_RX_CLASS_BASE + 4) | ||
| 915 | #define V4L2_CID_RDS_RX_RADIO_TEXT (V4L2_CID_FM_RX_CLASS_BASE + 5) | ||
| 916 | #define V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_RX_CLASS_BASE + 6) | ||
| 917 | #define V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (V4L2_CID_FM_RX_CLASS_BASE + 7) | ||
| 918 | #define V4L2_CID_RDS_RX_MUSIC_SPEECH (V4L2_CID_FM_RX_CLASS_BASE + 8) | ||
| 903 | 919 | ||
| 904 | #define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900) | 920 | #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) | 921 | #define V4L2_CID_RF_TUNER_CLASS (V4L2_CTRL_CLASS_RF_TUNER | 1) |
| @@ -914,4 +930,20 @@ enum v4l2_deemphasis { | |||
| 914 | #define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62) | 930 | #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) | 931 | #define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91) |
| 916 | 932 | ||
| 933 | |||
| 934 | /* Detection-class control IDs defined by V4L2 */ | ||
| 935 | #define V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900) | ||
| 936 | #define V4L2_CID_DETECT_CLASS (V4L2_CTRL_CLASS_DETECT | 1) | ||
| 937 | |||
| 938 | #define V4L2_CID_DETECT_MD_MODE (V4L2_CID_DETECT_CLASS_BASE + 1) | ||
| 939 | enum v4l2_detect_md_mode { | ||
| 940 | V4L2_DETECT_MD_MODE_DISABLED = 0, | ||
| 941 | V4L2_DETECT_MD_MODE_GLOBAL = 1, | ||
| 942 | V4L2_DETECT_MD_MODE_THRESHOLD_GRID = 2, | ||
| 943 | V4L2_DETECT_MD_MODE_REGION_GRID = 3, | ||
| 944 | }; | ||
| 945 | #define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (V4L2_CID_DETECT_CLASS_BASE + 2) | ||
| 946 | #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3) | ||
| 947 | #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4) | ||
| 948 | |||
| 917 | #endif | 949 | #endif |
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 168ff507bf75..778a3298fb34 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h | |||
| @@ -124,6 +124,10 @@ enum v4l2_field { | |||
| 124 | (field) == V4L2_FIELD_INTERLACED_BT ||\ | 124 | (field) == V4L2_FIELD_INTERLACED_BT ||\ |
| 125 | (field) == V4L2_FIELD_SEQ_TB ||\ | 125 | (field) == V4L2_FIELD_SEQ_TB ||\ |
| 126 | (field) == V4L2_FIELD_SEQ_BT) | 126 | (field) == V4L2_FIELD_SEQ_BT) |
| 127 | #define V4L2_FIELD_HAS_T_OR_B(field) \ | ||
| 128 | ((field) == V4L2_FIELD_BOTTOM ||\ | ||
| 129 | (field) == V4L2_FIELD_TOP ||\ | ||
| 130 | (field) == V4L2_FIELD_ALTERNATE) | ||
| 127 | 131 | ||
| 128 | enum v4l2_buf_type { | 132 | enum v4l2_buf_type { |
| 129 | V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, | 133 | V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, |
| @@ -268,6 +272,7 @@ struct v4l2_capability { | |||
| 268 | #define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ | 272 | #define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ |
| 269 | 273 | ||
| 270 | #define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */ | 274 | #define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */ |
| 275 | #define V4L2_CAP_EXT_PIX_FORMAT 0x00200000 /* Supports the extended pixel format */ | ||
| 271 | 276 | ||
| 272 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ | 277 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ |
| 273 | #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ | 278 | #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ |
| @@ -287,6 +292,7 @@ struct v4l2_pix_format { | |||
| 287 | __u32 sizeimage; | 292 | __u32 sizeimage; |
| 288 | __u32 colorspace; /* enum v4l2_colorspace */ | 293 | __u32 colorspace; /* enum v4l2_colorspace */ |
| 289 | __u32 priv; /* private data, depends on pixelformat */ | 294 | __u32 priv; /* private data, depends on pixelformat */ |
| 295 | __u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */ | ||
| 290 | }; | 296 | }; |
| 291 | 297 | ||
| 292 | /* Pixel format FOURCC depth Description */ | 298 | /* Pixel format FOURCC depth Description */ |
| @@ -294,7 +300,11 @@ struct v4l2_pix_format { | |||
| 294 | /* RGB formats */ | 300 | /* RGB formats */ |
| 295 | #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ | 301 | #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ |
| 296 | #define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ | 302 | #define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ |
| 303 | #define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */ | ||
| 304 | #define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') /* 16 xxxxrrrr ggggbbbb */ | ||
| 297 | #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ | 305 | #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ |
| 306 | #define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16 ARGB-1-5-5-5 */ | ||
| 307 | #define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 XRGB-1-5-5-5 */ | ||
| 298 | #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ | 308 | #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ |
| 299 | #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ | 309 | #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ |
| 300 | #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ | 310 | #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ |
| @@ -302,7 +312,11 @@ struct v4l2_pix_format { | |||
| 302 | #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ | 312 | #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ |
| 303 | #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ | 313 | #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ |
| 304 | #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ | 314 | #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ |
| 315 | #define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4') /* 32 BGRA-8-8-8-8 */ | ||
| 316 | #define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') /* 32 BGRX-8-8-8-8 */ | ||
| 305 | #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ | 317 | #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ |
| 318 | #define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') /* 32 ARGB-8-8-8-8 */ | ||
| 319 | #define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') /* 32 XRGB-8-8-8-8 */ | ||
| 306 | 320 | ||
| 307 | /* Grey formats */ | 321 | /* Grey formats */ |
| 308 | #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ | 322 | #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ |
| @@ -439,6 +453,15 @@ struct v4l2_pix_format { | |||
| 439 | /* SDR formats - used only for Software Defined Radio devices */ | 453 | /* SDR formats - used only for Software Defined Radio devices */ |
| 440 | #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ | 454 | #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 */ | 455 | #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */ |
| 456 | #define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8') /* complex s8 */ | ||
| 457 | #define V4L2_SDR_FMT_CS14LE v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */ | ||
| 458 | #define V4L2_SDR_FMT_RU12LE v4l2_fourcc('R', 'U', '1', '2') /* real u12le */ | ||
| 459 | |||
| 460 | /* priv field value to indicates that subsequent fields are valid. */ | ||
| 461 | #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe | ||
| 462 | |||
| 463 | /* Flags */ | ||
| 464 | #define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001 | ||
| 442 | 465 | ||
| 443 | /* | 466 | /* |
| 444 | * F O R M A T E N U M E R A T I O N | 467 | * F O R M A T E N U M E R A T I O N |
| @@ -744,7 +767,16 @@ struct v4l2_framebuffer { | |||
| 744 | /* FIXME: in theory we should pass something like PCI device + memory | 767 | /* FIXME: in theory we should pass something like PCI device + memory |
| 745 | * region + offset instead of some physical address */ | 768 | * region + offset instead of some physical address */ |
| 746 | void *base; | 769 | void *base; |
| 747 | struct v4l2_pix_format fmt; | 770 | struct { |
| 771 | __u32 width; | ||
| 772 | __u32 height; | ||
