mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
This commit is contained in:
commit
f17578decc
203 changed files with 10709 additions and 5147 deletions
|
|
@ -218,32 +218,6 @@ COMPATIBLE_IOCTL(VT_RESIZE)
|
|||
COMPATIBLE_IOCTL(VT_RESIZEX)
|
||||
COMPATIBLE_IOCTL(VT_LOCKSWITCH)
|
||||
COMPATIBLE_IOCTL(VT_UNLOCKSWITCH)
|
||||
/* Little v */
|
||||
/* Little v, the video4linux ioctls (conflict?) */
|
||||
COMPATIBLE_IOCTL(VIDIOCGCAP)
|
||||
COMPATIBLE_IOCTL(VIDIOCGCHAN)
|
||||
COMPATIBLE_IOCTL(VIDIOCSCHAN)
|
||||
COMPATIBLE_IOCTL(VIDIOCGPICT)
|
||||
COMPATIBLE_IOCTL(VIDIOCSPICT)
|
||||
COMPATIBLE_IOCTL(VIDIOCCAPTURE)
|
||||
COMPATIBLE_IOCTL(VIDIOCKEY)
|
||||
COMPATIBLE_IOCTL(VIDIOCGAUDIO)
|
||||
COMPATIBLE_IOCTL(VIDIOCSAUDIO)
|
||||
COMPATIBLE_IOCTL(VIDIOCSYNC)
|
||||
COMPATIBLE_IOCTL(VIDIOCMCAPTURE)
|
||||
COMPATIBLE_IOCTL(VIDIOCGMBUF)
|
||||
COMPATIBLE_IOCTL(VIDIOCGUNIT)
|
||||
COMPATIBLE_IOCTL(VIDIOCGCAPTURE)
|
||||
COMPATIBLE_IOCTL(VIDIOCSCAPTURE)
|
||||
/* BTTV specific... */
|
||||
COMPATIBLE_IOCTL(_IOW('v', BASE_VIDIOCPRIVATE+0, char [256]))
|
||||
COMPATIBLE_IOCTL(_IOR('v', BASE_VIDIOCPRIVATE+1, char [256]))
|
||||
COMPATIBLE_IOCTL(_IOR('v' , BASE_VIDIOCPRIVATE+2, unsigned int))
|
||||
COMPATIBLE_IOCTL(_IOW('v' , BASE_VIDIOCPRIVATE+3, char [16])) /* struct bttv_pll_info */
|
||||
COMPATIBLE_IOCTL(_IOR('v' , BASE_VIDIOCPRIVATE+4, int))
|
||||
COMPATIBLE_IOCTL(_IOR('v' , BASE_VIDIOCPRIVATE+5, int))
|
||||
COMPATIBLE_IOCTL(_IOR('v' , BASE_VIDIOCPRIVATE+6, int))
|
||||
COMPATIBLE_IOCTL(_IOR('v' , BASE_VIDIOCPRIVATE+7, int))
|
||||
/* Little p (/dev/rtc, /dev/envctrl, etc.) */
|
||||
COMPATIBLE_IOCTL(RTC_AIE_ON)
|
||||
COMPATIBLE_IOCTL(RTC_AIE_OFF)
|
||||
|
|
|
|||
|
|
@ -240,6 +240,15 @@ struct dvb_frontend_event {
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* When set, this flag will disable any zigzagging or other "normal" tuning
|
||||
* behaviour. Additionally, there will be no automatic monitoring of the lock
|
||||
* status, and hence no frontend events will be generated. If a frontend device
|
||||
* is closed, this flag will be automatically turned off when the device is
|
||||
* reopened read-write.
|
||||
*/
|
||||
#define FE_TUNE_MODE_ONESHOT 0x01
|
||||
|
||||
|
||||
#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
|
||||
|
||||
|
|
@ -260,6 +269,7 @@ struct dvb_frontend_event {
|
|||
|
||||
#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters)
|
||||
#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters)
|
||||
#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */
|
||||
#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
|
||||
|
||||
#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@
|
|||
#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */
|
||||
#define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */
|
||||
#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */
|
||||
#define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */
|
||||
|
||||
#define I2C_DRIVERID_I2CDEV 900
|
||||
#define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef _LINUX_VIDEO_DECODER_H
|
||||
#define _LINUX_VIDEO_DECODER_H
|
||||
|
||||
#define HAVE_VIDEO_DECODER 1
|
||||
|
||||
struct video_decoder_capability { /* this name is too long */
|
||||
__u32 flags;
|
||||
#define VIDEO_DECODER_PAL 1 /* can decode PAL signal */
|
||||
|
|
|
|||
|
|
@ -642,6 +642,12 @@ typedef __u64 v4l2_std_id;
|
|||
#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000)
|
||||
#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000)
|
||||
|
||||
/* 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 common needed stuff */
|
||||
#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\
|
||||
V4L2_STD_PAL_B1 |\
|
||||
|
|
@ -662,7 +668,8 @@ typedef __u64 v4l2_std_id;
|
|||
V4L2_STD_SECAM_G |\
|
||||
V4L2_STD_SECAM_H |\
|
||||
V4L2_STD_SECAM_DK |\
|
||||
V4L2_STD_SECAM_L)
|
||||
V4L2_STD_SECAM_L |\
|
||||
V4L2_STD_SECAM_LC)
|
||||
|
||||
#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\
|
||||
V4L2_STD_PAL_60 |\
|
||||
|
|
@ -888,7 +895,6 @@ struct v4l2_audio
|
|||
|
||||
/* Flags for the 'mode' field */
|
||||
#define V4L2_AUDMODE_AVL 0x00001
|
||||
#define V4L2_AUDMODE_32BITS 0x00002
|
||||
|
||||
struct v4l2_audioout
|
||||
{
|
||||
|
|
@ -1110,7 +1116,6 @@ int v4l2_prio_check(struct v4l2_prio_state *global, enum v4l2_priority *local);
|
|||
/* names for fancy debug output */
|
||||
extern char *v4l2_field_names[];
|
||||
extern char *v4l2_type_names[];
|
||||
extern char *v4l2_ioctl_names[];
|
||||
|
||||
/* Compatibility layer interface -- v4l1-compat module */
|
||||
typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
|
||||
|
|
@ -1118,6 +1123,11 @@ typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
|
|||
int v4l_compat_translate_ioctl(struct inode *inode, struct file *file,
|
||||
int cmd, void *arg, v4l2_kioctl driver_ioctl);
|
||||
|
||||
/* 32 Bits compatibility layer for 64 bits processors */
|
||||
extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,
|
||||
unsigned long arg);
|
||||
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_VIDEODEV2_H */
|
||||
|
||||
|
|
|
|||
|
|
@ -23,11 +23,6 @@ enum audiochip {
|
|||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
/* v4l device was opened in Radio mode */
|
||||
#define AUDC_SET_RADIO _IO('m',2)
|
||||
/* select from TV,radio,extern,MUTE */
|
||||
#define AUDC_SET_INPUT _IOW('m',17,int)
|
||||
|
||||
/* audio inputs */
|
||||
#define AUDIO_TUNER 0x00
|
||||
#define AUDIO_RADIO 0x01
|
||||
|
|
@ -40,15 +35,4 @@ enum audiochip {
|
|||
#define AUDIO_MUTE 0x80
|
||||
#define AUDIO_UNMUTE 0x81
|
||||
|
||||
/* all the stuff below is obsolete and just here for reference. I'll
|
||||
* remove it once the driver is tested and works fine.
|
||||
*
|
||||
* Instead creating alot of tiny API's for all kinds of different
|
||||
* chips, we'll just pass throuth the v4l ioctl structs (v4l2 not
|
||||
* yet...). It is a bit less flexible, but most/all used i2c chips
|
||||
* make sense in v4l context only. So I think that's acceptable...
|
||||
*/
|
||||
|
||||
/* misc stuff to pass around config info to i2c chips */
|
||||
#define AUDC_CONFIG_PINNACLE _IOW('m',32,int)
|
||||
#endif /* AUDIOCHIP_H */
|
||||
|
|
|
|||
|
|
@ -178,6 +178,8 @@ struct saa7146_ext_vv
|
|||
|
||||
struct saa7146_extension_ioctls *ioctls;
|
||||
int (*ioctl)(struct saa7146_fh*, unsigned int cmd, void *arg);
|
||||
|
||||
struct file_operations vbi_fops;
|
||||
};
|
||||
|
||||
struct saa7146_use_ops {
|
||||
|
|
|
|||
|
|
@ -82,9 +82,9 @@
|
|||
#define TUNER_PHILIPS_FM1236_MK3 43
|
||||
|
||||
#define TUNER_PHILIPS_4IN1 44 /* ATI TV Wonder Pro - Conexant */
|
||||
/* Microtune mergeged with Temic 12/31/1999 partially financed by Alps - these may be similar to Temic */
|
||||
/* Microtune merged with Temic 12/31/1999 partially financed by Alps - these may be similar to Temic */
|
||||
#define TUNER_MICROTUNE_4049FM5 45
|
||||
#define TUNER_MICROTUNE_4042_FI5 46
|
||||
#define TUNER_PANASONIC_VP27 46
|
||||
#define TUNER_LG_NTSC_TAPE 47
|
||||
|
||||
#define TUNER_TNF_8831BGFF 48
|
||||
|
|
@ -102,7 +102,7 @@
|
|||
#define TUNER_YMEC_TVF_8531MF 58
|
||||
#define TUNER_YMEC_TVF_5533MF 59 /* Pixelview Pro Ultra NTSC */
|
||||
|
||||
#define TUNER_THOMSON_DTT7611 60 /* DViCO FusionHDTV 3 Gold-T */
|
||||
#define TUNER_THOMSON_DTT761X 60 /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
|
||||
#define TUNER_TENA_9533_DI 61
|
||||
#define TUNER_TEA5767 62 /* Only FM Radio Tuner */
|
||||
#define TUNER_PHILIPS_FMD1216ME_MK3 63
|
||||
|
|
@ -115,47 +115,26 @@
|
|||
#define TUNER_PHILIPS_TUV1236D 68 /* ATI HDTV Wonder */
|
||||
#define TUNER_TNF_5335MF 69 /* Sabrent Bt848 */
|
||||
|
||||
#define NOTUNER 0
|
||||
#define PAL 1 /* PAL_BG */
|
||||
#define PAL_I 2
|
||||
#define NTSC 3
|
||||
#define SECAM 4
|
||||
#define ATSC 5
|
||||
#define RADIO 6
|
||||
|
||||
#define NoTuner 0
|
||||
#define Philips 1
|
||||
#define TEMIC 2
|
||||
#define Sony 3
|
||||
#define Alps 4
|
||||
#define LGINNOTEK 5
|
||||
#define SHARP 6
|
||||
#define Samsung 7
|
||||
#define Microtune 8
|
||||
#define HITACHI 9
|
||||
#define Panasonic 10
|
||||
#define TCL 11
|
||||
#define THOMSON 12
|
||||
|
||||
#define TUNER_SET_TYPE_ADDR _IOW('T',3,int)
|
||||
#define TUNER_SET_STANDBY _IOW('T',4,int)
|
||||
#define TDA9887_SET_CONFIG _IOW('t',5,int)
|
||||
|
||||
/* tv card specific */
|
||||
# define TDA9887_PRESENT (1<<0)
|
||||
# define TDA9887_PORT1_INACTIVE (1<<1)
|
||||
# define TDA9887_PORT2_INACTIVE (1<<2)
|
||||
# define TDA9887_QSS (1<<3)
|
||||
# define TDA9887_INTERCARRIER (1<<4)
|
||||
# define TDA9887_PORT1_ACTIVE (1<<5)
|
||||
# define TDA9887_PORT2_ACTIVE (1<<6)
|
||||
# define TDA9887_INTERCARRIER_NTSC (1<<7)
|
||||
#define TDA9887_PRESENT (1<<0)
|
||||
#define TDA9887_PORT1_INACTIVE (1<<1)
|
||||
#define TDA9887_PORT2_INACTIVE (1<<2)
|
||||
#define TDA9887_QSS (1<<3)
|
||||
#define TDA9887_INTERCARRIER (1<<4)
|
||||
#define TDA9887_PORT1_ACTIVE (1<<5)
|
||||
#define TDA9887_PORT2_ACTIVE (1<<6)
|
||||
#define TDA9887_INTERCARRIER_NTSC (1<<7)
|
||||
/* Tuner takeover point adjustment, in dB, -16 <= top <= 15 */
|
||||
#define TDA9887_TOP_MASK (0x3f << 8)
|
||||
#define TDA9887_TOP_SET (1 << 13)
|
||||
#define TDA9887_TOP(top) (TDA9887_TOP_SET | (((16 + (top)) & 0x1f) << 8))
|
||||
|
||||
/* config options */
|
||||
# define TDA9887_DEEMPHASIS_MASK (3<<16)
|
||||
# define TDA9887_DEEMPHASIS_NONE (1<<16)
|
||||
# define TDA9887_DEEMPHASIS_50 (2<<16)
|
||||
# define TDA9887_DEEMPHASIS_75 (3<<16)
|
||||
# define TDA9887_AUTOMUTE (1<<18)
|
||||
#define TDA9887_DEEMPHASIS_MASK (3<<16)
|
||||
#define TDA9887_DEEMPHASIS_NONE (1<<16)
|
||||
#define TDA9887_DEEMPHASIS_50 (2<<16)
|
||||
#define TDA9887_DEEMPHASIS_75 (3<<16)
|
||||
#define TDA9887_AUTOMUTE (1<<18)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
|
@ -167,10 +146,26 @@ enum tuner_mode {
|
|||
T_STANDBY = 1 << 31
|
||||
};
|
||||
|
||||
/* Older boards only had a single tuner device. Nowadays multiple tuner
|
||||
devices may be present on a single board. Using TUNER_SET_TYPE_ADDR
|
||||
to pass the tuner_setup structure it is possible to setup each tuner
|
||||
device in turn.
|
||||
|
||||
Since multiple devices may be present it is no longer sufficient to
|
||||
send a command to a single i2c device. Instead you should broadcast
|
||||
the command to all i2c devices.
|
||||
|
||||
By setting the mode_mask correctly you can select which commands are
|
||||
accepted by a specific tuner device. For example, set mode_mask to
|
||||
T_RADIO if the device is a radio-only tuner. That specific tuner will
|
||||
only accept commands when the tuner is in radio mode and ignore them
|
||||
when the tuner is set to TV mode.
|
||||
*/
|
||||
|
||||
struct tuner_setup {
|
||||
unsigned short addr;
|
||||
unsigned int type;
|
||||
unsigned int mode_mask;
|
||||
unsigned short addr; /* I2C address */
|
||||
unsigned int type; /* Tuner type */
|
||||
unsigned int mode_mask; /* Allowed tuner modes */
|
||||
};
|
||||
|
||||
struct tuner {
|
||||
|
|
@ -207,7 +202,6 @@ struct tuner {
|
|||
void (*standby)(struct i2c_client *c);
|
||||
};
|
||||
|
||||
extern unsigned int tuner_debug;
|
||||
extern unsigned const int tuner_count;
|
||||
|
||||
extern int microtune_init(struct i2c_client *c);
|
||||
|
|
@ -219,15 +213,15 @@ extern int tea5767_autodetection(struct i2c_client *c);
|
|||
|
||||
#define tuner_warn(fmt, arg...) do {\
|
||||
printk(KERN_WARNING "%s %d-%04x: " fmt, t->i2c.driver->driver.name, \
|
||||
t->i2c.adapter->nr, t->i2c.addr , ##arg); } while (0)
|
||||
i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
|
||||
#define tuner_info(fmt, arg...) do {\
|
||||
printk(KERN_INFO "%s %d-%04x: " fmt, t->i2c.driver->driver.name, \
|
||||
t->i2c.adapter->nr, t->i2c.addr , ##arg); } while (0)
|
||||
i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
|
||||
#define tuner_dbg(fmt, arg...) do {\
|
||||
if (tuner_debug) \
|
||||
printk(KERN_DEBUG "%s %d-%04x: " fmt, \
|
||||
t->i2c.driver->driver.name, \
|
||||
t->i2c.adapter->nr, t->i2c.addr , ##arg); } while (0)
|
||||
extern int debug; \
|
||||
if (debug) \
|
||||
printk(KERN_DEBUG "%s %d-%04x: " fmt, t->i2c.driver->driver.name, \
|
||||
i2c_adapter_id(t->i2c.adapter), t->i2c.addr , ##arg); } while (0)
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
|
|
|||
|
|
@ -26,12 +26,57 @@
|
|||
#ifndef V4L2_COMMON_H_
|
||||
#define V4L2_COMMON_H_
|
||||
|
||||
/* VIDIOC_INT_AUDIO_CLOCK_FREQ */
|
||||
enum v4l2_audio_clock_freq {
|
||||
V4L2_AUDCLK_32_KHZ = 32000,
|
||||
V4L2_AUDCLK_441_KHZ = 44100,
|
||||
V4L2_AUDCLK_48_KHZ = 48000,
|
||||
};
|
||||
/* v4l debugging and diagnostics */
|
||||
|
||||
/* Common printk constucts for v4l-i2c drivers. These macros create a unique
|
||||
prefix consisting of the driver name, the adapter number and the i2c
|
||||
address. */
|
||||
#define v4l_printk(level, name, adapter, addr, fmt, arg...) \
|
||||
printk(level "%s %d-%04x: " fmt, name, i2c_adapter_id(adapter), addr , ## arg)
|
||||
|
||||
#define v4l_client_printk(level, client, fmt, arg...) \
|
||||
v4l_printk(level, (client)->driver->driver.name, (client)->adapter, \
|
||||
(client)->addr, fmt , ## arg)
|
||||
|
||||
#define v4l_err(client, fmt, arg...) \
|
||||
v4l_client_printk(KERN_ERR, client, fmt , ## arg)
|
||||
|
||||
#define v4l_warn(client, fmt, arg...) \
|
||||
v4l_client_printk(KERN_WARNING, client, fmt , ## arg)
|
||||
|
||||
#define v4l_info(client, fmt, arg...) \
|
||||
v4l_client_printk(KERN_INFO, client, fmt , ## arg)
|
||||
|
||||
/* These three macros assume that the debug level is set with a module
|
||||
parameter called 'debug'. */
|
||||
#define v4l_dbg(level, client, fmt, arg...) \
|
||||
do { \
|
||||
extern int debug; \
|
||||
if (debug >= (level)) \
|
||||
v4l_client_printk(KERN_DEBUG, client, fmt , ## arg); \
|
||||
} while (0)
|
||||
|
||||
/* Prints the ioctl in a human-readable format */
|
||||
extern void v4l_printk_ioctl(unsigned int cmd);
|
||||
|
||||
/* Use this macro for non-I2C drivers. Pass the driver name as the first arg. */
|
||||
#define v4l_print_ioctl(name, cmd) \
|
||||
do { \
|
||||
printk(KERN_DEBUG "%s: ", name); \
|
||||
v4l_printk_ioctl(cmd); \
|
||||
} while (0)
|
||||
|
||||
/* Use this macro in I2C drivers where 'client' is the struct i2c_client
|
||||
pointer */
|
||||
#define v4l_i2c_print_ioctl(client, cmd) \
|
||||
do { \
|
||||
v4l_client_printk(KERN_DEBUG, client, ""); \
|
||||
v4l_printk_ioctl(cmd); \
|
||||
} while (0)
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/* Internal ioctls */
|
||||
|
||||
/* VIDIOC_INT_G_REGISTER and VIDIOC_INT_S_REGISTER */
|
||||
struct v4l2_register {
|
||||
|
|
@ -70,6 +115,20 @@ enum v4l2_chip_ident {
|
|||
V4L2_IDENT_CX25843 = 243,
|
||||
};
|
||||
|
||||
/* audio ioctls */
|
||||
/* v4l device was opened in Radio mode */
|
||||
#define AUDC_SET_RADIO _IO('d',88)
|
||||
/* select from TV,radio,extern,MUTE */
|
||||
#define AUDC_SET_INPUT _IOW('d',89,int)
|
||||
|
||||
/* tuner ioctls */
|
||||
/* Sets tuner type and its I2C addr */
|
||||
#define TUNER_SET_TYPE_ADDR _IOW('d',90,int)
|
||||
/* Puts tuner on powersaving state, disabling it, except for i2c */
|
||||
#define TUNER_SET_STANDBY _IOW('d',91,int)
|
||||
/* Sets tda9887 specific stuff, like port1, port2 and qss */
|
||||
#define TDA9887_SET_CONFIG _IOW('d',92,int)
|
||||
|
||||
/* only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */
|
||||
#define VIDIOC_INT_S_REGISTER _IOR ('d', 100, struct v4l2_register)
|
||||
#define VIDIOC_INT_G_REGISTER _IOWR('d', 101, struct v4l2_register)
|
||||
|
|
@ -77,10 +136,12 @@ enum v4l2_chip_ident {
|
|||
/* Reset the I2C chip */
|
||||
#define VIDIOC_INT_RESET _IO ('d', 102)
|
||||
|
||||
/* Set the frequency of the audio clock output.
|
||||
/* Set the frequency (in Hz) of the audio clock output.
|
||||
Used to slave an audio processor to the video decoder, ensuring that audio
|
||||
and video remain synchronized. */
|
||||
#define VIDIOC_INT_AUDIO_CLOCK_FREQ _IOR ('d', 103, enum v4l2_audio_clock_freq)
|
||||
and video remain synchronized.
|
||||
Usual values for the frequency are 48000, 44100 or 32000 Hz.
|
||||
If the frequency is not supported, then -EINVAL is returned. */
|
||||
#define VIDIOC_INT_AUDIO_CLOCK_FREQ _IOW ('d', 103, u32)
|
||||
|
||||
/* Video decoders that support sliced VBI need to implement this ioctl.
|
||||
Field p of the v4l2_sliced_vbi_line struct is set to the start of the VBI
|
||||
|
|
@ -107,4 +168,10 @@ enum v4l2_chip_ident {
|
|||
be made. */
|
||||
#define VIDIOC_INT_G_CHIP_IDENT _IOR ('d', 107, enum v4l2_chip_ident *)
|
||||
|
||||
/* Sets I2S speed in bps. This is used to provide a standard way to select I2S
|
||||
clock used by driving digital audio streams at some board designs.
|
||||
Usual values for the frequency are 1024000 and 2048000.
|
||||
If the frequency is not supported, then -EINVAL is returned. */
|
||||
#define VIDIOC_INT_I2S_CLOCK_FREQ _IOW ('d', 108, u32)
|
||||
|
||||
#endif /* V4L2_COMMON_H_ */
|
||||
|
|
|
|||
Loading…
Reference in a new issue