Merge gregkh@master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
This commit is contained in:
commit
ad552692a4
22 changed files with 138 additions and 110 deletions
|
@ -393,7 +393,7 @@ static int dst_set_bandwidth(struct dst_state *state, fe_bandwidth_t bandwidth)
|
|||
state->bandwidth = bandwidth;
|
||||
|
||||
if (state->dst_type != DST_TYPE_IS_TERR)
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
switch (bandwidth) {
|
||||
case BANDWIDTH_6_MHZ:
|
||||
|
@ -462,7 +462,7 @@ static int dst_set_symbolrate(struct dst_state *state, u32 srate)
|
|||
|
||||
state->symbol_rate = srate;
|
||||
if (state->dst_type == DST_TYPE_IS_TERR) {
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
dprintk(verbose, DST_INFO, 1, "set symrate %u", srate);
|
||||
srate /= 1000;
|
||||
|
@ -504,7 +504,7 @@ static int dst_set_symbolrate(struct dst_state *state, u32 srate)
|
|||
static int dst_set_modulation(struct dst_state *state, fe_modulation_t modulation)
|
||||
{
|
||||
if (state->dst_type != DST_TYPE_IS_CABLE)
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
state->modulation = modulation;
|
||||
switch (modulation) {
|
||||
|
@ -1234,7 +1234,7 @@ int dst_command(struct dst_state *state, u8 *data, u8 len)
|
|||
goto error;
|
||||
}
|
||||
if (write_dst(state, data, len)) {
|
||||
dprintk(verbose, DST_INFO, 1, "Tring to recover.. ");
|
||||
dprintk(verbose, DST_INFO, 1, "Trying to recover.. ");
|
||||
if ((dst_error_recovery(state)) < 0) {
|
||||
dprintk(verbose, DST_ERROR, 1, "Recovery Failed.");
|
||||
goto error;
|
||||
|
@ -1328,15 +1328,13 @@ static int dst_tone_power_cmd(struct dst_state *state)
|
|||
{
|
||||
u8 paket[8] = { 0x00, 0x09, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00 };
|
||||
|
||||
if (state->dst_type == DST_TYPE_IS_TERR)
|
||||
return 0;
|
||||
if (state->dst_type != DST_TYPE_IS_SAT)
|
||||
return -EOPNOTSUPP;
|
||||
paket[4] = state->tx_tuna[4];
|
||||
paket[2] = state->tx_tuna[2];
|
||||
paket[3] = state->tx_tuna[3];
|
||||
paket[7] = dst_check_sum (paket, 7);
|
||||
dst_command(state, paket, 8);
|
||||
|
||||
return 0;
|
||||
return dst_command(state, paket, 8);
|
||||
}
|
||||
|
||||
static int dst_get_tuna(struct dst_state *state)
|
||||
|
@ -1465,7 +1463,7 @@ static int dst_set_diseqc(struct dvb_frontend *fe, struct dvb_diseqc_master_cmd
|
|||
u8 paket[8] = { 0x00, 0x08, 0x04, 0xe0, 0x10, 0x38, 0xf0, 0xec };
|
||||
|
||||
if (state->dst_type != DST_TYPE_IS_SAT)
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
if (cmd->msg_len > 0 && cmd->msg_len < 5)
|
||||
memcpy(&paket[3], cmd->msg, cmd->msg_len);
|
||||
else if (cmd->msg_len == 5 && state->dst_hw_cap & DST_TYPE_HAS_DISEQC5)
|
||||
|
@ -1473,18 +1471,17 @@ static int dst_set_diseqc(struct dvb_frontend *fe, struct dvb_diseqc_master_cmd
|
|||
else
|
||||
return -EINVAL;
|
||||
paket[7] = dst_check_sum(&paket[0], 7);
|
||||
dst_command(state, paket, 8);
|
||||
return 0;
|
||||
return dst_command(state, paket, 8);
|
||||
}
|
||||
|
||||
static int dst_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
|
||||
{
|
||||
int need_cmd;
|
||||
int need_cmd, retval = 0;
|
||||
struct dst_state *state = fe->demodulator_priv;
|
||||
|
||||
state->voltage = voltage;
|
||||
if (state->dst_type != DST_TYPE_IS_SAT)
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
need_cmd = 0;
|
||||
|
||||
|
@ -1506,9 +1503,9 @@ static int dst_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
|
|||
}
|
||||
|
||||
if (need_cmd)
|
||||
dst_tone_power_cmd(state);
|
||||
retval = dst_tone_power_cmd(state);
|
||||
|
||||
return 0;
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int dst_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)
|
||||
|
@ -1517,7 +1514,7 @@ static int dst_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)
|
|||
|
||||
state->tone = tone;
|
||||
if (state->dst_type != DST_TYPE_IS_SAT)
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
switch (tone) {
|
||||
case SEC_TONE_OFF:
|
||||
|
@ -1533,9 +1530,7 @@ static int dst_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)
|
|||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
dst_tone_power_cmd(state);
|
||||
|
||||
return 0;
|
||||
return dst_tone_power_cmd(state);
|
||||
}
|
||||
|
||||
static int dst_send_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t minicmd)
|
||||
|
@ -1543,7 +1538,7 @@ static int dst_send_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t minicmd)
|
|||
struct dst_state *state = fe->demodulator_priv;
|
||||
|
||||
if (state->dst_type != DST_TYPE_IS_SAT)
|
||||
return 0;
|
||||
return -EOPNOTSUPP;
|
||||
state->minicmd = minicmd;
|
||||
switch (minicmd) {
|
||||
case SEC_MINI_A:
|
||||
|
@ -1553,9 +1548,7 @@ static int dst_send_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t minicmd)
|
|||
state->tx_tuna[3] = 0xff;
|
||||
break;
|
||||
}
|
||||
dst_tone_power_cmd(state);
|
||||
|
||||
return 0;
|
||||
return dst_tone_power_cmd(state);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1608,28 +1601,31 @@ static int dst_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
|
|||
{
|
||||
struct dst_state *state = fe->demodulator_priv;
|
||||
|
||||
dst_get_signal(state);
|
||||
int retval = dst_get_signal(state);
|
||||
*strength = state->decode_strength;
|
||||
|
||||
return 0;
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int dst_read_snr(struct dvb_frontend *fe, u16 *snr)
|
||||
{
|
||||
struct dst_state *state = fe->demodulator_priv;
|
||||
|
||||
dst_get_signal(state);
|
||||
int retval = dst_get_signal(state);
|
||||
*snr = state->decode_snr;
|
||||
|
||||
return 0;
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int dst_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *p)
|
||||
{
|
||||
int retval = -EINVAL;
|
||||
struct dst_state *state = fe->demodulator_priv;
|
||||
|
||||
if (p != NULL) {
|
||||
dst_set_freq(state, p->frequency);
|
||||
retval = dst_set_freq(state, p->frequency);
|
||||
if(retval != 0)
|
||||
return retval;
|
||||
dprintk(verbose, DST_DEBUG, 1, "Set Frequency=[%d]", p->frequency);
|
||||
|
||||
if (state->dst_type == DST_TYPE_IS_SAT) {
|
||||
|
@ -1647,10 +1643,10 @@ static int dst_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_paramet
|
|||
dst_set_symbolrate(state, p->u.qam.symbol_rate);
|
||||
dst_set_modulation(state, p->u.qam.modulation);
|
||||
}
|
||||
dst_write_tuna(fe);
|
||||
retval = dst_write_tuna(fe);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int dst_tune_frontend(struct dvb_frontend* fe,
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
# Makefile for the kernel DVB device drivers.
|
||||
#
|
||||
|
||||
dvb-core-objs = dvbdev.o dmxdev.o dvb_demux.o dvb_filter.o \
|
||||
dvb_ca_en50221.o dvb_frontend.o \
|
||||
dvb_net.o dvb_ringbuffer.o dvb_math.o
|
||||
dvb-core-objs := dvbdev.o dmxdev.o dvb_demux.o dvb_filter.o \
|
||||
dvb_ca_en50221.o dvb_frontend.o \
|
||||
dvb_net.o dvb_ringbuffer.o dvb_math.o
|
||||
|
||||
obj-$(CONFIG_DVB_CORE) += dvb-core.o
|
||||
|
|
|
@ -350,5 +350,15 @@ config RADIO_ZOLTRIX_PORT
|
|||
help
|
||||
Enter the I/O port of your Zoltrix radio card.
|
||||
|
||||
endmenu
|
||||
config USB_DSBR
|
||||
tristate "D-Link USB FM radio support (EXPERIMENTAL)"
|
||||
depends on USB && VIDEO_V4L1 && EXPERIMENTAL
|
||||
---help---
|
||||
Say Y here if you want to connect this type of radio to your
|
||||
computer's USB port. Note that the audio is not digital, and
|
||||
you must connect the line out connector to a sound card or a
|
||||
set of speakers.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called dsbr100.
|
||||
endmenu
|
||||
|
|
|
@ -20,5 +20,6 @@ obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o
|
|||
obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o
|
||||
obj-$(CONFIG_RADIO_TRUST) += radio-trust.o
|
||||
obj-$(CONFIG_RADIO_MAESTRO) += radio-maestro.o
|
||||
obj-$(CONFIG_USB_DSBR) += dsbr100.o
|
||||
|
||||
EXTRA_CFLAGS += -Isound
|
||||
|
|
|
@ -449,18 +449,6 @@ source "drivers/media/video/pvrusb2/Kconfig"
|
|||
|
||||
source "drivers/media/video/em28xx/Kconfig"
|
||||
|
||||
config USB_DSBR
|
||||
tristate "D-Link USB FM radio support (EXPERIMENTAL)"
|
||||
depends on USB && VIDEO_V4L1 && EXPERIMENTAL
|
||||
---help---
|
||||
Say Y here if you want to connect this type of radio to your
|
||||
computer's USB port. Note that the audio is not digital, and
|
||||
you must connect the line out connector to a sound card or a
|
||||
set of speakers.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called dsbr100.
|
||||
|
||||
source "drivers/media/video/usbvideo/Kconfig"
|
||||
|
||||
source "drivers/media/video/et61x251/Kconfig"
|
||||
|
|
|
@ -77,7 +77,6 @@ obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
|
|||
obj-$(CONFIG_VIDEO_CX2341X) += cx2341x.o
|
||||
|
||||
obj-$(CONFIG_USB_DABUSB) += dabusb.o
|
||||
obj-$(CONFIG_USB_DSBR) += dsbr100.o
|
||||
obj-$(CONFIG_USB_OV511) += ov511.o
|
||||
obj-$(CONFIG_USB_SE401) += se401.o
|
||||
obj-$(CONFIG_USB_STV680) += stv680.o
|
||||
|
@ -91,6 +90,7 @@ obj-$(CONFIG_USB_ZC0301) += zc0301/
|
|||
obj-$(CONFIG_USB_IBMCAM) += usbvideo/
|
||||
obj-$(CONFIG_USB_KONICAWC) += usbvideo/
|
||||
obj-$(CONFIG_USB_VICAM) += usbvideo/
|
||||
obj-$(CONFIG_USB_QUICKCAM_MESSENGER) += usbvideo/
|
||||
|
||||
obj-$(CONFIG_VIDEO_VIVI) += vivi.o
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#ifdef CONFIG_COMPAT
|
||||
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
struct video_tuner32 {
|
||||
compat_int_t tuner;
|
||||
char name[32];
|
||||
|
@ -107,6 +107,7 @@ struct video_window32 {
|
|||
compat_caddr_t clips;
|
||||
compat_int_t clipcount;
|
||||
};
|
||||
#endif
|
||||
|
||||
static int native_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
|
@ -124,6 +125,7 @@ static int native_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
/* You get back everything except the clips... */
|
||||
static int put_video_window32(struct video_window *kp, struct video_window32 __user *up)
|
||||
{
|
||||
|
@ -138,6 +140,7 @@ static int put_video_window32(struct video_window *kp, struct video_window32 __u
|
|||
return -EFAULT;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
struct v4l2_clip32
|
||||
{
|
||||
|
@ -490,6 +493,7 @@ static inline int put_v4l2_input(struct v4l2_input *kp, struct v4l2_input __user
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
struct video_code32
|
||||
{
|
||||
char loadwhat[16]; /* name or tag of file being passed */
|
||||
|
@ -517,6 +521,8 @@ static inline int microcode32(struct video_code *kp, struct video_code32 __user
|
|||
#define VIDIOCSFREQ32 _IOW('v',15, u32)
|
||||
#define VIDIOCSMICROCODE32 _IOW('v',27, struct video_code32)
|
||||
|
||||
#endif
|
||||
|
||||
/* VIDIOC_ENUMINPUT32 is VIDIOC_ENUMINPUT minus 4 bytes of padding alignement */
|
||||
#define VIDIOC_ENUMINPUT32 VIDIOC_ENUMINPUT - _IOC(0, 0, 0, 4)
|
||||
#define VIDIOC_G_FMT32 _IOWR ('V', 4, struct v4l2_format32)
|
||||
|
@ -537,6 +543,7 @@ static inline int microcode32(struct video_code *kp, struct video_code32 __user
|
|||
#define VIDIOC_S_INPUT32 _IOWR ('V', 39, compat_int_t)
|
||||
#define VIDIOC_TRY_FMT32 _IOWR ('V', 64, struct v4l2_format32)
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
enum {
|
||||
MaxClips = (~0U-sizeof(struct video_window))/sizeof(struct video_clip)
|
||||
};
|
||||
|
@ -601,14 +608,17 @@ static int do_set_window(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
|
||||
return native_ioctl(file, VIDIOCSWIN, (unsigned long)vw);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
union {
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
struct video_tuner vt;
|
||||
struct video_buffer vb;
|
||||
struct video_window vw;
|
||||
struct video_code vc;
|
||||
#endif
|
||||
struct v4l2_format v2f;
|
||||
struct v4l2_buffer v2b;
|
||||
struct v4l2_framebuffer v2fb;
|
||||
|
@ -624,6 +634,7 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
|
||||
/* First, convert the command. */
|
||||
switch(cmd) {
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCGTUNER32: cmd = VIDIOCGTUNER; break;
|
||||
case VIDIOCSTUNER32: cmd = VIDIOCSTUNER; break;
|
||||
case VIDIOCGWIN32: cmd = VIDIOCGWIN; break;
|
||||
|
@ -631,6 +642,8 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
case VIDIOCSFBUF32: cmd = VIDIOCSFBUF; break;
|
||||
case VIDIOCGFREQ32: cmd = VIDIOCGFREQ; break;
|
||||
case VIDIOCSFREQ32: cmd = VIDIOCSFREQ; break;
|
||||
case VIDIOCSMICROCODE32: cmd = VIDIOCSMICROCODE; break;
|
||||
#endif
|
||||
case VIDIOC_G_FMT32: cmd = VIDIOC_G_FMT; break;
|
||||
case VIDIOC_S_FMT32: cmd = VIDIOC_S_FMT; break;
|
||||
case VIDIOC_QUERYBUF32: cmd = VIDIOC_QUERYBUF; break;
|
||||
|
@ -647,10 +660,10 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
case VIDIOC_G_INPUT32: cmd = VIDIOC_G_INPUT; break;
|
||||
case VIDIOC_S_INPUT32: cmd = VIDIOC_S_INPUT; break;
|
||||
case VIDIOC_TRY_FMT32: cmd = VIDIOC_TRY_FMT; break;
|
||||
case VIDIOCSMICROCODE32: cmd = VIDIOCSMICROCODE; break;
|
||||
};
|
||||
|
||||
switch(cmd) {
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCSTUNER:
|
||||
case VIDIOCGTUNER:
|
||||
err = get_video_tuner32(&karg.vt, up);
|
||||
|
@ -664,6 +677,7 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
break;
|
||||
|
||||
case VIDIOCSFREQ:
|
||||
#endif
|
||||
case VIDIOC_S_INPUT:
|
||||
case VIDIOC_OVERLAY:
|
||||
case VIDIOC_STREAMON:
|
||||
|
@ -717,18 +731,21 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
compatible_arg = 0;
|
||||
break;
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCGWIN:
|
||||
case VIDIOCGFBUF:
|
||||
case VIDIOCGFREQ:
|
||||
#endif
|
||||
case VIDIOC_G_FBUF:
|
||||
case VIDIOC_G_INPUT:
|
||||
compatible_arg = 0;
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCSMICROCODE:
|
||||
err = microcode32(&karg.vc, up);
|
||||
compatible_arg = 0;
|
||||
break;
|
||||
#endif
|
||||
};
|
||||
|
||||
if(err)
|
||||
goto out;
|
||||
|
||||
|
@ -743,6 +760,7 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
}
|
||||
if(err == 0) {
|
||||
switch(cmd) {
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCGTUNER:
|
||||
err = put_video_tuner32(&karg.vt, up);
|
||||
break;
|
||||
|
@ -754,7 +772,7 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
case VIDIOCGFBUF:
|
||||
err = put_video_buffer32(&karg.vb, up);
|
||||
break;
|
||||
|
||||
#endif
|
||||
case VIDIOC_G_FBUF:
|
||||
err = put_v4l2_framebuffer32(&karg.v2fb, up);
|
||||
break;
|
||||
|
@ -792,7 +810,9 @@ static int do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg
|
|||
err = put_v4l2_input32(&karg.v2i, up);
|
||||
break;
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCGFREQ:
|
||||
#endif
|
||||
case VIDIOC_G_INPUT:
|
||||
err = put_user(((u32)karg.vx), (u32 __user *)up);
|
||||
break;
|
||||
|
@ -810,6 +830,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
return ret;
|
||||
|
||||
switch (cmd) {
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCSWIN32:
|
||||
ret = do_set_window(file, cmd, arg);
|
||||
break;
|
||||
|
@ -820,6 +841,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
case VIDIOCSFBUF32:
|
||||
case VIDIOCGFREQ32:
|
||||
case VIDIOCSFREQ32:
|
||||
#endif
|
||||
case VIDIOC_QUERYCAP:
|
||||
case VIDIOC_ENUM_FMT:
|
||||
case VIDIOC_G_FMT32:
|
||||
|
@ -851,6 +873,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
ret = do_video_ioctl(file, cmd, arg);
|
||||
break;
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
/* Little v, the video4linux ioctls (conflict?) */
|
||||
case VIDIOCGCAP:
|
||||
case VIDIOCGCHAN:
|
||||
|
@ -879,6 +902,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
case _IOR('v' , BASE_VIDIOCPRIVATE+7, int):
|
||||
ret = native_ioctl(file, cmd, (unsigned long)compat_ptr(arg));
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
v4l_print_ioctl("compat_ioctl32", cmd);
|
||||
}
|
||||
|
|
|
@ -104,8 +104,8 @@ u32 cx25840_read4(struct i2c_client * client, u16 addr)
|
|||
if (i2c_master_recv(client, buffer, 4) < 4)
|
||||
return 0;
|
||||
|
||||
return (buffer[0] << 24) | (buffer[1] << 16) |
|
||||
(buffer[2] << 8) | buffer[3];
|
||||
return (buffer[3] << 24) | (buffer[2] << 16) |
|
||||
(buffer[1] << 8) | buffer[0];
|
||||
}
|
||||
|
||||
int cx25840_and_or(struct i2c_client *client, u16 addr, unsigned and_mask,
|
||||
|
|
|
@ -1225,7 +1225,7 @@ static int video_do_ioctl(struct inode *inode, struct file *file,
|
|||
struct v4l2_format *f = arg;
|
||||
return cx8800_try_fmt(dev,fh,f);
|
||||
}
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
/* --- streaming capture ------------------------------------- */
|
||||
case VIDIOCGMBUF:
|
||||
{
|
||||
|
@ -1584,7 +1584,7 @@ static int radio_do_ioctl(struct inode *inode, struct file *file,
|
|||
*id = 0;
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCSTUNER:
|
||||
{
|
||||
struct video_tuner *v = arg;
|
||||
|
|
|
@ -961,10 +961,10 @@ int msp34xxg_thread(void *data)
|
|||
/* setup the chip*/
|
||||
msp34xxg_reset(client);
|
||||
state->std = state->radio ? 0x40 : msp_standard;
|
||||
if (state->std != 1)
|
||||
goto unmute;
|
||||
/* start autodetect */
|
||||
msp_write_dem(client, 0x20, state->std);
|
||||
if (state->std != 1)
|
||||
goto unmute;
|
||||
|
||||
/* watch autodetect */
|
||||
v4l_dbg(1, msp_debug, client, "started autodetect, waiting for result\n");
|
||||
|
|
|
@ -30,7 +30,7 @@ config USB_PWC
|
|||
|
||||
config USB_PWC_DEBUG
|
||||
bool "USB Philips Cameras verbose debug"
|
||||
depends USB_PWC
|
||||
depends on USB_PWC
|
||||
help
|
||||
Say Y here in order to have the pwc driver generate verbose debugging
|
||||
messages.
|
||||
|
|
|
@ -160,6 +160,7 @@ static struct file_operations pwc_fops = {
|
|||
.poll = pwc_video_poll,
|
||||
.mmap = pwc_video_mmap,
|
||||
.ioctl = pwc_video_ioctl,
|
||||
.compat_ioctl = v4l_compat_ioctl32,
|
||||
.llseek = no_llseek,
|
||||
};
|
||||
static struct video_device pwc_template = {
|
||||
|
|
|
@ -2087,7 +2087,7 @@ static int video_do_ioctl(struct inode *inode, struct file *file,
|
|||
struct v4l2_format *f = arg;
|
||||
return saa7134_try_fmt(dev,fh,f);
|
||||
}
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCGMBUF:
|
||||
{
|
||||
struct video_mbuf *mbuf = arg;
|
||||
|
|
|
@ -1027,10 +1027,11 @@ static struct tuner_params tuner_tnf_5335mf_params[] = {
|
|||
/* 70-79 */
|
||||
/* ------------ TUNER_SAMSUNG_TCPN_2121P30A - Samsung NTSC ------------ */
|
||||
|
||||
/* '+ 4' turns on the Low Noise Amplifier */
|
||||
static struct tuner_range tuner_samsung_tcpn_2121p30a_ntsc_ranges[] = {
|
||||
{ 16 * 130.00 /*MHz*/, 0xce, 0x01, },
|
||||
{ 16 * 364.50 /*MHz*/, 0xce, 0x02, },
|
||||
{ 16 * 999.99 , 0xce, 0x08, },
|
||||
{ 16 * 130.00 /*MHz*/, 0xce, 0x01 + 4, },
|
||||
{ 16 * 364.50 /*MHz*/, 0xce, 0x02 + 4, },
|
||||
{ 16 * 999.99 , 0xce, 0x08 + 4, },
|
||||
};
|
||||
|
||||
static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
|
||||
|
@ -1060,10 +1061,11 @@ static struct tuner_params tuner_thomson_fe6600_params[] = {
|
|||
|
||||
/* ------------ TUNER_SAMSUNG_TCPG_6121P30A - Samsung PAL ------------ */
|
||||
|
||||
/* '+ 4' turns on the Low Noise Amplifier */
|
||||
static struct tuner_range tuner_samsung_tcpg_6121p30a_pal_ranges[] = {
|
||||
{ 16 * 146.25 /*MHz*/, 0xce, 0x01, },
|
||||
{ 16 * 428.50 /*MHz*/, 0xce, 0x02, },
|
||||
{ 16 * 999.99 , 0xce, 0x08, },
|
||||
{ 16 * 146.25 /*MHz*/, 0xce, 0x01 + 4, },
|
||||
{ 16 * 428.50 /*MHz*/, 0xce, 0x02 + 4, },
|
||||
{ 16 * 999.99 , 0xce, 0x08 + 4, },
|
||||
};
|
||||
|
||||
static struct tuner_params tuner_samsung_tcpg_6121p30a_params[] = {
|
||||
|
|
|
@ -599,6 +599,10 @@ v4l_compat_translate_ioctl(struct inode *inode,
|
|||
dprintk("VIDIOCGPICT / VIDIOC_G_FMT: %d\n",err);
|
||||
break;
|
||||
}
|
||||
|
||||
pict->depth = ((fmt2->fmt.pix.bytesperline<<3)
|
||||
+ (fmt2->fmt.pix.width-1) )
|
||||
/fmt2->fmt.pix.width;
|
||||
pict->palette = pixelformat_to_palette(
|
||||
fmt2->fmt.pix.pixelformat);
|
||||
break;
|
||||
|
|
|
@ -202,7 +202,7 @@ static char *v4l2_memory_names[] = {
|
|||
/* ------------------------------------------------------------------ */
|
||||
/* debug help functions */
|
||||
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
static const char *v4l1_ioctls[] = {
|
||||
[_IOC_NR(VIDIOCGCAP)] = "VIDIOCGCAP",
|
||||
[_IOC_NR(VIDIOCGCHAN)] = "VIDIOCGCHAN",
|
||||
|
@ -301,7 +301,7 @@ static const char *v4l2_ioctls[] = {
|
|||
#define V4L2_IOCTLS ARRAY_SIZE(v4l2_ioctls)
|
||||
|
||||
static const char *v4l2_int_ioctls[] = {
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
[_IOC_NR(DECODER_GET_CAPABILITIES)] = "DECODER_GET_CAPABILITIES",
|
||||
[_IOC_NR(DECODER_GET_STATUS)] = "DECODER_GET_STATUS",
|
||||
[_IOC_NR(DECODER_SET_NORM)] = "DECODER_SET_NORM",
|
||||
|
@ -367,7 +367,7 @@ void v4l_printk_ioctl(unsigned int cmd)
|
|||
(_IOC_NR(cmd) < V4L2_INT_IOCTLS) ?
|
||||
v4l2_int_ioctls[_IOC_NR(cmd)] : "UNKNOWN", dir, cmd);
|
||||
break;
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case 'v':
|
||||
printk("v4l1 ioctl %s, dir=%s (0x%08x)\n",
|
||||
(_IOC_NR(cmd) < V4L1_IOCTLS) ?
|
||||
|
|
|
@ -760,7 +760,7 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
|
|||
ret=vfd->vidioc_overlay(file, fh, *i);
|
||||
break;
|
||||
}
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
/* --- streaming capture ------------------------------------- */
|
||||
case VIDIOCGMBUF:
|
||||
{
|
||||
|
|
|
@ -986,7 +986,7 @@ static int vidioc_dqbuf (struct file *file, void *priv, struct v4l2_buffer *p)
|
|||
file->f_flags & O_NONBLOCK));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
static int vidiocgmbuf (struct file *file, void *priv, struct video_mbuf *mbuf)
|
||||
{
|
||||
struct vivi_fh *fh=priv;
|
||||
|
@ -1328,7 +1328,7 @@ static struct video_device vivi = {
|
|||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
#ifdef CONFIG_V4L1_COMPAT
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
#endif
|
||||
.tvnorms = tvnorms,
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/compiler.h> /* need __user */
|
||||
#ifdef CONFIG_VIDEO_V4L1
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
#include <linux/videodev.h>
|
||||
#else
|
||||
#include <linux/videodev2.h>
|
||||
|
|
|
@ -31,7 +31,7 @@ config SOUND_EMU10K1
|
|||
For more information on this driver and the degree of support for
|
||||
the different card models please check:
|
||||
|
||||
<http://sourceforge.net/projects/emu10k1/>
|
||||
<http://sourceforge.net/projects/emu10k1/>
|
||||
|
||||
It is now possible to load dsp microcode patches into the EMU10K1
|
||||
chip. These patches are used to implement real time sound
|
||||
|
@ -140,7 +140,7 @@ config SOUND_TRIDENT
|
|||
system support" and "Sysctl support", and after the /proc file
|
||||
system has been mounted, executing the command
|
||||
|
||||
command what is enabled
|
||||
command what is enabled
|
||||
|
||||
echo 0>/proc/ALi5451 pcm out is also set to S/PDIF out. (Default).
|
||||
|
||||
|
@ -838,7 +838,7 @@ config SOUND_WAVEARTIST
|
|||
|
||||
config SOUND_TVMIXER
|
||||
tristate "TV card (bt848) mixer support"
|
||||
depends on SOUND_PRIME && I2C
|
||||
depends on SOUND_PRIME && I2C && VIDEO_V4L1
|
||||
help
|
||||
Support for audio mixer facilities on the BT848 TV frame-grabber
|
||||
card.
|
||||
|
|
|
@ -16,16 +16,16 @@ config SND_AD1889
|
|||
will be called snd-ad1889.
|
||||
|
||||
config SND_ALS300
|
||||
tristate "Avance Logic ALS300/ALS300+"
|
||||
depends on SND
|
||||
select SND_PCM
|
||||
select SND_AC97_CODEC
|
||||
select SND_OPL3_LIB
|
||||
help
|
||||
Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+
|
||||
tristate "Avance Logic ALS300/ALS300+"
|
||||
depends on SND
|
||||
select SND_PCM
|
||||
select SND_AC97_CODEC
|
||||
select SND_OPL3_LIB
|
||||
help
|
||||
Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-als300
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-als300
|
||||
|
||||
config SND_ALS4000
|
||||
tristate "Avance Logic ALS4000"
|
||||
|
@ -78,49 +78,49 @@ config SND_ATIIXP_MODEM
|
|||
will be called snd-atiixp-modem.
|
||||
|
||||
config SND_AU8810
|
||||
tristate "Aureal Advantage"
|
||||
depends on SND
|
||||
tristate "Aureal Advantage"
|
||||
depends on SND
|
||||
select SND_MPU401_UART
|
||||
select SND_AC97_CODEC
|
||||
help
|
||||
help
|
||||
Say Y here to include support for Aureal Advantage soundcards.
|
||||
|
||||
Supported features: Hardware Mixer, SRC, EQ and SPDIF output.
|
||||
3D support code is in place, but not yet useable. For more info,
|
||||
email the ALSA developer list, or <mjander@users.sourceforge.net>.
|
||||
3D support code is in place, but not yet useable. For more info,
|
||||
email the ALSA developer list, or <mjander@users.sourceforge.net>.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-au8810.
|
||||
|
||||
|
||||
config SND_AU8820
|
||||
tristate "Aureal Vortex"
|
||||
depends on SND
|
||||
tristate "Aureal Vortex"
|
||||
depends on SND
|
||||
select SND_MPU401_UART
|
||||
select SND_AC97_CODEC
|
||||
help
|
||||
help
|
||||
Say Y here to include support for Aureal Vortex soundcards.
|
||||
|
||||
Supported features: Hardware Mixer and SRC. For more info, email
|
||||
the ALSA developer list, or <mjander@users.sourceforge.net>.
|
||||
Supported features: Hardware Mixer and SRC. For more info, email
|
||||
the ALSA developer list, or <mjander@users.sourceforge.net>.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-au8820.
|
||||
|
||||
|
||||
config SND_AU8830
|
||||
tristate "Aureal Vortex 2"
|
||||
depends on SND
|
||||
tristate "Aureal Vortex 2"
|
||||
depends on SND
|
||||
select SND_MPU401_UART
|
||||
select SND_AC97_CODEC
|
||||
help
|
||||
help
|
||||
Say Y here to include support for Aureal Vortex 2 soundcards.
|
||||
|
||||
Supported features: Hardware Mixer, SRC, EQ and SPDIF output.
|
||||
3D support code is in place, but not yet useable. For more info,
|
||||
email the ALSA developer list, or <mjander@users.sourceforge.net>.
|
||||
Supported features: Hardware Mixer, SRC, EQ and SPDIF output.
|
||||
3D support code is in place, but not yet useable. For more info,
|
||||
email the ALSA developer list, or <mjander@users.sourceforge.net>.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-au8830.
|
||||
|
||||
|
||||
config SND_AZT3328
|
||||
tristate "Aztech AZF3328 / PCI168 (EXPERIMENTAL)"
|
||||
depends on SND && EXPERIMENTAL
|
||||
|
@ -135,10 +135,10 @@ config SND_AZT3328
|
|||
will be called snd-azt3328.
|
||||
|
||||
config SND_BT87X
|
||||
tristate "Bt87x Audio Capture"
|
||||
depends on SND
|
||||
tristate "Bt87x Audio Capture"
|
||||
depends on SND
|
||||
select SND_PCM
|
||||
help
|
||||
help
|
||||
If you want to record audio from TV cards based on
|
||||
Brooktree Bt878/Bt879 chips, say Y here and read
|
||||
<file:Documentation/sound/alsa/Bt87x.txt>.
|
||||
|
@ -209,7 +209,7 @@ config SND_CS46XX
|
|||
config SND_CS46XX_NEW_DSP
|
||||
bool "Cirrus Logic (Sound Fusion) New DSP support"
|
||||
depends on SND_CS46XX
|
||||
default y
|
||||
default y
|
||||
help
|
||||
Say Y here to use a new DSP image for SPDIF and dual codecs.
|
||||
|
||||
|
@ -225,7 +225,7 @@ config SND_CS5535AUDIO
|
|||
referred to as NS CS5535 IO or AMD CS5535 IO companion in
|
||||
various literature. This driver also supports the CS5536 audio
|
||||
device. However, for both chips, on certain boards, you may
|
||||
need to use ac97_quirk=hp_only if your board has physically
|
||||
need to use ac97_quirk=hp_only if your board has physically
|
||||
mapped headphone out to master output. If that works for you,
|
||||
send lspci -vvv output to the mailing list so that your board
|
||||
can be identified in the quirks list.
|
||||
|
@ -468,11 +468,13 @@ config SND_FM801_TEA575X_BOOL
|
|||
FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media
|
||||
Forte SF256-PCS-02) into the snd-fm801 driver.
|
||||
|
||||
This will enable support for the old V4L1 API.
|
||||
|
||||
config SND_FM801_TEA575X
|
||||
tristate
|
||||
depends on SND_FM801_TEA575X_BOOL
|
||||
default SND_FM801
|
||||
select VIDEO_DEV
|
||||
select VIDEO_V4L1
|
||||
|
||||
config SND_HDA_INTEL
|
||||
tristate "Intel HD Audio"
|
||||
|
|
Reference in a new issue