1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * V4L2 subdev userspace API 4*f80ad8b4SAndroid Build Coastguard Worker * 5*f80ad8b4SAndroid Build Coastguard Worker * Copyright (C) 2010 Nokia Corporation 6*f80ad8b4SAndroid Build Coastguard Worker * 7*f80ad8b4SAndroid Build Coastguard Worker * Contacts: Laurent Pinchart <[email protected]> 8*f80ad8b4SAndroid Build Coastguard Worker * Sakari Ailus <[email protected]> 9*f80ad8b4SAndroid Build Coastguard Worker */ 10*f80ad8b4SAndroid Build Coastguard Worker 11*f80ad8b4SAndroid Build Coastguard Worker #ifndef __LINUX_V4L2_SUBDEV_H 12*f80ad8b4SAndroid Build Coastguard Worker #define __LINUX_V4L2_SUBDEV_H 13*f80ad8b4SAndroid Build Coastguard Worker 14*f80ad8b4SAndroid Build Coastguard Worker #include <linux/const.h> 15*f80ad8b4SAndroid Build Coastguard Worker #include <linux/ioctl.h> 16*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 17*f80ad8b4SAndroid Build Coastguard Worker #include <linux/v4l2-common.h> 18*f80ad8b4SAndroid Build Coastguard Worker #include <linux/v4l2-mediabus.h> 19*f80ad8b4SAndroid Build Coastguard Worker 20*f80ad8b4SAndroid Build Coastguard Worker /** 21*f80ad8b4SAndroid Build Coastguard Worker * enum v4l2_subdev_format_whence - Media bus format type 22*f80ad8b4SAndroid Build Coastguard Worker * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only 23*f80ad8b4SAndroid Build Coastguard Worker * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device 24*f80ad8b4SAndroid Build Coastguard Worker */ 25*f80ad8b4SAndroid Build Coastguard Worker enum v4l2_subdev_format_whence { 26*f80ad8b4SAndroid Build Coastguard Worker V4L2_SUBDEV_FORMAT_TRY = 0, 27*f80ad8b4SAndroid Build Coastguard Worker V4L2_SUBDEV_FORMAT_ACTIVE = 1, 28*f80ad8b4SAndroid Build Coastguard Worker }; 29*f80ad8b4SAndroid Build Coastguard Worker 30*f80ad8b4SAndroid Build Coastguard Worker /** 31*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_format - Pad-level media bus format 32*f80ad8b4SAndroid Build Coastguard Worker * @which: format type (from enum v4l2_subdev_format_whence) 33*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 34*f80ad8b4SAndroid Build Coastguard Worker * @format: media bus format (format code and frame size) 35*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 36*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 37*f80ad8b4SAndroid Build Coastguard Worker */ 38*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_format { 39*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 40*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 41*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_mbus_framefmt format; 42*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 43*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[7]; 44*f80ad8b4SAndroid Build Coastguard Worker }; 45*f80ad8b4SAndroid Build Coastguard Worker 46*f80ad8b4SAndroid Build Coastguard Worker /** 47*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_crop - Pad-level crop settings 48*f80ad8b4SAndroid Build Coastguard Worker * @which: format type (from enum v4l2_subdev_format_whence) 49*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 50*f80ad8b4SAndroid Build Coastguard Worker * @rect: pad crop rectangle boundaries 51*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 52*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 53*f80ad8b4SAndroid Build Coastguard Worker * 54*f80ad8b4SAndroid Build Coastguard Worker * The subdev crop API is an obsolete interface and may be removed in the 55*f80ad8b4SAndroid Build Coastguard Worker * future. It is superseded by the selection API. No new extensions to this 56*f80ad8b4SAndroid Build Coastguard Worker * structure will be accepted. 57*f80ad8b4SAndroid Build Coastguard Worker */ 58*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_crop { 59*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 60*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 61*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_rect rect; 62*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 63*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[7]; 64*f80ad8b4SAndroid Build Coastguard Worker }; 65*f80ad8b4SAndroid Build Coastguard Worker 66*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE 0x00000001 67*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC 0x00000002 68*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC 0x00000004 69*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC 70*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION 0x00000008 71*f80ad8b4SAndroid Build Coastguard Worker 72*f80ad8b4SAndroid Build Coastguard Worker /** 73*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration 74*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 75*f80ad8b4SAndroid Build Coastguard Worker * @index: format index during enumeration 76*f80ad8b4SAndroid Build Coastguard Worker * @code: format code (MEDIA_BUS_FMT_ definitions) 77*f80ad8b4SAndroid Build Coastguard Worker * @which: format type (from enum v4l2_subdev_format_whence) 78*f80ad8b4SAndroid Build Coastguard Worker * @flags: flags set by the driver, (V4L2_SUBDEV_MBUS_CODE_*) 79*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 80*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 81*f80ad8b4SAndroid Build Coastguard Worker */ 82*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_mbus_code_enum { 83*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 84*f80ad8b4SAndroid Build Coastguard Worker __u32 index; 85*f80ad8b4SAndroid Build Coastguard Worker __u32 code; 86*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 87*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 88*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 89*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[6]; 90*f80ad8b4SAndroid Build Coastguard Worker }; 91*f80ad8b4SAndroid Build Coastguard Worker 92*f80ad8b4SAndroid Build Coastguard Worker /** 93*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_frame_size_enum - Media bus format enumeration 94*f80ad8b4SAndroid Build Coastguard Worker * @index: format index during enumeration 95*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 96*f80ad8b4SAndroid Build Coastguard Worker * @code: format code (MEDIA_BUS_FMT_ definitions) 97*f80ad8b4SAndroid Build Coastguard Worker * @min_width: minimum frame width, in pixels 98*f80ad8b4SAndroid Build Coastguard Worker * @max_width: maximum frame width, in pixels 99*f80ad8b4SAndroid Build Coastguard Worker * @min_height: minimum frame height, in pixels 100*f80ad8b4SAndroid Build Coastguard Worker * @max_height: maximum frame height, in pixels 101*f80ad8b4SAndroid Build Coastguard Worker * @which: format type (from enum v4l2_subdev_format_whence) 102*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 103*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 104*f80ad8b4SAndroid Build Coastguard Worker */ 105*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_frame_size_enum { 106*f80ad8b4SAndroid Build Coastguard Worker __u32 index; 107*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 108*f80ad8b4SAndroid Build Coastguard Worker __u32 code; 109*f80ad8b4SAndroid Build Coastguard Worker __u32 min_width; 110*f80ad8b4SAndroid Build Coastguard Worker __u32 max_width; 111*f80ad8b4SAndroid Build Coastguard Worker __u32 min_height; 112*f80ad8b4SAndroid Build Coastguard Worker __u32 max_height; 113*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 114*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 115*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[7]; 116*f80ad8b4SAndroid Build Coastguard Worker }; 117*f80ad8b4SAndroid Build Coastguard Worker 118*f80ad8b4SAndroid Build Coastguard Worker /** 119*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_frame_interval - Pad-level frame rate 120*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 121*f80ad8b4SAndroid Build Coastguard Worker * @interval: frame interval in seconds 122*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 123*f80ad8b4SAndroid Build Coastguard Worker * @which: interval type (from enum v4l2_subdev_format_whence) 124*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 125*f80ad8b4SAndroid Build Coastguard Worker */ 126*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_frame_interval { 127*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 128*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_fract interval; 129*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 130*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 131*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[7]; 132*f80ad8b4SAndroid Build Coastguard Worker }; 133*f80ad8b4SAndroid Build Coastguard Worker 134*f80ad8b4SAndroid Build Coastguard Worker /** 135*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_frame_interval_enum - Frame interval enumeration 136*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 137*f80ad8b4SAndroid Build Coastguard Worker * @index: frame interval index during enumeration 138*f80ad8b4SAndroid Build Coastguard Worker * @code: format code (MEDIA_BUS_FMT_ definitions) 139*f80ad8b4SAndroid Build Coastguard Worker * @width: frame width in pixels 140*f80ad8b4SAndroid Build Coastguard Worker * @height: frame height in pixels 141*f80ad8b4SAndroid Build Coastguard Worker * @interval: frame interval in seconds 142*f80ad8b4SAndroid Build Coastguard Worker * @which: interval type (from enum v4l2_subdev_format_whence) 143*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 144*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 145*f80ad8b4SAndroid Build Coastguard Worker */ 146*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_frame_interval_enum { 147*f80ad8b4SAndroid Build Coastguard Worker __u32 index; 148*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 149*f80ad8b4SAndroid Build Coastguard Worker __u32 code; 150*f80ad8b4SAndroid Build Coastguard Worker __u32 width; 151*f80ad8b4SAndroid Build Coastguard Worker __u32 height; 152*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_fract interval; 153*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 154*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 155*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[7]; 156*f80ad8b4SAndroid Build Coastguard Worker }; 157*f80ad8b4SAndroid Build Coastguard Worker 158*f80ad8b4SAndroid Build Coastguard Worker /** 159*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_selection - selection info 160*f80ad8b4SAndroid Build Coastguard Worker * 161*f80ad8b4SAndroid Build Coastguard Worker * @which: either V4L2_SUBDEV_FORMAT_ACTIVE or V4L2_SUBDEV_FORMAT_TRY 162*f80ad8b4SAndroid Build Coastguard Worker * @pad: pad number, as reported by the media API 163*f80ad8b4SAndroid Build Coastguard Worker * @target: Selection target, used to choose one of possible rectangles, 164*f80ad8b4SAndroid Build Coastguard Worker * defined in v4l2-common.h; V4L2_SEL_TGT_* . 165*f80ad8b4SAndroid Build Coastguard Worker * @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. 166*f80ad8b4SAndroid Build Coastguard Worker * @r: coordinates of the selection window 167*f80ad8b4SAndroid Build Coastguard Worker * @stream: stream number, defined in subdev routing 168*f80ad8b4SAndroid Build Coastguard Worker * @reserved: for future use, set to zero for now 169*f80ad8b4SAndroid Build Coastguard Worker * 170*f80ad8b4SAndroid Build Coastguard Worker * Hardware may use multiple helper windows to process a video stream. 171*f80ad8b4SAndroid Build Coastguard Worker * The structure is used to exchange this selection areas between 172*f80ad8b4SAndroid Build Coastguard Worker * an application and a driver. 173*f80ad8b4SAndroid Build Coastguard Worker */ 174*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_selection { 175*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 176*f80ad8b4SAndroid Build Coastguard Worker __u32 pad; 177*f80ad8b4SAndroid Build Coastguard Worker __u32 target; 178*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 179*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_rect r; 180*f80ad8b4SAndroid Build Coastguard Worker __u32 stream; 181*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[7]; 182*f80ad8b4SAndroid Build Coastguard Worker }; 183*f80ad8b4SAndroid Build Coastguard Worker 184*f80ad8b4SAndroid Build Coastguard Worker /** 185*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_capability - subdev capabilities 186*f80ad8b4SAndroid Build Coastguard Worker * @version: the driver versioning number 187*f80ad8b4SAndroid Build Coastguard Worker * @capabilities: the subdev capabilities, see V4L2_SUBDEV_CAP_* 188*f80ad8b4SAndroid Build Coastguard Worker * @reserved: for future use, set to zero for now 189*f80ad8b4SAndroid Build Coastguard Worker */ 190*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_capability { 191*f80ad8b4SAndroid Build Coastguard Worker __u32 version; 192*f80ad8b4SAndroid Build Coastguard Worker __u32 capabilities; 193*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[14]; 194*f80ad8b4SAndroid Build Coastguard Worker }; 195*f80ad8b4SAndroid Build Coastguard Worker 196*f80ad8b4SAndroid Build Coastguard Worker /* The v4l2 sub-device video device node is registered in read-only mode. */ 197*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_CAP_RO_SUBDEV 0x00000001 198*f80ad8b4SAndroid Build Coastguard Worker 199*f80ad8b4SAndroid Build Coastguard Worker /* The v4l2 sub-device supports routing and multiplexed streams. */ 200*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_CAP_STREAMS 0x00000002 201*f80ad8b4SAndroid Build Coastguard Worker 202*f80ad8b4SAndroid Build Coastguard Worker /* 203*f80ad8b4SAndroid Build Coastguard Worker * Is the route active? An active route will start when streaming is enabled 204*f80ad8b4SAndroid Build Coastguard Worker * on a video node. 205*f80ad8b4SAndroid Build Coastguard Worker */ 206*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_ROUTE_FL_ACTIVE (1U << 0) 207*f80ad8b4SAndroid Build Coastguard Worker 208*f80ad8b4SAndroid Build Coastguard Worker /** 209*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_route - A route inside a subdev 210*f80ad8b4SAndroid Build Coastguard Worker * 211*f80ad8b4SAndroid Build Coastguard Worker * @sink_pad: the sink pad index 212*f80ad8b4SAndroid Build Coastguard Worker * @sink_stream: the sink stream identifier 213*f80ad8b4SAndroid Build Coastguard Worker * @source_pad: the source pad index 214*f80ad8b4SAndroid Build Coastguard Worker * @source_stream: the source stream identifier 215*f80ad8b4SAndroid Build Coastguard Worker * @flags: route flags V4L2_SUBDEV_ROUTE_FL_* 216*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 217*f80ad8b4SAndroid Build Coastguard Worker */ 218*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_route { 219*f80ad8b4SAndroid Build Coastguard Worker __u32 sink_pad; 220*f80ad8b4SAndroid Build Coastguard Worker __u32 sink_stream; 221*f80ad8b4SAndroid Build Coastguard Worker __u32 source_pad; 222*f80ad8b4SAndroid Build Coastguard Worker __u32 source_stream; 223*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 224*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[5]; 225*f80ad8b4SAndroid Build Coastguard Worker }; 226*f80ad8b4SAndroid Build Coastguard Worker 227*f80ad8b4SAndroid Build Coastguard Worker /** 228*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_routing - Subdev routing information 229*f80ad8b4SAndroid Build Coastguard Worker * 230*f80ad8b4SAndroid Build Coastguard Worker * @which: configuration type (from enum v4l2_subdev_format_whence) 231*f80ad8b4SAndroid Build Coastguard Worker * @len_routes: the length of the routes array, in routes; set by the user, not 232*f80ad8b4SAndroid Build Coastguard Worker * modified by the kernel 233*f80ad8b4SAndroid Build Coastguard Worker * @routes: pointer to the routes array 234*f80ad8b4SAndroid Build Coastguard Worker * @num_routes: the total number of routes, possibly more than fits in the 235*f80ad8b4SAndroid Build Coastguard Worker * routes array 236*f80ad8b4SAndroid Build Coastguard Worker * @reserved: drivers and applications must zero this array 237*f80ad8b4SAndroid Build Coastguard Worker */ 238*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_routing { 239*f80ad8b4SAndroid Build Coastguard Worker __u32 which; 240*f80ad8b4SAndroid Build Coastguard Worker __u32 len_routes; 241*f80ad8b4SAndroid Build Coastguard Worker __u64 routes; 242*f80ad8b4SAndroid Build Coastguard Worker __u32 num_routes; 243*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved[11]; 244*f80ad8b4SAndroid Build Coastguard Worker }; 245*f80ad8b4SAndroid Build Coastguard Worker 246*f80ad8b4SAndroid Build Coastguard Worker /* 247*f80ad8b4SAndroid Build Coastguard Worker * The client is aware of streams. Setting this flag enables the use of 'stream' 248*f80ad8b4SAndroid Build Coastguard Worker * fields (referring to the stream number) with various ioctls. If this is not 249*f80ad8b4SAndroid Build Coastguard Worker * set (which is the default), the 'stream' fields will be forced to 0 by the 250*f80ad8b4SAndroid Build Coastguard Worker * kernel. 251*f80ad8b4SAndroid Build Coastguard Worker */ 252*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0) 253*f80ad8b4SAndroid Build Coastguard Worker 254*f80ad8b4SAndroid Build Coastguard Worker /* 255*f80ad8b4SAndroid Build Coastguard Worker * The client is aware of the struct v4l2_subdev_frame_interval which field. If 256*f80ad8b4SAndroid Build Coastguard Worker * this is not set (which is the default), the which field is forced to 257*f80ad8b4SAndroid Build Coastguard Worker * V4L2_SUBDEV_FORMAT_ACTIVE by the kernel. 258*f80ad8b4SAndroid Build Coastguard Worker */ 259*f80ad8b4SAndroid Build Coastguard Worker #define V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH (1ULL << 1) 260*f80ad8b4SAndroid Build Coastguard Worker 261*f80ad8b4SAndroid Build Coastguard Worker /** 262*f80ad8b4SAndroid Build Coastguard Worker * struct v4l2_subdev_client_capability - Capabilities of the client accessing 263*f80ad8b4SAndroid Build Coastguard Worker * the subdev 264*f80ad8b4SAndroid Build Coastguard Worker * 265*f80ad8b4SAndroid Build Coastguard Worker * @capabilities: A bitmask of V4L2_SUBDEV_CLIENT_CAP_* flags. 266*f80ad8b4SAndroid Build Coastguard Worker */ 267*f80ad8b4SAndroid Build Coastguard Worker struct v4l2_subdev_client_capability { 268*f80ad8b4SAndroid Build Coastguard Worker __u64 capabilities; 269*f80ad8b4SAndroid Build Coastguard Worker }; 270*f80ad8b4SAndroid Build Coastguard Worker 271*f80ad8b4SAndroid Build Coastguard Worker /* Backwards compatibility define --- to be removed */ 272*f80ad8b4SAndroid Build Coastguard Worker #define v4l2_subdev_edid v4l2_edid 273*f80ad8b4SAndroid Build Coastguard Worker 274*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_QUERYCAP _IOR('V', 0, struct v4l2_subdev_capability) 275*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) 276*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) 277*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_FRAME_INTERVAL _IOWR('V', 21, struct v4l2_subdev_frame_interval) 278*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_FRAME_INTERVAL _IOWR('V', 22, struct v4l2_subdev_frame_interval) 279*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_ENUM_MBUS_CODE _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum) 280*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_ENUM_FRAME_SIZE _IOWR('V', 74, struct v4l2_subdev_frame_size_enum) 281*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum) 282*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop) 283*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop) 284*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection) 285*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) 286*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_ROUTING _IOWR('V', 38, struct v4l2_subdev_routing) 287*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_ROUTING _IOWR('V', 39, struct v4l2_subdev_routing) 288*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_CLIENT_CAP _IOR('V', 101, struct v4l2_subdev_client_capability) 289*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_CLIENT_CAP _IOWR('V', 102, struct v4l2_subdev_client_capability) 290*f80ad8b4SAndroid Build Coastguard Worker 291*f80ad8b4SAndroid Build Coastguard Worker /* The following ioctls are identical to the ioctls in videodev2.h */ 292*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id) 293*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id) 294*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard) 295*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) 296*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) 297*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id) 298*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) 299*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) 300*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) 301*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings) 302*f80ad8b4SAndroid Build Coastguard Worker #define VIDIOC_SUBDEV_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) 303*f80ad8b4SAndroid Build Coastguard Worker 304*f80ad8b4SAndroid Build Coastguard Worker #endif 305