diff options
| author | codeworkx <codeworkx@cyanogenmod.org> | 2013-02-17 15:05:49 +0000 | 
|---|---|---|
| committer | codeworkx <codeworkx@cyanogenmod.org> | 2013-02-17 15:24:50 +0000 | 
| commit | 79b8917c201073a165d6027fe0440bdf31a6da7c (patch) | |
| tree | 2d273d4f8dcba1a13ea82f66b2f396bb29f8bc40 | |
| parent | a7d49af0a901e08b21c8f9bf88b30fce8286b434 (diff) | |
| download | hardware_samsung-79b8917c201073a165d6027fe0440bdf31a6da7c.zip hardware_samsung-79b8917c201073a165d6027fe0440bdf31a6da7c.tar.gz hardware_samsung-79b8917c201073a165d6027fe0440bdf31a6da7c.tar.bz2  | |
exynos4: update media headers
Change-Id: Ia6221554d290c46f11c68e276dda41c8ebe3a7ab
| -rw-r--r-- | exynos4/hal/include/sec_utils.h | 5 | ||||
| -rw-r--r-- | exynos4/hal/include/videodev2.h | 683 | ||||
| -rw-r--r-- | exynos4/hal/include/videodev2_exynos_camera.h | 2076 | ||||
| -rw-r--r-- | exynos4/hal/include/videodev2_exynos_media.h | 225 | ||||
| -rw-r--r-- | exynos4/hal/include/videodev2_samsung.h | 1115 | ||||
| -rw-r--r-- | exynos4/hal/libcamera/SecCamera.h | 3 | 
6 files changed, 2716 insertions, 1391 deletions
diff --git a/exynos4/hal/include/sec_utils.h b/exynos4/hal/include/sec_utils.h index ed4fe80..c99dec6 100644 --- a/exynos4/hal/include/sec_utils.h +++ b/exynos4/hal/include/sec_utils.h @@ -29,7 +29,8 @@ extern "C" {  #endif  #include <linux/videodev2.h> -#include "videodev2_samsung.h" +#include "videodev2_exynos_camera.h" +#include "videodev2_exynos_media.h"  #ifdef __cplusplus  } @@ -295,4 +296,4 @@ inline unsigned int FRAME_SIZE(int HAL_PIXEL_FORMAT, int w, int h)      return frame_size;  } -#endif //__SAMSUNG_SYSLSI_SEC_COMMON_H__
\ No newline at end of file +#endif //__SAMSUNG_SYSLSI_SEC_COMMON_H__ diff --git a/exynos4/hal/include/videodev2.h b/exynos4/hal/include/videodev2.h index 48b3081..a464469 100644 --- a/exynos4/hal/include/videodev2.h +++ b/exynos4/hal/include/videodev2.h @@ -185,6 +185,7 @@ enum v4l2_memory {  	V4L2_MEMORY_MMAP             = 1,  	V4L2_MEMORY_USERPTR          = 2,  	V4L2_MEMORY_OVERLAY          = 3, +	V4L2_MEMORY_DMABUF           = 4,  };  /* see also http://vektor.theorem.ca/graphics/ycbcr/ */ @@ -343,16 +344,15 @@ struct v4l2_pix_format {  #define V4L2_PIX_FMT_NV21    v4l2_fourcc('N', 'V', '2', '1') /* 12  Y/CrCb 4:2:0  */  #define V4L2_PIX_FMT_NV16    v4l2_fourcc('N', 'V', '1', '6') /* 16  Y/CbCr 4:2:2  */  #define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 4:2:2  */ +#define V4L2_PIX_FMT_NV24    v4l2_fourcc('N', 'V', '2', '4') /* 24  Y/CbCr 4:4:4  */ +#define V4L2_PIX_FMT_NV42    v4l2_fourcc('N', 'V', '4', '2') /* 24  Y/CrCb 4:4:4  */  /* two non contiguous planes - one Y, one Cr + Cb interleaved  */  #define V4L2_PIX_FMT_NV12M        v4l2_fourcc('N', 'M', '1', '2') /* 12  Y/CbCr 4:2:0  */ -#define V4L2_PIX_FMT_NV21M        v4l2_fourcc('N', 'M', '2', '1') /* 21  Y/CrCb 4:2:0  */  #define V4L2_PIX_FMT_NV12MT       v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 macroblocks */ -#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 macroblocks */  /* three non contiguous planes - Y, Cb, Cr */ -#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'U', 'V', 'M') /* 12  YUV420 planar */ -#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'V', 'U', 'M') /* 12  YVU420 planar */ +#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12  YUV420 planar */  /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */  #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */ @@ -379,23 +379,16 @@ struct v4l2_pix_format {  #define V4L2_PIX_FMT_MJPEG    v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG   */  #define V4L2_PIX_FMT_JPEG     v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG     */  #define V4L2_PIX_FMT_DV       v4l2_fourcc('d', 'v', 's', 'd') /* 1394          */ -#define V4L2_PIX_FMT_MPEG     v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4    */ - - -#define V4L2_PIX_FMT_H264     v4l2_fourcc('H', '2', '6', '4') /* H264    */ +#define V4L2_PIX_FMT_MPEG     v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 Multiplexed */ +#define V4L2_PIX_FMT_H264     v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */ +#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start codes */  #define V4L2_PIX_FMT_H263     v4l2_fourcc('H', '2', '6', '3') /* H263    */ -#define V4L2_PIX_FMT_MPEG12   v4l2_fourcc('M', 'P', '1', '2') /* MPEG-1/2  */ -#define V4L2_PIX_FMT_MPEG4    v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4  */ -#define V4L2_PIX_FMT_FIMV     v4l2_fourcc('F', 'I', 'M', 'V') /* FIMV  */ -#define V4L2_PIX_FMT_FIMV1    v4l2_fourcc('F', 'I', 'M', '1') /* FIMV1 */ -#define V4L2_PIX_FMT_FIMV2    v4l2_fourcc('F', 'I', 'M', '2') /* FIMV2 */ -#define V4L2_PIX_FMT_FIMV3    v4l2_fourcc('F', 'I', 'M', '3') /* FIMV3 */ -#define V4L2_PIX_FMT_FIMV4    v4l2_fourcc('F', 'I', 'M', '4') /* FIMV4 */ +#define V4L2_PIX_FMT_MPEG1    v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES     */ +#define V4L2_PIX_FMT_MPEG2    v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES     */ +#define V4L2_PIX_FMT_MPEG4    v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 ES     */  #define V4L2_PIX_FMT_XVID     v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */ -#define V4L2_PIX_FMT_VC1      v4l2_fourcc('V', 'C', '1', 'A') /* VC-1 */ -#define V4L2_PIX_FMT_VC1_RCV      v4l2_fourcc('V', 'C', '1', 'R') /* VC-1 RCV */ -#define V4L2_PIX_FMT_VP8      v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ - +#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ +#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */  /*  Vendor-specific formats   */  #define V4L2_PIX_FMT_CPIA1    v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ @@ -411,6 +404,7 @@ struct v4l2_pix_format {  #define V4L2_PIX_FMT_SPCA561  v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */  #define V4L2_PIX_FMT_PAC207   v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */  #define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ +#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */  #define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */  #define V4L2_PIX_FMT_SQ905C   v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */  #define V4L2_PIX_FMT_PJPG     v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ @@ -421,14 +415,10 @@ struct v4l2_pix_format {  #define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */  #define V4L2_PIX_FMT_KONICA420  v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */  #define V4L2_PIX_FMT_JPGL	v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ +/* RGB x:10:10:10 */ +#define V4L2_PIX_FMT_INTC_RGB30	v4l2_fourcc('R', 'G', 'B', '0') +#define V4L2_PIX_FMT_SE401      v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ -#define V4L2_PIX_FMT_JPEG_444     v4l2_fourcc('J', 'P', 'G', '4') /* yuv444 of JFIF JPEG     */ -#define V4L2_PIX_FMT_JPEG_422     v4l2_fourcc('J', 'P', 'G', '2') /* yuv422 of JFIF JPEG     */ -#define V4L2_PIX_FMT_JPEG_420     v4l2_fourcc('J', 'P', 'G', '0') /* yuv420 of JFIF JPEG     */ -#define V4L2_PIX_FMT_JPEG_GRAY     v4l2_fourcc('J', 'P', 'G', 'G') /* grey of JFIF JPEG     */ -#define V4L2_PIX_FMT_YUV444_2P  v4l2_fourcc('Y', 'U', '2', 'P') /* 16  xxxxyyyy uuuuvvvv */ -#define V4L2_PIX_FMT_YVU444_2P  v4l2_fourcc('Y', 'V', '2', 'P') /* 16  xxxxyyyy uuuuvvvv */ -#define V4L2_PIX_FMT_YUV444_3P  v4l2_fourcc('Y', 'U', '3', 'P') /* 16  xxxxyyyy uuuuvvvv */  /*   *	F O R M A T   E N U M E R A T I O N   */ @@ -590,6 +580,8 @@ struct v4l2_requestbuffers {   *			should be passed to mmap() called on the video node)   * @userptr:		when memory is V4L2_MEMORY_USERPTR, a userspace pointer   *			pointing to this plane + * @fd:			when memory is V4L2_MEMORY_DMABUF, a userspace file + *			descriptor associated with this plane   * @data_offset:	offset in the plane to the start of data; usually 0,   *			unless there is a header in front of the data   * @@ -604,11 +596,10 @@ struct v4l2_plane {  	union {  		__u32		mem_offset;  		unsigned long	userptr; +		int		fd;  	} m;  	__u32			data_offset; -	void			*cookie; -	void			*share; -	__u32			reserved[9]; +	__u32			reserved[11];  };  /** @@ -628,6 +619,9 @@ struct v4l2_plane {   *		(or a "cookie" that should be passed to mmap() as offset)   * @userptr:	for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;   *		a userspace pointer pointing to this buffer + * @fd:		for non-multiplanar buffers with + * 		memory == V4L2_MEMORY_DMABUF; a userspace file descriptor + *		associated with this buffer   * @planes:	for multiplanar buffers; userspace pointer to the array of plane   *		info structs for this buffer   * @length:	size in bytes of the buffer (NOT its payload) for single-plane @@ -654,6 +648,7 @@ struct v4l2_buffer {  		__u32           offset;  		unsigned long   userptr;  		struct v4l2_plane *planes; +		int		fd;  	} m;  	__u32			length;  	__u32			input; @@ -671,6 +666,10 @@ struct v4l2_buffer {  #define V4L2_BUF_FLAG_ERROR	0x0040  #define V4L2_BUF_FLAG_TIMECODE	0x0100	/* timecode field is valid */  #define V4L2_BUF_FLAG_INPUT     0x0200  /* input field is valid */ +#define V4L2_BUF_FLAG_PREPARED	0x0400	/* Buffer is prepared for queuing */ +/* Cache handling flags */ +#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE	0x0800 +#define V4L2_BUF_FLAG_NO_CACHE_CLEAN		0x1000  /*   *	O V E R L A Y   P R E V I E W @@ -756,6 +755,48 @@ struct v4l2_crop {  	struct v4l2_rect        c;  }; +/* Hints for adjustments of selection rectangle */ +#define V4L2_SEL_FLAG_GE	0x00000001 +#define V4L2_SEL_FLAG_LE	0x00000002 + +/* Selection targets */ + +/* current cropping area */ +#define V4L2_SEL_TGT_CROP_ACTIVE	0 +/* default cropping area */ +#define V4L2_SEL_TGT_CROP_DEFAULT	1 +/* cropping bounds */ +#define V4L2_SEL_TGT_CROP_BOUNDS	2 +/* current composing area */ +#define V4L2_SEL_TGT_COMPOSE_ACTIVE	256 +/* default composing area */ +#define V4L2_SEL_TGT_COMPOSE_DEFAULT	257 +/* composing bounds */ +#define V4L2_SEL_TGT_COMPOSE_BOUNDS	258 +/* current composing area plus all padding pixels */ +#define V4L2_SEL_TGT_COMPOSE_PADDED	259 + +/** + * struct v4l2_selection - selection info + * @type:	buffer type (do not use *_MPLANE types) + * @target:	selection target, used to choose one of possible rectangles + * @flags:	constraints flags + * @r:		coordinates of selection window + * @reserved:	for future use, rounds structure size to 64 bytes, set to zero + * + * Hardware may use multiple helper window to process a video stream. + * The structure is used to exchange this selection areas between + * an application and a driver. + */ +struct v4l2_selection { +	__u32			type; +	__u32			target; +	__u32                   flags; +	struct v4l2_rect        r; +	__u32                   reserved[9]; +}; + +  /*   *      A N A L O G   V I D E O   S T A N D A R D   */ @@ -777,10 +818,10 @@ typedef __u64 v4l2_std_id;  #define V4L2_STD_PAL_Nc         ((v4l2_std_id)0x00000400)  #define V4L2_STD_PAL_60         ((v4l2_std_id)0x00000800) -#define V4L2_STD_NTSC_M         ((v4l2_std_id)0x00001000) -#define V4L2_STD_NTSC_M_JP      ((v4l2_std_id)0x00002000) +#define V4L2_STD_NTSC_M         ((v4l2_std_id)0x00001000)	/* BTSC */ +#define V4L2_STD_NTSC_M_JP      ((v4l2_std_id)0x00002000)	/* EIA-J */  #define V4L2_STD_NTSC_443       ((v4l2_std_id)0x00004000) -#define V4L2_STD_NTSC_M_KR      ((v4l2_std_id)0x00008000) +#define V4L2_STD_NTSC_M_KR      ((v4l2_std_id)0x00008000)	/* FM A2 */  #define V4L2_STD_SECAM_B        ((v4l2_std_id)0x00010000)  #define V4L2_STD_SECAM_D        ((v4l2_std_id)0x00020000) @@ -804,47 +845,86 @@ typedef __u64 v4l2_std_id;     v4l2-common.c should be fixed.   */ -/* some merged standards */ -#define V4L2_STD_MN	(V4L2_STD_PAL_M|V4L2_STD_PAL_N|V4L2_STD_PAL_Nc|V4L2_STD_NTSC) -#define V4L2_STD_B	(V4L2_STD_PAL_B|V4L2_STD_PAL_B1|V4L2_STD_SECAM_B) -#define V4L2_STD_GH	(V4L2_STD_PAL_G|V4L2_STD_PAL_H|V4L2_STD_SECAM_G|V4L2_STD_SECAM_H) -#define V4L2_STD_DK	(V4L2_STD_PAL_DK|V4L2_STD_SECAM_DK) +/* + * Some macros to merge video standards in order to make live easier for the + * drivers and V4L2 applications + */ -/* some common needed stuff */ -#define V4L2_STD_PAL_BG		(V4L2_STD_PAL_B		|\ -				 V4L2_STD_PAL_B1	|\ -				 V4L2_STD_PAL_G) -#define V4L2_STD_PAL_DK		(V4L2_STD_PAL_D		|\ -				 V4L2_STD_PAL_D1	|\ -				 V4L2_STD_PAL_K) -#define V4L2_STD_PAL		(V4L2_STD_PAL_BG	|\ -				 V4L2_STD_PAL_DK	|\ -				 V4L2_STD_PAL_H		|\ -				 V4L2_STD_PAL_I) +/* + * "Common" NTSC/M - It should be noticed that V4L2_STD_NTSC_443 is + * Missing here. + */  #define V4L2_STD_NTSC           (V4L2_STD_NTSC_M	|\  				 V4L2_STD_NTSC_M_JP     |\  				 V4L2_STD_NTSC_M_KR) +/* Secam macros */  #define V4L2_STD_SECAM_DK      	(V4L2_STD_SECAM_D	|\  				 V4L2_STD_SECAM_K	|\  				 V4L2_STD_SECAM_K1) +/* All Secam Standards */  #define V4L2_STD_SECAM		(V4L2_STD_SECAM_B	|\  				 V4L2_STD_SECAM_G	|\  				 V4L2_STD_SECAM_H	|\  				 V4L2_STD_SECAM_DK	|\  				 V4L2_STD_SECAM_L       |\  				 V4L2_STD_SECAM_LC) +/* PAL macros */ +#define V4L2_STD_PAL_BG		(V4L2_STD_PAL_B		|\ +				 V4L2_STD_PAL_B1	|\ +				 V4L2_STD_PAL_G) +#define V4L2_STD_PAL_DK		(V4L2_STD_PAL_D		|\ +				 V4L2_STD_PAL_D1	|\ +				 V4L2_STD_PAL_K) +/* + * "Common" PAL - This macro is there to be compatible with the old + * V4L1 concept of "PAL": /BGDKHI. + * Several PAL standards are mising here: /M, /N and /Nc + */ +#define V4L2_STD_PAL		(V4L2_STD_PAL_BG	|\ +				 V4L2_STD_PAL_DK	|\ +				 V4L2_STD_PAL_H		|\ +				 V4L2_STD_PAL_I) +/* Chroma "agnostic" standards */ +#define V4L2_STD_B		(V4L2_STD_PAL_B		|\ +				 V4L2_STD_PAL_B1	|\ +				 V4L2_STD_SECAM_B) +#define V4L2_STD_G		(V4L2_STD_PAL_G		|\ +				 V4L2_STD_SECAM_G) +#define V4L2_STD_H		(V4L2_STD_PAL_H		|\ +				 V4L2_STD_SECAM_H) +#define V4L2_STD_L		(V4L2_STD_SECAM_L	|\ +				 V4L2_STD_SECAM_LC) +#define V4L2_STD_GH		(V4L2_STD_G		|\ +				 V4L2_STD_H) +#define V4L2_STD_DK		(V4L2_STD_PAL_DK	|\ +				 V4L2_STD_SECAM_DK) +#define V4L2_STD_BG		(V4L2_STD_B		|\ +				 V4L2_STD_G) +#define V4L2_STD_MN		(V4L2_STD_PAL_M		|\ +				 V4L2_STD_PAL_N		|\ +				 V4L2_STD_PAL_Nc	|\ +				 V4L2_STD_NTSC) +/* Standards where MTS/BTSC stereo could be found */ +#define V4L2_STD_MTS		(V4L2_STD_NTSC_M	|\ +				 V4L2_STD_PAL_M		|\ +				 V4L2_STD_PAL_N		|\ +				 V4L2_STD_PAL_Nc) + +/* Standards for Countries with 60Hz Line frequency */  #define V4L2_STD_525_60		(V4L2_STD_PAL_M		|\  				 V4L2_STD_PAL_60	|\  				 V4L2_STD_NTSC		|\  				 V4L2_STD_NTSC_443) +/* Standards for Countries with 50Hz Line frequency */  #define V4L2_STD_625_50		(V4L2_STD_PAL		|\  				 V4L2_STD_PAL_N		|\  				 V4L2_STD_PAL_Nc	|\  				 V4L2_STD_SECAM) +  #define V4L2_STD_ATSC           (V4L2_STD_ATSC_8_VSB    |\  				 V4L2_STD_ATSC_16_VSB) - +/* Macros with none and all analog standards */  #define V4L2_STD_UNKNOWN        0  #define V4L2_STD_ALL            (V4L2_STD_525_60	|\  				 V4L2_STD_625_50) @@ -1082,7 +1162,8 @@ struct v4l2_ext_controls {  #define V4L2_CTRL_CLASS_MPEG 0x00990000	/* MPEG-compression controls */  #define V4L2_CTRL_CLASS_CAMERA 0x009a0000	/* Camera class controls */  #define V4L2_CTRL_CLASS_FM_TX 0x009b0000	/* FM Modulator control class */ -#define V4L2_CTRL_CLASS_CODEC 0x009c0000	/* Codec control class */ +#define V4L2_CTRL_CLASS_FLASH 0x009c0000	/* Camera flash controls */ +#define V4L2_CTRL_CLASS_FM_RX 0x009d0000	/* FM Tuner control class */  #define V4L2_CTRL_ID_MASK      	  (0x0fffffff)  #define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL) @@ -1096,6 +1177,7 @@ enum v4l2_ctrl_type {  	V4L2_CTRL_TYPE_INTEGER64     = 5,  	V4L2_CTRL_TYPE_CTRL_CLASS    = 6,  	V4L2_CTRL_TYPE_STRING        = 7, +	V4L2_CTRL_TYPE_BITMASK       = 8,  };  /*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ @@ -1127,11 +1209,13 @@ struct v4l2_querymenu {  #define V4L2_CTRL_FLAG_INACTIVE 	0x0010  #define V4L2_CTRL_FLAG_SLIDER 		0x0020  #define V4L2_CTRL_FLAG_WRITE_ONLY 	0x0040 +#define V4L2_CTRL_FLAG_VOLATILE		0x0080  /*  Query flag, to be ORed with the control ID */  #define V4L2_CTRL_FLAG_NEXT_CTRL	0x80000000  /*  User-class control IDs defined by V4L2 */ +#define V4L2_CID_MAX_CTRLS		1024  #define V4L2_CID_BASE			(V4L2_CTRL_CLASS_USER | 0x900)  #define V4L2_CID_USER_BASE 		V4L2_CID_BASE  /*  IDs reserved for driver specific controls */ @@ -1170,6 +1254,7 @@ enum v4l2_power_line_frequency {  	V4L2_CID_POWER_LINE_FREQUENCY_DISABLED	= 0,  	V4L2_CID_POWER_LINE_FREQUENCY_50HZ	= 1,  	V4L2_CID_POWER_LINE_FREQUENCY_60HZ	= 2, +	V4L2_CID_POWER_LINE_FREQUENCY_AUTO	= 3,  };  #define V4L2_CID_HUE_AUTO			(V4L2_CID_BASE+25)  #define V4L2_CID_WHITE_BALANCE_TEMPERATURE	(V4L2_CID_BASE+26) @@ -1201,37 +1286,19 @@ enum v4l2_colorfx {  #define V4L2_CID_ILLUMINATORS_1			(V4L2_CID_BASE+37)  #define V4L2_CID_ILLUMINATORS_2			(V4L2_CID_BASE+38) -/* - * This is custom CID - */ -/* for rgb alpha function */ -#define V4L2_CID_GLOBAL_ALPHA			(V4L2_CID_BASE+39) +#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE	(V4L2_CID_BASE+39) +#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT		(V4L2_CID_BASE+40) -/* cacheable configuration */ -#define V4L2_CID_CACHEABLE			(V4L2_CID_BASE+40) - -/* jpeg captured size */ -#define V4L2_CID_CAM_JPEG_MEMSIZE		(V4L2_CID_BASE+41) -#define V4L2_CID_CAM_JPEG_ENCODEDSIZE		(V4L2_CID_BASE+42) - -#define V4L2_CID_SET_SHAREABLE			(V4L2_CID_BASE+43) - -/* TV configuration */ -#define V4L2_CID_TV_LAYER_BLEND_ENABLE		(V4L2_CID_BASE+44) -#define V4L2_CID_TV_LAYER_BLEND_ALPHA		(V4L2_CID_BASE+45) -#define V4L2_CID_TV_PIXEL_BLEND_ENABLE		(V4L2_CID_BASE+46) -#define V4L2_CID_TV_CHROMA_ENABLE		(V4L2_CID_BASE+47) -#define V4L2_CID_TV_CHROMA_VALUE		(V4L2_CID_BASE+48) -#define V4L2_CID_TV_HPD_STATUS			(V4L2_CID_BASE+49) +#define V4L2_CID_ALPHA_COMPONENT		(V4L2_CID_BASE+41)  /* last CID + 1 */ -#define V4L2_CID_LASTP1				(V4L2_CID_BASE+50) +#define V4L2_CID_LASTP1				(V4L2_CID_BASE+42)  /*  MPEG-class control IDs defined by V4L2 */  #define V4L2_CID_MPEG_BASE 			(V4L2_CTRL_CLASS_MPEG | 0x900)  #define V4L2_CID_MPEG_CLASS 			(V4L2_CTRL_CLASS_MPEG | 1) -/*  MPEG streams */ +/*  MPEG streams, specific to multiplexed streams */  #define V4L2_CID_MPEG_STREAM_TYPE 		(V4L2_CID_MPEG_BASE+0)  enum v4l2_mpeg_stream_type {  	V4L2_MPEG_STREAM_TYPE_MPEG2_PS   = 0, /* MPEG-2 program stream */ @@ -1253,7 +1320,7 @@ enum v4l2_mpeg_stream_vbi_fmt {  	V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1,  /* VBI in private packets, IVTV format */  }; -/*  MPEG audio */ +/*  MPEG audio controls specific to multiplexed streams  */  #define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ 	(V4L2_CID_MPEG_BASE+100)  enum v4l2_mpeg_audio_sampling_freq {  	V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, @@ -1369,7 +1436,7 @@ enum v4l2_mpeg_audio_ac3_bitrate {  	V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18,  }; -/*  MPEG video */ +/*  MPEG video controls specific to multiplexed streams */  #define V4L2_CID_MPEG_VIDEO_ENCODING 		(V4L2_CID_MPEG_BASE+200)  enum v4l2_mpeg_video_encoding {  	V4L2_MPEG_VIDEO_ENCODING_MPEG_1     = 0, @@ -1397,6 +1464,141 @@ enum v4l2_mpeg_video_bitrate_mode {  #define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)  #define V4L2_CID_MPEG_VIDEO_MUTE 		(V4L2_CID_MPEG_BASE+210)  #define V4L2_CID_MPEG_VIDEO_MUTE_YUV 		(V4L2_CID_MPEG_BASE+211) +#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE		(V4L2_CID_MPEG_BASE+212) +#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER	(V4L2_CID_MPEG_BASE+213) +#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB		(V4L2_CID_MPEG_BASE+214) +#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE			(V4L2_CID_MPEG_BASE+215) +#define V4L2_CID_MPEG_VIDEO_HEADER_MODE				(V4L2_CID_MPEG_BASE+216) +enum v4l2_mpeg_video_header_mode { +	V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE			= 0, +	V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME	= 1, + +}; +#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC			(V4L2_CID_MPEG_BASE+217) +#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE		(V4L2_CID_MPEG_BASE+218) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES	(V4L2_CID_MPEG_BASE+219) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB		(V4L2_CID_MPEG_BASE+220) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE		(V4L2_CID_MPEG_BASE+221) +enum v4l2_mpeg_video_multi_slice_mode { +	V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE		= 0, +	V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB		= 1, +	V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES	= 2, +}; +#define V4L2_CID_MPEG_VIDEO_VBV_SIZE			(V4L2_CID_MPEG_BASE+222) +#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP		(V4L2_CID_MPEG_BASE+300) +#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP		(V4L2_CID_MPEG_BASE+301) +#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP		(V4L2_CID_MPEG_BASE+302) +#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP			(V4L2_CID_MPEG_BASE+303) +#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP			(V4L2_CID_MPEG_BASE+304) +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP		(V4L2_CID_MPEG_BASE+350) +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP		(V4L2_CID_MPEG_BASE+351) +#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP		(V4L2_CID_MPEG_BASE+352) +#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP			(V4L2_CID_MPEG_BASE+353) +#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP			(V4L2_CID_MPEG_BASE+354) +#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM		(V4L2_CID_MPEG_BASE+355) +#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE		(V4L2_CID_MPEG_BASE+356) +#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE		(V4L2_CID_MPEG_BASE+357) +enum v4l2_mpeg_video_h264_entropy_mode { +	V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC	= 0, +	V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC	= 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD		(V4L2_CID_MPEG_BASE+358) +#define V4L2_CID_MPEG_VIDEO_H264_LEVEL			(V4L2_CID_MPEG_BASE+359) +enum v4l2_mpeg_video_h264_level { +	V4L2_MPEG_VIDEO_H264_LEVEL_1_0	= 0, +	V4L2_MPEG_VIDEO_H264_LEVEL_1B	= 1, +	V4L2_MPEG_VIDEO_H264_LEVEL_1_1	= 2, +	V4L2_MPEG_VIDEO_H264_LEVEL_1_2	= 3, +	V4L2_MPEG_VIDEO_H264_LEVEL_1_3	= 4, +	V4L2_MPEG_VIDEO_H264_LEVEL_2_0	= 5, +	V4L2_MPEG_VIDEO_H264_LEVEL_2_1	= 6, +	V4L2_MPEG_VIDEO_H264_LEVEL_2_2	= 7, +	V4L2_MPEG_VIDEO_H264_LEVEL_3_0	= 8, +	V4L2_MPEG_VIDEO_H264_LEVEL_3_1	= 9, +	V4L2_MPEG_VIDEO_H264_LEVEL_3_2	= 10, +	V4L2_MPEG_VIDEO_H264_LEVEL_4_0	= 11, +	V4L2_MPEG_VIDEO_H264_LEVEL_4_1	= 12, +	V4L2_MPEG_VIDEO_H264_LEVEL_4_2	= 13, +	V4L2_MPEG_VIDEO_H264_LEVEL_5_0	= 14, +	V4L2_MPEG_VIDEO_H264_LEVEL_5_1	= 15, +}; +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA	(V4L2_CID_MPEG_BASE+360) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA	(V4L2_CID_MPEG_BASE+361) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE	(V4L2_CID_MPEG_BASE+362) +enum v4l2_mpeg_video_h264_loop_filter_mode { +	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED				= 0, +	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED				= 1, +	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY	= 2, +}; +#define V4L2_CID_MPEG_VIDEO_H264_PROFILE		(V4L2_CID_MPEG_BASE+363) +enum v4l2_mpeg_video_h264_profile { +	V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE			= 0, +	V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE	= 1, +	V4L2_MPEG_VIDEO_H264_PROFILE_MAIN			= 2, +	V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED			= 3, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH			= 4, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10			= 5, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422			= 6, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE	= 7, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA		= 8, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA		= 9, +	V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA		= 10, +	V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA		= 11, +	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE		= 12, +	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH		= 13, +	V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA	= 14, +	V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH		= 15, +	V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH		= 16, +}; +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT	(V4L2_CID_MPEG_BASE+364) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH	(V4L2_CID_MPEG_BASE+365) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE		(V4L2_CID_MPEG_BASE+366) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC		(V4L2_CID_MPEG_BASE+367) +enum v4l2_mpeg_video_h264_vui_sar_idc { +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED	= 0, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1		= 1, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11		= 2, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11		= 3, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11		= 4, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33		= 5, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11		= 6, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11		= 7, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11		= 8, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33		= 9, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11		= 10, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11		= 11, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33		= 12, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99		= 13, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3		= 14, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2		= 15, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1		= 16, +	V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED	= 17, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP	(V4L2_CID_MPEG_BASE+400) +#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP	(V4L2_CID_MPEG_BASE+401) +#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP	(V4L2_CID_MPEG_BASE+402) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP	(V4L2_CID_MPEG_BASE+403) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP	(V4L2_CID_MPEG_BASE+404) +#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL		(V4L2_CID_MPEG_BASE+405) +enum v4l2_mpeg_video_mpeg4_level { +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_0	= 0, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B	= 1, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_1	= 2, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_2	= 3, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_3	= 4, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B	= 5, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_4	= 6, +	V4L2_MPEG_VIDEO_MPEG4_LEVEL_5	= 7, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE	(V4L2_CID_MPEG_BASE+406) +enum v4l2_mpeg_video_mpeg4_profile { +	V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE				= 0, +	V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE			= 1, +	V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE				= 2, +	V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE			= 3, +	V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY	= 4, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL		(V4L2_CID_MPEG_BASE+407)  /*  MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */  #define V4L2_CID_MPEG_CX2341X_BASE 				(V4L2_CTRL_CLASS_MPEG | 0x1000) @@ -1439,202 +1641,32 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type {  #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP 	(V4L2_CID_MPEG_CX2341X_BASE+10)  #define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS 	(V4L2_CID_MPEG_CX2341X_BASE+11) -/* For codecs */ - -#define V4L2_CID_CODEC_BASE 			(V4L2_CTRL_CLASS_CODEC | 0x900) -#define V4L2_CID_CODEC_CLASS 			(V4L2_CTRL_CLASS_CODEC | 1) - -/* Codec class control IDs specific to the MFC5X driver */ -#define V4L2_CID_CODEC_MFC5X_BASE		(V4L2_CTRL_CLASS_CODEC | 0x1000) - -/* For both decoding and encoding */ - -/* For decoding */ - -#define V4L2_CID_CODEC_LOOP_FILTER_MPEG4_ENABLE	(V4L2_CID_CODEC_BASE + 110) -#define V4L2_CID_CODEC_DISPLAY_DELAY		(V4L2_CID_CODEC_BASE + 137) -#define V4L2_CID_CODEC_REQ_NUM_BUFS		(V4L2_CID_CODEC_BASE + 140) -#define V4L2_CID_CODEC_SLICE_INTERFACE		(V4L2_CID_CODEC_BASE + 141) -#define V4L2_CID_CODEC_PACKED_PB		(V4L2_CID_CODEC_BASE + 142) -#define V4L2_CID_CODEC_FRAME_TAG		(V4L2_CID_CODEC_BASE + 143) -#define V4L2_CID_CODEC_CRC_ENABLE		(V4L2_CID_CODEC_BASE + 144) -#define V4L2_CID_CODEC_CRC_DATA_LUMA		(V4L2_CID_CODEC_BASE + 145) -#define V4L2_CID_CODEC_CRC_DATA_CHROMA		(V4L2_CID_CODEC_BASE + 146) -#define V4L2_CID_CODEC_CRC_DATA_LUMA_BOT	(V4L2_CID_CODEC_BASE + 147) -#define V4L2_CID_CODEC_CRC_DATA_CHROMA_BOT	(V4L2_CID_CODEC_BASE + 148) -#define V4L2_CID_CODEC_CRC_GENERATED		(V4L2_CID_CODEC_BASE + 149) -#define V4L2_CID_CODEC_FRAME_TYPE		(V4L2_CID_CODEC_BASE + 154) -#define V4L2_CID_CODEC_CHECK_STATE		(V4L2_CID_CODEC_BASE + 155) -#define V4L2_CID_CODEC_DISPLAY_STATUS		(V4L2_CID_CODEC_BASE + 156) -#define V4L2_CID_CODEC_FRAME_PACK_SEI_PARSE	(V4L2_CID_CODEC_BASE + 157) -#define V4L2_CID_CODEC_FRAME_PACK_SEI_AVAIL	(V4L2_CID_CODEC_BASE + 158) -#define V4L2_CID_CODEC_FRAME_PACK_ARRGMENT_ID	(V4L2_CID_CODEC_BASE + 159) -#define V4L2_CID_CODEC_FRAME_PACK_SEI_INFO	(V4L2_CID_CODEC_BASE + 160) -#define V4L2_CID_CODEC_FRAME_PACK_GRID_POS	(V4L2_CID_CODEC_BASE + 161) - -/* For encoding */ -#define V4L2_CID_CODEC_LOOP_FILTER_H264		(V4L2_CID_CODEC_BASE + 9) -enum v4l2_cid_codec_loop_filter_h264 { -	V4L2_CID_CODEC_LOOP_FILTER_H264_ENABLE = 0, -	V4L2_CID_CODEC_LOOP_FILTER_H264_DISABLE = 1, -	V4L2_CID_CODEC_LOOP_FILTER_H264_DISABLE_AT_BOUNDARY = 2, -}; - -#define V4L2_CID_CODEC_FRAME_INSERTION		(V4L2_CID_CODEC_BASE + 10) -enum v4l2_cid_codec_frame_insertion { -	V4L2_CID_CODEC_FRAME_INSERT_NONE = 0x0, -	V4L2_CID_CODEC_FRAME_INSERT_I_FRAME = 0x1, -	V4L2_CID_CODEC_FRAME_INSERT_NOT_CODED = 0x2, -}; - -#define V4L2_CID_CODEC_ENCODED_LUMA_ADDR	(V4L2_CID_CODEC_BASE + 11) -#define V4L2_CID_CODEC_ENCODED_CHROMA_ADDR	(V4L2_CID_CODEC_BASE + 12) - -#define V4L2_CID_CODEC_ENCODED_I_PERIOD_CH	V4L2_CID_CODEC_MFC5X_ENC_GOP_SIZE -#define V4L2_CID_CODEC_ENCODED_FRAME_RATE_CH 	V4L2_CID_CODEC_MFC5X_ENC_H264_RC_FRAME_RATE -#define V4L2_CID_CODEC_ENCODED_BIT_RATE_CH 	V4L2_CID_CODEC_MFC5X_ENC_RC_BIT_RATE - -#define V4L2_CID_CODEC_FRAME_PACK_SEI_GEN	(V4L2_CID_CODEC_BASE + 13) -#define V4L2_CID_CODEC_FRAME_PACK_FRM0_FLAG	(V4L2_CID_CODEC_BASE + 14) -enum v4l2_codec_mfc5x_enc_flag { -	V4L2_CODEC_MFC5X_ENC_FLAG_DISABLE = 0, -	V4L2_CODEC_MFC5X_ENC_FLAG_ENABLE = 1, -}; -#define V4L2_CID_CODEC_FRAME_PACK_ARRGMENT_TYPE	(V4L2_CID_CODEC_BASE + 15) -enum v4l2_codec_mfc5x_enc_frame_pack_arrgment_type { -	V4L2_CODEC_MFC5X_ENC_FRAME_PACK_SIDE_BY_SIDE = 0, -	V4L2_CODEC_MFC5X_ENC_FRAME_PACK_TOP_AND_BOT = 1, -	V4L2_CODEC_MFC5X_ENC_FRAME_PACK_TMP_INTER = 2, -}; - -/* common */ -enum v4l2_codec_mfc5x_enc_switch { -	V4L2_CODEC_MFC5X_ENC_SW_DISABLE	= 0, -	V4L2_CODEC_MFC5X_ENC_SW_ENABLE	= 1, -}; -enum v4l2_codec_mfc5x_enc_switch_inv { -	V4L2_CODEC_MFC5X_ENC_SW_INV_ENABLE	= 0, -	V4L2_CODEC_MFC5X_ENC_SW_INV_DISABLE	= 1, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_GOP_SIZE		(V4L2_CID_CODEC_MFC5X_BASE+300) -#define V4L2_CID_CODEC_MFC5X_ENC_MULTI_SLICE_MODE	(V4L2_CID_CODEC_MFC5X_BASE+301) -enum v4l2_codec_mfc5x_enc_multi_slice_mode { -	V4L2_CODEC_MFC5X_ENC_MULTI_SLICE_MODE_DISABLE		= 0, -	V4L2_CODEC_MFC5X_ENC_MULTI_SLICE_MODE_MACROBLOCK_COUNT	= 1, -	V4L2_CODEC_MFC5X_ENC_MULTI_SLICE_MODE_BIT_COUNT		= 3, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_MULTI_SLICE_MB		(V4L2_CID_CODEC_MFC5X_BASE+302) -#define V4L2_CID_CODEC_MFC5X_ENC_MULTI_SLICE_BIT	(V4L2_CID_CODEC_MFC5X_BASE+303) -#define V4L2_CID_CODEC_MFC5X_ENC_INTRA_REFRESH_MB	(V4L2_CID_CODEC_MFC5X_BASE+304) -#define V4L2_CID_CODEC_MFC5X_ENC_PAD_CTRL_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+305) -#define V4L2_CID_CODEC_MFC5X_ENC_PAD_LUMA_VALUE		(V4L2_CID_CODEC_MFC5X_BASE+306) -#define V4L2_CID_CODEC_MFC5X_ENC_PAD_CB_VALUE		(V4L2_CID_CODEC_MFC5X_BASE+307) -#define V4L2_CID_CODEC_MFC5X_ENC_PAD_CR_VALUE		(V4L2_CID_CODEC_MFC5X_BASE+308) -#define V4L2_CID_CODEC_MFC5X_ENC_RC_FRAME_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+309) -#define V4L2_CID_CODEC_MFC5X_ENC_RC_BIT_RATE		(V4L2_CID_CODEC_MFC5X_BASE+310) -#define V4L2_CID_CODEC_MFC5X_ENC_RC_REACTION_COEFF	(V4L2_CID_CODEC_MFC5X_BASE+311) -#define V4L2_CID_CODEC_MFC5X_ENC_STREAM_SIZE		(V4L2_CID_CODEC_MFC5X_BASE+312) -#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_COUNT		(V4L2_CID_CODEC_MFC5X_BASE+313) -#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_TYPE		(V4L2_CID_CODEC_MFC5X_BASE+314) -enum v4l2_codec_mfc5x_enc_frame_type { -	V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_NOT_CODED	= 0, -	V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_I_FRAME		= 1, -	V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_P_FRAME		= 2, -	V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_B_FRAME		= 3, -	V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_SKIPPED		= 4, -	V4L2_CODEC_MFC5X_ENC_FRAME_TYPE_OTHERS		= 5, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_FORCE_FRAME_TYPE	(V4L2_CID_CODEC_MFC5X_BASE+315) -enum v4l2_codec_mfc5x_enc_force_frame_type { -	V4L2_CODEC_MFC5X_ENC_FORCE_FRAME_TYPE_I_FRAME	= 1, -	V4L2_CODEC_MFC5X_ENC_FORCE_FRAME_TYPE_NOT_CODED	= 2, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_VBV_BUF_SIZE		(V4L2_CID_CODEC_MFC5X_BASE+316) -#define V4L2_CID_CODEC_MFC5X_ENC_SEQ_HDR_MODE		(V4L2_CID_CODEC_MFC5X_BASE+317) -enum v4l2_codec_mfc5x_enc_seq_hdr_mode { -	V4L2_CODEC_MFC5X_ENC_SEQ_HDR_MODE_SEQ		= 0, -	V4L2_CODEC_MFC5X_ENC_SEQ_HDR_MODE_SEQ_FRAME	= 1, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_SKIP_MODE	(V4L2_CID_CODEC_MFC5X_BASE+318) -enum v4l2_codec_mfc5x_enc_frame_skip_mode { -	V4L2_CODEC_MFC5X_ENC_FRAME_SKIP_MODE_DISABLE		= 0, -	V4L2_CODEC_MFC5X_ENC_FRAME_SKIP_MODE_LEVEL		= 1, -	V4L2_CODEC_MFC5X_ENC_FRAME_SKIP_MODE_VBV_BUF_SIZE	= 2, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_RC_FIXED_TARGET_BIT	(V4L2_CID_CODEC_MFC5X_BASE+319) -#define V4L2_CID_CODEC_MFC5X_ENC_FRAME_DELTA		(V4L2_CID_CODEC_MFC5X_BASE+320) - -/* codec specific */ -#define V4L2_CID_CODEC_MFC5X_ENC_H264_B_FRAMES		(V4L2_CID_CODEC_MFC5X_BASE+400) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_PROFILE		(V4L2_CID_CODEC_MFC5X_BASE+401) -enum v4l2_codec_mfc5x_enc_h264_profile { -	V4L2_CODEC_MFC5X_ENC_H264_PROFILE_MAIN		= 0, -	V4L2_CODEC_MFC5X_ENC_H264_PROFILE_HIGH		= 1, -	V4L2_CODEC_MFC5X_ENC_H264_PROFILE_BASELINE	= 2, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LEVEL		(V4L2_CID_CODEC_MFC5X_BASE+402) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_INTERLACE		(V4L2_CID_CODEC_MFC5X_BASE+403) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LOOP_FILTER_MODE	(V4L2_CID_CODEC_MFC5X_BASE+404) -enum v4l2_codec_mfc5x_enc_h264_loop_filter { -	V4L2_CODEC_MFC5X_ENC_H264_LOOP_FILTER_ENABLE			= 0, -	V4L2_CODEC_MFC5X_ENC_H264_LOOP_FILTER_DISABLE			= 1, -	V4L2_CODEC_MFC5X_ENC_H264_LOOP_FILTER_DISABLE_AT_BOUNDARY	= 2, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LOOP_FILTER_ALPHA	(V4L2_CID_CODEC_MFC5X_BASE+405) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LOOP_FILTER_BETA	(V4L2_CID_CODEC_MFC5X_BASE+406) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_ENTROPY_MODE	(V4L2_CID_CODEC_MFC5X_BASE+407) -enum v4l2_codec_mfc5x_enc_h264_entropy_mode { -	V4L2_CODEC_MFC5X_ENC_H264_ENTROPY_MODE_CAVLC	= 0, -	V4L2_CODEC_MFC5X_ENC_H264_ENTROPY_MODE_CABAC	= 1, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_H264_MAX_REF_PIC	(V4L2_CID_CODEC_MFC5X_BASE+408) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_NUM_REF_PIC_4P	(V4L2_CID_CODEC_MFC5X_BASE+409) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_8X8_TRANSFORM	(V4L2_CID_CODEC_MFC5X_BASE+410) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+411) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_FRAME_RATE	(V4L2_CID_CODEC_MFC5X_BASE+412) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+413) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MIN_QP		(V4L2_CID_CODEC_MFC5X_BASE+414) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MAX_QP		(V4L2_CID_CODEC_MFC5X_BASE+415) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_DARK	(V4L2_CID_CODEC_MFC5X_BASE+416) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_SMOOTH	(V4L2_CID_CODEC_MFC5X_BASE+417) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_STATIC	(V4L2_CID_CODEC_MFC5X_BASE+418) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_MB_ACTIVITY	(V4L2_CID_CODEC_MFC5X_BASE+419) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_P_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+420) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_RC_B_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+421) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_AR_VUI_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+422) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_AR_VUI_IDC	(V4L2_CID_CODEC_MFC5X_BASE+423) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_EXT_SAR_WIDTH	(V4L2_CID_CODEC_MFC5X_BASE+424) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_EXT_SAR_HEIGHT	(V4L2_CID_CODEC_MFC5X_BASE+425) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_OPEN_GOP		(V4L2_CID_CODEC_MFC5X_BASE+426) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_I_PERIOD		(V4L2_CID_CODEC_MFC5X_BASE+427) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_HIER_P_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+428) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LAYER0_QP		(V4L2_CID_CODEC_MFC5X_BASE+429) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LAYER1_QP		(V4L2_CID_CODEC_MFC5X_BASE+430) -#define V4L2_CID_CODEC_MFC5X_ENC_H264_LAYER2_QP		(V4L2_CID_CODEC_MFC5X_BASE+431) - -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_B_FRAMES		(V4L2_CID_CODEC_MFC5X_BASE+440) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_PROFILE		(V4L2_CID_CODEC_MFC5X_BASE+441) -enum v4l2_codec_mfc5x_enc_mpeg4_profile { -	V4L2_CODEC_MFC5X_ENC_MPEG4_PROFILE_SIMPLE		= 0, -	V4L2_CODEC_MFC5X_ENC_MPEG4_PROFILE_ADVANCED_SIMPLE	= 1, -}; -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_LEVEL		(V4L2_CID_CODEC_MFC5X_BASE+442) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+443) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_MIN_QP	(V4L2_CID_CODEC_MFC5X_BASE+444) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_MAX_QP	(V4L2_CID_CODEC_MFC5X_BASE+445) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_QUARTER_PIXEL	(V4L2_CID_CODEC_MFC5X_BASE+446) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_P_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+447) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_B_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+448) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_VOP_TIME_RES	(V4L2_CID_CODEC_MFC5X_BASE+449) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_VOP_FRM_DELTA	(V4L2_CID_CODEC_MFC5X_BASE+450) -#define V4L2_CID_CODEC_MFC5X_ENC_MPEG4_RC_MB_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+451) - -#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_FRAME_RATE	(V4L2_CID_CODEC_MFC5X_BASE+460) -#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+461) -#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_MIN_QP		(V4L2_CID_CODEC_MFC5X_BASE+462) -#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_MAX_QP		(V4L2_CID_CODEC_MFC5X_BASE+463) -#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_P_FRAME_QP	(V4L2_CID_CODEC_MFC5X_BASE+464) -#define V4L2_CID_CODEC_MFC5X_ENC_H263_RC_MB_ENABLE	(V4L2_CID_CODEC_MFC5X_BASE+465) +/*  MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ +#define V4L2_CID_MPEG_MFC51_BASE				(V4L2_CTRL_CLASS_MPEG | 0x1100) + +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY		(V4L2_CID_MPEG_MFC51_BASE+0) +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE	(V4L2_CID_MPEG_MFC51_BASE+1) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE			(V4L2_CID_MPEG_MFC51_BASE+2) +enum v4l2_mpeg_mfc51_video_frame_skip_mode { +	V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED		= 0, +	V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT	= 1, +	V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT		= 2, +}; +#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE			(V4L2_CID_MPEG_MFC51_BASE+3) +enum v4l2_mpeg_mfc51_video_force_frame_type { +	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED		= 0, +	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME		= 1, +	V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED	= 2, +}; +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING				(V4L2_CID_MPEG_MFC51_BASE+4) +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV				(V4L2_CID_MPEG_MFC51_BASE+5) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT			(V4L2_CID_MPEG_MFC51_BASE+6) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF			(V4L2_CID_MPEG_MFC51_BASE+7) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY		(V4L2_CID_MPEG_MFC51_BASE+50) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK			(V4L2_CID_MPEG_MFC51_BASE+51) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH		(V4L2_CID_MPEG_MFC51_BASE+52) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC		(V4L2_CID_MPEG_MFC51_BASE+53) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P		(V4L2_CID_MPEG_MFC51_BASE+54)  /*  Camera class control IDs */  #define V4L2_CID_CAMERA_CLASS_BASE 	(V4L2_CTRL_CLASS_CAMERA | 0x900) @@ -1703,6 +1735,53 @@ enum v4l2_preemphasis {  };  #define V4L2_CID_TUNE_POWER_LEVEL		(V4L2_CID_FM_TX_CLASS_BASE + 113)  #define V4L2_CID_TUNE_ANTENNA_CAPACITOR		(V4L2_CID_FM_TX_CLASS_BASE + 114) +/* FM Tuner class control IDs */ +#define V4L2_CID_FM_RX_CLASS_BASE		(V4L2_CTRL_CLASS_FM_RX | 0x900) +#define V4L2_CID_FM_RX_CLASS			(V4L2_CTRL_CLASS_FM_RX | 1) + +#define V4L2_CID_TUNE_DEEMPHASIS		(V4L2_CID_FM_RX_CLASS_BASE + 1) +enum v4l2_deemphasis { +	V4L2_DEEMPHASIS_DISABLED	= 0, +	V4L2_DEEMPHASIS_50_uS		= 1, +	V4L2_DEEMPHASIS_75_uS		= 2, +}; + +/* Flash and privacy (indicator) light controls */ +#define V4L2_CID_FLASH_CLASS_BASE		(V4L2_CTRL_CLASS_FLASH | 0x900) +#define V4L2_CID_FLASH_CLASS			(V4L2_CTRL_CLASS_FLASH | 1) + +#define V4L2_CID_FLASH_LED_MODE			(V4L2_CID_FLASH_CLASS_BASE + 1) +enum v4l2_flash_led_mode { +	V4L2_FLASH_LED_MODE_NONE, +	V4L2_FLASH_LED_MODE_FLASH, +	V4L2_FLASH_LED_MODE_TORCH, +}; + +#define V4L2_CID_FLASH_STROBE_SOURCE		(V4L2_CID_FLASH_CLASS_BASE + 2) +enum v4l2_flash_strobe_source { +	V4L2_FLASH_STROBE_SOURCE_SOFTWARE, +	V4L2_FLASH_STROBE_SOURCE_EXTERNAL, +}; + +#define V4L2_CID_FLASH_STROBE			(V4L2_CID_FLASH_CLASS_BASE + 3) +#define V4L2_CID_FLASH_STROBE_STOP		(V4L2_CID_FLASH_CLASS_BASE + 4) +#define V4L2_CID_FLASH_STROBE_STATUS		(V4L2_CID_FLASH_CLASS_BASE + 5) + +#define V4L2_CID_FLASH_TIMEOUT			(V4L2_CID_FLASH_CLASS_BASE + 6) +#define V4L2_CID_FLASH_INTENSITY		(V4L2_CID_FLASH_CLASS_BASE + 7) +#define V4L2_CID_FLASH_TORCH_INTENSITY		(V4L2_CID_FLASH_CLASS_BASE + 8) +#define V4L2_CID_FLASH_INDICATOR_INTENSITY	(V4L2_CID_FLASH_CLASS_BASE + 9) + +#define V4L2_CID_FLASH_FAULT			(V4L2_CID_FLASH_CLASS_BASE + 10) +#define V4L2_FLASH_FAULT_OVER_VOLTAGE		(1 << 0) +#define V4L2_FLASH_FAULT_TIMEOUT		(1 << 1) +#define V4L2_FLASH_FAULT_OVER_TEMPERATURE	(1 << 2) +#define V4L2_FLASH_FAULT_SHORT_CIRCUIT		(1 << 3) +#define V4L2_FLASH_FAULT_OVER_CURRENT		(1 << 4) +#define V4L2_FLASH_FAULT_INDICATOR		(1 << 5) + +#define V4L2_CID_FLASH_CHARGE			(V4L2_CID_FLASH_CLASS_BASE + 11) +#define V4L2_CID_FLASH_READY			(V4L2_CID_FLASH_CLASS_BASE + 12)  /*   *	T U N I N G @@ -2068,6 +2147,8 @@ struct v4l2_streamparm {  #define V4L2_EVENT_ALL				0  #define V4L2_EVENT_VSYNC			1  #define V4L2_EVENT_EOS				2 +#define V4L2_EVENT_CTRL				3 +#define V4L2_EVENT_FRAME_SYNC			4  #define V4L2_EVENT_PRIVATE_START		0x08000000  /* Payload for V4L2_EVENT_VSYNC */ @@ -2076,21 +2157,51 @@ struct v4l2_event_vsync {  	__u8 field;  } __attribute__ ((packed)); +/* Payload for V4L2_EVENT_CTRL */ +#define V4L2_EVENT_CTRL_CH_VALUE		(1 << 0) +#define V4L2_EVENT_CTRL_CH_FLAGS		(1 << 1) + +struct v4l2_event_ctrl { +	__u32 changes; +	__u32 type; +	union { +		__s32 value; +		__s64 value64; +	}; +	__u32 flags; +	__s32 minimum; +	__s32 maximum; +	__s32 step; +	__s32 default_value; +}; + +struct v4l2_event_frame_sync { +	__u32 frame_sequence; +}; +  struct v4l2_event {  	__u32				type;  	union {  		struct v4l2_event_vsync vsync; +		struct v4l2_event_ctrl		ctrl; +		struct v4l2_event_frame_sync	frame_sync;  		__u8			data[64];  	} u;  	__u32				pending;  	__u32				sequence;  	struct timespec			timestamp; -	__u32				reserved[9]; +	__u32				id; +	__u32				reserved[8];  }; +#define V4L2_EVENT_SUB_FL_SEND_INITIAL		(1 << 0) +#define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK	(1 << 1) +  struct v4l2_event_subscription {  	__u32				type; -	__u32				reserved[7]; +	__u32				id; +	__u32				flags; +	__u32				reserved[5];  };  /* @@ -2129,6 +2240,23 @@ struct v4l2_dbg_chip_ident {  	__u32 revision;    /* chip revision, chip specific */  } __attribute__ ((packed)); +/** + * struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument + * @index:	on return, index of the first created buffer + * @count:	entry: number of requested buffers, + *		return: number of created buffers + * @memory:	buffer memory type + * @format:	frame format, for which buffers are requested + * @reserved:	future extensions + */ +struct v4l2_create_buffers { +	__u32			index; +	__u32			count; +	enum v4l2_memory        memory; +	struct v4l2_format	format; +	__u32			reserved[8]; +}; +  /*   *	I O C T L   C O D E S   F O R   V I D E O   D E V I C E S   * @@ -2219,6 +2347,15 @@ struct v4l2_dbg_chip_ident {  #define	VIDIOC_SUBSCRIBE_EVENT	 _IOW('V', 90, struct v4l2_event_subscription)  #define	VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) +/* Experimental, the below two ioctls may change over the next couple of kernel +   versions */ +#define VIDIOC_CREATE_BUFS	_IOWR('V', 92, struct v4l2_create_buffers) +#define VIDIOC_PREPARE_BUF	_IOWR('V', 93, struct v4l2_buffer) + +/* Experimental selection API */ +#define VIDIOC_G_SELECTION	_IOWR('V', 94, struct v4l2_selection) +#define VIDIOC_S_SELECTION	_IOWR('V', 95, struct v4l2_selection) +  /* Reminder: when adding new ioctls please add support for them to     drivers/media/video/v4l2-compat-ioctl32.c as well! */ diff --git a/exynos4/hal/include/videodev2_exynos_camera.h b/exynos4/hal/include/videodev2_exynos_camera.h new file mode 100644 index 0000000..3001eee --- /dev/null +++ b/exynos4/hal/include/videodev2_exynos_camera.h @@ -0,0 +1,2076 @@ +/* + * Video for Linux Two header file for samsung + * + * Copyright (C) 2009, Dongsoo Nathaniel Kim<dongsoo45.kim@samsung.com> + * + * This header file contains several v4l2 APIs to be proposed to v4l2 + * community and until bein accepted, will be used restrictly in Samsung's + * camera interface driver FIMC. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#ifndef __LINUX_VIDEODEV2_SAMSUNG_H +#define __LINUX_VIDEODEV2_SAMSUNG_H + +/* Values for 'capabilities' field */ +/* Object detection device */ +#define V4L2_CAP_OBJ_RECOGNITION	0x10000000 +/* strobe control */ +#define V4L2_CAP_STROBE			0x20000000 + +#define V4L2_CID_FOCUS_MODE		(V4L2_CID_CAMERA_CLASS_BASE+17) +/* Focus Methods */ +enum v4l2_focus_mode { +	V4L2_FOCUS_MODE_AUTO		= 0, +	V4L2_FOCUS_MODE_MACRO		= 1, +	V4L2_FOCUS_MODE_MANUAL		= 2, +	V4L2_FOCUS_MODE_LASTP		= 2, +}; + +#define V4L2_CID_ZOOM_MODE		(V4L2_CID_CAMERA_CLASS_BASE+18) +/* Zoom Methods */ +enum v4l2_zoom_mode { +	V4L2_ZOOM_MODE_CONTINUOUS	= 0, +	V4L2_ZOOM_MODE_OPTICAL		= 1, +	V4L2_ZOOM_MODE_DIGITAL		= 2, +	V4L2_ZOOM_MODE_LASTP		= 2, +}; + +/* Exposure Methods */ +#define V4L2_CID_PHOTOMETRY		(V4L2_CID_CAMERA_CLASS_BASE+19) +enum v4l2_photometry_mode { +	V4L2_PHOTOMETRY_MULTISEG	= 0, /*Multi Segment*/ +	V4L2_PHOTOMETRY_CWA		= 1, /*Centre Weighted Average*/ +	V4L2_PHOTOMETRY_SPOT		= 2, +	V4L2_PHOTOMETRY_AFSPOT		= 3, /*Spot metering on focused point*/ +	V4L2_PHOTOMETRY_LASTP		= V4L2_PHOTOMETRY_AFSPOT, +}; + +/* Manual exposure control items menu type: iris, shutter, iso */ +#define V4L2_CID_CAM_APERTURE	(V4L2_CID_CAMERA_CLASS_BASE+20) +enum v4l2_aperture_mode { +	APERTURE_F_AUTO = 0, +	APERTURE_F_2_8, +	APERTURE_F_3_2, +	APERTURE_F_3_6, +	APERTURE_F_4_0, +	APERTURE_F_4_5, +	APERTURE_F_5_1, +	APERTURE_F_5_7, +	APERTURE_F_6_4, +	APERTURE_F_7_2, +	APERTURE_MAX, +}; +#define V4L2_CID_CAM_SHUTTER	(V4L2_CID_CAMERA_CLASS_BASE+21) +#define V4L2_CID_CAM_ISO	(V4L2_CID_CAMERA_CLASS_BASE+22) + +/* Following CIDs are menu type */ +#define V4L2_CID_SCENEMODE	(V4L2_CID_CAMERA_CLASS_BASE+23) +#define V4L2_CID_CAM_STABILIZE	(V4L2_CID_CAMERA_CLASS_BASE+24) +#define V4L2_CID_CAM_MULTISHOT	(V4L2_CID_CAMERA_CLASS_BASE+25) + +/* Control dynamic range */ +#define V4L2_CID_CAM_DR		(V4L2_CID_CAMERA_CLASS_BASE+26) + +/* White balance preset control */ +#define V4L2_CID_WHITE_BALANCE_PRESET (V4L2_CID_CAMERA_CLASS_BASE+27) +#define V4L2_CID_CAM_SENSOR_FW_VER (V4L2_CID_CAMERA_CLASS_BASE + 28) +#define V4L2_CID_CAM_PHONE_FW_VER (V4L2_CID_CAMERA_CLASS_BASE + 29) + +/* CID extensions */ +#define V4L2_CID_ROTATION		(V4L2_CID_PRIVATE_BASE + 0) +#define V4L2_CID_PADDR_Y		(V4L2_CID_PRIVATE_BASE + 1) +#define V4L2_CID_PADDR_CB		(V4L2_CID_PRIVATE_BASE + 2) +#define V4L2_CID_PADDR_CR		(V4L2_CID_PRIVATE_BASE + 3) +#define V4L2_CID_PADDR_CBCR		(V4L2_CID_PRIVATE_BASE + 4) +#define V4L2_CID_OVERLAY_AUTO		(V4L2_CID_PRIVATE_BASE + 5) +#define V4L2_CID_OVERLAY_VADDR0		(V4L2_CID_PRIVATE_BASE + 6) +#define V4L2_CID_OVERLAY_VADDR1		(V4L2_CID_PRIVATE_BASE + 7) +#define V4L2_CID_OVERLAY_VADDR2		(V4L2_CID_PRIVATE_BASE + 8) +#define V4L2_CID_OVLY_MODE		(V4L2_CID_PRIVATE_BASE + 9) +#define V4L2_CID_DST_INFO		(V4L2_CID_PRIVATE_BASE + 10) +/* UMP secure id control */ +#define V4L2_CID_GET_UMP_SECURE_ID	(V4L2_CID_PRIVATE_BASE + 11) +#define V4L2_CID_GET_PHY_SRC_YADDR	(V4L2_CID_PRIVATE_BASE + 12) +#define V4L2_CID_GET_PHY_SRC_CADDR	(V4L2_CID_PRIVATE_BASE + 13) +#define V4L2_CID_IMAGE_EFFECT_FN	(V4L2_CID_PRIVATE_BASE + 16) +#define V4L2_CID_IMAGE_EFFECT_APPLY	(V4L2_CID_PRIVATE_BASE + 17) +#define V4L2_CID_IMAGE_EFFECT_CB	(V4L2_CID_PRIVATE_BASE + 18) +#define V4L2_CID_IMAGE_EFFECT_CR	(V4L2_CID_PRIVATE_BASE + 19) +#define V4L2_CID_RESERVED_MEM_BASE_ADDR	(V4L2_CID_PRIVATE_BASE + 20) +#define V4L2_CID_FIMC_VERSION		(V4L2_CID_PRIVATE_BASE + 21) + +#define V4L2_CID_CACHE_FLUSH		(V4L2_CID_PRIVATE_BASE + 61) +#define V4L2_CID_RESERVED_MEM_SIZE	(V4L2_CID_PRIVATE_BASE + 63) +#define V4L2_CID_STREAM_PAUSE			(V4L2_CID_PRIVATE_BASE + 53) +#define V4L2_CID_CACHE_FLUSH			(V4L2_CID_PRIVATE_BASE + 61) +#define V4L2_CID_RESERVED_MEM_SIZE		(V4L2_CID_PRIVATE_BASE + 63) + +/* CID Extensions for camera sensor operations */ +#define V4L2_CID_CAM_PREVIEW_ONOFF		(V4L2_CID_PRIVATE_BASE + 64) +#define V4L2_CID_CAM_CAPTURE			(V4L2_CID_PRIVATE_BASE + 65) +/* #define V4L2_CID_CAM_JPEG_MEMSIZE	(V4L2_CID_PRIVATE_BASE + 66) */ + +#define V4L2_CID_CAM_DATE_INFO_YEAR		(V4L2_CID_PRIVATE_BASE + 14) +#define V4L2_CID_CAM_DATE_INFO_MONTH		(V4L2_CID_PRIVATE_BASE + 15) +#define V4L2_CID_CAM_DATE_INFO_DATE		(V4L2_CID_PRIVATE_BASE + 22) +#define V4L2_CID_CAM_SENSOR_VER			(V4L2_CID_PRIVATE_BASE + 23) +#define V4L2_CID_CAM_FW_MINOR_VER		(V4L2_CID_PRIVATE_BASE + 24) +#define V4L2_CID_CAM_FW_MAJOR_VER		(V4L2_CID_PRIVATE_BASE + 25) +#define V4L2_CID_CAM_PRM_MINOR_VER		(V4L2_CID_PRIVATE_BASE + 26) +#define V4L2_CID_CAM_PRM_MAJOR_VER		(V4L2_CID_PRIVATE_BASE + 27) +#define V4L2_CID_CAM_FW_VER			(V4L2_CID_PRIVATE_BASE + 28) +#define V4L2_CID_CAM_SET_FW_ADDR		(V4L2_CID_PRIVATE_BASE + 29) +#define V4L2_CID_CAM_SET_FW_SIZE		(V4L2_CID_PRIVATE_BASE + 30) +#define V4L2_CID_CAM_UPDATE_FW	(V4L2_CID_PRIVATE_BASE + 31) +enum v4l2_firmware_mode { +	FW_MODE_NONE, +	FW_MODE_VERSION, +	FW_MODE_UPDATE, +	FW_MODE_DUMP, +}; + +#define V4L2_CID_CAM_JPEG_MAIN_SIZE		(V4L2_CID_PRIVATE_BASE + 32) +#define V4L2_CID_CAM_JPEG_MAIN_OFFSET		(V4L2_CID_PRIVATE_BASE + 33) +#define V4L2_CID_CAM_JPEG_THUMB_SIZE		(V4L2_CID_PRIVATE_BASE + 34) +#define V4L2_CID_CAM_JPEG_THUMB_OFFSET		(V4L2_CID_PRIVATE_BASE + 35) +#define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET	(V4L2_CID_PRIVATE_BASE + 36) +#define V4L2_CID_CAM_JPEG_QUALITY	(V4L2_CID_PRIVATE_BASE + 37) +#define V4L2_CID_CAM_SENSOR_MAKER	(V4L2_CID_PRIVATE_BASE + 38) +#define V4L2_CID_CAM_SENSOR_OPTICAL	(V4L2_CID_PRIVATE_BASE + 39) +#define V4L2_CID_CAM_AF_VER_LOW		(V4L2_CID_PRIVATE_BASE + 40) +#define V4L2_CID_CAM_AF_VER_HIGH	(V4L2_CID_PRIVATE_BASE + 41) +#define V4L2_CID_CAM_GAMMA_RG_LOW	(V4L2_CID_PRIVATE_BASE + 42) +#define V4L2_CID_CAM_GAMMA_RG_HIGH	(V4L2_CID_PRIVATE_BASE + 43) +#define V4L2_CID_CAM_GAMMA_BG_LOW	(V4L2_CID_PRIVATE_BASE + 44) +#define V4L2_CID_CAM_GAMMA_BG_HIGH	(V4L2_CID_PRIVATE_BASE + 45) +#define V4L2_CID_CAM_DUMP_FW		(V4L2_CID_PRIVATE_BASE + 46) +#define V4L2_CID_CAM_GET_DUMP_SIZE  (V4L2_CID_PRIVATE_BASE + 47) +#define V4L2_CID_CAMERA_VT_MODE		(V4L2_CID_PRIVATE_BASE + 48) +enum cam_vt_mode { +	CAM_VT_MODE_NONE , +	CAM_VT_MODE_3G , +	CAM_VT_MODE_VOIP , +}; + +#define V4L2_CID_CAMERA_VGA_BLUR	(V4L2_CID_PRIVATE_BASE + 49) +#define V4L2_CID_CAMERA_CAPTURE		(V4L2_CID_PRIVATE_BASE + 50) +#define V4L2_CID_CAMERA_HDR (V4L2_CID_PRIVATE_BASE + 51) +#define V4L2_CID_CAMERA_HYBRID		(V4L2_CID_PRIVATE_BASE + 52) + +#define V4L2_CID_MAIN_SW_DATE_INFO_YEAR		(V4L2_CID_PRIVATE_BASE + 54) +#define V4L2_CID_MAIN_SW_DATE_INFO_MONTH	(V4L2_CID_PRIVATE_BASE + 55) +#define V4L2_CID_MAIN_SW_DATE_INFO_DATE		(V4L2_CID_PRIVATE_BASE + 56) +#define V4L2_CID_MAIN_SW_FW_MINOR_VER		(V4L2_CID_PRIVATE_BASE + 57) +#define V4L2_CID_MAIN_SW_FW_MAJOR_VER		(V4L2_CID_PRIVATE_BASE + 58) +#define V4L2_CID_MAIN_SW_PRM_MINOR_VER		(V4L2_CID_PRIVATE_BASE + 59) +#define V4L2_CID_MAIN_SW_PRM_MAJOR_VER		(V4L2_CID_PRIVATE_BASE + 60) +#define V4L2_CID_CAMERA_HYBRID_CAPTURE		(V4L2_CID_PRIVATE_BASE + 62) +#define V4L2_CID_CAMERA_FAST_MODE		(V4L2_CID_PRIVATE_BASE + 66) +enum cam_fast_mode { +	FAST_MODE_SUBSAMPLING_NONE , +	FAST_MODE_SUBSAMPLING_HALF , +	FAST_MODE_SUBSAMPLING_QUARTER , +}; +#define V4L2_CID_CAMERA_POSTVIEW_CAPTURE	(V4L2_CID_PRIVATE_BASE + 67) +#define V4L2_CID_CAMERA_CAPTURE_MODE		(V4L2_CID_PRIVATE_BASE + 68) +#define V4L2_CID_CAMERA_YUV_CAPTURE (V4L2_CID_PRIVATE_BASE + 69) + +#define V4L2_CID_FIMC_IS_BASE			(V4L2_CTRL_CLASS_CAMERA | 0x1000) +#define V4L2_CID_FIMC_IS_TUNE_BASE		(V4L2_CTRL_CLASS_CAMERA | 0x2000) +#define V4L2_CID_FIMC_IS_ISP_DBG_BASE	(V4L2_CTRL_CLASS_CAMERA | 0x3000) + +#define V4L2_CID_IS_LOAD_FW			(V4L2_CID_FIMC_IS_BASE + 10) +#define V4L2_CID_IS_INIT_PARAM			(V4L2_CID_FIMC_IS_BASE + 11) +#define V4L2_CID_IS_RESET			(V4L2_CID_FIMC_IS_BASE + 12) +#define V4L2_CID_IS_S_POWER			(V4L2_CID_FIMC_IS_BASE + 13) +enum is_set_power { +	IS_POWER_OFF, +	IS_POWER_ON +}; + +#define V4L2_CID_IS_S_STREAM			(V4L2_CID_FIMC_IS_BASE + 14) +enum is_set_stream { +	IS_DISABLE_STREAM, +	IS_ENABLE_STREAM +}; + +#define V4L2_CID_IS_S_SCENARIO_MODE		(V4L2_CID_FIMC_IS_BASE + 15) +#define V4L2_CID_IS_S_FORMAT_SCENARIO		(V4L2_CID_FIMC_IS_BASE + 16) +enum scenario_mode { +	IS_MODE_PREVIEW_STILL, +	IS_MODE_PREVIEW_VIDEO, +	IS_MODE_CAPTURE_STILL, +	IS_MODE_CAPTURE_VIDEO, +	IS_MODE_MAX +}; + +/* global */ +#define V4L2_CID_IS_CAMERA_SHOT_MODE_NORMAL	(V4L2_CID_FIMC_IS_BASE + 400) +/* value : 1 : single shot , >=2 : continuous shot */ + +#define V4L2_CID_IS_CAMERA_SENSOR_NUM		(V4L2_CID_FIMC_IS_BASE + 201) + +#define V4L2_CID_IS_CAMERA_FOCUS_MODE		(V4L2_CID_FIMC_IS_BASE + 401) +enum is_focus_mode { +	IS_FOCUS_MODE_AUTO, +	IS_FOCUS_MODE_MACRO, +	IS_FOCUS_MODE_INFINITY, +	IS_FOCUS_MODE_CONTINUOUS, +	IS_FOCUS_MODE_TOUCH, +	IS_FOCUS_MODE_FACEDETECT, +	IS_FOCUS_MODE_IDLE, +	IS_FOCUS_MODE_MAX, +}; + +#define V4L2_CID_IS_CAMERA_FLASH_MODE		(V4L2_CID_FIMC_IS_BASE + 402) +enum is_flash_mode { +	IS_FLASH_MODE_OFF, +	IS_FLASH_MODE_AUTO, +	IS_FLASH_MODE_AUTO_REDEYE, +	IS_FLASH_MODE_ON, +	IS_FLASH_MODE_TORCH, +	IS_FLASH_MODE_MAX +}; + +#define V4L2_CID_IS_CAMERA_AWB_MODE		(V4L2_CID_FIMC_IS_BASE + 403) +enum is_awb_mode { +	IS_AWB_AUTO, +	IS_AWB_DAYLIGHT, +	IS_AWB_CLOUDY, +	IS_AWB_TUNGSTEN, +	IS_AWB_FLUORESCENT, +	IS_AWB_MAX +}; + +#define V4L2_CID_IS_CAMERA_IMAGE_EFFECT		(V4L2_CID_FIMC_IS_BASE + 404) +enum is_image_effect { +	IS_IMAGE_EFFECT_DISABLE, +	IS_IMAGE_EFFECT_MONOCHROME, +	IS_IMAGE_EFFECT_NEGATIVE_MONO, +	IS_IMAGE_EFFECT_NEGATIVE_COLOR, +	IS_IMAGE_EFFECT_SEPIA, +	IS_IMAGE_EFFECT_SEPIA_CB, +	IS_IMAGE_EFFECT_SEPIA_CR, +	IS_IMAGE_EFFECT_NEGATIVE, +	IS_IMAGE_EFFECT_ARTFREEZE, +	IS_IMAGE_EFFECT_EMBOSSING, +	IS_IMAGE_EFFECT_SILHOUETTE, +	IS_IMAGE_EFFECT_MAX +}; + +#define V4L2_CID_IS_CAMERA_ISO			(V4L2_CID_FIMC_IS_BASE + 405) +enum is_iso { +	IS_ISO_AUTO, +	IS_ISO_50, +	IS_ISO_100, +	IS_ISO_200, +	IS_ISO_400, +	IS_ISO_800, +	IS_ISO_1600, +	IS_ISO_MAX +}; + +#define V4L2_CID_IS_CAMERA_CONTRAST		(V4L2_CID_FIMC_IS_BASE + 406) +enum is_contrast { +	IS_CONTRAST_AUTO, +	IS_CONTRAST_MINUS_2, +	IS_CONTRAST_MINUS_1, +	IS_CONTRAST_DEFAULT, +	IS_CONTRAST_PLUS_1, +	IS_CONTRAST_PLUS_2, +	IS_CONTRAST_MAX +}; + +#define V4L2_CID_IS_CAMERA_SATURATION		(V4L2_CID_FIMC_IS_BASE + 407) +enum is_saturation { +	IS_SATURATION_MINUS_2, +	IS_SATURATION_MINUS_1, +	IS_SATURATION_DEFAULT, +	IS_SATURATION_PLUS_1, +	IS_SATURATION_PLUS_2, +	IS_SATURATION_MAX +}; + +#define V4L2_CID_IS_CAMERA_SHARPNESS		(V4L2_CID_FIMC_IS_BASE + 408) +enum is_sharpness { +	IS_SHARPNESS_MINUS_2, +	IS_SHARPNESS_MINUS_1, +	IS_SHARPNESS_DEFAULT, +	IS_SHARPNESS_PLUS_1, +	IS_SHARPNESS_PLUS_2, +	IS_SHARPNESS_MAX +}; + +#define V4L2_CID_IS_CAMERA_EXPOSURE		(V4L2_CID_FIMC_IS_BASE + 409) +enum is_exposure { +	IS_EXPOSURE_MINUS_4, +	IS_EXPOSURE_MINUS_3, +	IS_EXPOSURE_MINUS_2, +	IS_EXPOSURE_MINUS_1, +	IS_EXPOSURE_DEFAULT, +	IS_EXPOSURE_PLUS_1, +	IS_EXPOSURE_PLUS_2, +	IS_EXPOSURE_PLUS_3, +	IS_EXPOSURE_PLUS_4, +	IS_EXPOSURE_MAX +}; + +#define V4L2_CID_IS_CAMERA_BRIGHTNESS		(V4L2_CID_FIMC_IS_BASE + 410) +enum is_brightness { +	IS_BRIGHTNESS_MINUS_2, +	IS_BRIGHTNESS_MINUS_1, +	IS_BRIGHTNESS_DEFAULT, +	IS_BRIGHTNESS_PLUS_1, +	IS_BRIGHTNESS_PLUS_2, +	IS_BRIGHTNESS_MAX +}; + +#define V4L2_CID_IS_CAMERA_HUE			(V4L2_CID_FIMC_IS_BASE + 411) +enum is_hue { +	IS_HUE_MINUS_2, +	IS_HUE_MINUS_1, +	IS_HUE_DEFAULT, +	IS_HUE_PLUS_1, +	IS_HUE_PLUS_2, +	IS_HUE_MAX +}; + +#define V4L2_CID_IS_CAMERA_METERING		(V4L2_CID_FIMC_IS_BASE + 412) +enum is_metering { +	IS_METERING_AVERAGE, +	IS_METERING_SPOT, +	IS_METERING_MATRIX, +	IS_METERING_CENTER, +	IS_METERING_MAX +}; +#define V4L2_CID_IS_CAMERA_METERING_POSITION_X	(V4L2_CID_FIMC_IS_BASE + 500) +#define V4L2_CID_IS_CAMERA_METERING_POSITION_Y	(V4L2_CID_FIMC_IS_BASE + 501) +#define V4L2_CID_IS_CAMERA_METERING_WINDOW_X	(V4L2_CID_FIMC_IS_BASE + 502) +#define V4L2_CID_IS_CAMERA_METERING_WINDOW_Y	(V4L2_CID_FIMC_IS_BASE + 503) + +#define V4L2_CID_IS_CAMERA_AFC_MODE		(V4L2_CID_FIMC_IS_BASE + 413) +enum is_afc_mode { +	IS_AFC_DISABLE, +	IS_AFC_AUTO, +	IS_AFC_MANUAL_50HZ, +	IS_AFC_MANUAL_60HZ, +	IS_AFC_MAX +}; + +#define V4L2_CID_IS_AWB_LOCK_UNLOCK		(V4L2_CID_FIMC_IS_BASE + 496) +enum is_awb_lock_unlock { +	IS_AWB_LOCK, +	IS_AWB_UNLOCK, +	IS_AWB_LOCK_UNLOCK_MAX +}; + +#define V4L2_CID_IS_AE_LOCK_UNLOCK		(V4L2_CID_FIMC_IS_BASE + 497) +enum is_ae_lock_unlock { +	IS_AE_LOCK, +	IS_AE_UNLOCK, +	IS_AE_LOCK_UNLOCK_MAX +}; + +#define V4L2_CID_IS_FD_GET_FACE_COUNT			(V4L2_CID_FIMC_IS_BASE + 600) +#define V4L2_CID_IS_FD_GET_FACE_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 601) +#define V4L2_CID_IS_FD_GET_FACE_CONFIDENCE		(V4L2_CID_FIMC_IS_BASE + 602) +#define V4L2_CID_IS_FD_GET_FACE_SMILE_LEVEL		(V4L2_CID_FIMC_IS_BASE + 603) +#define V4L2_CID_IS_FD_GET_FACE_BLINK_LEVEL		(V4L2_CID_FIMC_IS_BASE + 604) +#define V4L2_CID_IS_FD_GET_FACE_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 605) +#define V4L2_CID_IS_FD_GET_FACE_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 606) +#define V4L2_CID_IS_FD_GET_FACE_BOTTOMRIGHT_X		(V4L2_CID_FIMC_IS_BASE + 607) +#define V4L2_CID_IS_FD_GET_FACE_BOTTOMRIGHT_Y		(V4L2_CID_FIMC_IS_BASE + 608) +#define V4L2_CID_IS_FD_GET_LEFT_EYE_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 609) +#define V4L2_CID_IS_FD_GET_LEFT_EYE_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 610) +#define V4L2_CID_IS_FD_GET_LEFT_EYE_BOTTOMRIGHT_X	(V4L2_CID_FIMC_IS_BASE + 611) +#define V4L2_CID_IS_FD_GET_LEFT_EYE_BOTTOMRIGHT_Y	(V4L2_CID_FIMC_IS_BASE + 612) +#define V4L2_CID_IS_FD_GET_RIGHT_EYE_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 613) +#define V4L2_CID_IS_FD_GET_RIGHT_EYE_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 614) +#define V4L2_CID_IS_FD_GET_RIGHT_EYE_BOTTOMRIGHT_X	(V4L2_CID_FIMC_IS_BASE + 615) +#define V4L2_CID_IS_FD_GET_RIGHT_EYE_BOTTOMRIGHT_Y	(V4L2_CID_FIMC_IS_BASE + 616) +#define V4L2_CID_IS_FD_GET_MOUTH_TOPLEFT_X		(V4L2_CID_FIMC_IS_BASE + 617) +#define V4L2_CID_IS_FD_GET_MOUTH_TOPLEFT_Y		(V4L2_CID_FIMC_IS_BASE + 618) +#define V4L2_CID_IS_FD_GET_MOUTH_BOTTOMRIGHT_X		(V4L2_CID_FIMC_IS_BASE + 619) +#define V4L2_CID_IS_FD_GET_MOUTH_BOTTOMRIGHT_Y		(V4L2_CID_FIMC_IS_BASE + 620) +#define V4L2_CID_IS_FD_GET_ANGLE			(V4L2_CID_FIMC_IS_BASE + 621) +#define V4L2_CID_IS_FD_GET_YAW_ANGLE			(V4L2_CID_FIMC_IS_BASE + 622) +#define V4L2_CID_IS_FD_GET_NEXT				(V4L2_CID_FIMC_IS_BASE + 623) +#define V4L2_CID_IS_FD_GET_DATA				(V4L2_CID_FIMC_IS_BASE + 624) + +#define V4L2_CID_IS_FD_SET_MAX_FACE_NUMBER		(V4L2_CID_FIMC_IS_BASE + 650) +#define V4L2_CID_IS_FD_SET_ROLL_ANGLE			(V4L2_CID_FIMC_IS_BASE + 651) + +enum is_fd_roll_angle { +	/* 0, 45, 0, -45 */ +	IS_FD_ROLL_ANGLE_BASIC		= 0, +	/* 0, 30, 0, -30, 0, 45, 0, -45 */ +	IS_FD_ROLL_ANGLE_PRECISE_BASIC	= 1, +	/* 0, 90, 0, -90 */ +	IS_FD_ROLL_ANGLE_SIDES		= 2, +	/* 0, 90, 0, -90 0, 45, 0, -45 */ +	IS_FD_ROLL_ANGLE_PRECISE_SIDES	= 3, +	/* 0, 90, 0, -90, 0, 180 */ +	IS_FD_ROLL_ANGLE_FULL		= 4, +	/* 0, 90, 0, -90, 0, 180, 0, 135, 0, -135 */ +	IS_FD_ROLL_ANGLE_PRECISE_FULL	= 5, +}; + +#define V4L2_CID_IS_FD_SET_YAW_ANGLE	(V4L2_CID_FIMC_IS_BASE + 652) +enum is_fd_yaw_angle { +	IS_FD_YAW_ANGLE_0	= 0, +	IS_FD_YAW_ANGLE_45	= 1, +	IS_FD_YAW_ANGLE_90	= 2, +	IS_FD_YAW_ANGLE_45_90	= 3, +}; + +#define V4L2_CID_IS_FD_SET_SMILE_MODE	(V4L2_CID_FIMC_IS_BASE + 653) +enum is_fd_smile_mode { +	IS_FD_SMILE_MODE_DISABLE	= 0, +	IS_FD_SMILE_MODE_ENABLE		= 1, +}; + +#define V4L2_CID_IS_FD_SET_BLINK_MODE	(V4L2_CID_FIMC_IS_BASE + 654) +enum is_fd_blink_mode { +	IS_FD_BLINK_MODE_DISABLE	= 0, +	IS_FD_BLINK_MODE_ENABLE		= 1, +}; + +#define V4L2_CID_IS_FD_SET_EYE_DETECT_MODE	(V4L2_CID_FIMC_IS_BASE + 655) +enum is_fd_eye_detect_mode { +	IS_FD_EYE_DETECT_DISABLE	= 0, +	IS_FD_EYE_DETECT_ENABLE		= 1, +}; + +#define V4L2_CID_IS_FD_SET_MOUTH_DETECT_MODE	(V4L2_CID_FIMC_IS_BASE + 656) +enum is_fd_mouth_detect_mode { +	IS_FD_MOUTH_DETECT_DISABLE	= 0, +	IS_FD_MOUTH_DETECT_ENABLE	= 1, +}; + +#define V4L2_CID_IS_FD_SET_ORIENTATION_MODE  (V4L2_CID_FIMC_IS_BASE + 657) +enum is_fd_orientation_mode { +	IS_FD_ORIENTATION_DISABLE	= 0, +	IS_FD_ORIENTATION_ENABLE	= 1, +}; + +#define V4L2_CID_IS_FD_SET_ORIENTATION	(V4L2_CID_FIMC_IS_BASE + 658) +#define V4L2_CID_IS_FD_SET_DATA_ADDRESS	(V4L2_CID_FIMC_IS_BASE + 659) + +#define V4L2_CID_IS_SET_ISP			(V4L2_CID_FIMC_IS_BASE + 440) +enum is_isp_bypass_mode { +	IS_ISP_BYPASS_DISABLE, +	IS_ISP_BYPASS_ENABLE, +	IS_ISP_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_DRC			(V4L2_CID_FIMC_IS_BASE + 441) +enum is_drc_bypass_mode { +	IS_DRC_BYPASS_DISABLE, +	IS_DRC_BYPASS_ENABLE, +	IS_DRC_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_FD			(V4L2_CID_FIMC_IS_BASE + 442) +enum is_fd_bypass_mode { +	IS_FD_BYPASS_DISABLE, +	IS_FD_BYPASS_ENABLE, +	IS_FD_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_ODC			(V4L2_CID_FIMC_IS_BASE + 443) +enum is_odc_bypass_mode { +	IS_ODC_BYPASS_DISABLE, +	IS_ODC_BYPASS_ENABLE, +	IS_ODC_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_DIS			(V4L2_CID_FIMC_IS_BASE + 444) +enum is_dis_bypass_mode { +	IS_DIS_BYPASS_DISABLE, +	IS_DIS_BYPASS_ENABLE, +	IS_DIS_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_3DNR			(V4L2_CID_FIMC_IS_BASE + 445) +enum is_tdnr_bypass_mode { +	IS_TDNR_BYPASS_DISABLE, +	IS_TDNR_BYPASS_ENABLE, +	IS_TDNR_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_SCALERC			(V4L2_CID_FIMC_IS_BASE + 446) +enum is_scalerc_bypass_mode { +	IS_SCALERC_BYPASS_DISABLE, +	IS_SCALERC_BYPASS_ENABLE, +	IS_SCALERC_BYPASS_MAX +}; + +#define V4L2_CID_IS_SET_SCALERP			(V4L2_CID_FIMC_IS_BASE + 446) +enum is_scalerp_bypass_mode { +	IS_SCALERP_BYPASS_DISABLE, +	IS_SCALERP_BYPASS_ENABLE, +	IS_SCALERP_BYPASS_MAX +}; + +#define V4L2_CID_IS_ROTATION_MODE		(V4L2_CID_FIMC_IS_BASE + 450) +enum is_rotation_mode { +	IS_ROTATION_0, +	IS_ROTATION_90, +	IS_ROTATION_180, +	IS_ROTATION_270, +	IS_ROTATION_MAX +}; + +#define V4L2_CID_IS_3DNR_1ST_FRAME_MODE		(V4L2_CID_FIMC_IS_BASE + 451) +enum is_tdnr_1st_frame_mode { +	IS_TDNR_1ST_FRAME_NOPROCESSING, +	IS_TDNR_1ST_FRAME_2DNR, +	IS_TDNR_MAX +}; + +#define V4L2_CID_IS_CAMERA_OBJECT_POSITION_X	(V4L2_CID_FIMC_IS_BASE + 452) +#define V4L2_CID_IS_CAMERA_OBJECT_POSITION_Y	(V4L2_CID_FIMC_IS_BASE + 453) +#define V4L2_CID_IS_CAMERA_WINDOW_SIZE_X	(V4L2_CID_FIMC_IS_BASE + 454) +#define V4L2_CID_IS_CAMERA_WINDOW_SIZE_Y	(V4L2_CID_FIMC_IS_BASE + 455) + +#define V4L2_CID_IS_CAMERA_EXIF_EXPTIME		(V4L2_CID_FIMC_IS_BASE + 456) +#define V4L2_CID_IS_CAMERA_EXIF_FLASH		(V4L2_CID_FIMC_IS_BASE + 457) +#define V4L2_CID_IS_CAMERA_EXIF_ISO		(V4L2_CID_FIMC_IS_BASE + 458) +#define V4L2_CID_IS_CAMERA_EXIF_SHUTTERSPEED	(V4L2_CID_FIMC_IS_BASE + 459) +#define V4L2_CID_IS_CAMERA_EXIF_BRIGHTNESS	(V4L2_CID_FIMC_IS_BASE + 460) + +#define V4L2_CID_IS_CAMERA_ISP_SEL_INPUT	(V4L2_CID_FIMC_IS_BASE + 461) +enum is_isp_sel_input { +	IS_ISP_INPUT_OTF, +	IS_ISP_INPUT_DMA1, +	IS_ISP_INPUT_DMA2, +	IS_ISP_INPUT_DMA12, +	IS_ISP_INPUT_MAX +}; + +#define V4L2_CID_IS_CAMERA_ISP_SEL_OUTPUT	(V4L2_CID_FIMC_IS_BASE + 462) +enum is_isp_sel_output { +	IS_ISP_OUTPUT_OTF, +	IS_ISP_OUTPUT_DMA1, +	IS_ISP_OUTPUT_DMA2, +	IS_ISP_OUTPUT_DMA12, +	IS_ISP_OUTPUT_OTF_DMA1, +	IS_ISP_OUTPUT_OTF_DMA2, +	IS_ISP_OUTPUT_OTF_DMA12, +	IS_ISP_OUTPUT_MAX +}; + +#define V4L2_CID_IS_CAMERA_DRC_SEL_INPUT	(V4L2_CID_FIMC_IS_BASE + 463) +enum is_drc_sel_input { +	IS_DRC_INPUT_OTF, +	IS_DRC_INPUT_DMA, +	IS_DRC_INPUT_MAX +}; + +#define V4L2_CID_IS_CAMERA_FD_SEL_INPUT		(V4L2_CID_FIMC_IS_BASE + 464) +enum is_fd_sel_input { +	IS_FD_INPUT_OTF, +	IS_FD_INPUT_DMA, +	IS_FD_INPUT_MAX +}; + +#define V4L2_CID_IS_CAMERA_INIT_WIDTH		(V4L2_CID_FIMC_IS_BASE + 465) +#define V4L2_CID_IS_CAMERA_INIT_HEIGHT		(V4L2_CID_FIMC_IS_BASE + 466) + +#define V4L2_CID_IS_CMD_ISP			(V4L2_CID_FIMC_IS_BASE + 467) +enum is_isp_cmd_mode { +	IS_ISP_COMMAND_STOP, +	IS_ISP_COMMAND_START, +	IS_ISP_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_DRC			(V4L2_CID_FIMC_IS_BASE + 468) +enum is_drc_cmd_mode { +	IS_DRC_COMMAND_STOP, +	IS_DRC_COMMAND_START, +	IS_DRC_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_FD			(V4L2_CID_FIMC_IS_BASE + 469) +enum is_fd_cmd_mode { +	IS_FD_COMMAND_STOP, +	IS_FD_COMMAND_START, +	IS_FD_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_ODC			(V4L2_CID_FIMC_IS_BASE + 470) +enum is_odc_cmd_mode { +	IS_ODC_COMMAND_STOP, +	IS_ODC_COMMAND_START, +	IS_ODC_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_DIS			(V4L2_CID_FIMC_IS_BASE + 471) +enum is_dis_cmd_mode { +	IS_DIS_COMMAND_STOP, +	IS_DIS_COMMAND_START, +	IS_DIS_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_TDNR			(V4L2_CID_FIMC_IS_BASE + 472) +enum is_tdnr_cmd_mode { +	IS_TDNR_COMMAND_STOP, +	IS_TDNR_COMMAND_START, +	IS_TDNR_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_SCALERC			(V4L2_CID_FIMC_IS_BASE + 473) +enum is_scalerc_cmd_mode { +	IS_SCALERC_COMMAND_STOP, +	IS_SCALERC_COMMAND_START, +	IS_SCALERC_COMMAND_MAX +}; + +#define V4L2_CID_IS_CMD_SCALERP			(V4L2_CID_FIMC_IS_BASE + 474) +enum is_scalerp_cmd_mode { +	IS_SCALERP_COMMAND_STOP, +	IS_SCALERP_COMMAND_START, +	IS_SCALERP_COMMAND_MAX +}; + +#define V4L2_CID_IS_GET_SENSOR_OFFSET_X		(V4L2_CID_FIMC_IS_BASE + 480) +#define V4L2_CID_IS_GET_SENSOR_OFFSET_Y		(V4L2_CID_FIMC_IS_BASE + 481) +#define V4L2_CID_IS_GET_SENSOR_WIDTH		(V4L2_CID_FIMC_IS_BASE + 482) +#define V4L2_CID_IS_GET_SENSOR_HEIGHT		(V4L2_CID_FIMC_IS_BASE + 483) + +#define V4L2_CID_IS_GET_FRAME_VALID		(V4L2_CID_FIMC_IS_BASE + 484) +#define V4L2_CID_IS_SET_FRAME_VALID		(V4L2_CID_FIMC_IS_BASE + 485) +#define V4L2_CID_IS_GET_FRAME_BADMARK		(V4L2_CID_FIMC_IS_BASE + 486) +#define V4L2_CID_IS_SET_FRAME_BADMARK		(V4L2_CID_FIMC_IS_BASE + 487) +#define V4L2_CID_IS_GET_FRAME_CAPTURED		(V4L2_CID_FIMC_IS_BASE + 488) +#define V4L2_CID_IS_SET_FRAME_CAPTURED		(V4L2_CID_FIMC_IS_BASE + 489) +#define V4L2_CID_IS_SET_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 490) +#define V4L2_CID_IS_GET_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 491) +#define V4L2_CID_IS_CLEAR_FRAME_NUMBER		(V4L2_CID_FIMC_IS_BASE + 492) +#define V4L2_CID_IS_GET_LOSTED_FRAME_NUMBER	(V4L2_CID_FIMC_IS_BASE + 493) +#define V4L2_CID_IS_ISP_DMA_BUFFER_NUM		(V4L2_CID_FIMC_IS_BASE + 494) +#define V4L2_CID_IS_ISP_DMA_BUFFER_ADDRESS	(V4L2_CID_FIMC_IS_BASE + 495) + +#define V4L2_CID_IS_ZOOM_STATE			(V4L2_CID_FIMC_IS_BASE + 660) +#define V4L2_CID_IS_ZOOM_MAX_LEVEL		(V4L2_CID_FIMC_IS_BASE + 661) +#define V4L2_CID_IS_ZOOM			(V4L2_CID_FIMC_IS_BASE + 662) +#define V4L2_CID_IS_FW_DEBUG_REGION_ADDR	(V4L2_CID_FIMC_IS_BASE + 663) + +#define V4L2_CID_IS_TUNE_SEL_ENTRY		(V4L2_CID_FIMC_IS_TUNE_BASE) +#define V4L2_CID_IS_TUNE_SENSOR_EXPOSURE	(V4L2_CID_FIMC_IS_TUNE_BASE + 1) +#define V4L2_CID_IS_TUNE_SENSOR_ANALOG_GAIN	(V4L2_CID_FIMC_IS_TUNE_BASE + 2) +#define V4L2_CID_IS_TUNE_SENSOR_FRAME_RATE	(V4L2_CID_FIMC_IS_TUNE_BASE + 3) +#define V4L2_CID_IS_TUNE_SENSOR_ACTUATOR_POS	(V4L2_CID_FIMC_IS_TUNE_BASE + 4) + +enum v4l2_blur { +	BLUR_LEVEL_0 = 0, +	BLUR_LEVEL_1, +	BLUR_LEVEL_2, +	BLUR_LEVEL_3, +	BLUR_LEVEL_MAX, +}; + +#if 1 +#define V4L2_CID_CAMERA_SCENE_MODE		(V4L2_CID_PRIVATE_BASE+70) +enum v4l2_scene_mode { +	SCENE_MODE_BASE, +	SCENE_MODE_NONE, +	SCENE_MODE_PORTRAIT, +	SCENE_MODE_NIGHTSHOT, +	SCENE_MODE_BACK_LIGHT, +	SCENE_MODE_LANDSCAPE, +	SCENE_MODE_SPORTS, +	SCENE_MODE_PARTY_INDOOR, +	SCENE_MODE_BEACH_SNOW, +	SCENE_MODE_SUNSET, +	SCENE_MODE_DUSK_DAWN, +	SCENE_MODE_FALL_COLOR, +	SCENE_MODE_FIREWORKS, +	SCENE_MODE_TEXT, +	SCENE_MODE_CANDLE_LIGHT, +	SCENE_MODE_LOW_LIGHT, +	SCENE_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_FLASH_MODE		(V4L2_CID_PRIVATE_BASE+71) +enum v4l2_flash_mode { +	FLASH_MODE_BASE, +	FLASH_MODE_OFF, +	FLASH_MODE_AUTO, +	FLASH_MODE_ON, +	FLASH_MODE_TORCH, +	FLASH_MODE_RED_EYE, +	FLASH_MODE_FILL_IN, +	FLASH_MODE_SLOW_SYNC, +	FLASH_MODE_RED_EYE_FIX, +	FLASH_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_BRIGHTNESS		(V4L2_CID_PRIVATE_BASE+72) +enum v4l2_ev_mode { +	EV_MINUS_4	= -4, +	EV_MINUS_3	= -3, +	EV_MINUS_2	= -2, +	EV_MINUS_1	= -1, +	EV_DEFAULT	= 0, +	EV_PLUS_1	= 1, +	EV_PLUS_2	= 2, +	EV_PLUS_3	= 3, +	EV_PLUS_4	= 4, +	EV_MAX, +	EV_MAX_V4L2	= EV_MAX, +}; + +enum v4l2_exposure { +	EXPOSURE_MINUS_6 = -6, +	EXPOSURE_MINUS_5 = -5, +	EXPOSURE_MINUS_4 = -4, +	EXPOSURE_MINUS_3 = -3, +	EXPOSURE_MINUS_2 = -2, +	EXPOSURE_MINUS_1 = -1, +	EXPOSURE_DEFAULT = 0, +	EXPOSURE_PLUS_1	= 1, +	EXPOSURE_PLUS_2	= 2, +	EXPOSURE_PLUS_3	= 3, +	EXPOSURE_PLUS_4	= 4, +	EXPOSURE_PLUS_5	= 5, +	EXPOSURE_PLUS_6	= 6, +	EXPOSURE_MAX, +}; + +#define V4L2_CID_CAMERA_WHITE_BALANCE	(V4L2_CID_PRIVATE_BASE+73) +enum v4l2_wb_mode { +	WHITE_BALANCE_BASE = 0, +	WHITE_BALANCE_AUTO, +	WHITE_BALANCE_SUNNY, +	WHITE_BALANCE_CLOUDY, +	WHITE_BALANCE_TUNGSTEN, +	WHITE_BALANCE_FLUORESCENT, +	WHITE_BALANCE_FLUORESCENT_H, +	WHITE_BALANCE_FLUORESCENT_L, +	WHITE_BALANCE_CUSTOM, +	WHITE_BALANCE_K, +	WHITE_BALANCE_INCANDESCENT, +	WHITE_BALANCE_PROHIBITION, +	WHITE_BALANCE_HORIZON, +	WHITE_BALANCE_LEDLIGHT, +	WHITE_BALANCE_MAX, +}; + +#define V4L2_CID_CAMERA_EFFECT			(V4L2_CID_PRIVATE_BASE+74) +enum v4l2_effect_mode { +	IMAGE_EFFECT_BASE = 0, +	IMAGE_EFFECT_NONE, +	IMAGE_EFFECT_BNW, +	IMAGE_EFFECT_SEPIA, +	IMAGE_EFFECT_AQUA, +	IMAGE_EFFECT_ANTIQUE, +	IMAGE_EFFECT_NEGATIVE, +	IMAGE_EFFECT_SHARPEN, +	IMAGE_EFFECT_SKETCH, +	IMAGE_EFFECT_WASHED, +	IMAGE_EFFECT_VINTAGE_WARM, +	IMAGE_EFFECT_VINTAGE_COLD, +	IMAGE_EFFECT_SOLARIZE, +	IMAGE_EFFECT_POSTERIZE, +	IMAGE_EFFECT_POINT_BLUE, +	IMAGE_EFFECT_POINT_RED_YELLOW, +	IMAGE_EFFECT_POINT_COLOR_3, +	IMAGE_EFFECT_POINT_GREEN, +	IMAGE_EFFECT_POINT_RED, +	IMAGE_EFFECT_POINT_YELLOW, +	IMAGE_EFFECT_CARTOONIZE, +	IMAGE_EFFECT_MAX, +}; + +#define V4L2_CID_CAMERA_ISO		(V4L2_CID_PRIVATE_BASE+75) +enum v4l2_iso_mode { +	ISO_AUTO = 0, +	ISO_50, +	ISO_100, +	ISO_200, +	ISO_400, +	ISO_800, +	ISO_1600, +	ISO_3200, +	ISO_SPORTS, +	ISO_NIGHT, +	ISO_MOVIE, +	ISO_MAX, +}; + +#define V4L2_CID_CAMERA_METERING	(V4L2_CID_PRIVATE_BASE+76) +enum v4l2_metering_mode { +	METERING_BASE = 0, +	METERING_MATRIX, +	METERING_CENTER, +	METERING_SPOT, +	METERING_MAX, +}; + +#define V4L2_CID_CAMERA_CONTRAST	(V4L2_CID_PRIVATE_BASE+77) +enum v4l2_contrast_mode { +	CONTRAST_MINUS_2 = 0, +	CONTRAST_MINUS_1, +	CONTRAST_DEFAULT, +	CONTRAST_PLUS_1, +	CONTRAST_PLUS_2, +	CONTRAST_MAX, +}; + +#define V4L2_CID_CAMERA_SATURATION		(V4L2_CID_PRIVATE_BASE+78) +enum v4l2_saturation_mode { +	SATURATION_MINUS_2 = 0, +	SATURATION_MINUS_1, +	SATURATION_DEFAULT, +	SATURATION_PLUS_1, +	SATURATION_PLUS_2, +	SATURATION_MAX, +}; + +#define V4L2_CID_CAMERA_SHARPNESS		(V4L2_CID_PRIVATE_BASE+79) +enum v4l2_sharpness_mode { +	SHARPNESS_MINUS_2 = 0, +	SHARPNESS_MINUS_1, +	SHARPNESS_DEFAULT, +	SHARPNESS_PLUS_1, +	SHARPNESS_PLUS_2, +	SHARPNESS_MAX, +}; + +#define V4L2_CID_CAMERA_WDR		(V4L2_CID_PRIVATE_BASE+80) +enum v4l2_wdr_mode { +	WDR_OFF, +	WDR_ON, +	WDR_MAX, +}; + +#define V4L2_CID_CAMERA_ANTI_SHAKE		(V4L2_CID_PRIVATE_BASE+81) +enum v4l2_anti_shake_mode { +	ANTI_SHAKE_OFF, +	ANTI_SHAKE_STILL_ON, +	ANTI_SHAKE_MOVIE_ON, +	ANTI_SHAKE_MAX, +}; + +#define V4L2_CID_CAMERA_TOUCH_AF_START_STOP (V4L2_CID_PRIVATE_BASE+82) +enum v4l2_touch_af { +	TOUCH_AF_STOP = 0, +	TOUCH_AF_START, +	TOUCH_AF_MAX, +}; + +#define V4L2_CID_CAMERA_SMART_AUTO		(V4L2_CID_PRIVATE_BASE+83) +enum v4l2_smart_auto { +	SMART_AUTO_OFF = 0, +	SMART_AUTO_ON, +	SMART_AUTO_MAX, +}; + +#define V4L2_CID_CAMERA_VINTAGE_MODE		(V4L2_CID_PRIVATE_BASE+84) +enum v4l2_vintage_mode { +	VINTAGE_MODE_BASE, +	VINTAGE_MODE_OFF, +	VINTAGE_MODE_NORMAL, +	VINTAGE_MODE_WARM, +	VINTAGE_MODE_COOL, +	VINTAGE_MODE_BNW, +	VINTAGE_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_JPEG_QUALITY		(V4L2_CID_PRIVATE_BASE+85) +#define V4L2_CID_CAMERA_CAPTURE_THUMB (V4L2_CID_PRIVATE_BASE + 86) +#define V4L2_CID_CAMERA_YUV_SNAPSHOT	(V4L2_CID_PRIVATE_BASE + 87) +#define V4L2_CID_CAMERA_LOW_LIGHT_MODE	(V4L2_CID_PRIVATE_BASE + 88) +#define V4L2_CID_CAMERA_GPS_LATITUDE	(V4L2_CID_CAMERA_CLASS_BASE+30) +/* (V4L2_CID_PRIVATE_BASE+87) */ +#define V4L2_CID_CAMERA_GPS_LONGITUDE	(V4L2_CID_CAMERA_CLASS_BASE + 31) +/* (V4L2_CID_PRIVATE_BASE+88) */ +#define V4L2_CID_CAMERA_GPS_TIMESTAMP	(V4L2_CID_CAMERA_CLASS_BASE + 32) +/* (V4L2_CID_PRIVATE_BASE+89)*/ +#define V4L2_CID_CAMERA_GPS_ALTITUDE	(V4L2_CID_CAMERA_CLASS_BASE + 33) +#define V4L2_CID_CAMERA_EXIF_TIME_INFO	(V4L2_CID_CAMERA_CLASS_BASE + 34) +#define V4L2_CID_CAMERA_GPS_PROCESSINGMETHOD	(V4L2_CID_CAMERA_CLASS_BASE+35) + +#define V4L2_CID_FOCUS_AUTO_MODE				(V4L2_CID_CAMERA_CLASS_BASE+36) +enum v4l2_focus_mode_type { +	V4L2_FOCUS_AUTO_NORMAL = 0, +	V4L2_FOCUS_AUTO_MACRO, +	V4L2_FOCUS_AUTO_CONTINUOUS, +	V4L2_FOCUS_AUTO_FACE_DETECTION, +	V4L2_FOCUS_AUTO_RECTANGLE, +	V4L2_FOCUS_AUTO_MAX, +}; +#define V4L2_CID_FOCUS_AUTO_RECTANGLE_LEFT		(V4L2_CID_CAMERA_CLASS_BASE+37) +#define V4L2_CID_FOCUS_AUTO_RECTANGLE_TOP		(V4L2_CID_CAMERA_CLASS_BASE+38) +#define V4L2_CID_FOCUS_AUTO_RECTANGLE_WIDTH		(V4L2_CID_CAMERA_CLASS_BASE+39) +#define V4L2_CID_FOCUS_AUTO_RECTANGLE_HEIGHT		(V4L2_CID_CAMERA_CLASS_BASE+40) + +#define V4L2_CID_CAMERA_ZOOM	(V4L2_CID_PRIVATE_BASE+90) +enum v4l2_zoom_level { +	ZOOM_LEVEL_0 = 0, +	ZOOM_LEVEL_1, +	ZOOM_LEVEL_2, +	ZOOM_LEVEL_3, +	ZOOM_LEVEL_4, +	ZOOM_LEVEL_5, +	ZOOM_LEVEL_6, +	ZOOM_LEVEL_7, +	ZOOM_LEVEL_8, +	ZOOM_LEVEL_9, +	ZOOM_LEVEL_10, +	ZOOM_LEVEL_11, +	ZOOM_LEVEL_12, +	ZOOM_LEVEL_MAX = 31, +}; + +#define V4L2_CID_CAMERA_FACE_DETECTION		(V4L2_CID_PRIVATE_BASE+91) +enum v4l2_face_detection { +	FACE_DETECTION_OFF = 0, +	FACE_DETECTION_ON, +	FACE_DETECTION_NOLINE, +	FACE_DETECTION_ON_BEAUTY, +	FACE_DETECTION_NORMAL, +	FACE_DETECTION_SMILE_SHOT, +	FACE_DETECTION_BLINK, +	FACE_DETECTION_MAX, +}; + +#define V4L2_CID_CAMERA_SMART_AUTO_STATUS	(V4L2_CID_PRIVATE_BASE+92) +enum v4l2_smart_auto_status { +	SMART_AUTO_STATUS_AUTO = 0, +	SMART_AUTO_STATUS_LANDSCAPE, +	SMART_AUTO_STATUS_PORTRAIT, +	SMART_AUTO_STATUS_MACRO, +	SMART_AUTO_STATUS_NIGHT, +	SMART_AUTO_STATUS_PORTRAIT_NIGHT, +	SMART_AUTO_STATUS_BACKLIT, +	SMART_AUTO_STATUS_PORTRAIT_BACKLIT, +	SMART_AUTO_STATUS_ANTISHAKE, +	SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE, +	SMART_AUTO_STATUS_MAX, +}; + +#define V4L2_CID_CAMERA_SET_AUTO_FOCUS		(V4L2_CID_PRIVATE_BASE+93) +enum v4l2_auto_focus { +	AUTO_FOCUS_OFF = 0, +	AUTO_FOCUS_ON, +	AUTO_FOCUS_MAX, +}; + +#define V4L2_CID_CAMERA_BEAUTY_SHOT		(V4L2_CID_PRIVATE_BASE+94) +enum v4l2_beauty_shot { +	BEAUTY_SHOT_OFF = 0, +	BEAUTY_SHOT_ON, +	BEAUTY_SHOT_MAX, +}; + +#define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK	(V4L2_CID_PRIVATE_BASE+95) +enum v4l2_ae_awb_lockunlock { +	AE_UNLOCK_AWB_UNLOCK = 0, +	AE_LOCK_AWB_UNLOCK, +	AE_UNLOCK_AWB_LOCK, +	AE_LOCK_AWB_LOCK, +	AE_AWB_MAX +}; + +#define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK	(V4L2_CID_PRIVATE_BASE+96) +enum v4l2_face_lock { +	FACE_LOCK_OFF = 0, +	FACE_LOCK_ON, +	FIRST_FACE_TRACKING, +	FACE_LOCK_MAX, +}; + +#define V4L2_CID_CAMERA_OBJECT_POSITION_X	(V4L2_CID_PRIVATE_BASE+97) +#define V4L2_CID_CAMERA_OBJECT_POSITION_Y	(V4L2_CID_PRIVATE_BASE+98) +#define V4L2_CID_CAMERA_FOCUS_MODE		(V4L2_CID_PRIVATE_BASE+99) +enum v4l2_focusmode { +	FOCUS_MODE_AUTO = 0, +	FOCUS_MODE_MACRO, +	FOCUS_MODE_FACEDETECT, +	FOCUS_MODE_AUTO_DEFAULT, +	FOCUS_MODE_MACRO_DEFAULT, +	FOCUS_MODE_FACEDETECT_DEFAULT, +	FOCUS_MODE_INFINITY, +	FOCUS_MODE_FIXED, +	FOCUS_MODE_CONTINOUS, +	FOCUS_MODE_CONTINOUS_PICTURE, +	FOCUS_MODE_CONTINOUS_PICTURE_MACRO, +	FOCUS_MODE_CONTINOUS_VIDEO, +	FOCUS_MODE_TOUCH, +	FOCUS_MODE_MANUAL, +	FOCUS_MODE_MULTI, +	FOCUS_MODE_OBJECT_TRACKING, +	FOCUS_MODE_MAX, +	FOCUS_MODE_DEFAULT = (1 << 8), +}; + +#define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS	(V4L2_CID_PRIVATE_BASE+100) +enum v4l2_obj_tracking_status { +	OBJECT_TRACKING_STATUS_BASE = 0, +	OBJECT_TRACKING_STATUS_SUCCESS = 1, +	OBJECT_TRACKING_STATUS_MISSING = 2, +	OBJECT_TRACKING_STATUS_FAIL = 3, +	OBJECT_TRACKING_STATUS_MAX, +}; + +#define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP	(V4L2_CID_PRIVATE_BASE+101) +enum v4l2_ot_start_stop { +	OT_STOP = 0, +	OT_START, +	OT_MAX, +}; + +#define V4L2_CID_CAMERA_CAF_START_STOP	(V4L2_CID_PRIVATE_BASE+102) +enum v4l2_caf_start_stop { +	CAF_STOP = 0, +	CAF_START, +	CAF_MAX, +}; + +#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT	(V4L2_CID_PRIVATE_BASE+103) +enum v4l2_af_status { +	CAMERA_AF_STATUS_IN_PROGRESS = 0, +	CAMERA_AF_STATUS_SUCCESS, +	CAMERA_AF_STATUS_FAIL, +	CAMERA_AF_STATUS_1ST_SUCCESS, +	CAMERA_AF_STATUS_RESTART, +	CAMERA_AF_STATUS_MAX, +}; + +#define V4L2_CID_CAMERA_FRAME_RATE		(V4L2_CID_PRIVATE_BASE+104) +enum v4l2_frame_rate { +	FRAME_RATE_AUTO = 0, +	FRAME_RATE_7 = 7, +	FRAME_RATE_15 = 15, +	FRAME_RATE_20 = 20, +	FRAME_RATE_25 = 25, +	FRAME_RATE_30 = 30, +	FRAME_RATE_60 = 60, +	FRAME_RATE_120 = 120, +	FRAME_RATE_MAX +}; + +#define V4L2_CID_CAMERA_ANTI_BANDING		(V4L2_CID_PRIVATE_BASE+105) +enum v4l2_anti_banding { +	ANTI_BANDING_AUTO = 0, +	ANTI_BANDING_50HZ = 1, +	ANTI_BANDING_60HZ = 2, +	ANTI_BANDING_50_60Hz = 3, +	ANTI_BANDING_OFF = 4, +}; + +#define V4L2_CID_CAMERA_SET_GAMMA	(V4L2_CID_PRIVATE_BASE+106) +enum v4l2_gamma_mode { +	GAMMA_OFF = 0, +	GAMMA_ON = 1, +	GAMMA_MAX, +}; + +#define V4L2_CID_CAMERA_SET_SLOW_AE	(V4L2_CID_PRIVATE_BASE+107) +enum v4l2_slow_ae_mode { +	SLOW_AE_OFF, +	SLOW_AE_ON, +	SLOW_AE_MAX, +}; + +#define V4L2_CID_CAMERA_BATCH_REFLECTION	(V4L2_CID_PRIVATE_BASE+108) +#define V4L2_CID_CAMERA_EXIF_ORIENTATION	(V4L2_CID_PRIVATE_BASE+109) +#define V4L2_CID_CAMERA_GET_LUX			(V4L2_CID_PRIVATE_BASE+110) + +/* s1_camera [ Defense process by ESD input ] */ +#define V4L2_CID_CAMERA_RESET			(V4L2_CID_PRIVATE_BASE+111) +#define V4L2_CID_CAMERA_CHECK_DATALINE		(V4L2_CID_PRIVATE_BASE+112) +#define V4L2_CID_CAMERA_CHECK_DATALINE_STOP	(V4L2_CID_PRIVATE_BASE+113) + +#endif + +/* Modify NTTS1 */ +#if defined(CONFIG_ARIES_NTT) +#define V4L2_CID_CAMERA_AE_AWB_DISABLE_LOCK	(V4L2_CID_PRIVATE_BASE+114) +#endif +#define V4L2_CID_CAMERA_THUMBNAIL_NULL		(V4L2_CID_PRIVATE_BASE+115) +#define V4L2_CID_CAMERA_SENSOR_MODE		(V4L2_CID_PRIVATE_BASE+116) +enum v4l2_sensor_mode { +	SENSOR_CAMERA, +	SENSOR_MOVIE, +}; + +enum stream_mode_t { +	STREAM_MODE_CAM_OFF, +	STREAM_MODE_CAM_ON, +	STREAM_MODE_MOVIE_OFF, +	STREAM_MODE_MOVIE_ON, +	STREAM_MODE_WAIT_OFF +}; + +#define V4L2_CID_CAMERA_EXIF_EXPTIME		(V4L2_CID_PRIVATE_BASE+117) +#define V4L2_CID_CAMERA_EXIF_FLASH	(V4L2_CID_PRIVATE_BASE+118) +#define V4L2_CID_CAMERA_EXIF_ISO		(V4L2_CID_PRIVATE_BASE+119) +#define V4L2_CID_CAMERA_EXIF_TV		(V4L2_CID_PRIVATE_BASE+120) +#define V4L2_CID_CAMERA_EXIF_BV		(V4L2_CID_PRIVATE_BASE+121) +#define V4L2_CID_CAMERA_EXIF_EBV		(V4L2_CID_PRIVATE_BASE+122) +#define V4L2_CID_CAMERA_CHECK_ESD		(V4L2_CID_PRIVATE_BASE+123) +#define V4L2_CID_CAMERA_APP_CHECK		(V4L2_CID_PRIVATE_BASE+124) +#define V4L2_CID_CAMERA_CHECK_SENSOR_STATUS	(V4L2_CID_PRIVATE_BASE+150) +#define V4L2_CID_CAMERA_DEFAULT_FOCUS_POSITION  (V4L2_CID_PRIVATE_BASE+151) +#define V4L2_CID_CAMERA_BUSFREQ_LOCK		(V4L2_CID_PRIVATE_BASE+125) +#define V4L2_CID_CAMERA_BUSFREQ_UNLOCK		(V4L2_CID_PRIVATE_BASE+126) + +/* If you would like to control AE and AWB lock with signle command, + * use V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK above. + */ +#define V4L2_CID_CAMERA_AE_LOCK_UNLOCK	(V4L2_CID_PRIVATE_BASE + 127) +enum v4l2_ae_lockunlock { +	AE_UNLOCK = 0, +	AE_LOCK, +	AE_LOCK_MAX +}; + +#define V4L2_CID_CAMERA_AWB_LOCK_UNLOCK	(V4L2_CID_PRIVATE_BASE + 128) +enum v4l2_awb_lockunlock { +	AWB_UNLOCK = 0, +	AWB_LOCK, +	AWB_LOCK_MAX +}; + +#define V4L2_CID_CAMERA_SENSOR_OUTPUT_SIZE  (V4L2_CID_PRIVATE_BASE + 129) +#define V4L2_CID_EMBEDDEDDATA_ENABLE	(V4L2_CID_PRIVATE_BASE + 130) +#define V4L2_CID_CAMERA_JPEG_RESOLUTION	 (V4L2_CID_PRIVATE_BASE + 131) +#define V4L2_CID_CAMERA_FACE_ZOOM  (V4L2_CID_PRIVATE_BASE + 132) +enum v4l2_face_zoom { +	FACE_ZOOM_STOP = 0, +	FACE_ZOOM_START +}; + +/* control for post processing block in ISP */ +#define V4L2_CID_CAMERA_SET_ODC				(V4L2_CID_PRIVATE_BASE+127) +enum set_odc_mode { +	CAMERA_ODC_ON, +	CAMERA_ODC_OFF +}; + +#define V4L2_CID_CAMERA_SET_DIS				(V4L2_CID_PRIVATE_BASE+128) +enum set_dis_mode { +	CAMERA_DIS_ON, +	CAMERA_DIS_OFF +}; + +#define V4L2_CID_CAMERA_SET_3DNR				(V4L2_CID_PRIVATE_BASE+129) +enum set_3dnr_mode { +	CAMERA_3DNR_ON, +	CAMERA_3DNR_OFF +}; + +#define V4L2_CID_CAMERA_BRACKET     (V4L2_CID_PRIVATE_BASE+134) +enum v4l2_face_bracket_mode { +	BRACKET_MODE_OFF = 0, +	BRACKET_MODE_AEB, +	BRACKET_MODE_WBB, +	BRACKET_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_BRACKET_AEB     (V4L2_CID_PRIVATE_BASE+135) +enum v4l2_face_bracket_aeb_value { +	BRACKET_AEB_VALUE0 = 0, +	BRACKET_AEB_VALUE1, +	BRACKET_AEB_VALUE2, +	BRACKET_AEB_VALUE3, +	BRACKET_AEB_VALUE4, +	BRACKET_AEB_VALUE5, +	BRACKET_AEB_VALUE6, +}; + +#define V4L2_CID_CAMERA_BRACKET_WBB     (V4L2_CID_PRIVATE_BASE+136) +enum v4l2_face_bracket_wbb_value { +	BRACKET_WBB_OFF = 0, +	BRACKET_WBB_VALUE1 = 1, +	BRACKET_WBB_VALUE2, +	BRACKET_WBB_VALUE3, +	BRACKET_WBB_VALUE4, +	BRACKET_WBB_VALUE5, +	BRACKET_WBB_VALUE6, +}; + +#define V4L2_CID_CAMERA_DRIVE_DIAL    (V4L2_CID_PRIVATE_BASE+137) +enum v4l2_drive_dial { +	DRIVEDIAL_SINGLE = 1, +	DRIVEDIAL_BKT = 2, +	DRIVEDIAL_CONTI_3 = 3, +	DRIVEDIAL_CONTI_5 = 5, +	DRIVEDIAL_CONTI_10 = 10, +}; + +enum v4l2_running_cap_mode { +	RUNNING_MODE_SINGLE = 0, +	RUNNING_MODE_CONTINUOUS, +	RUNNING_MODE_BEST, +	RUNNING_MODE_LOWLIGHT, +	RUNNING_MODE_AE_BRACKET, +	RUNNING_MODE_WB_BRACKET, +	RUNNING_MODE_HDR, +	RUNNING_MODE_BLINK, +	RUNNING_MODE_RAW, +	RUNNING_MODE_BURST, +	RUNNING_MODE_MAX +}; + +enum v4l2_continuous_mode { +	CONTINUOUS_MODE_OFF = 0, +	CONTINUOUS_MODE_ON, +	CONTINUOUS_MODE_MAX, +}; + +enum v4l2_continuous_fps { +	MULTI_CAPTURE_FPS_1 = 0, +	MULTI_CAPTURE_FPS_10, +	MULTI_CAPTURE_FPS_5, +	MULTI_CAPTURE_FPS_3, +	MULTI_CAPTURE_FPS_MAX, +}; + +enum v4l2_burst_mode { +	BURST_MODE_OFF = 0, +	BURST_MODE_ON, +}; + +enum v4l2_best_mode { +	BEST_MODE_OFF = 0, +	BEST_MODE_ON, +	BEST_MODE_MAX,}; + +enum v4l2_lowlight_mode { +	LOWLIGHT_MODE_OFF = 0, +	LOWLIGHT_MODE_ON, +	LOWLIGHT_MODE_MAX,}; + +#define V4L2_CID_CAMERA_FD_EYE_BLINK_RESULT    (V4L2_CID_PRIVATE_BASE+138) + +#define V4L2_CID_CAMERA_OPTICAL_ZOOM_STEP      (V4L2_CID_PRIVATE_BASE + 139) +#define V4L2_CID_CAMERA_OPTICAL_ZOOM_CTRL      (V4L2_CID_PRIVATE_BASE + 140) +enum v4l2_optical_zoom_ctrl { +	V4L2_OPTICAL_ZOOM_STOP, +	V4L2_OPTICAL_ZOOM_TELE_START, +	V4L2_OPTICAL_ZOOM_WIDE_START, +	V4L2_OPTICAL_ZOOM_SLOW_TELE_START, +	V4L2_OPTICAL_ZOOM_SLOW_WIDE_START, +}; + +#define V4L2_CID_CAMERA_LDC    (V4L2_CID_PRIVATE_BASE+142) +enum set_LDC_mode { +	LDC_SET_OFF = 0, +	LDC_SET_ON = 1, +}; + +#define V4L2_CID_CAMERA_LSC    (V4L2_CID_PRIVATE_BASE+143) +enum set_LSC_mode { +	LSC_SET_OFF = 0, +	LSC_SET_ON = 1, +}; + +#define V4L2_CID_CAMERA_FACTORY_OIS    (V4L2_CID_PRIVATE_BASE+147) +enum set_Factory_OIS { +	FACTORY_OIS_RETURN_TO_CENTER = 0, +	FACTORY_OIS_RUN = 1, +	FACTORY_OIS_START = 2, +	FACTORY_OIS_STOP = 3, +	FACTORY_OIS_MODE_ON = 4, +	FACTORY_OIS_MODE_OFF = 5, +	FACTORY_OIS_LOG = 6, +	FACTORY_OIS_ON = 7, +	FACTORY_OIS_DECENTER_LOG = 8, +}; + +#define V4L2_CID_CAMERA_FACTORY_ZOOM_RANGE_CHECK_DATA_MIN \ +	(V4L2_CID_PRIVATE_BASE+148) +#define V4L2_CID_CAMERA_FACTORY_ZOOM_RANGE_CHECK_DATA_MAX \ +	(V4L2_CID_PRIVATE_BASE+149) +#define V4L2_CID_CAMERA_FACTORY_ZOOM_SLOPE_CHECK_DATA_MIN \ +	(V4L2_CID_PRIVATE_BASE+152) +#define V4L2_CID_CAMERA_FACTORY_ZOOM_SLOPE_CHECK_DATA_MAX \ +	(V4L2_CID_PRIVATE_BASE+153) +#define V4L2_CID_CAMERA_FACTORY_ZOOM_STEP  (V4L2_CID_PRIVATE_BASE+154) +#define V4L2_CID_CAMERA_FACTORY_ZOOM    (V4L2_CID_PRIVATE_BASE+155) +enum set_Factory_Zoom { +	FACTORY_ZOOM_MOVE_STEP = 0, +	FACTORY_ZOOM_RANGE_CHECK_START = 1, +	FACTORY_ZOOM_RANGE_CHECK_STOP = 2, +	FACTORY_ZOOM_SLOPE_CHECK_START = 3, +	FACTORY_ZOOM_SLOPE_CHECK_STOP = 4, +	FACTORY_ZOOM_SET_RANGE_CHECK_DATA = 5, +	FACTORY_ZOOM_SET_SLOPE_CHECK_DATA = 6, +	FACTORY_ZOOM_STEP_TELE = 7, +	FACTORY_ZOOM_STEP_WIDE = 8, +	FACTORY_ZOOM_MOVE_END_CHECK = 9, +}; + +#define V4L2_CID_CAMERA_FACTORY_PUNT_RANGE_DATA_MIN \ +	(V4L2_CID_PRIVATE_BASE+156) +#define V4L2_CID_CAMERA_FACTORY_PUNT_RANGE_DATA_MAX \ +	(V4L2_CID_PRIVATE_BASE+157) +#define V4L2_CID_CAMERA_FACTORY_PUNT_RANGE_DATA_NUM \ +	(V4L2_CID_PRIVATE_BASE+158) +#define V4L2_CID_CAMERA_FACTORY_PUNT    (V4L2_CID_PRIVATE_BASE+159) +enum set_Factory_Punt { +	FACTORY_PUNT_RANGE_START = 0, +	FACTORY_PUNT_RANGE_STOP = 1, +	FACTORY_PUNT_SHORT_SCAN_DATA = 2, +	FACTORY_PUNT_SHORT_SCAN_START = 3, +	FACTORY_PUNT_SHORT_SCAN_STOP = 4, +	FACTORY_PUNT_LONG_SCAN_DATA = 5, +	FACTORY_PUNT_LONG_SCAN_START = 6, +	FACTORY_PUNT_LONG_SCAN_STOP = 7, +	FACTORY_PUNT_LOG = 8, +	FACTORY_PUNT_SET_RANGE_DATA = 9, +	FACTORY_PUNT_EEP_WRITE = 10, +}; + +#define V4L2_CID_CAMERA_FACTORY_FAIL_STOP    (V4L2_CID_PRIVATE_BASE+160) +enum set_Factory_Fail_Stop { +	FACTORY_FAIL_STOP_ON = 0, +	FACTORY_FAIL_STOP_OFF = 1, +	FACTORY_FAIL_STOP_RUN = 2, +	FACTORY_FAIL_STOP_STOP = 3, +}; + +#define V4L2_CID_CAMERA_FACTORY_NODEFOCUS    (V4L2_CID_PRIVATE_BASE+161) +enum set_Factory_NoDeFocus { +	FACTORY_NODEFOCUSYES_ON = 0, +	FACTORY_NODEFOCUSYES_OFF = 1, +	FACTORY_NODEFOCUSYES_RUN = 2, +	FACTORY_NODEFOCUSYES_STOP = 3, +}; + +#define V4L2_CID_CAMERA_FACTORY_INTERPOLATION    (V4L2_CID_PRIVATE_BASE+162) +enum set_Factory_Interpolation { +	FACTORY_INTERPOLATION_USE = 0, +	FACTORY_INTERPOLATION_RELEASE = 1, +}; + +#define V4L2_CID_CAMERA_FACTORY_DOWN_RESULT (V4L2_CID_PRIVATE_BASE+163) +#define V4L2_CID_CAMERA_FACTORY_END_RESULT (V4L2_CID_PRIVATE_BASE+164) +#define V4L2_CID_CAMERA_FACTORY_COMMON    (V4L2_CID_PRIVATE_BASE+165) +enum set_Factory_Common { +	FACTORY_FIRMWARE_DOWNLOAD = 0, +	FACTORY_DOWNLOAD_CHECK = 1, +	FACTORY_END_CHECK = 2, +	FACTORY_COMMON_SET_FOCUS_ZONE_MACRO = 3, +	FACTORY_FPS30_ON = 4, +	FACTORY_FPS30_OFF = 5, +}; + +#define V4L2_CID_CAMERA_FACTORY_VIB    (V4L2_CID_PRIVATE_BASE+166) +enum set_Factory_Vib { +	FACTORY_VIB_START = 0, +	FACTORY_VIB_STOP = 1, +	FACTORY_VIB_LOG = 2, +}; + +#define V4L2_CID_CAMERA_FACTORY_GYRO    (V4L2_CID_PRIVATE_BASE+167) +enum set_Factory_Gyro { +	FACTORY_GYRO_START = 0, +	FACTORY_GYRO_STOP = 1, +	FACTORY_GYRO_LOG = 2, +}; + +#define V4L2_CID_CAMERA_FACTORY_BACKLASH    (V4L2_CID_PRIVATE_BASE+168) +enum set_Factory_Backlash { +	FACTORY_BACKLASH_INPUT = 0, +	FACTORY_BACKLASH_MAX_THR = 1, +	FACTORY_BACKLASH_WIDE_RUN = 2, +	FACTORY_BACKLASH_LOG = 3, +}; + +#define V4L2_CID_CAMERA_FACTORY_AF_STEP_SET    (V4L2_CID_PRIVATE_BASE+169) +#define V4L2_CID_CAMERA_FACTORY_AF_POSITION    (V4L2_CID_PRIVATE_BASE+170) +#define V4L2_CID_CAMERA_FACTORY_AF_INT_RESULT (V4L2_CID_PRIVATE_BASE+171) +#define V4L2_CID_CAMERA_FACTORY_AF    (V4L2_CID_PRIVATE_BASE+172) +enum set_Factory_AF { +	FACTORY_AF_LOCK_ON_SET = 0, +	FACTORY_AF_LOCK_OFF_SET = 1, +	FACTORY_AF_MOVE = 2, +	FACTORY_AF_STEP_LOG = 3, +	FACTORY_AF_LOCK_START = 4, +	FACTORY_AF_LOCK_STOP = 5, +	FACTORY_AF_FOCUS_LOG = 6, +	FACTORY_AF_INT_SET = 7, +	FACTORY_AF_SCAN_LIMIT_START = 8, +	FACTORY_AF_SCAN_LIMIT_STOP = 10, +	FACTORY_AF_SCAN_RANGE_START = 11, +	FACTORY_AF_SCAN_RANGE_STOP = 12, +	FACTORY_AF_STEP_SAVE = 13, +	FACTORY_AF_LED_END_CHECK = 14, +	FACTORY_AF_LED_LOG = 15, +	FACTORY_AF_MOVE_END_CHECK = 16, +	FACTORY_AF_SCAN_END_CHECK = 17, +}; + +#define V4L2_CID_CAMERA_FACTORY_DEFOCUS_WIDE    (V4L2_CID_PRIVATE_BASE+173) +#define V4L2_CID_CAMERA_FACTORY_DEFOCUS_TELE (V4L2_CID_PRIVATE_BASE+174) +#define V4L2_CID_CAMERA_FACTORY_DEFOCUS    (V4L2_CID_PRIVATE_BASE+175) +enum set_Factory_DeFocus { +	FACTORY_DEFOCUS_RUN = 0, +	FACTORY_DEFOCUS_STOP = 1, +}; + +#define V4L2_CID_CAMERA_FACTORY_RESOL_CAP    (V4L2_CID_PRIVATE_BASE+176) +enum set_Factory_Resol_Cap { +	FACTORY_CAP_COMP_ON = 0, +	FACTORY_CAP_COMP_OFF = 1, +	FACTORY_CAP_BARREL_ON = 2, +	FACTORY_CAP_BARREL_OFF = 3, +	FACTORY_CAP_BARREL_START = 4, +	FACTORY_CAP_BARREL_STOP = 5, +	FACTORY_CAP_COMP_START = 6, +	FACTORY_CAP_COMP_STOP = 7, +}; + +#define V4L2_CID_CAMERA_SET_G_VALUE          (V4L2_CID_PRIVATE_BASE + 177) +#define V4L2_CID_CAMERA_SET_B_VALUE          (V4L2_CID_PRIVATE_BASE + 178) +#define V4L2_CID_CAMERA_SET_A_VALUE          (V4L2_CID_PRIVATE_BASE + 179) +#define V4L2_CID_CAMERA_SET_M_VALUE          (V4L2_CID_PRIVATE_BASE + 180) +#define V4L2_CID_CAMERA_SET_GBAM          (V4L2_CID_PRIVATE_BASE + 181) +#define V4L2_CID_CAMERA_SET_K_VALUE          (V4L2_CID_PRIVATE_BASE + 182) +#define V4L2_CID_CAMERA_SET_FLASH_EVC_STEP   (V4L2_CID_PRIVATE_BASE + 183) + +#define V4L2_CID_CAMERA_APERTURE_CMD (V4L2_CID_PRIVATE_BASE+184) +enum set_Factory_Aperture_Cmd { +	FACTORY_CMD_PREVIEW = 0, +	FACTORY_CMD_CAPTURE = 1, +}; + +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_X_MIN (V4L2_CID_PRIVATE_BASE+185) +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_X_MAX (V4L2_CID_PRIVATE_BASE+186) +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_Y_MIN (V4L2_CID_PRIVATE_BASE+187) +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_Y_MAX (V4L2_CID_PRIVATE_BASE+188) +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_X_GAIN \ +	(V4L2_CID_PRIVATE_BASE+189) +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_PEAK_X \ +	(V4L2_CID_PRIVATE_BASE+190) +#define V4L2_CID_CAMERA_FACTORY_OIS_RANGE_DATA_PEAK_Y \ +	(V4L2_CID_PRIVATE_BASE+191) + +#define V4L2_CID_CAMERA_FACTORY_VIB_RANGE_DATA_X_MIN (V4L2_CID_PRIVATE_BASE+192) +#define V4L2_CID_CAMERA_FACTORY_VIB_RANGE_DATA_X_MAX (V4L2_CID_PRIVATE_BASE+193) +#define V4L2_CID_CAMERA_FACTORY_VIB_RANGE_DATA_Y_MIN (V4L2_CID_PRIVATE_BASE+194) +#define V4L2_CID_CAMERA_FACTORY_VIB_RANGE_DATA_Y_MAX (V4L2_CID_PRIVATE_BASE+195) +#define V4L2_CID_CAMERA_FACTORY_VIB_RANGE_DATA_PEAK_X \ +	(V4L2_CID_PRIVATE_BASE+196) +#define V4L2_CID_CAMERA_FACTORY_VIB_RANGE_DATA_PEAK_Y \ +	(V4L2_CID_PRIVATE_BASE+197) + +#define V4L2_CID_CAMERA_FACTORY_GYRO_RANGE_DATA_X_MIN \ +	(V4L2_CID_PRIVATE_BASE+198) +#define V4L2_CID_CAMERA_FACTORY_GYRO_RANGE_DATA_X_MAX \ +	(V4L2_CID_PRIVATE_BASE+199) +#define V4L2_CID_CAMERA_FACTORY_GYRO_RANGE_DATA_Y_MIN \ +	(V4L2_CID_PRIVATE_BASE+200) +#define V4L2_CID_CAMERA_FACTORY_GYRO_RANGE_DATA_Y_MAX \ +	(V4L2_CID_PRIVATE_BASE+202) + +#define V4L2_CID_CAMERA_FACTORY_TEST_NUMBER (V4L2_CID_PRIVATE_BASE+203) + +#define V4L2_CID_CAMERA_FACTORY_BACKLASH_COUNT (V4L2_CID_PRIVATE_BASE+204) +#define V4L2_CID_CAMERA_FACTORY_BACKLASH_MAXTHRESHOLD \ +	(V4L2_CID_PRIVATE_BASE+205) + +#define V4L2_CID_CAMERA_FACTORY_CAPTURE_CTRL (V4L2_CID_PRIVATE_BASE + 206) +enum set_Factory_Cap_Ctrl { +	FACTORY_STILL_CAP_NORMAL = 0, +	FACTORY_STILL_CAP_DUALCAP = 1, +	FACTORY_DUAL_CAP_ON = 2, +	FACTORY_DUAL_CAP_OFF = 3, +}; + +#define V4L2_CID_CAMERA_DUAL_POSTVIEW          (V4L2_CID_PRIVATE_BASE + 207) +#define V4L2_CID_CAMERA_DUAL_CAPTURE           (V4L2_CID_PRIVATE_BASE + 208) +#define V4L2_CID_CAMERA_SET_DUAL_CAPTURE       (V4L2_CID_PRIVATE_BASE + 209) +#define V4L2_CID_CAMERA_DUAL_CAPTURE_MODE	(V4L2_CID_PRIVATE_BASE + 210) + +#define V4L2_CID_CAMERA_FOCUS_AREA_MODE        (V4L2_CID_PRIVATE_BASE + 211) +enum set_fouce_area { +	V4L2_FOCUS_AREA_CENTER = 0, +	V4L2_FOCUS_AREA_MULTI = 1, +	V4L2_FOCUS_AREA_SMART_TOUCH = 2, +}; + +#define V4L2_CID_CAMERA_FACTORY_AF_SCAN_LIMIT_MIN    (V4L2_CID_PRIVATE_BASE+212) +#define V4L2_CID_CAMERA_FACTORY_AF_SCAN_LIMIT_MAX    (V4L2_CID_PRIVATE_BASE+213) +#define V4L2_CID_CAMERA_FACTORY_AF_SCAN_RANGE_MIN    (V4L2_CID_PRIVATE_BASE+214) +#define V4L2_CID_CAMERA_FACTORY_AF_SCAN_RANGE_MAX    (V4L2_CID_PRIVATE_BASE+215) +#define V4L2_CID_CAM_APERTURE_PREVIEW	(V4L2_CID_PRIVATE_BASE+216) +#define V4L2_CID_CAM_APERTURE_CAPTURE	(V4L2_CID_PRIVATE_BASE+217) + +#define V4L2_CID_CAMERA_FACTORY_AF_ZONE	(V4L2_CID_PRIVATE_BASE+218) +enum set_Factory_AFZone_Cmd { +	FACTORY_AFZONE_NORMAL = 0, +	FACTORY_AFZONE_MACRO, +	FACTORY_AFZONE_AUTO, +}; + +#define V4L2_CID_CAMERA_FACTORY_OIS_SHIFT	(V4L2_CID_PRIVATE_BASE+219) +#define V4L2_CID_CAMERA_FACTORY_FLICKER	(V4L2_CID_PRIVATE_BASE+220) +enum set_Factory_Flicker_Cmd { +	FACTORY_FLICKER_AUTO = 0, +	FACTORY_FLICKER_50HZ, +	FACTORY_FLICKER_60HZ, +	FACTORY_FLICKER_50_60, +	FACTORY_FLICKER_OFF, +}; + +#define V4L2_CID_CAMERA_FACTORY_AF_LENS	(V4L2_CID_PRIVATE_BASE+221) +enum set_Factory_AFLENS_Cmd { +	FACTORY_AFLENS_OPEN = 0, +	FACTORY_AFLENS_CLOSE, +}; + +#define V4L2_CID_CAMERA_FACTORY_LV_TARGET	(V4L2_CID_PRIVATE_BASE+222) + +#define V4L2_CID_CAMERA_FACTORY_ADJ_IRIS_RANGE_MIN (V4L2_CID_PRIVATE_BASE+223) +#define V4L2_CID_CAMERA_FACTORY_ADJ_IRIS_RANGE_MAX (V4L2_CID_PRIVATE_BASE+224) +#define V4L2_CID_CAMERA_FACTORY_ADJ_IRIS	(V4L2_CID_PRIVATE_BASE+225) +enum set_Factory_Adj_IRIS_Cmd { +	FACTORY_ADJ_IRIS_RUN = 0, +	FACTORY_ADJ_IRIS_STOP, +	FACTORY_ADJ_IRIS_END_CHECK, +	FACTORY_ADJ_IRIS_LOG, +}; + +#define V4L2_CID_CAMERA_FACTORY_ADJ_GAIN_LIVEVIEW_RANGE_MIN \ +	(V4L2_CID_PRIVATE_BASE+226) +#define V4L2_CID_CAMERA_FACTORY_ADJ_GAIN_LIVEVIEW_RANGE_MAX \ +	(V4L2_CID_PRIVATE_BASE+227) +#define V4L2_CID_CAMERA_FACTORY_ADJ_GAIN_LIVEVIEW (V4L2_CID_PRIVATE_BASE+228) +enum set_Factory_Adj_Gain_LiveView_Cmd { +	FACTORY_ADJ_GAIN_LIVEVIEW_RUN = 0, +	FACTORY_ADJ_GAIN_LIVEVIEW_STOP, +	FACTORY_ADJ_GAIN_LIVEVIEW_END_CHECK, +	FACTORY_ADJ_GAIN_LIVEVIEW_LOG, +}; + +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE_IRIS_NUM (V4L2_CID_PRIVATE_BASE+229) +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE_SET_IRIS (V4L2_CID_PRIVATE_BASE+230) +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE_ISO	(V4L2_CID_PRIVATE_BASE+231) +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE_RANGE (V4L2_CID_PRIVATE_BASE+232) +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE_SPEEDTIME_X (V4L2_CID_PRIVATE_BASE+233) +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE_SPEEDTIME_Y (V4L2_CID_PRIVATE_BASE+234) +#define V4L2_CID_CAMERA_FACTORY_SH_CLOSE	(V4L2_CID_PRIVATE_BASE+235) +enum set_Factory_SH_Close_Cmd { +	FACTORY_SH_CLOSE_RUN = 0, +	FACTORY_SH_CLOSE_STOP, +	FACTORY_SH_CLOSE_END_CHECK, +	FACTORY_SH_CLOSE_LOG, +}; + +#define V4L2_CID_CAMERA_FACTORY_CAPTURE_GAIN_RANGE_MIN	\ +	(V4L2_CID_PRIVATE_BASE+236) +#define V4L2_CID_CAMERA_FACTORY_CAPTURE_GAIN_RANGE_MAX	\ +	(V4L2_CID_PRIVATE_BASE+237) +#define V4L2_CID_CAMERA_FACTORY_CAPTURE_GAIN	(V4L2_CID_PRIVATE_BASE+238) +enum set_Factory_Capture_Gain_Cmd { +	FACTORY_CAPTURE_GAIN_RUN = 0, +	FACTORY_CAPTURE_GAIN_STOP, +	FACTORY_CAPTURE_GAIN_END_CHECK, +	FACTORY_CAPTURE_GAIN_LOG, +}; + +#define V4L2_CID_CAMERA_FACTORY_LSC_TABLE	(V4L2_CID_PRIVATE_BASE+239) +#define V4L2_CID_CAMERA_FACTORY_LSC_REFERENCE (V4L2_CID_PRIVATE_BASE+240) + +#define V4L2_CID_CAMERA_FACTORY_PUNT_SHORT_SCAN_DATA (V4L2_CID_PRIVATE_BASE+241) +#define V4L2_CID_CAMERA_FACTORY_PUNT_LONG_SCAN_DATA (V4L2_CID_PRIVATE_BASE+242) + +#define V4L2_CID_CAMERA_PASM_MODE		(V4L2_CID_PRIVATE_BASE + 243) +enum set_camera_mode_Cmd { +	MODE_SMART_AUTO = 0, +	MODE_PROGRAM, +	MODE_A, +	MODE_S, +	MODE_M, +	MODE_VIDEO, +	MODE_BEST_GROUP_POSE, +	MODE_BACKGROUND_BLUR, +	MODE_HIGH_SPEED, +	MODE_LIGHT_TRAIL_SHOT, +	MODE_WATERFALL, +	MODE_SILHOUETTE, +	MODE_SUNSET, +	MODE_CLOSE_UP, +	MODE_FIREWORKS, +	MODE_CROSS_FILTER, +	MODE_BACKLIGHT, +	MODE_BLUE_SKY, +	MODE_NATURAL_GREEN, +	MODE_FOOD, +	MODE_START_FILTER, +	MODE_MOVING_SHOT, +	MODE_PANORAMA, +}; + +#define V4L2_CID_CAMERA_SHUTTER_SPEED		(V4L2_CID_PRIVATE_BASE + 244) +#define V4L2_CID_CAMERA_F_NUMBER		(V4L2_CID_PRIVATE_BASE + 245) + +#define V4L2_CID_CAMERA_IMAGE_STABILIZER       (V4L2_CID_PRIVATE_BASE + 246) +enum set_Image_Stabilizer { +	V4L2_IMAGE_STABILIZER_OFF = 0, +	V4L2_IMAGE_STABILIZER_OIS = 1, +	V4L2_IMAGE_STABILIZER_DUALIS = 2, +}; + +#define V4L2_CID_CAMERA_IS_OIS_MODE            (V4L2_CID_PRIVATE_BASE + 247) +enum set_IS_OIS_mode { +	V4L2_IS_OIS_NONE = 0, +	V4L2_IS_OIS_MOVIE = 1, +	V4L2_IS_OIS_STILL = 2, +	V4L2_IS_OIS_MULTI = 3, +	V4L2_IS_OIS_VSS = 4, +}; + +#define V4L2_CID_CAMERA_FACTORY_AE_TARGET (V4L2_CID_PRIVATE_BASE + 248) + +#define V4L2_CID_CAMERA_AV		(V4L2_CID_PRIVATE_BASE + 249) +#define V4L2_CID_CAMERA_TV		(V4L2_CID_PRIVATE_BASE + 250) +#define V4L2_CID_CAMERA_SV		(V4L2_CID_PRIVATE_BASE + 251) +#define V4L2_CID_CAMERA_EV		(V4L2_CID_PRIVATE_BASE + 252) + +#define V4L2_CID_CAMERA_SCENE_SUB_MODE		(V4L2_CID_PRIVATE_BASE + 253) + +#define V4L2_CID_CAMERA_WB_CUSTOM_X		(V4L2_CID_PRIVATE_BASE + 254) +#define V4L2_CID_CAMERA_WB_CUSTOM_Y		(V4L2_CID_PRIVATE_BASE + 255) +#define V4L2_CID_CAMERA_WB_CUSTOM_VALUE		(V4L2_CID_PRIVATE_BASE + 256) + +#define V4L2_CID_CAMERA_RED_EYE_FIX_RESULT     (V4L2_CID_PRIVATE_BASE + 257) +#define V4L2_CID_CAMERA_FACTORY_FLASH		(V4L2_CID_PRIVATE_BASE + 258) +enum set_Factory_Flash_Cmd { +	FACTORY_FLASH_STROBE_CHECK_ON = 0, +	FACTORY_FLASH_STROBE_CHECK_OFF = 1, +	FACTORY_FLASH_CHARGE = 2, +	FACTORY_FLASH_LOG = 3, +	FACTORY_FLASH_CHARGE_END_CHECK = 4, +	FACTORY_FLASH_STROBE_CHARGE_END_CHECK = 5, +	FACTORY_FLASH_WB_LOG = 6, +	FACTORY_ADJ_FLASH_WB_LOG = 7, +	FACTORY_ADJ_FLASH_WB_END_CHECK = 8, +	END_CHECK = 9, +}; + +#define V4L2_CID_CAMERA_FACTORY_WB		(V4L2_CID_PRIVATE_BASE + 259) +enum set_Factory_WB_Cmd { +	FACTORY_WB_INDOOR_RUN = 0, +	FACTORY_WB_INDOOR_END_CHECK = 1, +	FACTORY_WB_OUTDOOR_RUN = 2, +	FACTORY_WB_OUTDOOR_END_CHECK = 3, +	FACTORY_WB_LOG = 4, +}; + +#define V4L2_CID_CAMERA_FACTORY_FLASH_RANGE_X (V4L2_CID_PRIVATE_BASE + 260) +#define V4L2_CID_CAMERA_FACTORY_FLASH_RANGE_Y (V4L2_CID_PRIVATE_BASE + 261) + +#define V4L2_CID_CAMERA_FACTORY_WB_IN_RG_VALUE (V4L2_CID_PRIVATE_BASE + 262) +#define V4L2_CID_CAMERA_FACTORY_WB_IN_BG_VALUE (V4L2_CID_PRIVATE_BASE + 263) +#define V4L2_CID_CAMERA_FACTORY_WB_OUT_RG_VALUE	(V4L2_CID_PRIVATE_BASE + 264) +#define V4L2_CID_CAMERA_FACTORY_WB_OUT_BG_VALUE	(V4L2_CID_PRIVATE_BASE + 265) + +#define V4L2_CID_CAMERA_FACTORY_AFLED_RANGE_DATA_START_X \ +	(V4L2_CID_PRIVATE_BASE + 266) +#define V4L2_CID_CAMERA_FACTORY_AFLED_RANGE_DATA_END_X \ +	(V4L2_CID_PRIVATE_BASE + 267) +#define V4L2_CID_CAMERA_FACTORY_AFLED_RANGE_DATA_START_Y \ +	(V4L2_CID_PRIVATE_BASE + 268) +#define V4L2_CID_CAMERA_FACTORY_AFLED_RANGE_DATA_END_Y \ +	(V4L2_CID_PRIVATE_BASE + 269) + +#define V4L2_CID_CAMERA_FACTORY_AF_LED_TIME (V4L2_CID_PRIVATE_BASE + 270) + +#define V4L2_CID_CAMERA_FACTORY_AF_DIFF_CHECK_MIN (V4L2_CID_PRIVATE_BASE + 271) +#define V4L2_CID_CAMERA_FACTORY_AF_DIFF_CHECK_MAX (V4L2_CID_PRIVATE_BASE + 272) + +#define V4L2_CID_CAMERA_FACTORY_DEFECTPIXEL	(V4L2_CID_PRIVATE_BASE + 273) +enum set_Factory_DefectPixel_Cmd { +	FACTORY_DEFECTPIXEL_SCENARIO_6 = 0, +	FACTORY_DEFECTPIXEL_RUN, +	FACTORY_DEFECTPIXEL_END_CHECK, +	FACTORY_DEFECTPIXEL_LOG, +	FACTORY_DEFECTPIXEL_CID_1, +	FACTORY_DEFECTPIXEL_CID_2, +	FACTORY_DEFECTPIXEL_CID_3, +	FACTORY_DEFECTPIXEL_WRITE_BLACK, +	FACTORY_DEFECTPIXEL_WRITE_WHITE, +	FACTORY_DEFECTPIXEL_CID_WRITE, +	FACTORY_DEFECTPIXEL_FLASH_MERGE, +	FACTORY_DEFECTPIXEL_DOT_WRITE_CHECK, +}; + +#define V4L2_CID_CAMERA_FACTORY_DFPX_NLV_CAP (V4L2_CID_PRIVATE_BASE + 274) +#define V4L2_CID_CAMERA_FACTORY_DFPX_NLV_DR0 (V4L2_CID_PRIVATE_BASE + 275) +#define V4L2_CID_CAMERA_FACTORY_DFPX_NLV_DR1 (V4L2_CID_PRIVATE_BASE + 276) +#define V4L2_CID_CAMERA_FACTORY_DFPX_NLV_DR2 (V4L2_CID_PRIVATE_BASE + 277) +#define V4L2_CID_CAMERA_FACTORY_DFPX_NLV_DR_HS (V4L2_CID_PRIVATE_BASE + 278) + +#define V4L2_CID_CAMERA_FACTORY_AF_LED_LV_MIN (V4L2_CID_PRIVATE_BASE + 279) +#define V4L2_CID_CAMERA_FACTORY_AF_LED_LV_MAX (V4L2_CID_PRIVATE_BASE + 280) + +#define V4L2_CID_CAMERA_FACTORY_CAM_SYS_MODE (V4L2_CID_PRIVATE_BASE + 281) +enum set_Factory_Sysmode_Cmd { +	FACTORY_SYSMODE_CAPTURE = 0, +	FACTORY_SYSMODE_MONITOR = 1, +	FACTORY_SYSMODE_PARAM = 2, +}; + +#define V4L2_CID_CAMERA_FACTORY_ISP_FW_CHECK (V4L2_CID_PRIVATE_BASE + 282) +#define V4L2_CID_CAMERA_FACTORY_OIS_VER_CHECK (V4L2_CID_PRIVATE_BASE + 283) + +#define V4L2_CID_CAMERA_SMART_SCENE_DETECT    (V4L2_CID_PRIVATE_BASE+284) +enum set_smartscenedetect_mode { +	SMART_SCENE_DETECT_OFF = 0, +	SMART_SCENE_DETECT_ON = 1, +}; +#define V4L2_CID_CAMERA_SMART_MOVIE_RECORDING    (V4L2_CID_PRIVATE_BASE+285) +#define V4L2_CID_CAMERA_SMART_AUTO_S1_PUSH    (V4L2_CID_PRIVATE_BASE+286) + +#define V4L2_CID_CAMERA_FACTORY_WB_RANGE_FLASH_WRITE \ +	(V4L2_CID_PRIVATE_BASE + 287) + +#define V4L2_CID_CAMERA_FACTORY_FLASH_CHR_CHK_TM \ +	(V4L2_CID_PRIVATE_BASE + 288) + +#define V4L2_CID_CAMERA_EXIF_AV (V4L2_CID_PRIVATE_BASE + 289) +#define V4L2_CID_CAMERA_FACE_DETECT_NUMBER (V4L2_CID_PRIVATE_BASE+290) +#define V4L2_CID_CAMERA_EXIF_FL (V4L2_CID_PRIVATE_BASE + 291) + +#define V4L2_CID_CAMERA_SMART_ZOOM             (V4L2_CID_PRIVATE_BASE + 292) +enum set_Smart_Zoom { +	V4L2_SMART_ZOOM_OFF = 0, +	V4L2_SMART_ZOOM_ON = 1, +}; + +#define V4L2_CID_CAMERA_CAF             (V4L2_CID_PRIVATE_BASE + 293) + +#define V4L2_CID_CAMERA_FACTORY_LIVEVIEW_OFFSET_MARK \ +	(V4L2_CID_PRIVATE_BASE + 294) +#define V4L2_CID_CAMERA_FACTORY_LIVEVIEW_OFFSET_VAL \ +	(V4L2_CID_PRIVATE_BASE + 295) + +#define V4L2_CID_CAMERA_FACTORY_CAPTURE_GAIN_OFFSET_MARK \ +	(V4L2_CID_PRIVATE_BASE + 296) +#define V4L2_CID_CAMERA_FACTORY_CAPTURE_GAIN_OFFSET_VAL \ +	(V4L2_CID_PRIVATE_BASE + 297) + +#define V4L2_CID_CAMERA_FACTORY_WB_RANGE (V4L2_CID_PRIVATE_BASE + 298) + +#define V4L2_CID_CAMERA_LV		(V4L2_CID_PRIVATE_BASE + 299) + +#define V4L2_CID_PHYSICAL_ROTATION		(V4L2_CID_PRIVATE_BASE + 300) + +#define V4L2_CID_CAMERA_FOCUS_RANGE	(V4L2_CID_PRIVATE_BASE + 301) +enum set_fouce_range { +	V4L2_FOCUS_RANGE_AUTO = 0, +	V4L2_FOCUS_RANGE_MACRO = 1, +	V4L2_FOCUS_RANGE_AUTO_MACRO = 2, +}; + +#define V4L2_CID_CAMERA_TIME_INFO              (V4L2_CID_PRIVATE_BASE + 302) + +#define V4L2_CID_CAMERA_AF_LED                 (V4L2_CID_PRIVATE_BASE + 303) +enum set_AF_LED { +	V4L2_AF_LED_OFF = 0, +	V4L2_AF_LED_ON = 1, +}; + +#define V4L2_CID_CAMERA_LENS_TIMER             (V4L2_CID_PRIVATE_BASE + 304) + +#define V4L2_CID_CAMERA_FLASH_BATT_INFO        (V4L2_CID_PRIVATE_BASE + 305) +enum set_FLASH_BATT_INFO { +	V4L2_FLASH_NORMAL_BATT = 0, +	V4L2_FLASH_LOW_BATT = 1, +}; + +#define V4L2_CID_CAMERA_STREAM_PART2     (V4L2_CID_PRIVATE_BASE + 306) + +#define V4L2_CID_CAMERA_WIDGET_MODE_LEVEL    (V4L2_CID_PRIVATE_BASE+307) +enum v4l2_widget_mode_level { +	V4L2_WIDGET_MODE_LEVEL_1 = 1, +	V4L2_WIDGET_MODE_LEVEL_2 = 2, +	V4L2_WIDGET_MODE_LEVEL_3 = 3, +}; + +#define V4L2_CID_CAMERA_SMART_READ1            (V4L2_CID_PRIVATE_BASE + 308) +#define V4L2_CID_CAMERA_SMART_READ2            (V4L2_CID_PRIVATE_BASE + 309) + +#define V4L2_CID_CAMERA_PREVIEW_WIDTH     (V4L2_CID_PRIVATE_BASE + 310) +#define V4L2_CID_CAMERA_PREVIEW_HEIGHT     (V4L2_CID_PRIVATE_BASE + 311) +#define V4L2_CID_CAMERA_PREVIEW_SIZE     (V4L2_CID_PRIVATE_BASE + 312) + +#define V4L2_CID_CAMERA_WARNING_CONDITION	(V4L2_CID_PRIVATE_BASE + 313) +#define V4L2_CID_CAMERA_EXIF_FL_35mm		 (V4L2_CID_PRIVATE_BASE + 314) + +#define V4L2_CID_CAMERA_LENS_STATUS            (V4L2_CID_PRIVATE_BASE + 315) +#define V4L2_CID_CAMERA_HOLD_LENS            (V4L2_CID_PRIVATE_BASE + 316) + +#define V4L2_CID_CAMERA_TIMER_LED              (V4L2_CID_PRIVATE_BASE + 317) +enum set_timer_LED { +	V4L2_TIMER_LED_OFF = 0, +	V4L2_TIMER_LED_2_SEC = 2, +	V4L2_TIMER_LED_5_SEC = 5, +	V4L2_TIMER_LED_10_SEC = 10, +}; +#define V4L2_CID_CAMERA_TIMER_MODE             (V4L2_CID_PRIVATE_BASE + 318) +#define V4L2_CID_CAMERA_SAMSUNG_APP  (V4L2_CID_PRIVATE_BASE + 319) +#define V4L2_CID_CAMERA_INIT (V4L2_CID_PRIVATE_BASE + 320) +#define V4L2_CID_CAMERA_POST_INIT (V4L2_CID_PRIVATE_BASE + 321) + +/*      Pixel format FOURCC depth  Description  */ +enum v4l2_pix_format_mode { +	V4L2_PIX_FMT_MODE_PREVIEW, +	V4L2_PIX_FMT_MODE_CAPTURE, +	V4L2_PIX_FMT_MODE_HDR, +	V4L2_PIX_FMT_MODE_VT_MIRROR, +	V4L2_PIX_FMT_MODE_VT_NONMIRROR, +}; + +#define V4L2_CID_SET_CONTINUE_FPS		(V4L2_CID_PRIVATE_BASE + 500) +#define V4L2_CID_CONTINUESHOT_PROC	(V4L2_CID_PRIVATE_BASE + 501) +enum v4l2_continuecshot_proc_state { +	V4L2_INT_STATE_FRAME_SYNC = 0, +	V4L2_INT_STATE_CAPTURE_SYNC, +	V4L2_INT_STATE_CONTINUE_CANCEL, +	V4L2_INT_STATE_CONTINUE_END, +	V4L2_INT_STATE_START_CAPTURE, +}; + +#define V4L2_CID_CAMERA_GET_MODE	(V4L2_CID_PRIVATE_BASE + 502) + +#define V4L2_CID_CAMERA_FACTORY_SEND_SETTING \ +	(V4L2_CID_PRIVATE_BASE + 503) +#define V4L2_CID_CAMERA_FACTORY_SEND_VALUE \ +	(V4L2_CID_PRIVATE_BASE + 504) + +#define V4L2_CID_CAMERA_FACTORY_TILT_SCAN_MIN \ +	(V4L2_CID_PRIVATE_BASE + 505) +#define V4L2_CID_CAMERA_FACTORY_TILT_SCAN_MAX \ +	(V4L2_CID_PRIVATE_BASE + 506) +#define V4L2_CID_CAMERA_FACTORY_TILT_FIELD \ +	(V4L2_CID_PRIVATE_BASE + 507) +#define V4L2_CID_CAMERA_FACTORY_TILT_AF_RANGE_MIN \ +	(V4L2_CID_PRIVATE_BASE + 508) +#define V4L2_CID_CAMERA_FACTORY_TILT_AF_RANGE_MAX \ +	(V4L2_CID_PRIVATE_BASE + 509) +#define V4L2_CID_CAMERA_FACTORY_TILT_DIFF_RANGE_MIN \ +	(V4L2_CID_PRIVATE_BASE + 510) +#define V4L2_CID_CAMERA_FACTORY_TILT_DIFF_RANGE_MAX \ +	(V4L2_CID_PRIVATE_BASE + 511) + +#define V4L2_CID_CAMERA_FACTORY_IR_R_GAIN_MIN \ +	(V4L2_CID_PRIVATE_BASE + 512) +#define V4L2_CID_CAMERA_FACTORY_IR_R_GAIN_MAX \ +	(V4L2_CID_PRIVATE_BASE + 513) +#define V4L2_CID_CAMERA_FACTORY_IR_B_GAIN_MIN \ +	(V4L2_CID_PRIVATE_BASE + 514) +#define V4L2_CID_CAMERA_FACTORY_IR_B_GAIN_MAX \ +	(V4L2_CID_PRIVATE_BASE + 515) + +#define V4L2_CID_CAMERA_FACTORY_FLASH_MAN_CHARGE \ +	(V4L2_CID_PRIVATE_BASE + 516) +#define V4L2_CID_CAMERA_FACTORY_FLASH_MAN_EN \ +	(V4L2_CID_PRIVATE_BASE + 517) + +#define V4L2_CID_CAMERA_FACTORY_SEND_WORD_VALUE \ +	(V4L2_CID_PRIVATE_BASE + 518) +#define V4L2_CID_CAMERA_FACTORY_SEND_LONG_VALUE \ +	(V4L2_CID_PRIVATE_BASE + 519) + +#define V4L2_CID_CAMERA_FACTORY_DFPX_NLV_DR1_HD \ +	(V4L2_CID_PRIVATE_BASE + 520) + +#define V4L2_CID_BURSTSHOT_PROC	(V4L2_CID_PRIVATE_BASE + 521) +enum v4l2_burst_proc_state { +	V4L2_INT_STATE_BURST_START = 0, +	V4L2_INT_STATE_BURST_SYNC, +	V4L2_INT_STATE_BURST_STOP, +	V4L2_INT_STATE_BURST_SOUND, +	V4L2_INT_STATE_BURST_STOP_REQ, +}; + +#define V4L2_CID_CAMERA_FACTORY_TILT \ +	(V4L2_CID_PRIVATE_BASE + 522) +enum set_Factory_Tilt { +	FACTORY_TILT_ONE_SCRIPT_RUN = 0, +	FACTORY_TILT_ONE_SCRIPT_DISP1, +	FACTORY_TILT_ONE_SCRIPT_DISP2, +	FACTORY_TILT_ONE_SCRIPT_DISP3, +	FACTORY_TILT_ONE_SCRIPT_DISP4, +	FACTORY_TILT_ONE_SCRIPT_DISP5, +}; + +#define V4L2_CID_CAMERA_FACTORY_IR_CHECK \ +	(V4L2_CID_PRIVATE_BASE + 523) +enum set_Factory_IR_Check { +	FACTORY_IR_CHECK_LOG = 0, +}; + +#define V4L2_CID_BURSTSHOT_SET_POSTVIEW_SIZE  (V4L2_CID_PRIVATE_BASE + 524) + +#define V4L2_CID_BURSTSHOT_SET_SNAPSHOT_SIZE  (V4L2_CID_PRIVATE_BASE + 525) + +#define V4L2_CID_START_CAPTURE_KIND  (V4L2_CID_PRIVATE_BASE + 526) + +#define V4L2_CID_CAMERA_FACTORY_FLASH_CHARGE (V4L2_CID_PRIVATE_BASE+527) + +enum set_Start_Capture_Mode { +	START_CAPTURE_POSTVIEW = 0, +	START_CAPTURE_YUV_MAIN, +	START_CAPTURE_JPEG_MAIN, +	START_CAPTURE_THUMB, +}; + +/* ISP DEBUG CODE  */ +#define V4L2_CID_ISP_DEBUG_READ	(V4L2_CID_FIMC_IS_ISP_DBG_BASE + 1) +#define V4L2_CID_ISP_DEBUG_WRITE (V4L2_CID_FIMC_IS_ISP_DBG_BASE + 2) +#define V4L2_CID_ISP_DEBUG_READ_MEM (V4L2_CID_FIMC_IS_ISP_DBG_BASE + 3) +#define V4L2_CID_ISP_DEBUG_WRITE_MEM (V4L2_CID_FIMC_IS_ISP_DBG_BASE + 4) +#define V4L2_CID_ISP_DEBUG_READ_FILE (V4L2_CID_FIMC_IS_ISP_DBG_BASE + 5) +#define V4L2_CID_ISP_DEBUG_WRITE_FILE (V4L2_CID_FIMC_IS_ISP_DBG_BASE + 6) +#define V4L2_CID_ISP_DEBUG_LOGV (V4L2_CID_FIMC_IS_ISP_DBG_BASE + 7) + +/* 12  Y/CbCr 4:2:0 64x32 macroblocks */ +#define V4L2_PIX_FMT_NV12T    v4l2_fourcc('T', 'V', '1', '2') +#define V4L2_PIX_FMT_NV21T    v4l2_fourcc('T', 'V', '2', '1') +#define V4L2_PIX_FMT_INTERLEAVED    v4l2_fourcc('I', 'T', 'L', 'V') + +/* + *  * V4L2 extention for digital camera + *   */ +/* Strobe flash light */ +enum v4l2_strobe_control { +	/* turn off the flash light */ +	V4L2_STROBE_CONTROL_OFF		= 0, +	/* turn on the flash light */ +	V4L2_STROBE_CONTROL_ON		= 1, +	/* act guide light before splash */ +	V4L2_STROBE_CONTROL_AFGUIDE	= 2, +	/* charge the flash light */ +	V4L2_STROBE_CONTROL_CHARGE	= 3, +}; + +enum v4l2_strobe_conf { +	V4L2_STROBE_OFF			= 0,	/* Always off */ +	V4L2_STROBE_ON			= 1,	/* Always splashes */ +	/* Auto control presets */ +	V4L2_STROBE_AUTO		= 2, +	V4L2_STROBE_REDEYE_REDUCTION	= 3, +	V4L2_STROBE_SLOW_SYNC		= 4, +	V4L2_STROBE_FRONT_CURTAIN	= 5, +	V4L2_STROBE_REAR_CURTAIN	= 6, +	/* Extra manual control presets */ +	/* keep turned on until turning off */ +	V4L2_STROBE_PERMANENT		= 7, +	V4L2_STROBE_EXTERNAL		= 8, +}; + +enum v4l2_strobe_status { +	V4L2_STROBE_STATUS_OFF		= 0, +	/* while processing configurations */ +	V4L2_STROBE_STATUS_BUSY		= 1, +	V4L2_STROBE_STATUS_ERR		= 2, +	V4L2_STROBE_STATUS_CHARGING	= 3, +	V4L2_STROBE_STATUS_CHARGED	= 4, +}; + +/* capabilities field */ +/* No strobe supported */ +#define V4L2_STROBE_CAP_NONE		0x0000 +/* Always flash off mode */ +#define V4L2_STROBE_CAP_OFF		0x0001 +/* Always use flash light mode */ +#define V4L2_STROBE_CAP_ON		0x0002 +/* Flashlight works automatic */ +#define V4L2_STROBE_CAP_AUTO		0x0004 +/* Red-eye reduction */ +#define V4L2_STROBE_CAP_REDEYE		0x0008 +/* Slow sync */ +#define V4L2_STROBE_CAP_SLOWSYNC	0x0010 +/* Front curtain */ +#define V4L2_STROBE_CAP_FRONT_CURTAIN	0x0020 +/* Rear curtain */ +#define V4L2_STROBE_CAP_REAR_CURTAIN	0x0040 +/* keep turned on until turning off */ +#define V4L2_STROBE_CAP_PERMANENT	0x0080 +/* use external strobe */ +#define V4L2_STROBE_CAP_EXTERNAL	0x0100 + +/* Set mode and Get status */ +struct v4l2_strobe { +	/* off/on/charge:0/1/2 */ +	enum	v4l2_strobe_control control; +	/* supported strobe capabilities */ +	__u32	capabilities; +	enum	v4l2_strobe_conf mode; +	enum	v4l2_strobe_status status;	/* read only */ +/* default is 0 and range of value varies from each models */ +	__u32	flash_ev; +	__u32	reserved[4]; +}; + +#define VIDIOC_S_STROBE     _IOWR('V', 83, struct v4l2_strobe) +#define VIDIOC_G_STROBE     _IOR('V', 84, struct v4l2_strobe) + +/* Object recognition and collateral actions */ +enum v4l2_recog_mode { +	V4L2_RECOGNITION_MODE_OFF	= 0, +	V4L2_RECOGNITION_MODE_ON	= 1, +	V4L2_RECOGNITION_MODE_LOCK	= 2, +}; + +enum v4l2_recog_action { +	V4L2_RECOGNITION_ACTION_NONE	= 0,	/* only recognition */ +	V4L2_RECOGNITION_ACTION_BLINK	= 1,	/* Capture on blinking */ +	V4L2_RECOGNITION_ACTION_SMILE	= 2,	/* Capture on smiling */ +}; + +enum v4l2_recog_pattern { +	V4L2_RECOG_PATTERN_FACE		= 0, /* Face */ +	V4L2_RECOG_PATTERN_HUMAN	= 1, /* Human */ +	V4L2_RECOG_PATTERN_CHAR		= 2, /* Character */ +}; + +struct v4l2_recog_rect { +	enum	v4l2_recog_pattern  p;	/* detected pattern */ +	struct	v4l2_rect  o;	/* detected area */ +	__u32	reserved[4]; +}; + +struct v4l2_recog_data { +	__u8	detect_cnt;		/* detected object counter */ +	struct	v4l2_rect	o;	/* detected area */ +	__u32	reserved[4]; +}; + +struct v4l2_recognition { +	enum v4l2_recog_mode	mode; + +	/* Which pattern to detect */ +	enum v4l2_recog_pattern  pattern; + +	/* How many object to detect */ +	__u8	obj_num; + +	/* select detected object */ +	__u32	detect_idx; + +	/* read only :Get object coordination */ +	struct v4l2_recog_data	data; + +	enum v4l2_recog_action	action; +	__u32	reserved[4]; +}; + +#define VIDIOC_S_RECOGNITION	_IOWR('V', 85, struct v4l2_recognition) +#define VIDIOC_G_RECOGNITION	_IOR('V', 86, struct v4l2_recognition) + +#endif /* __LINUX_VIDEODEV2_SAMSUNG_H */ diff --git a/exynos4/hal/include/videodev2_exynos_media.h b/exynos4/hal/include/videodev2_exynos_media.h new file mode 100644 index 0000000..2768201 --- /dev/null +++ b/exynos4/hal/include/videodev2_exynos_media.h @@ -0,0 +1,225 @@ +/* + * Video for Linux Two header file for Exynos + * + * Copyright (c) 2012 Samsung Electronics Co., Ltd. + *		http://www.samsung.com + * + * This header file contains several v4l2 APIs to be proposed to v4l2 + * community and until being accepted, will be used restrictly for Exynos. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __LINUX_VIDEODEV2_EXYNOS_H +#define __LINUX_VIDEODEV2_EXYNOS_H + +/*      Pixel format          FOURCC                     depth  Description  */ + +/* two planes -- one Y, one Cr + Cb interleaved  */ +#define V4L2_PIX_FMT_YUV444_2P v4l2_fourcc('Y', 'U', '2', 'P') /* 24  Y/CbCr */ +#define V4L2_PIX_FMT_YVU444_2P v4l2_fourcc('Y', 'V', '2', 'P') /* 24  Y/CrCb */ + +/* three planes -- one Y, one Cr, one Cb */ +#define V4L2_PIX_FMT_YUV444_3P v4l2_fourcc('Y', 'U', '3', 'P') /* 24  Y/Cb/Cr */ + +/* two non contiguous planes - one Y, one Cr + Cb interleaved  */ +/* 21  Y/CrCb 4:2:0  */ +#define V4L2_PIX_FMT_NV21M    v4l2_fourcc('N', 'M', '2', '1') +/* 12  Y/CbCr 4:2:0 16x16 macroblocks */ +#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') + +/* three non contiguous planes - Y, Cb, Cr */ +/* 12  YVU420 planar */ +#define V4L2_PIX_FMT_YVU420M  v4l2_fourcc('Y', 'V', 'U', 'M') + +/* compressed formats */ +#define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */ +#define V4L2_PIX_FMT_FIMV     v4l2_fourcc('F', 'I', 'M', 'V') /* FIMV  */ +#define V4L2_PIX_FMT_FIMV1    v4l2_fourcc('F', 'I', 'M', '1') /* FIMV1 */ +#define V4L2_PIX_FMT_FIMV2    v4l2_fourcc('F', 'I', 'M', '2') /* FIMV2 */ +#define V4L2_PIX_FMT_FIMV3    v4l2_fourcc('F', 'I', 'M', '3') /* FIMV3 */ +#define V4L2_PIX_FMT_FIMV4    v4l2_fourcc('F', 'I', 'M', '4') /* FIMV4 */ +#define V4L2_PIX_FMT_VP8      v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ + +/* yuv444 of JFIF JPEG */ +#define V4L2_PIX_FMT_JPEG_444 v4l2_fourcc('J', 'P', 'G', '4') +/* yuv422 of JFIF JPEG */ +#define V4L2_PIX_FMT_JPEG_422 v4l2_fourcc('J', 'P', 'G', '2') +/* yuv420 of JFIF JPEG */ +#define V4L2_PIX_FMT_JPEG_420 v4l2_fourcc('J', 'P', 'G', '0') +/* grey of JFIF JPEG */ +#define V4L2_PIX_FMT_JPEG_GRAY v4l2_fourcc('J', 'P', 'G', 'G') + +/* + *	C O N T R O L S + */ +/* CID base for Exynos controls (USER_CLASS) */ +#define V4L2_CID_EXYNOS_BASE		(V4L2_CTRL_CLASS_USER | 0x2000) + +/* for rgb alpha function */ +#define V4L2_CID_GLOBAL_ALPHA		(V4L2_CID_EXYNOS_BASE + 1) + +/* cacheable configuration */ +#define V4L2_CID_CACHEABLE		(V4L2_CID_EXYNOS_BASE + 10) + +/* jpeg captured size */ +#define V4L2_CID_CAM_JPEG_MEMSIZE	(V4L2_CID_EXYNOS_BASE + 20) +#define V4L2_CID_CAM_JPEG_ENCODEDSIZE	(V4L2_CID_EXYNOS_BASE + 21) + +#define V4L2_CID_SET_SHAREABLE		(V4L2_CID_EXYNOS_BASE + 40) + +/* TV configuration */ +#define V4L2_CID_TV_LAYER_BLEND_ENABLE	(V4L2_CID_EXYNOS_BASE + 50) +#define V4L2_CID_TV_LAYER_BLEND_ALPHA	(V4L2_CID_EXYNOS_BASE + 51) +#define V4L2_CID_TV_PIXEL_BLEND_ENABLE	(V4L2_CID_EXYNOS_BASE + 52) +#define V4L2_CID_TV_CHROMA_ENABLE	(V4L2_CID_EXYNOS_BASE + 53) +#define V4L2_CID_TV_CHROMA_VALUE	(V4L2_CID_EXYNOS_BASE + 54) +#define V4L2_CID_TV_HPD_STATUS		(V4L2_CID_EXYNOS_BASE + 55) +#define V4L2_CID_TV_LAYER_PRIO		(V4L2_CID_EXYNOS_BASE + 56) +#define V4L2_CID_TV_SET_DVI_MODE	(V4L2_CID_EXYNOS_BASE + 57) + +/* for color space conversion equation selection */ +#define V4L2_CID_CSC_EQ_MODE		(V4L2_CID_EXYNOS_BASE + 100) +#define V4L2_CID_CSC_EQ			(V4L2_CID_EXYNOS_BASE + 101) +#define V4L2_CID_CSC_RANGE		(V4L2_CID_EXYNOS_BASE + 102) + +/* for DRM playback scenario */ +#define V4L2_CID_USE_SYSMMU		(V4L2_CID_EXYNOS_BASE + 200) +#define V4L2_CID_M2M_CTX_NUM		(V4L2_CID_EXYNOS_BASE + 201) + +/* CID base for MFC controls (MPEG_CLASS) */ +#define V4L2_CID_MPEG_MFC_BASE		(V4L2_CTRL_CLASS_MPEG | 0x2000) + +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_AVAIL		\ +					(V4L2_CID_MPEG_MFC_BASE + 1) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRGMENT_ID	\ +					(V4L2_CID_MPEG_MFC_BASE + 2) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_INFO		\ +					(V4L2_CID_MPEG_MFC_BASE + 3) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_GRID_POS	\ +					(V4L2_CID_MPEG_MFC_BASE + 4) + +#define V4L2_CID_MPEG_MFC51_VIDEO_PACKED_PB		\ +					(V4L2_CID_MPEG_MFC_BASE + 5) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TAG		\ +					(V4L2_CID_MPEG_MFC_BASE + 6) +#define V4L2_CID_MPEG_MFC51_VIDEO_CRC_ENABLE		\ +					(V4L2_CID_MPEG_MFC_BASE + 7) +#define V4L2_CID_MPEG_MFC51_VIDEO_CRC_DATA_LUMA		\ +					(V4L2_CID_MPEG_MFC_BASE + 8) +#define V4L2_CID_MPEG_MFC51_VIDEO_CRC_DATA_CHROMA	\ +					(V4L2_CID_MPEG_MFC_BASE + 9) +#define V4L2_CID_MPEG_MFC51_VIDEO_CRC_DATA_LUMA_BOT	\ +					(V4L2_CID_MPEG_MFC_BASE + 10) +#define V4L2_CID_MPEG_MFC51_VIDEO_CRC_DATA_CHROMA_BOT	\ +					(V4L2_CID_MPEG_MFC_BASE + 11) +#define V4L2_CID_MPEG_MFC51_VIDEO_CRC_GENERATED		\ +					(V4L2_CID_MPEG_MFC_BASE + 12) +#define V4L2_CID_MPEG_MFC51_VIDEO_CHECK_STATE		\ +					(V4L2_CID_MPEG_MFC_BASE + 13) +#define V4L2_CID_MPEG_MFC51_VIDEO_DISPLAY_STATUS	\ +					(V4L2_CID_MPEG_MFC_BASE + 14) + +#define V4L2_CID_MPEG_MFC51_VIDEO_LUMA_ADDR	\ +					(V4L2_CID_MPEG_MFC_BASE + 15) +#define V4L2_CID_MPEG_MFC51_VIDEO_CHROMA_ADDR	\ +					(V4L2_CID_MPEG_MFC_BASE + 16) + +#define V4L2_CID_MPEG_MFC51_VIDEO_STREAM_SIZE		\ +					(V4L2_CID_MPEG_MFC_BASE + 17) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_COUNT		\ +					(V4L2_CID_MPEG_MFC_BASE + 18) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TYPE		\ +					(V4L2_CID_MPEG_MFC_BASE + 19) +enum v4l2_mpeg_mfc51_video_frame_type { +	V4L2_MPEG_MFC51_VIDEO_FRAME_TYPE_NOT_CODED	= 0, +	V4L2_MPEG_MFC51_VIDEO_FRAME_TYPE_I_FRAME	= 1, +	V4L2_MPEG_MFC51_VIDEO_FRAME_TYPE_P_FRAME	= 2, +	V4L2_MPEG_MFC51_VIDEO_FRAME_TYPE_B_FRAME	= 3, +	V4L2_MPEG_MFC51_VIDEO_FRAME_TYPE_SKIPPED	= 4, +	V4L2_MPEG_MFC51_VIDEO_FRAME_TYPE_OTHERS		= 5, +}; + +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_INTERLACE	\ +					(V4L2_CID_MPEG_MFC_BASE + 20) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_RC_FRAME_RATE	\ +					(V4L2_CID_MPEG_MFC_BASE + 21) +#define V4L2_CID_MPEG_MFC51_VIDEO_MPEG4_VOP_TIME_RES	\ +					(V4L2_CID_MPEG_MFC_BASE + 22) +#define V4L2_CID_MPEG_MFC51_VIDEO_MPEG4_VOP_FRM_DELTA	\ +					(V4L2_CID_MPEG_MFC_BASE + 23) +#define V4L2_CID_MPEG_MFC51_VIDEO_H263_RC_FRAME_RATE	\ +					(V4L2_CID_MPEG_MFC_BASE + 24) + +#define V4L2_CID_MPEG_MFC6X_VIDEO_FRAME_DELTA		\ +					(V4L2_CID_MPEG_MFC_BASE + 25) + +#define V4L2_CID_MPEG_MFC51_VIDEO_I_PERIOD_CH	V4L2_CID_MPEG_VIDEO_GOP_SIZE +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_RATE_CH		\ +				V4L2_CID_MPEG_MFC51_VIDEO_H264_RC_FRAME_RATE +#define V4L2_CID_MPEG_MFC51_VIDEO_BIT_RATE_CH	V4L2_CID_MPEG_VIDEO_BITRATE + +/* proposed CIDs, based on 3.3-rc3 */ +#define V4L2_CID_MPEG_VIDEO_VBV_DELAY		(V4L2_CID_MPEG_MFC_BASE + 26) + +#define V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_S_B \ +	V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY + +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING		\ +					(V4L2_CID_MPEG_MFC_BASE + 27) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0		\ +					(V4L2_CID_MPEG_MFC_BASE + 28) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE	\ +					(V4L2_CID_MPEG_MFC_BASE + 29) +enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { +	V4L2_MPEG_VIDEO_H264_SEI_FP_TYPE_CHEKERBOARD	= 0, +	V4L2_MPEG_VIDEO_H264_SEI_FP_TYPE_COLUMN		= 1, +	V4L2_MPEG_VIDEO_H264_SEI_FP_TYPE_ROW		= 2, +	V4L2_MPEG_VIDEO_H264_SEI_FP_TYPE_SIDE_BY_SIDE	= 3, +	V4L2_MPEG_VIDEO_H264_SEI_FP_TYPE_TOP_BOTTOM	= 4, +	V4L2_MPEG_VIDEO_H264_SEI_FP_TYPE_TEMPORAL	= 5, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO		(V4L2_CID_MPEG_MFC_BASE + 30) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE	(V4L2_CID_MPEG_MFC_BASE + 31) +enum v4l2_mpeg_video_h264_fmo_map_type { +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES		= 0, +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES		= 1, +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER	= 2, +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT			= 3, +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN			= 4, +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN			= 5, +	V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT			= 6, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP	\ +					(V4L2_CID_MPEG_MFC_BASE + 32) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION	\ +					(V4L2_CID_MPEG_MFC_BASE + 33) +enum v4l2_mpeg_video_h264_fmo_change_dir { +	V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT	= 0, +	V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT	= 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE	\ +					(V4L2_CID_MPEG_MFC_BASE + 34) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH		\ +					(V4L2_CID_MPEG_MFC_BASE + 35) +#define V4L2_CID_MPEG_VIDEO_H264_ASO			\ +					(V4L2_CID_MPEG_MFC_BASE + 36) +#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER	\ +					(V4L2_CID_MPEG_MFC_BASE + 37) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING		\ +					(V4L2_CID_MPEG_MFC_BASE + 38) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE	\ +					(V4L2_CID_MPEG_MFC_BASE + 39) +enum v4l2_mpeg_video_h264_hierarchical_coding_type { +	V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B	= 0, +	V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P	= 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER	\ +					(V4L2_CID_MPEG_MFC_BASE + 40) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP	\ +					(V4L2_CID_MPEG_MFC_BASE + 41) +#define V4L2_CID_MPEG_VIDEO_H264_MVC_VIEW_ID		\ +					(V4L2_CID_MPEG_MFC_BASE + 42) +#endif /* __LINUX_VIDEODEV2_EXYNOS_H */ diff --git a/exynos4/hal/include/videodev2_samsung.h b/exynos4/hal/include/videodev2_samsung.h deleted file mode 100644 index 41f8338..0000000 --- a/exynos4/hal/include/videodev2_samsung.h +++ /dev/null @@ -1,1115 +0,0 @@ -/* - * Video for Linux Two header file for samsung - * - * Copyright (C) 2009, Dongsoo Nathaniel Kim<dongsoo45.kim@samsung.com> - * - * This header file contains several v4l2 APIs to be proposed to v4l2 - * community and until bein accepted, will be used restrictly in Samsung's - * camera interface driver FIMC. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Alternatively, Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - *      http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __LINUX_VIDEODEV2_SAMSUNG_H -#define __LINUX_VIDEODEV2_SAMSUNG_H - -/* Values for 'capabilities' field */ -/* Object detection device */ -#define V4L2_CAP_OBJ_RECOGNITION    0x10000000 -/* strobe control */ -#define V4L2_CAP_STROBE         0x20000000 - -#define V4L2_CID_FOCUS_MODE     (V4L2_CID_CAMERA_CLASS_BASE+17) -/* Focus Methods */ -enum v4l2_focus_mode { -    V4L2_FOCUS_MODE_AUTO        = 0, -    V4L2_FOCUS_MODE_MACRO       = 1, -    V4L2_FOCUS_MODE_MANUAL      = 2, -    V4L2_FOCUS_MODE_LASTP       = 2, -}; - -#define V4L2_CID_ZOOM_MODE      (V4L2_CID_CAMERA_CLASS_BASE+18) -/* Zoom Methods */ -enum v4l2_zoom_mode { -    V4L2_ZOOM_MODE_CONTINUOUS   = 0, -    V4L2_ZOOM_MODE_OPTICAL      = 1, -    V4L2_ZOOM_MODE_DIGITAL      = 2, -    V4L2_ZOOM_MODE_LASTP        = 2, -}; - -/* Exposure Methods */ -#define V4L2_CID_PHOTOMETRY     (V4L2_CID_CAMERA_CLASS_BASE+19) -enum v4l2_photometry_mode { -    V4L2_PHOTOMETRY_MULTISEG    = 0, /*Multi Segment*/ -    V4L2_PHOTOMETRY_CWA     = 1, /*Centre Weighted Average*/ -    V4L2_PHOTOMETRY_SPOT        = 2, -    V4L2_PHOTOMETRY_AFSPOT      = 3, /*Spot metering on focused point*/ -    V4L2_PHOTOMETRY_LASTP       = V4L2_PHOTOMETRY_AFSPOT, -}; - -/* Manual exposure control items menu type: iris, shutter, iso */ -#define V4L2_CID_CAM_APERTURE   (V4L2_CID_CAMERA_CLASS_BASE+20) -#define V4L2_CID_CAM_SHUTTER    (V4L2_CID_CAMERA_CLASS_BASE+21) -#define V4L2_CID_CAM_ISO    (V4L2_CID_CAMERA_CLASS_BASE+22) - -/* Following CIDs are menu type */ -#define V4L2_CID_SCENEMODE  (V4L2_CID_CAMERA_CLASS_BASE+23) -#define V4L2_CID_CAM_STABILIZE  (V4L2_CID_CAMERA_CLASS_BASE+24) -#define V4L2_CID_CAM_MULTISHOT  (V4L2_CID_CAMERA_CLASS_BASE+25) - -/* Control dynamic range */ -#define V4L2_CID_CAM_DR     (V4L2_CID_CAMERA_CLASS_BASE+26) - -/* White balance preset control */ -#define V4L2_CID_WHITE_BALANCE_PRESET   (V4L2_CID_CAMERA_CLASS_BASE+27) - -/* CID extensions */ -#define V4L2_CID_ROTATION       (V4L2_CID_PRIVATE_BASE + 0) -#define V4L2_CID_PADDR_Y        (V4L2_CID_PRIVATE_BASE + 1) -#define V4L2_CID_PADDR_CB       (V4L2_CID_PRIVATE_BASE + 2) -#define V4L2_CID_PADDR_CR       (V4L2_CID_PRIVATE_BASE + 3) -#define V4L2_CID_PADDR_CBCR     (V4L2_CID_PRIVATE_BASE + 4) -#define V4L2_CID_OVERLAY_AUTO       (V4L2_CID_PRIVATE_BASE + 5) -#define V4L2_CID_OVERLAY_VADDR0     (V4L2_CID_PRIVATE_BASE + 6) -#define V4L2_CID_OVERLAY_VADDR1     (V4L2_CID_PRIVATE_BASE + 7) -#define V4L2_CID_OVERLAY_VADDR2     (V4L2_CID_PRIVATE_BASE + 8) -#define V4L2_CID_OVLY_MODE      (V4L2_CID_PRIVATE_BASE + 9) -#define V4L2_CID_DST_INFO       (V4L2_CID_PRIVATE_BASE + 10) -/* UMP secure id control */ -#define V4L2_CID_GET_UMP_SECURE_ID  (V4L2_CID_PRIVATE_BASE + 11) -#define V4L2_CID_IMAGE_EFFECT_FN    (V4L2_CID_PRIVATE_BASE + 16) -#define V4L2_CID_IMAGE_EFFECT_APPLY (V4L2_CID_PRIVATE_BASE + 17) -#define V4L2_CID_IMAGE_EFFECT_CB    (V4L2_CID_PRIVATE_BASE + 18) -#define V4L2_CID_IMAGE_EFFECT_CR    (V4L2_CID_PRIVATE_BASE + 19) -#define V4L2_CID_RESERVED_MEM_BASE_ADDR (V4L2_CID_PRIVATE_BASE + 20) -#define V4L2_CID_FIMC_VERSION       (V4L2_CID_PRIVATE_BASE + 21) - -#define V4L2_CID_STREAM_PAUSE           (V4L2_CID_PRIVATE_BASE + 53) - -/* CID Extensions for camera sensor operations */ -#define V4L2_CID_CAM_PREVIEW_ONOFF      (V4L2_CID_PRIVATE_BASE + 64) -#define V4L2_CID_CAM_CAPTURE            (V4L2_CID_PRIVATE_BASE + 65) -#define V4L2_CID_CAM_JPEG_MEMSIZE       (V4L2_CID_PRIVATE_BASE + 66) - -#define V4L2_CID_CAM_DATE_INFO_YEAR             (V4L2_CID_PRIVATE_BASE + 14) -#define V4L2_CID_CAM_DATE_INFO_MONTH            (V4L2_CID_PRIVATE_BASE + 15) -#define V4L2_CID_CAM_DATE_INFO_DATE             (V4L2_CID_PRIVATE_BASE + 22) -#define V4L2_CID_CAM_SENSOR_VER                 (V4L2_CID_PRIVATE_BASE + 23) -#define V4L2_CID_CAM_FW_MINOR_VER               (V4L2_CID_PRIVATE_BASE + 24) -#define V4L2_CID_CAM_FW_MAJOR_VER               (V4L2_CID_PRIVATE_BASE + 25) -#define V4L2_CID_CAM_PRM_MINOR_VER              (V4L2_CID_PRIVATE_BASE + 26) -#define V4L2_CID_CAM_PRM_MAJOR_VER              (V4L2_CID_PRIVATE_BASE + 27) -#define V4L2_CID_CAM_FW_VER                     (V4L2_CID_PRIVATE_BASE + 28) -#define V4L2_CID_CAM_SET_FW_ADDR                (V4L2_CID_PRIVATE_BASE + 29) -#define V4L2_CID_CAM_SET_FW_SIZE                (V4L2_CID_PRIVATE_BASE + 30) -#define V4L2_CID_CAM_UPDATE_FW  (V4L2_CID_PRIVATE_BASE + 31) -#define V4L2_CID_CAM_JPEG_MAIN_SIZE     (V4L2_CID_PRIVATE_BASE + 32) -#define V4L2_CID_CAM_JPEG_MAIN_OFFSET       (V4L2_CID_PRIVATE_BASE + 33) -#define V4L2_CID_CAM_JPEG_THUMB_SIZE        (V4L2_CID_PRIVATE_BASE + 34) -#define V4L2_CID_CAM_JPEG_THUMB_OFFSET      (V4L2_CID_PRIVATE_BASE + 35) -#define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET   (V4L2_CID_PRIVATE_BASE + 36) -#define V4L2_CID_CAM_JPEG_QUALITY   (V4L2_CID_PRIVATE_BASE + 37) -#define V4L2_CID_CAM_SENSOR_MAKER   (V4L2_CID_PRIVATE_BASE + 38) -#define V4L2_CID_CAM_SENSOR_OPTICAL (V4L2_CID_PRIVATE_BASE + 39) -#define V4L2_CID_CAM_AF_VER_LOW     (V4L2_CID_PRIVATE_BASE + 40) -#define V4L2_CID_CAM_AF_VER_HIGH    (V4L2_CID_PRIVATE_BASE + 41) -#define V4L2_CID_CAM_GAMMA_RG_LOW   (V4L2_CID_PRIVATE_BASE + 42) -#define V4L2_CID_CAM_GAMMA_RG_HIGH  (V4L2_CID_PRIVATE_BASE + 43) -#define V4L2_CID_CAM_GAMMA_BG_LOW   (V4L2_CID_PRIVATE_BASE + 44) -#define V4L2_CID_CAM_GAMMA_BG_HIGH  (V4L2_CID_PRIVATE_BASE + 45) -#define V4L2_CID_CAM_DUMP_FW        (V4L2_CID_PRIVATE_BASE + 46) -#define V4L2_CID_CAM_GET_DUMP_SIZE  (V4L2_CID_PRIVATE_BASE + 47) -#define V4L2_CID_CAMERA_VT_MODE         (V4L2_CID_PRIVATE_BASE + 48) -#define V4L2_CID_CAMERA_VGA_BLUR    (V4L2_CID_PRIVATE_BASE + 49) -#define V4L2_CID_CAMERA_CAPTURE     (V4L2_CID_PRIVATE_BASE + 50) - -#define V4L2_CID_MAIN_SW_DATE_INFO_YEAR     (V4L2_CID_PRIVATE_BASE + 54) -#define V4L2_CID_MAIN_SW_DATE_INFO_MONTH    (V4L2_CID_PRIVATE_BASE + 55) -#define V4L2_CID_MAIN_SW_DATE_INFO_DATE     (V4L2_CID_PRIVATE_BASE + 56) -#define V4L2_CID_MAIN_SW_FW_MINOR_VER       (V4L2_CID_PRIVATE_BASE + 57) -#define V4L2_CID_MAIN_SW_FW_MAJOR_VER       (V4L2_CID_PRIVATE_BASE + 58) -#define V4L2_CID_MAIN_SW_PRM_MINOR_VER      (V4L2_CID_PRIVATE_BASE + 59) -#define V4L2_CID_MAIN_SW_PRM_MAJOR_VER      (V4L2_CID_PRIVATE_BASE + 60) - -/* SLIM IS control */ -#define V4L2_CID_FIMC_IS_BASE               (V4L2_CTRL_CLASS_CAMERA | 0x1000) - -#define V4L2_CID_IS_LOAD_FW                 (V4L2_CID_FIMC_IS_BASE + 10) -#define V4L2_CID_IS_INIT_PARAM              (V4L2_CID_FIMC_IS_BASE + 11) -#define V4L2_CID_IS_RESETi                  (V4L2_CID_FIMC_IS_BASE + 12) -#define V4L2_CID_IS_S_POWER                 (V4L2_CID_FIMC_IS_BASE + 13) -enum is_set_power { -    IS_POWER_OFF, -    IS_POWER_ON -}; - -#define V4L2_CID_IS_S_STREAM                (V4L2_CID_FIMC_IS_BASE + 14) -enum is_set_stream { -    IS_DISABLE_STREAM, -    IS_ENABLE_STREAM -}; - -#define V4L2_CID_IS_S_SCENARIO_MODE         (V4L2_CID_FIMC_IS_BASE + 15) -#define V4L2_CID_IS_S_FORMAT_SCENARIO       (V4L2_CID_FIMC_IS_BASE + 16) -enum scenario_mode { -    IS_MODE_PREVIEW_STILL, -    IS_MODE_PREVIEW_VIDEO, -    IS_MODE_CAPTURE_STILL, -    IS_MODE_CAPTURE_VIDEO, -    IS_MODE_MAX -}; - -/* global */ -#define V4L2_CID_IS_CAMERA_SHOT_MODE_NORMAL      (V4L2_CID_FIMC_IS_BASE + 101) -/* value : 1 : single shot , >=2 : continuous shot */ - -#define V4L2_CID_IS_CAMERA_SENSOR_NUM       (V4L2_CID_FIMC_IS_BASE + 201) - -#define V4L2_CID_IS_CAMERA_FOCUS_MODE       (V4L2_CID_FIMC_IS_BASE + 401) -enum is_focus_mode { -    IS_FOCUS_MODE_AUTO, -    IS_FOCUS_MODE_MACRO, -    IS_FOCUS_MODE_INFINITY, -    IS_FOCUS_MODE_CONTINUOUS, -    IS_FOCUS_MODE_TOUCH, -    IS_FOCUS_MODE_FACEDETECT, -    IS_FOCUS_MODE_MAX, -}; - -#define V4L2_CID_IS_CAMERA_FLASH_MODE        (V4L2_CID_FIMC_IS_BASE + 402) -enum is_flash_mode { -    IS_FLASH_MODE_OFF, -    IS_FLASH_MODE_AUTO, -    IS_FLASH_MODE_AUTO_REDEYE, -    IS_FLASH_MODE_ON, -    IS_FLASH_MODE_TORCH, -    IS_FLASH_MODE_MAX -}; - -#define V4L2_CID_IS_CAMERA_AWB_MODE        (V4L2_CID_FIMC_IS_BASE + 403) -enum is_awb_mode { -    IS_AWB_AUTO, -    IS_AWB_DAYLIGHT, -    IS_AWB_CLOUDY, -    IS_AWB_TUNGSTEN, -    IS_AWB_FLUORESCENT, -    IS_AWB_MAX -}; - -#define V4L2_CID_IS_CAMERA_IMAGE_EFFECT        (V4L2_CID_FIMC_IS_BASE + 404) -enum is_image_effect { -    IS_IMAGE_EFFECT_DISABLE, -    IS_IMAGE_EFFECT_MONOCHROME, -    IS_IMAGE_EFFECT_NEGATIVE_MONO, -    IS_IMAGE_EFFECT_NEGATIVE_COLOR, -    IS_IMAGE_EFFECT_SEPIA, -    IS_IMAGE_EFFECT_SEPIA_CB, -    IS_IMAGE_EFFECT_SEPIA_CR, -    IS_IMAGE_EFFECT_NEGATIVE, -    IS_IMAGE_EFFECT_ARTFREEZE, -    IS_IMAGE_EFFECT_EMBOSSING, -    IS_IMAGE_EFFECT_SILHOUETTE, -    IS_IMAGE_EFFECT_MAX -}; - -#define V4L2_CID_IS_CAMERA_ISO            (V4L2_CID_FIMC_IS_BASE + 405) -enum is_iso { -    IS_ISO_AUTO, -    IS_ISO_50, -    IS_ISO_100, -    IS_ISO_200, -    IS_ISO_400, -    IS_ISO_800, -    IS_ISO_1600, -    IS_ISO_MAX -}; - -#define V4L2_CID_IS_CAMERA_CONTRAST        (V4L2_CID_FIMC_IS_BASE + 406) -enum is_contrast { -    IS_CONTRAST_AUTO, -    IS_CONTRAST_MINUS_2, -    IS_CONTRAST_MINUS_1, -    IS_CONTRAST_DEFAULT, -    IS_CONTRAST_PLUS_1, -    IS_CONTRAST_PLUS_2, -    IS_CONTRAST_MAX -}; - -#define V4L2_CID_IS_CAMERA_SATURATION        (V4L2_CID_FIMC_IS_BASE + 407) -enum is_saturation { -    IS_SATURATION_MINUS_2, -    IS_SATURATION_MINUS_1, -    IS_SATURATION_DEFAULT, -    IS_SATURATION_PLUS_1, -    IS_SATURATION_PLUS_2, -    IS_SATURATION_MAX -}; - -#define V4L2_CID_IS_CAMERA_SHARPNESS        (V4L2_CID_FIMC_IS_BASE + 408) -enum is_sharpness { -    IS_SHARPNESS_MINUS_2, -    IS_SHARPNESS_MINUS_1, -    IS_SHARPNESS_DEFAULT, -    IS_SHARPNESS_PLUS_1, -    IS_SHARPNESS_PLUS_2, -    IS_SHARPNESS_MAX -}; - -#define V4L2_CID_IS_CAMERA_EXPOSURE        (V4L2_CID_FIMC_IS_BASE + 409) -enum is_exposure { -    IS_EXPOSURE_MINUS_4, -    IS_EXPOSURE_MINUS_3, -    IS_EXPOSURE_MINUS_2, -    IS_EXPOSURE_MINUS_1, -    IS_EXPOSURE_DEFAULT, -    IS_EXPOSURE_PLUS_1, -    IS_EXPOSURE_PLUS_2, -    IS_EXPOSURE_PLUS_3, -    IS_EXPOSURE_PLUS_4, -    IS_EXPOSURE_MAX -}; - -#define V4L2_CID_IS_CAMERA_BRIGHTNESS        (V4L2_CID_FIMC_IS_BASE + 410) -enum is_brightness { -    IS_BRIGHTNESS_MINUS_2, -    IS_BRIGHTNESS_MINUS_1, -    IS_BRIGHTNESS_DEFAULT, -    IS_BRIGHTNESS_PLUS_1, -    IS_BRIGHTNESS_PLUS_2, -    IS_BRIGHTNESS_MAX -}; - -#define V4L2_CID_IS_CAMERA_HUE            (V4L2_CID_FIMC_IS_BASE + 411) -enum is_hue { -    IS_HUE_MINUS_2, -    IS_HUE_MINUS_1, -    IS_HUE_DEFAULT, -    IS_HUE_PLUS_1, -    IS_HUE_PLUS_2, -    IS_HUE_MAX -}; - -#define V4L2_CID_IS_CAMERA_METERING        (V4L2_CID_FIMC_IS_BASE + 412) -enum is_metering { -    IS_METERING_CENTER, -    IS_METERING_SPOT, -    IS_METERING_MATRIX, -    IS_METERING_MAX -}; -#define V4L2_CID_IS_CAMERA_METERING_POSITION_X  (V4L2_CID_FIMC_IS_BASE + 500) -#define V4L2_CID_IS_CAMERA_METERING_POSITION_Y  (V4L2_CID_FIMC_IS_BASE + 501) -#define V4L2_CID_IS_CAMERA_METERING_WINDOW_X    (V4L2_CID_FIMC_IS_BASE + 502) -#define V4L2_CID_IS_CAMERA_METERING_WINDOW_Y    (V4L2_CID_FIMC_IS_BASE + 503) - -#define V4L2_CID_IS_CAMERA_AFC_MODE        (V4L2_CID_FIMC_IS_BASE + 413) -enum is_afc_mode { -    IS_AFC_DISABLE, -    IS_AFC_AUTO, -    IS_AFC_MANUAL_50HZ, -    IS_AFC_MANUAL_60HZ, -    IS_AFC_MAX -}; - -#define V4L2_CID_IS_FD_GET_FACE_COUNT               (V4L2_CID_FIMC_IS_BASE + 600) -#define V4L2_CID_IS_FD_GET_FACE_FRAME_NUMBER        (V4L2_CID_FIMC_IS_BASE + 601) -#define V4L2_CID_IS_FD_GET_FACE_CONFIDENCE          (V4L2_CID_FIMC_IS_BASE + 602) -#define V4L2_CID_IS_FD_GET_FACE_SMILE_LEVEL         (V4L2_CID_FIMC_IS_BASE + 603) -#define V4L2_CID_IS_FD_GET_FACE_BLINK_LEVEL         (V4L2_CID_FIMC_IS_BASE + 604) -#define V4L2_CID_IS_FD_GET_FACE_TOPLEFT_X           (V4L2_CID_FIMC_IS_BASE + 605) -#define V4L2_CID_IS_FD_GET_FACE_TOPLEFT_Y           (V4L2_CID_FIMC_IS_BASE + 606) -#define V4L2_CID_IS_FD_GET_FACE_BOTTOMRIGHT_X       (V4L2_CID_FIMC_IS_BASE + 607) -#define V4L2_CID_IS_FD_GET_FACE_BOTTOMRIGHT_Y       (V4L2_CID_FIMC_IS_BASE + 608) -#define V4L2_CID_IS_FD_GET_LEFT_EYE_TOPLEFT_X       (V4L2_CID_FIMC_IS_BASE + 609) -#define V4L2_CID_IS_FD_GET_LEFT_EYE_TOPLEFT_Y       (V4L2_CID_FIMC_IS_BASE + 610) -#define V4L2_CID_IS_FD_GET_LEFT_EYE_BOTTOMRIGHT_X   (V4L2_CID_FIMC_IS_BASE + 611) -#define V4L2_CID_IS_FD_GET_LEFT_EYE_BOTTOMRIGHT_Y   (V4L2_CID_FIMC_IS_BASE + 612) -#define V4L2_CID_IS_FD_GET_RIGHT_EYE_TOPLEFT_X      (V4L2_CID_FIMC_IS_BASE + 613) -#define V4L2_CID_IS_FD_GET_RIGHT_EYE_TOPLEFT_Y      (V4L2_CID_FIMC_IS_BASE + 614) -#define V4L2_CID_IS_FD_GET_RIGHT_EYE_BOTTOMRIGHT_X  (V4L2_CID_FIMC_IS_BASE + 615) -#define V4L2_CID_IS_FD_GET_RIGHT_EYE_BOTTOMRIGHT_Y  (V4L2_CID_FIMC_IS_BASE + 616) -#define V4L2_CID_IS_FD_GET_MOUTH_TOPLEFT_X          (V4L2_CID_FIMC_IS_BASE + 617) -#define V4L2_CID_IS_FD_GET_MOUTH_TOPLEFT_Y          (V4L2_CID_FIMC_IS_BASE + 618) -#define V4L2_CID_IS_FD_GET_MOUTH_BOTTOMRIGHT_X      (V4L2_CID_FIMC_IS_BASE + 619) -#define V4L2_CID_IS_FD_GET_MOUTH_BOTTOMRIGHT_Y      (V4L2_CID_FIMC_IS_BASE + 620) -#define V4L2_CID_IS_FD_GET_ANGLE                    (V4L2_CID_FIMC_IS_BASE + 621) -#define V4L2_CID_IS_FD_GET_NEXT                     (V4L2_CID_FIMC_IS_BASE + 622) -#define V4L2_CID_IS_FD_GET_DATA                     (V4L2_CID_FIMC_IS_BASE + 623) - -#define V4L2_CID_IS_FD_SET_MAX_FACE_NUMBER          (V4L2_CID_FIMC_IS_BASE + 650) -#define V4L2_CID_IS_FD_SET_ROLL_ANGLE               (V4L2_CID_FIMC_IS_BASE + 651) -enum is_fd_roll_angle { -    /* 0, 45, 0, -45 */ -    IS_FD_ROLL_ANGLE_BASIC = 0, -    /* 0, 30, 0, -30, 0, 45, 0, -45 */ -    IS_FD_ROLL_ANGLE_PRECISE_BASIC = 1, -    /* 0, 90, 0, -90 */ -    IS_FD_ROLL_ANGLE_SIDES = 2, -    /* 0, 90, 0, -90 0, 45, 0, -45 */ -    IS_FD_ROLL_ANGLE_PRECISE_SIDES = 3, -    /* 0, 90, 0, -90, 0, 180 */ -    IS_FD_ROLL_ANGLE_FULL = 4, -    /* 0, 90, 0, -90, 0, 180, 0, 135, 0, -135 */ -    IS_FD_ROLL_ANGLE_PRECISE_FULL = 5, -}; - -#define V4L2_CID_IS_FD_SET_YAW_ANGLE            (V4L2_CID_FIMC_IS_BASE + 652) -enum is_fd_yaw_angle { -    IS_FD_YAW_ANGLE_0    = 0, -    IS_FD_YAW_ANGLE_45    = 1, -    IS_FD_YAW_ANGLE_90    = 2, -    IS_FD_YAW_ANGLE_45_90    = 3, -}; - -#define V4L2_CID_IS_FD_SET_SMILE_MODE           (V4L2_CID_FIMC_IS_BASE + 653) -enum is_fd_smile_mode { -    IS_FD_SMILE_MODE_DISABLE    = 0, -    IS_FD_SMILE_MODE_ENABLE        = 1, -}; - -#define V4L2_CID_IS_FD_SET_BLINK_MODE           (V4L2_CID_FIMC_IS_BASE + 654) -enum is_fd_blink_mode { -    IS_FD_BLINK_MODE_DISABLE    = 0, -    IS_FD_BLINK_MODE_ENABLE        = 1, -}; - -#define V4L2_CID_IS_FD_SET_EYE_DETECT_MODE      (V4L2_CID_FIMC_IS_BASE + 655) -enum is_fd_eye_detect_mode { -    IS_FD_EYE_DETECT_DISABLE    = 0, -    IS_FD_EYE_DETECT_ENABLE        = 1, -}; - -#define V4L2_CID_IS_FD_SET_MOUTH_DETECT_MODE    (V4L2_CID_FIMC_IS_BASE + 656) -enum is_fd_mouth_detect_mode { -    IS_FD_MOUTH_DETECT_DISABLE    = 0, -    IS_FD_MOUTH_DETECT_ENABLE    = 1, -}; - -#define V4L2_CID_IS_FD_SET_ORIENTATION_MODE     (V4L2_CID_FIMC_IS_BASE + 657) -enum is_fd_orientation_mode { -    IS_FD_ORIENTATION_DISABLE    = 0, -    IS_FD_ORIENTATION_ENABLE    = 1, -}; - -#define V4L2_CID_IS_FD_SET_ORIENTATION          (V4L2_CID_FIMC_IS_BASE + 658) -#define V4L2_CID_IS_FD_SET_DATA_ADDRESS         (V4L2_CID_FIMC_IS_BASE + 659) - -#define V4L2_CID_IS_SET_ISP            (V4L2_CID_FIMC_IS_BASE + 440) -enum is_isp_bypass_mode { -    IS_ISP_BYPASS_DISABLE, -    IS_ISP_BYPASS_ENABLE, -    IS_ISP_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_DRC            (V4L2_CID_FIMC_IS_BASE + 441) -enum is_drc_bypass_mode { -    IS_DRC_BYPASS_DISABLE, -    IS_DRC_BYPASS_ENABLE, -    IS_DRC_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_FD            (V4L2_CID_FIMC_IS_BASE + 442) -enum is_fd_bypass_mode { -    IS_FD_BYPASS_DISABLE, -    IS_FD_BYPASS_ENABLE, -    IS_FD_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_ODC            (V4L2_CID_FIMC_IS_BASE + 443) -enum is_odc_bypass_mode { -    IS_ODC_BYPASS_DISABLE, -    IS_ODC_BYPASS_ENABLE, -    IS_ODC_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_DIS            (V4L2_CID_FIMC_IS_BASE + 444) -enum is_dis_bypass_mode { -    IS_DIS_BYPASS_DISABLE, -    IS_DIS_BYPASS_ENABLE, -    IS_DIS_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_3DNR            (V4L2_CID_FIMC_IS_BASE + 445) -enum is_tdnr_bypass_mode { -    IS_TDNR_BYPASS_DISABLE, -    IS_TDNR_BYPASS_ENABLE, -    IS_TDNR_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_SCALERC            (V4L2_CID_FIMC_IS_BASE + 446) -enum is_scalerc_bypass_mode { -    IS_SCALERC_BYPASS_DISABLE, -    IS_SCALERC_BYPASS_ENABLE, -    IS_SCALERC_BYPASS_MAX -}; - -#define V4L2_CID_IS_SET_SCALERP            (V4L2_CID_FIMC_IS_BASE + 446) -enum is_scalerp_bypass_mode { -    IS_SCALERP_BYPASS_DISABLE, -    IS_SCALERP_BYPASS_ENABLE, -    IS_SCALERP_BYPASS_MAX -}; - -#define V4L2_CID_IS_ROTATION_MODE        (V4L2_CID_FIMC_IS_BASE + 450) -enum is_rotation_mode { -    IS_ROTATION_0, -    IS_ROTATION_90, -    IS_ROTATION_180, -    IS_ROTATION_270, -    IS_ROTATION_MAX -}; - -#define V4L2_CID_IS_3DNR_1ST_FRAME_MODE        (V4L2_CID_FIMC_IS_BASE + 451) -enum is_tdnr_1st_frame_mode { -    IS_TDNR_1ST_FRAME_NOPROCESSING, -    IS_TDNR_1ST_FRAME_2DNR, -    IS_TDNR_MAX -}; - -#define V4L2_CID_IS_CAMERA_OBJECT_POSITION_X    (V4L2_CID_FIMC_IS_BASE + 452) -#define V4L2_CID_IS_CAMERA_OBJECT_POSITION_Y    (V4L2_CID_FIMC_IS_BASE + 453) -#define V4L2_CID_IS_CAMERA_WINDOW_SIZE_X        (V4L2_CID_FIMC_IS_BASE + 454) -#define V4L2_CID_IS_CAMERA_WINDOW_SIZE_Y        (V4L2_CID_FIMC_IS_BASE + 455) - -#define V4L2_CID_IS_CAMERA_EXIF_EXPTIME         (V4L2_CID_FIMC_IS_BASE + 456) -#define V4L2_CID_IS_CAMERA_EXIF_FLASH           (V4L2_CID_FIMC_IS_BASE + 457) -#define V4L2_CID_IS_CAMERA_EXIF_ISO             (V4L2_CID_FIMC_IS_BASE + 458) -#define V4L2_CID_IS_CAMERA_EXIF_SHUTTERSPEED    (V4L2_CID_FIMC_IS_BASE + 459) -#define V4L2_CID_IS_CAMERA_EXIF_BRIGHTNESS      (V4L2_CID_FIMC_IS_BASE + 460) - -#define V4L2_CID_IS_CAMERA_ISP_SEL_INPUT        (V4L2_CID_FIMC_IS_BASE + 461) -enum is_isp_sel_input { -    IS_ISP_INPUT_OTF, -    IS_ISP_INPUT_DMA1, -    IS_ISP_INPUT_DMA2, -    IS_ISP_INPUT_DMA12, -    IS_ISP_INPUT_MAX -}; - -#define V4L2_CID_IS_CAMERA_ISP_SEL_OUTPUT    (V4L2_CID_FIMC_IS_BASE + 462) -enum is_isp_sel_output { -    IS_ISP_OUTPUT_OTF, -    IS_ISP_OUTPUT_DMA1, -    IS_ISP_OUTPUT_DMA2, -    IS_ISP_OUTPUT_DMA12, -    IS_ISP_OUTPUT_OTF_DMA1, -    IS_ISP_OUTPUT_OTF_DMA2, -    IS_ISP_OUTPUT_OTF_DMA12, -    IS_ISP_OUTPUT_MAX -}; - -#define V4L2_CID_IS_CAMERA_DRC_SEL_INPUT    (V4L2_CID_FIMC_IS_BASE + 463) -enum is_drc_sel_input { -    IS_DRC_INPUT_OTF, -    IS_DRC_INPUT_DMA, -    IS_DRC_INPUT_MAX -}; - -#define V4L2_CID_IS_CAMERA_FD_SEL_INPUT        (V4L2_CID_FIMC_IS_BASE + 464) -enum is_fd_sel_input { -    IS_FD_INPUT_OTF, -    IS_FD_INPUT_DMA, -    IS_FD_INPUT_MAX -}; - -#define V4L2_CID_IS_CAMERA_INIT_WIDTH        (V4L2_CID_FIMC_IS_BASE + 465) -#define V4L2_CID_IS_CAMERA_INIT_HEIGHT       (V4L2_CID_FIMC_IS_BASE + 466) - -#define V4L2_CID_IS_CMD_ISP            (V4L2_CID_FIMC_IS_BASE + 467) -enum is_isp_cmd_mode { -    IS_ISP_COMMAND_STOP, -    IS_ISP_COMMAND_START, -    IS_ISP_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_DRC            (V4L2_CID_FIMC_IS_BASE + 468) -enum is_drc_cmd_mode { -    IS_DRC_COMMAND_STOP, -    IS_DRC_COMMAND_START, -    IS_DRC_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_FD            (V4L2_CID_FIMC_IS_BASE + 469) -enum is_fd_cmd_mode { -    IS_FD_COMMAND_STOP, -    IS_FD_COMMAND_START, -    IS_FD_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_ODC            (V4L2_CID_FIMC_IS_BASE + 470) -enum is_odc_cmd_mode { -    IS_ODC_COMMAND_STOP, -    IS_ODC_COMMAND_START, -    IS_ODC_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_DIS            (V4L2_CID_FIMC_IS_BASE + 471) -enum is_dis_cmd_mode { -    IS_DIS_COMMAND_STOP, -    IS_DIS_COMMAND_START, -    IS_DIS_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_TDNR           (V4L2_CID_FIMC_IS_BASE + 472) -enum is_tdnr_cmd_mode { -    IS_TDNR_COMMAND_STOP, -    IS_TDNR_COMMAND_START, -    IS_TDNR_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_SCALERC        (V4L2_CID_FIMC_IS_BASE + 473) -enum is_scalerc_cmd_mode { -    IS_SCALERC_COMMAND_STOP, -    IS_SCALERC_COMMAND_START, -    IS_SCALERC_COMMAND_MAX -}; - -#define V4L2_CID_IS_CMD_SCALERP        (V4L2_CID_FIMC_IS_BASE + 474) -enum is_scalerp_cmd_mode { -    IS_SCALERP_COMMAND_STOP, -    IS_SCALERP_COMMAND_START, -    IS_SCALERP_COMMAND_MAX -}; - -#define V4L2_CID_IS_GET_SENSOR_OFFSET_X        (V4L2_CID_FIMC_IS_BASE + 480) -#define V4L2_CID_IS_GET_SENSOR_OFFSET_Y        (V4L2_CID_FIMC_IS_BASE + 481) -#define V4L2_CID_IS_GET_SENSOR_WIDTH           (V4L2_CID_FIMC_IS_BASE + 482) -#define V4L2_CID_IS_GET_SENSOR_HEIGHT          (V4L2_CID_FIMC_IS_BASE + 483) - -#define V4L2_CID_IS_GET_FRAME_VALID            (V4L2_CID_FIMC_IS_BASE + 484) -#define V4L2_CID_IS_SET_FRAME_VALID            (V4L2_CID_FIMC_IS_BASE + 485) -#define V4L2_CID_IS_GET_FRAME_BADMARK          (V4L2_CID_FIMC_IS_BASE + 486) -#define V4L2_CID_IS_SET_FRAME_BADMARK          (V4L2_CID_FIMC_IS_BASE + 487) -#define V4L2_CID_IS_GET_FRAME_CAPTURED         (V4L2_CID_FIMC_IS_BASE + 488) -#define V4L2_CID_IS_SET_FRAME_CAPTURED         (V4L2_CID_FIMC_IS_BASE + 489) -#define V4L2_CID_IS_SET_FRAME_NUMBER           (V4L2_CID_FIMC_IS_BASE + 490) -#define V4L2_CID_IS_GET_FRAME_NUMBER           (V4L2_CID_FIMC_IS_BASE + 491) -#define V4L2_CID_IS_CLEAR_FRAME_NUMBER         (V4L2_CID_FIMC_IS_BASE + 492) -#define V4L2_CID_IS_GET_LOSTED_FRAME_NUMBER    (V4L2_CID_FIMC_IS_BASE + 493) -#define V4L2_CID_IS_ISP_DMA_BUFFER_NUM         (V4L2_CID_FIMC_IS_BASE + 494) -#define V4L2_CID_IS_ISP_DMA_BUFFER_ADDRESS     (V4L2_CID_FIMC_IS_BASE + 495) - -#define V4L2_CID_IS_ZOOM_STATE                 (V4L2_CID_FIMC_IS_BASE + 660) -#define V4L2_CID_IS_ZOOM_MAX_LEVEL             (V4L2_CID_FIMC_IS_BASE + 661) -#define V4L2_CID_IS_ZOOM                       (V4L2_CID_FIMC_IS_BASE + 662) -#define V4L2_CID_IS_FW_DEBUG_REGION_ADDR       (V4L2_CID_FIMC_IS_BASE + 663) - -enum v4l2_blur { -    BLUR_LEVEL_0 = 0, -    BLUR_LEVEL_1, -    BLUR_LEVEL_2, -    BLUR_LEVEL_3, -    BLUR_LEVEL_MAX, -}; - -#if 1 -#define V4L2_CID_CAMERA_SCENE_MODE      (V4L2_CID_PRIVATE_BASE+70) -enum v4l2_scene_mode { -    SCENE_MODE_BASE, -    SCENE_MODE_NONE, -    SCENE_MODE_PORTRAIT, -    SCENE_MODE_NIGHTSHOT, -    SCENE_MODE_BACK_LIGHT, -    SCENE_MODE_LANDSCAPE, -    SCENE_MODE_SPORTS, -    SCENE_MODE_PARTY_INDOOR, -    SCENE_MODE_BEACH_SNOW, -    SCENE_MODE_SUNSET, -    SCENE_MODE_DUST_DAWN, -    SCENE_MODE_FALL_COLOR, -    SCENE_MODE_FIREWORKS, -    SCENE_MODE_TEXT, -    SCENE_MODE_CANDLE_LIGHT, -    SCENE_MODE_MAX, -}; - -#define V4L2_CID_CAMERA_FLASH_MODE      (V4L2_CID_PRIVATE_BASE+71) -enum v4l2_flash_mode { -    FLASH_MODE_BASE, -    FLASH_MODE_OFF, -    FLASH_MODE_AUTO, -    FLASH_MODE_ON, -    FLASH_MODE_TORCH, -    FLASH_MODE_MAX, -}; - -#define V4L2_CID_CAMERA_BRIGHTNESS      (V4L2_CID_PRIVATE_BASE+72) -enum v4l2_ev_mode { -    EV_MINUS_4  = -4, -    EV_MINUS_3  = -3, -    EV_MINUS_2  = -2, -    EV_MINUS_1  = -1, -    EV_DEFAULT  = 0, -    EV_PLUS_1   = 1, -    EV_PLUS_2   = 2, -    EV_PLUS_3   = 3, -    EV_PLUS_4   = 4, -    EV_MAX, -}; - -#define V4L2_CID_CAMERA_WHITE_BALANCE   (V4L2_CID_PRIVATE_BASE+73) -enum v4l2_wb_mode { -    WHITE_BALANCE_BASE = 0, -    WHITE_BALANCE_AUTO, -    WHITE_BALANCE_SUNNY, -    WHITE_BALANCE_CLOUDY, -    WHITE_BALANCE_TUNGSTEN, -    WHITE_BALANCE_FLUORESCENT, -    WHITE_BALANCE_MAX, -}; - -#define V4L2_CID_CAMERA_EFFECT          (V4L2_CID_PRIVATE_BASE+74) -enum v4l2_effect_mode { -    IMAGE_EFFECT_BASE = 0, -    IMAGE_EFFECT_NONE, -    IMAGE_EFFECT_BNW, -    IMAGE_EFFECT_SEPIA, -    IMAGE_EFFECT_AQUA, -    IMAGE_EFFECT_ANTIQUE, -    IMAGE_EFFECT_NEGATIVE, -    IMAGE_EFFECT_SHARPEN, -    IMAGE_EFFECT_MAX, -}; - -#define V4L2_CID_CAMERA_ISO             (V4L2_CID_PRIVATE_BASE+75) -enum v4l2_iso_mode { -    ISO_AUTO = 0, -    ISO_50, -    ISO_100, -    ISO_200, -    ISO_400, -    ISO_800, -    ISO_1600, -    ISO_SPORTS, -    ISO_NIGHT, -    ISO_MOVIE, -    ISO_MAX, -}; - -#define V4L2_CID_CAMERA_METERING            (V4L2_CID_PRIVATE_BASE+76) -enum v4l2_metering_mode { -    METERING_BASE = 0, -    METERING_MATRIX, -    METERING_CENTER, -    METERING_SPOT, -    METERING_MAX, -}; - -#define V4L2_CID_CAMERA_CONTRAST            (V4L2_CID_PRIVATE_BASE+77) -enum v4l2_contrast_mode { -    CONTRAST_MINUS_2 = 0, -    CONTRAST_MINUS_1, -    CONTRAST_DEFAULT, -    CONTRAST_PLUS_1, -    CONTRAST_PLUS_2, -    CONTRAST_MAX, -}; - -#define V4L2_CID_CAMERA_SATURATION      (V4L2_CID_PRIVATE_BASE+78) -enum v4l2_saturation_mode { -    SATURATION_MINUS_2 = 0, -    SATURATION_MINUS_1, -    SATURATION_DEFAULT, -    SATURATION_PLUS_1, -    SATURATION_PLUS_2, -    SATURATION_MAX, -}; - -#define V4L2_CID_CAMERA_SHARPNESS       (V4L2_CID_PRIVATE_BASE+79) -enum v4l2_sharpness_mode { -    SHARPNESS_MINUS_2 = 0, -    SHARPNESS_MINUS_1, -    SHARPNESS_DEFAULT, -    SHARPNESS_PLUS_1, -    SHARPNESS_PLUS_2, -    SHARPNESS_MAX, -}; - -#define V4L2_CID_CAMERA_WDR             (V4L2_CID_PRIVATE_BASE+80) -enum v4l2_wdr_mode { -    WDR_OFF, -    WDR_ON, -    WDR_MAX, -}; - -#define V4L2_CID_CAMERA_ANTI_SHAKE      (V4L2_CID_PRIVATE_BASE+81) -enum v4l2_anti_shake_mode { -    ANTI_SHAKE_OFF, -    ANTI_SHAKE_STILL_ON, -    ANTI_SHAKE_MOVIE_ON, -    ANTI_SHAKE_MAX, -}; - -#define V4L2_CID_CAMERA_TOUCH_AF_START_STOP     (V4L2_CID_PRIVATE_BASE+82) -enum v4l2_touch_af { -    TOUCH_AF_STOP = 0, -    TOUCH_AF_START, -    TOUCH_AF_MAX, -}; - -#define V4L2_CID_CAMERA_SMART_AUTO      (V4L2_CID_PRIVATE_BASE+83) -enum v4l2_smart_auto { -    SMART_AUTO_OFF = 0, -    SMART_AUTO_ON, -    SMART_AUTO_MAX, -}; - -#define V4L2_CID_CAMERA_VINTAGE_MODE        (V4L2_CID_PRIVATE_BASE+84) -enum v4l2_vintage_mode { -    VINTAGE_MODE_BASE, -    VINTAGE_MODE_OFF, -    VINTAGE_MODE_NORMAL, -    VINTAGE_MODE_WARM, -    VINTAGE_MODE_COOL, -    VINTAGE_MODE_BNW, -    VINTAGE_MODE_MAX, -}; - -#define V4L2_CID_CAMERA_JPEG_QUALITY        (V4L2_CID_PRIVATE_BASE+85) -#define V4L2_CID_CAMERA_GPS_LATITUDE        (V4L2_CID_CAMERA_CLASS_BASE + 30)//(V4L2_CID_PRIVATE_BASE+86) -#define V4L2_CID_CAMERA_GPS_LONGITUDE   (V4L2_CID_CAMERA_CLASS_BASE + 31)//(V4L2_CID_PRIVATE_BASE+87) -#define V4L2_CID_CAMERA_GPS_TIMESTAMP   (V4L2_CID_CAMERA_CLASS_BASE + 32)//(V4L2_CID_PRIVATE_BASE+88) -#define V4L2_CID_CAMERA_GPS_ALTITUDE        (V4L2_CID_CAMERA_CLASS_BASE + 33)//(V4L2_CID_PRIVATE_BASE+89) -#define V4L2_CID_CAMERA_EXIF_TIME_INFO  (V4L2_CID_CAMERA_CLASS_BASE + 34) -#define V4L2_CID_CAMERA_GPS_PROCESSINGMETHOD                     (V4L2_CID_CAMERA_CLASS_BASE+35) -#define V4L2_CID_CAMERA_ZOOM                (V4L2_CID_PRIVATE_BASE+90) -enum v4l2_zoom_level { -    ZOOM_LEVEL_0 = 0, -    ZOOM_LEVEL_1, -    ZOOM_LEVEL_2, -    ZOOM_LEVEL_3, -    ZOOM_LEVEL_4, -    ZOOM_LEVEL_5, -    ZOOM_LEVEL_6, -    ZOOM_LEVEL_7, -    ZOOM_LEVEL_8, -    ZOOM_LEVEL_9, -    ZOOM_LEVEL_10, -    ZOOM_LEVEL_11, -    ZOOM_LEVEL_12, -    ZOOM_LEVEL_MAX = 31, -}; - -#define V4L2_CID_CAMERA_FACE_DETECTION      (V4L2_CID_PRIVATE_BASE+91) -enum v4l2_face_detection { -    FACE_DETECTION_OFF = 0, -    FACE_DETECTION_ON, -    FACE_DETECTION_NOLINE, -    FACE_DETECTION_ON_BEAUTY, -    FACE_DETECTION_MAX, -}; - -#define V4L2_CID_CAMERA_SMART_AUTO_STATUS       (V4L2_CID_PRIVATE_BASE+92) -enum v4l2_smart_auto_status { -    SMART_AUTO_STATUS_AUTO = 0, -    SMART_AUTO_STATUS_LANDSCAPE, -    SMART_AUTO_STATUS_PORTRAIT, -    SMART_AUTO_STATUS_MACRO, -    SMART_AUTO_STATUS_NIGHT, -    SMART_AUTO_STATUS_PORTRAIT_NIGHT, -    SMART_AUTO_STATUS_BACKLIT, -    SMART_AUTO_STATUS_PORTRAIT_BACKLIT, -    SMART_AUTO_STATUS_ANTISHAKE, -    SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE, -    SMART_AUTO_STATUS_MAX, -}; - -#define V4L2_CID_CAMERA_SET_AUTO_FOCUS      (V4L2_CID_PRIVATE_BASE+93) -enum v4l2_auto_focus { -    AUTO_FOCUS_OFF = 0, -    AUTO_FOCUS_ON, -    AUTO_FOCUS_MAX, -}; - -#define V4L2_CID_CAMERA_BEAUTY_SHOT     (V4L2_CID_PRIVATE_BASE+94) -enum v4l2_beauty_shot { -    BEAUTY_SHOT_OFF = 0, -    BEAUTY_SHOT_ON, -    BEAUTY_SHOT_MAX, -}; - -#define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK       (V4L2_CID_PRIVATE_BASE+95) -enum v4l2_ae_awb_lockunlock { -    AE_UNLOCK_AWB_UNLOCK = 0, -    AE_LOCK_AWB_UNLOCK, -    AE_UNLOCK_AWB_LOCK, -    AE_LOCK_AWB_LOCK, -    AE_AWB_MAX -}; - -#define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK   (V4L2_CID_PRIVATE_BASE+96) -enum v4l2_face_lock { -    FACE_LOCK_OFF = 0, -    FACE_LOCK_ON, -    FIRST_FACE_TRACKING, -    FACE_LOCK_MAX, -}; - -#define V4L2_CID_CAMERA_OBJECT_POSITION_X   (V4L2_CID_PRIVATE_BASE+97) -#define V4L2_CID_CAMERA_OBJECT_POSITION_Y   (V4L2_CID_PRIVATE_BASE+98) -#define V4L2_CID_CAMERA_FOCUS_MODE      (V4L2_CID_PRIVATE_BASE+99) -enum v4l2_focusmode { -    FOCUS_MODE_AUTO = 0, -    FOCUS_MODE_MACRO, -    FOCUS_MODE_FACEDETECT, -    FOCUS_MODE_INFINITY, -    FOCUS_MODE_CONTINOUS, -    FOCUS_MODE_TOUCH, -    FOCUS_MODE_MAX, -    FOCUS_MODE_DEFAULT = (1 << 8), -}; - -#define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS (V4L2_CID_PRIVATE_BASE+100) -enum v4l2_obj_tracking_status { -    OBJECT_TRACKING_STATUS_BASE, -    OBJECT_TRACKING_STATUS_PROGRESSING, -    OBJECT_TRACKING_STATUS_SUCCESS, -    OBJECT_TRACKING_STATUS_FAIL, -    OBJECT_TRACKING_STATUS_MISSING, -    OBJECT_TRACKING_STATUS_MAX, -}; - -#define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP (V4L2_CID_PRIVATE_BASE+101) -enum v4l2_ot_start_stop { -    OT_STOP = 0, -    OT_START, -    OT_MAX, -}; - -#define V4L2_CID_CAMERA_CAF_START_STOP  (V4L2_CID_PRIVATE_BASE+102) -enum v4l2_caf_start_stop { -    CAF_STOP = 0, -    CAF_START, -    CAF_MAX, -}; - -#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT           (V4L2_CID_PRIVATE_BASE+103) -#define V4L2_CID_CAMERA_FRAME_RATE          (V4L2_CID_PRIVATE_BASE+104) -enum v4l2_frame_rate { -    FRAME_RATE_AUTO = 0, -    FRAME_RATE_7 = 7, -    FRAME_RATE_15 = 15, -    FRAME_RATE_30 = 30, -    FRAME_RATE_60 = 60, -    FRAME_RATE_120 = 120, -    FRAME_RATE_MAX -}; - -#define V4L2_CID_CAMERA_ANTI_BANDING                    (V4L2_CID_PRIVATE_BASE+105) -enum v4l2_anti_banding { -    ANTI_BANDING_AUTO = 0, -    ANTI_BANDING_50HZ = 1, -    ANTI_BANDING_60HZ = 2, -    ANTI_BANDING_OFF = 3, -}; - -#define V4L2_CID_CAMERA_SET_GAMMA   (V4L2_CID_PRIVATE_BASE+106) -enum v4l2_gamma_mode { -    GAMMA_OFF = 0, -    GAMMA_ON = 1, -    GAMMA_MAX, -}; - -#define V4L2_CID_CAMERA_SET_SLOW_AE (V4L2_CID_PRIVATE_BASE+107) -enum v4l2_slow_ae_mode { -    SLOW_AE_OFF, -    SLOW_AE_ON, -    SLOW_AE_MAX, -}; - -#define V4L2_CID_CAMERA_BATCH_REFLECTION                    (V4L2_CID_PRIVATE_BASE+108) -#define V4L2_CID_CAMERA_EXIF_ORIENTATION                    (V4L2_CID_PRIVATE_BASE+109) - -#define V4L2_CID_CAMERA_RESET                               (V4L2_CID_PRIVATE_BASE+111) //s1_camera [ Defense process by ESD input ] -#define V4L2_CID_CAMERA_CHECK_DATALINE                      (V4L2_CID_PRIVATE_BASE+112) -#define V4L2_CID_CAMERA_CHECK_DATALINE_STOP                 (V4L2_CID_PRIVATE_BASE+113) - -#endif - -#if defined(CONFIG_ARIES_NTT) // Modify NTTS1 -#define V4L2_CID_CAMERA_AE_AWB_DISABLE_LOCK                 (V4L2_CID_PRIVATE_BASE+114) -#endif -#define V4L2_CID_CAMERA_THUMBNAIL_NULL                                  (V4L2_CID_PRIVATE_BASE+115) -#define V4L2_CID_CAMERA_SENSOR_MODE                 (V4L2_CID_PRIVATE_BASE+116) - -#define V4L2_CID_CAMERA_EXIF_EXPTIME                (V4L2_CID_PRIVATE_BASE+117) -#define V4L2_CID_CAMERA_EXIF_FLASH                  (V4L2_CID_PRIVATE_BASE+118) -#define V4L2_CID_CAMERA_EXIF_ISO                    (V4L2_CID_PRIVATE_BASE+119) -#define V4L2_CID_CAMERA_EXIF_TV                     (V4L2_CID_PRIVATE_BASE+120) -#define V4L2_CID_CAMERA_EXIF_BV                     (V4L2_CID_PRIVATE_BASE+121) -#define V4L2_CID_CAMERA_EXIF_EBV                    (V4L2_CID_PRIVATE_BASE+122) - -#define V4L2_CID_CAMERA_BUSFREQ_LOCK                (V4L2_CID_PRIVATE_BASE+125) -#define V4L2_CID_CAMERA_BUSFREQ_UNLOCK              (V4L2_CID_PRIVATE_BASE+126) - -/*      Pixel format FOURCC depth  Description  */ -/* 12  Y/CbCr 4:2:0 64x32 macroblocks */ -#define V4L2_PIX_FMT_NV12T    v4l2_fourcc('T', 'V', '1', '2') - -/* - *  * V4L2 extention for digital camera - *   */ -/* Strobe flash light */ -enum v4l2_strobe_control { -    /* turn off the flash light */ -    V4L2_STROBE_CONTROL_OFF     = 0, -    /* turn on the flash light */ -    V4L2_STROBE_CONTROL_ON      = 1, -    /* act guide light before splash */ -    V4L2_STROBE_CONTROL_AFGUIDE = 2, -    /* charge the flash light */ -    V4L2_STROBE_CONTROL_CHARGE  = 3, -}; - -enum v4l2_strobe_conf { -    V4L2_STROBE_OFF         = 0,    /* Always off */ -    V4L2_STROBE_ON          = 1,    /* Always splashes */ -    /* Auto control presets */ -    V4L2_STROBE_AUTO        = 2, -    V4L2_STROBE_REDEYE_REDUCTION    = 3, -    V4L2_STROBE_SLOW_SYNC       = 4, -    V4L2_STROBE_FRONT_CURTAIN   = 5, -    V4L2_STROBE_REAR_CURTAIN    = 6, -    /* Extra manual control presets */ -    /* keep turned on until turning off */ -    V4L2_STROBE_PERMANENT       = 7, -    V4L2_STROBE_EXTERNAL        = 8, -}; - -enum v4l2_strobe_status { -    V4L2_STROBE_STATUS_OFF      = 0, -    /* while processing configurations */ -    V4L2_STROBE_STATUS_BUSY     = 1, -    V4L2_STROBE_STATUS_ERR      = 2, -    V4L2_STROBE_STATUS_CHARGING = 3, -    V4L2_STROBE_STATUS_CHARGED  = 4, -}; - -/* capabilities field */ -/* No strobe supported */ -#define V4L2_STROBE_CAP_NONE        0x0000 -/* Always flash off mode */ -#define V4L2_STROBE_CAP_OFF     0x0001 -/* Always use flash light mode */ -#define V4L2_STROBE_CAP_ON      0x0002 -/* Flashlight works automatic */ -#define V4L2_STROBE_CAP_AUTO        0x0004 -/* Red-eye reduction */ -#define V4L2_STROBE_CAP_REDEYE      0x0008 -/* Slow sync */ -#define V4L2_STROBE_CAP_SLOWSYNC    0x0010 -/* Front curtain */ -#define V4L2_STROBE_CAP_FRONT_CURTAIN   0x0020 -/* Rear curtain */ -#define V4L2_STROBE_CAP_REAR_CURTAIN    0x0040 -/* keep turned on until turning off */ -#define V4L2_STROBE_CAP_PERMANENT   0x0080 -/* use external strobe */ -#define V4L2_STROBE_CAP_EXTERNAL    0x0100 - -/* Set mode and Get status */ -struct v4l2_strobe { -    /* off/on/charge:0/1/2 */ -    enum    v4l2_strobe_control control; -    /* supported strobe capabilities */ -    __u32   capabilities; -    enum    v4l2_strobe_conf mode; -    enum    v4l2_strobe_status status;  /* read only */ -    /* default is 0 and range of value varies from each models */ -    __u32   flash_ev; -    __u32   reserved[4]; -}; - -#define VIDIOC_S_STROBE     _IOWR('V', 83, struct v4l2_strobe) -#define VIDIOC_G_STROBE     _IOR('V', 84, struct v4l2_strobe) - -/* Object recognition and collateral actions */ -enum v4l2_recog_mode { -    V4L2_RECOGNITION_MODE_OFF   = 0, -    V4L2_RECOGNITION_MODE_ON    = 1, -    V4L2_RECOGNITION_MODE_LOCK  = 2, -}; - -enum v4l2_recog_action { -    V4L2_RECOGNITION_ACTION_NONE    = 0,    /* only recognition */ -    V4L2_RECOGNITION_ACTION_BLINK   = 1,    /* Capture on blinking */ -    V4L2_RECOGNITION_ACTION_SMILE   = 2,    /* Capture on smiling */ -}; - -enum v4l2_recog_pattern { -    V4L2_RECOG_PATTERN_FACE     = 0, /* Face */ -    V4L2_RECOG_PATTERN_HUMAN    = 1, /* Human */ -    V4L2_RECOG_PATTERN_CHAR     = 2, /* Character */ -}; - -struct v4l2_recog_rect { -    enum    v4l2_recog_pattern  p;  /* detected pattern */ -    struct  v4l2_rect  o;   /* detected area */ -    __u32   reserved[4]; -}; - -struct v4l2_recog_data { -    __u8    detect_cnt;     /* detected object counter */ -    struct  v4l2_rect   o;  /* detected area */ -    __u32   reserved[4]; -}; - -struct v4l2_recognition { -    enum v4l2_recog_mode    mode; - -    /* Which pattern to detect */ -    enum v4l2_recog_pattern  pattern; - -    /* How many object to detect */ -    __u8    obj_num; - -    /* select detected object */ -    __u32   detect_idx; - -    /* read only :Get object coordination */ -    struct v4l2_recog_data  data; - -    enum v4l2_recog_action  action; -    __u32   reserved[4]; -}; - -#define VIDIOC_S_RECOGNITION    _IOWR('V', 85, struct v4l2_recognition) -#define VIDIOC_G_RECOGNITION    _IOR('V', 86, struct v4l2_recognition) - -/* We use this struct as the v4l2_streamparm raw_data for - * VIDIOC_G_PARM and VIDIOC_S_PARM - */ -struct sec_cam_parm { -    struct v4l2_captureparm capture; -    int contrast; -    int effects; -    int brightness; -    int exposure; -    int flash_mode; -    int focus_mode; -    int aeawb_mode; -    int iso; -    int metering; -    int saturation; -    int scene_mode; -    int sharpness; -    int hue; -    int white_balance; -    int anti_banding; -}; - -#endif /* __LINUX_VIDEODEV2_SAMSUNG_H */ diff --git a/exynos4/hal/libcamera/SecCamera.h b/exynos4/hal/libcamera/SecCamera.h index fc30fc4..21bd475 100644 --- a/exynos4/hal/libcamera/SecCamera.h +++ b/exynos4/hal/libcamera/SecCamera.h @@ -36,7 +36,8 @@  #include <utils/RefBase.h>  #include <hardware/camera.h>  #include <videodev2.h> -#include <videodev2_samsung.h> +#include <videodev2_exynos_camera.h> +#include <videodev2_exynos_media.h>  #include "sec_utils_v4l2.h"  #include "SecBuffer.h"  | 
