diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-30 15:38:57 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-30 15:38:57 -0400 |
| commit | 3a3485be68c3b44dd7e3790472976fdc2467bb40 (patch) | |
| tree | d66cbd2406ee68c500c5a6b5b2c1f07e9568b0bf | |
| parent | 80ba80a9bf25d251237694c3fcee850a73324532 (diff) | |
| parent | 0a0f2c87cd689857f2b0b82c5322650f7d9b5923 (diff) | |
Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
V4L/DVB (5939): dvb-pll: make struct dvb_pll_fcv1236d static
V4L/DVB (5933): Dvb-usb/af9005-fe.c: error check fixes
V4L/DVB (5932): Af9005 fix tuner module unload
V4L/DVB (5920): ivtv: fix incorrect fw size report.
V4L/DVB (5918): ivtv: fix TV-out VBI handling, only reset on last close.
V4L/DVB (5917): ivtv: improve mailbox responsiveness.
V4L/DVB (5916): ivtv: fix pause/continue/play handling
V4L/DVB (5900): usbvision: fix bugs [sg]_register functions
V4L/DVB (5899): bttv: Fix Viewcast Osprey 440 support
V4L/DVB (5893): DVB: fix includes of video.h when __KERNEL__ is undefined
V4L/DVB (5891): zr36067: Turn off raw capture properly
V4L/DVB (5890): zr36067: Add UYVY, RGB555X, RGB565X, and RGB32 formats
V4L/DVB (5888): zr36067: Driver was not returning correct image size
V4L/DVB (5887): zr36067: Fix poll() operation
V4L/DVB (5886): zr36067: Fix problem setting norms
| -rw-r--r-- | drivers/media/dvb/dvb-usb/af9005-fe.c | 47 | ||||
| -rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 238 | ||||
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.h | 1 | ||||
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-fileops.c | 10 | ||||
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-firmware.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-ioctl.c | 11 | ||||
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-mailbox.c | 14 | ||||
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-streams.c | 11 | ||||
| -rw-r--r-- | drivers/media/video/usbvision/usbvision-video.c | 5 | ||||
| -rw-r--r-- | drivers/media/video/zoran.h | 5 | ||||
| -rw-r--r-- | drivers/media/video/zoran_device.c | 50 | ||||
| -rw-r--r-- | drivers/media/video/zoran_driver.c | 233 | ||||
| -rw-r--r-- | include/linux/dvb/video.h | 1 | ||||
| -rw-r--r-- | sound/pci/bt87x.c | 2 |
15 files changed, 343 insertions, 289 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9005-fe.c b/drivers/media/dvb/dvb-usb/af9005-fe.c index 7195c9461524..b1a9c4cdec93 100644 --- a/drivers/media/dvb/dvb-usb/af9005-fe.c +++ b/drivers/media/dvb/dvb-usb/af9005-fe.c | |||
| @@ -29,8 +29,6 @@ | |||
| 29 | 29 | ||
| 30 | struct af9005_fe_state { | 30 | struct af9005_fe_state { |
| 31 | struct dvb_usb_device *d; | 31 | struct dvb_usb_device *d; |
| 32 | struct dvb_frontend *tuner; | ||
| 33 | |||
| 34 | fe_status_t stat; | 32 | fe_status_t stat; |
| 35 | 33 | ||
| 36 | /* retraining parameters */ | 34 | /* retraining parameters */ |
| @@ -345,8 +343,8 @@ static int af9005_reset_pre_viterbi(struct dvb_frontend *fe) | |||
| 345 | 1 & 0xff); | 343 | 1 & 0xff); |
| 346 | if (ret) | 344 | if (ret) |
| 347 | return ret; | 345 | return ret; |
| 348 | af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8, | 346 | ret = af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8, |
| 349 | 1 >> 8); | 347 | 1 >> 8); |
| 350 | if (ret) | 348 | if (ret) |
| 351 | return ret; | 349 | return ret; |
| 352 | /* reset pre viterbi error count */ | 350 | /* reset pre viterbi error count */ |
| @@ -447,7 +445,7 @@ static int af9005_fe_read_status(struct dvb_frontend *fe, fe_status_t * stat) | |||
| 447 | u8 temp; | 445 | u8 temp; |
| 448 | int ret; | 446 | int ret; |
| 449 | 447 | ||
| 450 | if (state->tuner == NULL) | 448 | if (fe->ops.tuner_ops.release == NULL) |
| 451 | return -ENODEV; | 449 | return -ENODEV; |
| 452 | 450 | ||
| 453 | *stat = 0; | 451 | *stat = 0; |
| @@ -493,7 +491,7 @@ static int af9005_fe_read_status(struct dvb_frontend *fe, fe_status_t * stat) | |||
| 493 | static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber) | 491 | static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber) |
| 494 | { | 492 | { |
| 495 | struct af9005_fe_state *state = fe->demodulator_priv; | 493 | struct af9005_fe_state *state = fe->demodulator_priv; |
| 496 | if (state->tuner == NULL) | 494 | if (fe->ops.tuner_ops.release == NULL) |
| 497 | return -ENODEV; | 495 | return -ENODEV; |
| 498 | af9005_fe_refresh_state(fe); | 496 | af9005_fe_refresh_state(fe); |
| 499 | *ber = state->ber; | 497 | *ber = state->ber; |
| @@ -503,7 +501,7 @@ static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber) | |||
| 503 | static int af9005_fe_read_unc_blocks(struct dvb_frontend *fe, u32 * unc) | 501 | static int af9005_fe_read_unc_blocks(struct dvb_frontend *fe, u32 * unc) |
| 504 | { | 502 | { |
| 505 | struct af9005_fe_state *state = fe->demodulator_priv; | 503 | struct af9005_fe_state *state = fe->demodulator_priv; |
| 506 | if (state->tuner == NULL) | 504 | if (fe->ops.tuner_ops.release == NULL) |
| 507 | return -ENODEV; | 505 | return -ENODEV; |
| 508 | af9005_fe_refresh_state(fe); | 506 | af9005_fe_refresh_state(fe); |
| 509 | *unc = state->unc; | 507 | *unc = state->unc; |
| @@ -517,7 +515,7 @@ static int af9005_fe_read_signal_strength(struct dvb_frontend *fe, | |||
| 517 | int ret; | 515 | int ret; |
| 518 | u8 if_gain, rf_gain; | 516 | u8 if_gain, rf_gain; |
| 519 | 517 | ||
| 520 | if (state->tuner == NULL) | 518 | if (fe->ops.tuner_ops.release == NULL) |
| 521 | return -ENODEV; | 519 | return -ENODEV; |
| 522 | ret = | 520 | ret = |
| 523 | af9005_read_ofdm_register(state->d, xd_r_reg_aagc_rf_gain, | 521 | af9005_read_ofdm_register(state->d, xd_r_reg_aagc_rf_gain, |
| @@ -881,10 +879,8 @@ static int af9005_fe_init(struct dvb_frontend *fe) | |||
| 881 | af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst, | 879 | af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst, |
| 882 | reg_ofdm_rst_pos, reg_ofdm_rst_len, 1))) | 880 | reg_ofdm_rst_pos, reg_ofdm_rst_len, 1))) |
| 883 | return ret; | 881 | return ret; |
| 884 | if ((ret = | 882 | ret = af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst, |
| 885 | af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst, | 883 | reg_ofdm_rst_pos, reg_ofdm_rst_len, 0); |
| 886 | reg_ofdm_rst_pos, reg_ofdm_rst_len, 0))) | ||
| 887 | return ret; | ||
| 888 | 884 | ||
| 889 | if (ret) | 885 | if (ret) |
| 890 | return ret; | 886 | return ret; |
| @@ -1041,7 +1037,7 @@ static int af9005_fe_init(struct dvb_frontend *fe) | |||
| 1041 | return ret; | 1037 | return ret; |
| 1042 | 1038 | ||
| 1043 | /* attach tuner and init */ | 1039 | /* attach tuner and init */ |
| 1044 | if (state->tuner == NULL) { | 1040 | if (fe->ops.tuner_ops.release == NULL) { |
| 1045 | /* read tuner and board id from eeprom */ | 1041 | /* read tuner and board id from eeprom */ |
| 1046 | ret = af9005_read_eeprom(adap->dev, 0xc6, buf, 2); | 1042 | ret = af9005_read_eeprom(adap->dev, 0xc6, buf, 2); |
| 1047 | if (ret) { | 1043 | if (ret) { |
| @@ -1058,20 +1054,16 @@ static int af9005_fe_init(struct dvb_frontend *fe) | |||
| 1058 | return ret; | 1054 | return ret; |
| 1059 | } | 1055 | } |
| 1060 | if1 = (u16) (buf[0] << 8) + buf[1]; | 1056 | if1 = (u16) (buf[0] << 8) + buf[1]; |
| 1061 | state->tuner = | 1057 | if (dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap, |
| 1062 | dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap, | 1058 | &af9005_mt2060_config, if1) == NULL) { |
| 1063 | &af9005_mt2060_config, if1); | ||
| 1064 | if (state->tuner == NULL) { | ||
| 1065 | deb_info("MT2060 attach failed\n"); | 1059 | deb_info("MT2060 attach failed\n"); |
| 1066 | return -ENODEV; | 1060 | return -ENODEV; |
| 1067 | } | 1061 | } |
| 1068 | break; | 1062 | break; |
| 1069 | case 3: /* QT1010 */ | 1063 | case 3: /* QT1010 */ |
| 1070 | case 9: /* QT1010B */ | 1064 | case 9: /* QT1010B */ |
| 1071 | state->tuner = | 1065 | if (dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap, |
| 1072 | dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap, | 1066 | &af9005_qt1010_config) ==NULL) { |
| 1073 | &af9005_qt1010_config); | ||
| 1074 | if (state->tuner == NULL) { | ||
| 1075 | deb_info("QT1010 attach failed\n"); | 1067 | deb_info("QT1010 attach failed\n"); |
| 1076 | return -ENODEV; | 1068 | return -ENODEV; |
| 1077 | } | 1069 | } |
| @@ -1080,7 +1072,7 @@ static int af9005_fe_init(struct dvb_frontend *fe) | |||
| 1080 | err("Unsupported tuner type %d", buf[0]); | 1072 | err("Unsupported tuner type %d", buf[0]); |
| 1081 | return -ENODEV; | 1073 | return -ENODEV; |
| 1082 | } | 1074 | } |
| 1083 | ret = state->tuner->ops.tuner_ops.init(state->tuner); | 1075 | ret = fe->ops.tuner_ops.init(fe); |
| 1084 | if (ret) | 1076 | if (ret) |
| 1085 | return ret; | 1077 | return ret; |
| 1086 | } | 1078 | } |
| @@ -1118,7 +1110,7 @@ static int af9005_fe_set_frontend(struct dvb_frontend *fe, | |||
| 1118 | 1110 | ||
| 1119 | deb_info("af9005_fe_set_frontend freq %d bw %d\n", fep->frequency, | 1111 | deb_info("af9005_fe_set_frontend freq %d bw %d\n", fep->frequency, |
| 1120 | fep->u.ofdm.bandwidth); | 1112 | fep->u.ofdm.bandwidth); |
| 1121 | if (state->tuner == NULL) { | 1113 | if (fe->ops.tuner_ops.release == NULL) { |
| 1122 | err("Tuner not attached"); | 1114 | err("Tuner not attached"); |
| 1123 | return -ENODEV; | 1115 | return -ENODEV; |
| 1124 | } | 1116 | } |
| @@ -1199,7 +1191,7 @@ static int af9005_fe_set_frontend(struct dvb_frontend *fe, | |||
| 1199 | return ret; | 1191 | return ret; |
| 1200 | /* set tuner */ | 1192 | /* set tuner */ |
