提交 d0708b97 编写于 作者: L Linus Torvalds

Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
  V4L/DVB: bttv: Move I2C IR initialization
  V4L/DVB: Video : pwc : Fix regression in pwc_set_shutter_speed caused by bad 	constant => sizeof conversion.
  soc-camera: mt9t112: modify exiting conditions from standby mode
  V4L/DVB: cxusb: Select all required frontend and tuner modules
  V4L/DVB: dvb: l64781.ko broken with gcc 4.5
...@@ -112,11 +112,13 @@ config DVB_USB_CXUSB ...@@ -112,11 +112,13 @@ config DVB_USB_CXUSB
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select DVB_DIB7000P if !DVB_FE_CUSTOMISE select DVB_DIB7000P if !DVB_FE_CUSTOMISE
select DVB_LGS8GL5 if !DVB_FE_CUSTOMISE
select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
select DVB_ATBM8830 if !DVB_FE_CUSTOMISE
select DVB_LGS8GXX if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_MAX2165 if !MEDIA_TUNER_CUSTOMISE
help help
Say Y here to support the Conexant USB2.0 hybrid reference design. Say Y here to support the Conexant USB2.0 hybrid reference design.
Currently, only DVB and ATSC modes are supported, analog mode Currently, only DVB and ATSC modes are supported, analog mode
......
...@@ -192,8 +192,8 @@ static int apply_frontend_param (struct dvb_frontend* fe, struct dvb_frontend_pa ...@@ -192,8 +192,8 @@ static int apply_frontend_param (struct dvb_frontend* fe, struct dvb_frontend_pa
spi_bias *= qam_tab[p->constellation]; spi_bias *= qam_tab[p->constellation];
spi_bias /= p->code_rate_HP + 1; spi_bias /= p->code_rate_HP + 1;
spi_bias /= (guard_tab[p->guard_interval] + 32); spi_bias /= (guard_tab[p->guard_interval] + 32);
spi_bias *= 1000ULL; spi_bias *= 1000;
spi_bias /= 1000ULL + ppm/1000; spi_bias /= 1000 + ppm/1000;
spi_bias *= p->code_rate_HP; spi_bias *= p->code_rate_HP;
val0x04 = (p->transmission_mode << 2) | p->guard_interval; val0x04 = (p->transmission_mode << 2) | p->guard_interval;
......
...@@ -4461,6 +4461,7 @@ static int __devinit bttv_probe(struct pci_dev *dev, ...@@ -4461,6 +4461,7 @@ static int __devinit bttv_probe(struct pci_dev *dev,
request_modules(btv); request_modules(btv);
} }
init_bttv_i2c_ir(btv);
bttv_input_init(btv); bttv_input_init(btv);
/* everything is fine */ /* everything is fine */
......
...@@ -388,7 +388,12 @@ int __devinit init_bttv_i2c(struct bttv *btv) ...@@ -388,7 +388,12 @@ int __devinit init_bttv_i2c(struct bttv *btv)
if (0 == btv->i2c_rc && i2c_scan) if (0 == btv->i2c_rc && i2c_scan)
do_i2c_scan(btv->c.v4l2_dev.name, &btv->i2c_client); do_i2c_scan(btv->c.v4l2_dev.name, &btv->i2c_client);
/* Instantiate the IR receiver device, if present */ return btv->i2c_rc;
}
/* Instantiate the I2C IR receiver device, if present */
void __devinit init_bttv_i2c_ir(struct bttv *btv)
{
if (0 == btv->i2c_rc) { if (0 == btv->i2c_rc) {
struct i2c_board_info info; struct i2c_board_info info;
/* The external IR receiver is at i2c address 0x34 (0x35 for /* The external IR receiver is at i2c address 0x34 (0x35 for
...@@ -408,7 +413,6 @@ int __devinit init_bttv_i2c(struct bttv *btv) ...@@ -408,7 +413,6 @@ int __devinit init_bttv_i2c(struct bttv *btv)
strlcpy(info.type, "ir_video", I2C_NAME_SIZE); strlcpy(info.type, "ir_video", I2C_NAME_SIZE);
i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list); i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list);
} }
return btv->i2c_rc;
} }
int __devexit fini_bttv_i2c(struct bttv *btv) int __devexit fini_bttv_i2c(struct bttv *btv)
......
...@@ -279,6 +279,7 @@ extern unsigned int bttv_debug; ...@@ -279,6 +279,7 @@ extern unsigned int bttv_debug;
extern unsigned int bttv_gpio; extern unsigned int bttv_gpio;
extern void bttv_gpio_tracking(struct bttv *btv, char *comment); extern void bttv_gpio_tracking(struct bttv *btv, char *comment);
extern int init_bttv_i2c(struct bttv *btv); extern int init_bttv_i2c(struct bttv *btv);
extern void init_bttv_i2c_ir(struct bttv *btv);
extern int fini_bttv_i2c(struct bttv *btv); extern int fini_bttv_i2c(struct bttv *btv);
#define bttv_printk if (bttv_verbose) printk #define bttv_printk if (bttv_verbose) printk
......
...@@ -514,7 +514,7 @@ static int mt9t112_init_pll(const struct i2c_client *client) ...@@ -514,7 +514,7 @@ static int mt9t112_init_pll(const struct i2c_client *client)
/* poll to verify out of standby. Must Poll this bit */ /* poll to verify out of standby. Must Poll this bit */
for (i = 0; i < 100; i++) { for (i = 0; i < 100; i++) {
mt9t112_reg_read(data, client, 0x0018); mt9t112_reg_read(data, client, 0x0018);
if (0x4000 & data) if (!(0x4000 & data))
break; break;
mdelay(10); mdelay(10);
......
...@@ -753,7 +753,7 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value) ...@@ -753,7 +753,7 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value)
buf[0] = 0xff; /* fixed */ buf[0] = 0xff; /* fixed */
ret = send_control_msg(pdev, ret = send_control_msg(pdev,
SET_LUM_CTL, SHUTTER_MODE_FORMATTER, &buf, sizeof(buf)); SET_LUM_CTL, SHUTTER_MODE_FORMATTER, &buf, 1);
if (!mode && ret >= 0) { if (!mode && ret >= 0) {
if (value < 0) if (value < 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册