aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c35
1 files changed, 3 insertions, 32 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 5f6d5491f5da..60dd80f595e9 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -268,35 +268,6 @@ static struct mt352_config dntv_live_dvbt_pro_config = {
268}; 268};
269#endif 269#endif
270 270
271static int dvico_hybrid_tuner_set_params(struct dvb_frontend *fe,
272 struct dvb_frontend_parameters *params)
273{
274 u8 pllbuf[4];
275 struct cx8802_dev *dev= fe->dvb->priv;
276 struct i2c_msg msg =
277 { .addr = dev->core->pll_addr, .flags = 0,
278 .buf = pllbuf, .len = 4 };
279 int err;
280
281 dvb_pll_configure(dev->core->pll_desc, pllbuf,
282 params->frequency,
283 params->u.ofdm.bandwidth);
284
285 if (fe->ops.i2c_gate_ctrl)
286 fe->ops.i2c_gate_ctrl(fe, 1);
287 if ((err = i2c_transfer(&dev->core->i2c_adap, &msg, 1)) != 1) {
288 printk(KERN_WARNING "cx88-dvb: %s error "
289 "(addr %02x <- %02x, err = %i)\n",
290 __FUNCTION__, pllbuf[0], pllbuf[1], err);
291 if (err < 0)
292 return err;
293 else
294 return -EREMOTEIO;
295 }
296
297 return 0;
298}
299
300static struct zl10353_config dvico_fusionhdtv_hybrid = { 271static struct zl10353_config dvico_fusionhdtv_hybrid = {
301 .demod_address = 0x0f, 272 .demod_address = 0x0f,
302 .no_tuner = 1, 273 .no_tuner = 1,
@@ -599,13 +570,13 @@ static int dvb_register(struct cx8802_dev *dev)
599#endif 570#endif
600 break; 571 break;
601 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID: 572 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID:
602 dev->core->pll_addr = 0x61;
603 dev->core->pll_desc = &dvb_pll_thomson_fe6600;
604 dev->dvb.frontend = dvb_attach(zl10353_attach, 573 dev->dvb.frontend = dvb_attach(zl10353_attach,
605 &dvico_fusionhdtv_hybrid, 574 &dvico_fusionhdtv_hybrid,
606 &dev->core->i2c_adap); 575 &dev->core->i2c_adap);
607 if (dev->dvb.frontend != NULL) { 576 if (dev->dvb.frontend != NULL) {
608 dev->dvb.frontend->ops.tuner_ops.set_params = dvico_hybrid_tuner_set_params; 577 dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
578 &dev->core->i2c_adap,
579 &dvb_pll_thomson_fe6600);
609 } 580 }
610 break; 581 break;
611 case CX88_BOARD_PCHDTV_HD3000: 582 case CX88_BOARD_PCHDTV_HD3000: