* commit '840f5b0572ea': (381 commits) media: au0828 disable tuner to demod link in au0828_media_device_register() [media] touptek: cast char types on %x printk [media] touptek: don't DMA at the stack [media] mceusb: use %*ph for small buffer dumps [media] v4l: exynos4-is: Drop unneeded check when setting up fimc-lite links [media] v4l: vsp1: Check if an entity is a subdev with the right function [media] hide unused functions for !MEDIA_CONTROLLER [media] em28xx: fix Terratec Grabby AC97 codec detection [media] media: add prefixes to interface types [media] media: rc: nuvoton: switch attribute wakeup_data to text [media] v4l2-ioctl: fix YUV422P pixel format description [media] media: fix null pointer dereference in v4l_vb2q_enable_media_source() [media] v4l2-mc.h: fix yet more compiler errors [media] staging/media: add missing TODO files [media] media.h: always start with 1 for the audio entities [media] sound/usb: Use meaninful names for goto labels [media] v4l2-mc.h: fix compiler warnings [media] media: au0828 audio mixer isn't connected to decoder [media] sound/usb: Use Media Controller API to share media resources [media] dw2102: add support for TeVii S662 ...
Showing the changes to include/uapi (4 of 398 files). Show all
Unified · Split
| @@ -78,6 +78,22 @@ struct media_device_info { · 77 unmodified lines | |||
| 78 | #define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002) | 78 | #define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002) |
| 79 | #define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003) | 79 | #define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003) |
| 80 | 80 | ||
| 81 | /* | ||
| 82 | * Analog TV IF-PLL decoders | ||
| 83 | * | ||
| 84 | * It is a responsibility of the master/bridge drivers to create links | ||
| 85 | * for MEDIA_ENT_F_IF_VID_DECODER and MEDIA_ENT_F_IF_AUD_DECODER. | ||
| 86 | */ | ||
| 87 | #define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001) | ||
| 88 | #define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002) | ||
| 89 | |||
| 90 | /* | ||
| 91 | * Audio Entity Functions | ||
| 92 | */ | ||
| 93 | #define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001) | ||
| 94 | #define MEDIA_ENT_F_AUDIO_PLAYBACK (MEDIA_ENT_F_BASE + 0x03002) | ||
| 95 | #define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003) | ||
| 96 | |||
| 81 | /* | 97 | /* |
| 82 | * Connectors | 98 | * Connectors |
| 83 | */ | 99 | */ |
| @@ -113,8 +129,12 @@ struct media_device_info { · 29 unmodified lines | |||
| 113 | #define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3) | 129 | #define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3) |
| 114 | #define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4) | 130 | #define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4) |
| 115 | /* | 131 | /* |
| 116 | * It is a responsibility of the entity drivers to add connectors and links | 132 | * It is a responsibility of the master/bridge drivers to add connectors |
| 117 | * for the tuner entities. | 133 | * and links for MEDIA_ENT_F_TUNER. Please notice that some old tuners |
| 134 | * may require the usage of separate I2C chips to decode analog TV signals, | ||
| 135 | * when the master/bridge chipset doesn't have its own TV standard decoder. | ||
| 136 | * On such cases, the IF-PLL staging is mapped via one or two entities: | ||
| 137 | * MEDIA_ENT_F_IF_VID_DECODER and/or MEDIA_ENT_F_IF_AUD_DECODER. | ||
| 118 | */ | 138 | */ |
| 119 | #define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5) | 139 | #define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5) |
| 120 | 140 | ||
| @@ -262,6 +282,7 @@ struct media_links_enum { · 141 unmodified lines | |||
| 262 | 282 | ||
| 263 | #define MEDIA_INTF_T_DVB_BASE 0x00000100 | 283 | #define MEDIA_INTF_T_DVB_BASE 0x00000100 |
| 264 | #define MEDIA_INTF_T_V4L_BASE 0x00000200 | 284 | #define MEDIA_INTF_T_V4L_BASE 0x00000200 |
| 285 | #define MEDIA_INTF_T_ALSA_BASE 0x00000300 | ||
| 265 | 286 | ||
| 266 | /* Interface types */ | 287 | /* Interface types */ |
| 267 | 288 | ||
| @@ -277,6 +298,15 @@ struct media_links_enum { · 9 unmodified lines | |||
| 277 | #define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3) | 298 | #define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3) |
| 278 | #define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4) | 299 | #define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4) |
| 279 | 300 | ||
| 301 | #define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE) | ||
| 302 | #define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1) | ||
| 303 | #define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2) | ||
| 304 | #define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3) | ||
| 305 | #define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4) | ||
| 306 | #define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5) | ||
| 307 | #define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6) | ||
| 308 | #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7) | ||
| 309 | |||
| 280 | /* | 310 | /* |
| 281 | * MC next gen API definitions | 311 | * MC next gen API definitions |
| 282 | * | 312 | * |
| @@ -296,7 +326,7 @@ struct media_links_enum { · 13 unmodified lines | |||
| 296 | * later, before the adding this API upstream. | 326 | * later, before the adding this API upstream. |
| 297 | */ | 327 | */ |
| 298 | 328 | ||
| 299 | #if 0 /* Let's postpone it to Kernel 4.6 */ | 329 | |
| 300 | struct media_v2_entity { | 330 | struct media_v2_entity { |
| 301 | __u32 id; | 331 | __u32 id; |
| 302 | char name[64]; /* FIXME: move to a property? (RFC says so) */ | 332 | char name[64]; /* FIXME: move to a property? (RFC says so) */ |
| @@ -357,21 +387,12 @@ struct media_v2_topology { · 54 unmodified lines | |||
| 357 | __u64 ptr_links; | 387 | __u64 ptr_links; |
| 358 | } __attribute__ ((packed)); | 388 | } __attribute__ ((packed)); |
| 359 | 389 | ||
| 360 | static inline void __user *media_get_uptr(__u64 arg) | ||
| 361 | { | ||
| 362 | return (void __user *)(uintptr_t)arg; | ||
| 363 | } | ||
| 364 | #endif | ||
| 365 | |||
| 366 | /* ioctls */ | 390 | /* ioctls */ |
| 367 | 391 | ||
| 368 | #define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info) | 392 | #define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info) |
| 369 | #define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc) | 393 | #define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc) |
| 370 | #define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum) | 394 | #define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum) |
| 371 | #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) | 395 | #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) |
| 372 | |||
| 373 | #if 0 /* Let's postpone it to Kernel 4.6 */ | ||
| 374 | #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology) | 396 | #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology) |
| 375 | #endif | ||
| 376 | 397 | ||
| 377 | #endif /* __LINUX_MEDIA_H */ | 398 | #endif /* __LINUX_MEDIA_H */ |
| @@ -10,19 +10,43 @@ · 9 unmodified lines | |||
| 10 | * Copyright (C) 2012 Nokia Corporation | 10 | * Copyright (C) 2012 Nokia Corporation |
| 11 | * Contact: Sakari Ailus <sakari.ailus@iki.fi> | 11 | * Contact: Sakari Ailus <sakari.ailus@iki.fi> |
| 12 | * | 12 | * |
| 13 | * This program is free software; you can redistribute it and/or | 13 | * This program is free software; you can redistribute it and/or modify |
| 14 | * modify it under the terms of the GNU General Public License | 14 | * it under the terms of the GNU General Public License as published by |
| 15 | * version 2 as published by the Free Software Foundation. | 15 | * the Free Software Foundation; either version 2 of the License, or |
| 16 | * (at your option) any later version. | ||
| 16 | * | 17 | * |
| 17 | * This program is distributed in the hope that it will be useful, but | 18 | * This program is distributed in the hope that it will be useful, |
| 18 | * WITHOUT ANY WARRANTY; without even the implied warranty of | 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 20 | * General Public License for more details. | 21 | * GNU General Public License for more details. |
| 21 | * | 22 | * |
| 22 | * You should have received a copy of the GNU General Public License | 23 | * Alternatively you can redistribute this file under the terms of the |
| 23 | * along with this program; if not, write to the Free Software | 24 | * BSD license as stated below: |
| 24 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | 25 | * |
| 25 | * 02110-1301 USA | 26 | * Redistribution and use in source and binary forms, with or without |
| 27 | * modification, are permitted provided that the following conditions | ||
| 28 | * are met: | ||
| 29 | * 1. Redistributions of source code must retain the above copyright | ||
| 30 | * notice, this list of conditions and the following disclaimer. | ||
| 31 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 32 | * notice, this list of conditions and the following disclaimer in | ||
| 33 | * the documentation and/or other materials provided with the | ||
| 34 | * distribution. | ||
| 35 | * 3. The names of its contributors may not be used to endorse or promote | ||
| 36 | * products derived from this software without specific prior written | ||
| 37 | * permission. | ||
| 38 | * | ||
| 39 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| 40 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 41 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 42 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 43 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ||
| 45 | * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
| 46 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
| 47 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
| 48 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
| 49 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 26 | * | 50 | * |
| 27 | */ | 51 | */ |
| 28 | 52 | ||
| @@ -390,6 +390,7 @@ enum v4l2_mpeg_video_multi_slice_mode { · 389 unmodified lines | |||
| 390 | #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) | 390 | #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) |
| 391 | #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) | 391 | #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) |
| 392 | #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) | 392 | #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) |
| 393 | #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229) | ||
| 393 | 394 | ||
| 394 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) | 395 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
| 395 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) | 396 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
| @@ -912,8 +913,18 @@ enum v4l2_dv_rgb_range { · 516 unmodified lines | |||
| 912 | V4L2_DV_RGB_RANGE_FULL = 2, | 913 | V4L2_DV_RGB_RANGE_FULL = 2, |
| 913 | }; | 914 | }; |
| 914 | 915 | ||
| 916 | #define V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6) | ||
| 917 | enum v4l2_dv_it_content_type { | ||
| 918 | V4L2_DV_IT_CONTENT_TYPE_GRAPHICS = 0, | ||
| 919 | V4L2_DV_IT_CONTENT_TYPE_PHOTO = 1, | ||
| 920 | V4L2_DV_IT_CONTENT_TYPE_CINEMA = 2, | ||
| 921 | V4L2_DV_IT_CONTENT_TYPE_GAME = 3, | ||
| 922 | V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4, | ||
| 923 | }; | ||
| 924 | |||
| 915 | #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) | 925 | #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) |
| 916 | #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) | 926 | #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) |
| 927 | #define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102) | ||
| 917 | 928 | ||
| 918 | #define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900) | 929 | #define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900) |
| 919 | #define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1) | 930 | #define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1) |
| @@ -546,6 +546,10 @@ struct v4l2_pix_format { · 545 unmodified lines | |||
| 546 | /* three non contiguous planes - Y, Cb, Cr */ | 546 | /* three non contiguous planes - Y, Cb, Cr */ |
| 547 | #define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */ | 547 | #define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */ |
| 548 | #define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */ | 548 | #define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */ |
| 549 | #define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16 YUV422 planar */ | ||
| 550 | #define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16 YVU422 planar */ | ||
| 551 | #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */ | ||
| 552 | #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */ | ||
| 549 | 553 | ||
| 550 | /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ | 554 | /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ |
| 551 | #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ | 555 | #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ |
| @@ -621,6 +625,9 @@ struct v4l2_pix_format { · 69 unmodified lines | |||
| 621 | #define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ | 625 | #define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ |
| 622 | #define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ | 626 | #define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ |
| 623 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ | 627 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ |
| 628 | #define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */ | ||
| 629 | #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ | ||
| 630 | #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ | ||
| 624 | 631 | ||
| 625 | /* SDR formats - used only for Software Defined Radio devices */ | 632 | /* SDR formats - used only for Software Defined Radio devices */ |
| 626 | #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ | 633 | #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ |