diff options
Diffstat (limited to 'include/linux/videodev2.h')
| -rw-r--r-- | include/linux/videodev2.h | 79 | 
1 files changed, 44 insertions, 35 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 2039c5d3292..7a147c8299a 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -64,6 +64,7 @@  #include <linux/compiler.h>  #include <linux/ioctl.h>  #include <linux/types.h> +#include <linux/v4l2-common.h>  /*   * Common stuff for both V4L1 and V4L2 @@ -273,6 +274,10 @@ struct v4l2_capability {  #define V4L2_CAP_VIDEO_CAPTURE_MPLANE	0x00001000  /* Is a video output device that supports multiplanar formats */  #define V4L2_CAP_VIDEO_OUTPUT_MPLANE	0x00002000 +/* Is a video mem-to-mem device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_M2M_MPLANE	0x00004000 +/* Is a video mem-to-mem device */ +#define V4L2_CAP_VIDEO_M2M		0x00008000  #define V4L2_CAP_TUNER			0x00010000  /* has a tuner */  #define V4L2_CAP_AUDIO			0x00020000  /* has audio support */ @@ -657,7 +662,7 @@ struct v4l2_buffer {  		struct v4l2_plane *planes;  	} m;  	__u32			length; -	__u32			input; +	__u32			reserved2;  	__u32			reserved;  }; @@ -671,7 +676,6 @@ struct v4l2_buffer {  /* Buffer is ready, but the data contained within is corrupted. */  #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 @@ -761,32 +765,12 @@ 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	0x0000 -/* Default cropping area */ -#define V4L2_SEL_TGT_CROP_DEFAULT	0x0001 -/* Cropping bounds */ -#define V4L2_SEL_TGT_CROP_BOUNDS	0x0002 -/* Current composing area */ -#define V4L2_SEL_TGT_COMPOSE_ACTIVE	0x0100 -/* Default composing area */ -#define V4L2_SEL_TGT_COMPOSE_DEFAULT	0x0101 -/* Composing bounds */ -#define V4L2_SEL_TGT_COMPOSE_BOUNDS	0x0102 -/* Current composing area plus all padding pixels */ -#define V4L2_SEL_TGT_COMPOSE_PADDED	0x0103 -  /**   * 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 + * @target:	Selection target, used to choose one of possible rectangles; + *		defined in v4l2-common.h; V4L2_SEL_TGT_* . + * @flags:	constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.   * @r:		coordinates of selection window   * @reserved:	for future use, rounds structure size to 64 bytes, set to zero   * @@ -2039,6 +2023,8 @@ struct v4l2_modulator {  /*  Flags for the 'capability' field */  #define V4L2_TUNER_CAP_LOW		0x0001  #define V4L2_TUNER_CAP_NORM		0x0002 +#define V4L2_TUNER_CAP_HWSEEK_BOUNDED	0x0004 +#define V4L2_TUNER_CAP_HWSEEK_WRAP	0x0008  #define V4L2_TUNER_CAP_STEREO		0x0010  #define V4L2_TUNER_CAP_LANG2		0x0020  #define V4L2_TUNER_CAP_SAP		0x0020 @@ -2046,6 +2032,8 @@ struct v4l2_modulator {  #define V4L2_TUNER_CAP_RDS		0x0080  #define V4L2_TUNER_CAP_RDS_BLOCK_IO	0x0100  #define V4L2_TUNER_CAP_RDS_CONTROLS	0x0200 +#define V4L2_TUNER_CAP_FREQ_BANDS	0x0400 +#define V4L2_TUNER_CAP_HWSEEK_PROG_LIM	0x0800  /*  Flags for the 'rxsubchans' field */  #define V4L2_TUNER_SUB_MONO		0x0001 @@ -2064,19 +2052,36 @@ struct v4l2_modulator {  #define V4L2_TUNER_MODE_LANG1_LANG2	0x0004  struct v4l2_frequency { -	__u32		      tuner; -	__u32		      type;	/* enum v4l2_tuner_type */ -	__u32		      frequency; -	__u32		      reserved[8]; +	__u32	tuner; +	__u32	type;	/* enum v4l2_tuner_type */ +	__u32	frequency; +	__u32	reserved[8]; +}; + +#define V4L2_BAND_MODULATION_VSB	(1 << 1) +#define V4L2_BAND_MODULATION_FM		(1 << 2) +#define V4L2_BAND_MODULATION_AM		(1 << 3) + +struct v4l2_frequency_band { +	__u32	tuner; +	__u32	type;	/* enum v4l2_tuner_type */ +	__u32	index; +	__u32	capability; +	__u32	rangelow; +	__u32	rangehigh; +	__u32	modulation; +	__u32	reserved[9];  };  struct v4l2_hw_freq_seek { -	__u32		      tuner; -	__u32		      type;	/* enum v4l2_tuner_type */ -	__u32		      seek_upward; -	__u32		      wrap_around; -	__u32		      spacing; -	__u32		      reserved[7]; +	__u32	tuner; +	__u32	type;	/* enum v4l2_tuner_type */ +	__u32	seek_upward; +	__u32	wrap_around; +	__u32	spacing; +	__u32	rangelow; +	__u32	rangehigh; +	__u32	reserved[5];  };  /* @@ -2644,6 +2649,10 @@ struct v4l2_create_buffers {  #define VIDIOC_QUERY_DV_TIMINGS  _IOR('V', 99, struct v4l2_dv_timings)  #define VIDIOC_DV_TIMINGS_CAP   _IOWR('V', 100, struct v4l2_dv_timings_cap) +/* Experimental, this ioctl may change over the next couple of kernel +   versions. */ +#define VIDIOC_ENUM_FREQ_BANDS	_IOWR('V', 101, struct v4l2_frequency_band) +  /* Reminder: when adding new ioctls please add support for them to     drivers/media/video/v4l2-compat-ioctl32.c as well! */  |