diff -Naurp v4l-dvb/linux/drivers/media/video/saa7134/saa7134-dvb.c mp-bc1/linux/drivers/media/video/saa7134/saa7134-dvb.c --- v4l-dvb/linux/drivers/media/video/saa7134/saa7134-dvb.c 2006-06-30 19:59:11.000000000 +0400 +++ mp-bc1/linux/drivers/media/video/saa7134/saa7134-dvb.c 2006-07-23 12:33:22.000000000 +0400 @@ -133,8 +133,8 @@ static int mt352_aver777_init(struct dvb return 0; } -static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe, - struct dvb_frontend_parameters* params) +static int mt352_pinnacle_tuner_set_params_compat(struct dvb_frontend* fe, + struct dvb_frontend_parameters* params) { u8 off[] = { 0x00, 0xf1}; u8 on[] = { 0x00, 0x71}; @@ -162,7 +162,36 @@ static int mt352_pinnacle_tuner_set_para return mt352_pinnacle_init(fe); } -static int mt352_aver777_tuner_calc_regs(struct dvb_frontend *fe, struct dvb_frontend_parameters *params, u8* pllbuf, int buf_len) +static int mt352_pinnacle_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) +{ + u8 off[] = { 0x00, 0xf1}; + u8 on[] = { 0x00, 0x71}; + struct i2c_msg msg = {.addr=0x43, .flags=0, .buf=off, .len = sizeof (off)}; + + struct saa7134_dev *dev = fe->dvb->priv; + struct v4l2_frequency f; + + /* set frequency (mt2050) */ + f.tuner = 0; + f.type = V4L2_TUNER_DIGITAL_TV; + f.frequency = params->frequency / 1000 * 16 / 1000; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &msg, 1); + saa7134_i2c_call_clients(dev,VIDIOC_S_FREQUENCY,&f); + msg.buf = on; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &msg, 1); + + pinnacle_antenna_pwr(dev, antenna_pwr); + + /* mt352 setup */ + return mt352_pinnacle_init(fe); +} + +static int mt352_aver777_tuner_calc_regs_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params, u8* pllbuf, int buf_len) { if (buf_len < 5) return -EINVAL; @@ -174,6 +203,21 @@ static int mt352_aver777_tuner_calc_regs return 5; } +static int mt352_aver777_tuner_calc_regs(struct dvb_frontend *fe, + struct dvbfe_params *params, + u8* pllbuf, + int buf_len) +{ + if (buf_len < 5) + return -EINVAL; + + pllbuf[0] = 0x61; + dvb_pll_configure(&dvb_pll_philips_td1316, pllbuf + 1, + params->frequency, + params->delsys.dvbt.bandwidth); + return 5; +} + static struct mt352_config pinnacle_300i = { .demod_address = 0x3c >> 1, .adc_clock = 20333, @@ -192,7 +236,9 @@ static struct mt352_config avermedia_777 #ifdef HAVE_TDA1004X -static int philips_tda6651_pll_set(u8 addr, struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_tda6651_pll_set_compat(u8 addr, + struct dvb_frontend *fe, + struct dvb_frontend_parameters *params) { struct saa7134_dev *dev = fe->dvb->priv; u8 tuner_buf[4]; @@ -275,6 +321,88 @@ static int philips_tda6651_pll_set(u8 ad return 0; } +static int philips_tda6651_pll_set(u8 addr, + struct dvb_frontend *fe, + struct dvbfe_params *params) +{ + struct saa7134_dev *dev = fe->dvb->priv; + u8 tuner_buf[4]; + struct i2c_msg tuner_msg = {.addr = addr,.flags = 0,.buf = tuner_buf,.len = + sizeof(tuner_buf) }; + int tuner_frequency = 0; + u8 band, cp, filter; + + /* determine charge pump */ + tuner_frequency = params->frequency + 36166000; + if (tuner_frequency < 87000000) + return -EINVAL; + else if (tuner_frequency < 130000000) + cp = 3; + else if (tuner_frequency < 160000000) + cp = 5; + else if (tuner_frequency < 200000000) + cp = 6; + else if (tuner_frequency < 290000000) + cp = 3; + else if (tuner_frequency < 420000000) + cp = 5; + else if (tuner_frequency < 480000000) + cp = 6; + else if (tuner_frequency < 620000000) + cp = 3; + else if (tuner_frequency < 830000000) + cp = 5; + else if (tuner_frequency < 895000000) + cp = 7; + else + return -EINVAL; + + /* determine band */ + if (params->frequency < 49000000) + return -EINVAL; + else if (params->frequency < 161000000) + band = 1; + else if (params->frequency < 444000000) + band = 2; + else if (params->frequency < 861000000) + band = 4; + else + return -EINVAL; + + /* setup PLL filter */ + switch (params->delsys.dvbt.bandwidth) { + case DVBFE_BANDWIDTH_6_MHZ: + filter = 0; + break; + case DVBFE_BANDWIDTH_7_MHZ: + filter = 0; + break; + case DVBFE_BANDWIDTH_8_MHZ: + filter = 1; + break; + default: + return -EINVAL; + } + + /* calculate divisor + * ((36166000+((1000000/6)/2)) + Finput)/(1000000/6) + */ + tuner_frequency = (((params->frequency / 1000) * 6) + 217496) / 1000; + + /* setup tuner buffer */ + tuner_buf[0] = (tuner_frequency >> 8) & 0x7f; + tuner_buf[1] = tuner_frequency & 0xff; + tuner_buf[2] = 0xca; + tuner_buf[3] = (cp << 5) | (filter << 3) | band; + + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + if (i2c_transfer(&dev->i2c_adap, &tuner_msg, 1) != 1) + return -EIO; + msleep(1); + return 0; +} + static int philips_tda6651_pll_init(u8 addr, struct dvb_frontend *fe) { struct saa7134_dev *dev = fe->dvb->priv; @@ -298,7 +426,13 @@ static int philips_tu1216_tuner_60_init( return philips_tda6651_pll_init(0x60, fe); } -static int philips_tu1216_tuner_60_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_tu1216_tuner_60_set_params_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +{ + return philips_tda6651_pll_set_compat(0x60, fe, params); +} + +static int philips_tu1216_tuner_60_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { return philips_tda6651_pll_set(0x60, fe, params); } @@ -328,7 +462,13 @@ static int philips_tu1216_tuner_61_init( return philips_tda6651_pll_init(0x61, fe); } -static int philips_tu1216_tuner_61_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_tu1216_tuner_61_set_params_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +{ + return philips_tda6651_pll_set_compat(0x61, fe, params); +} + +static int philips_tu1216_tuner_61_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { return philips_tda6651_pll_set(0x61, fe, params); } @@ -372,7 +512,13 @@ static int philips_europa_tuner_init(str return 0; } -static int philips_td1316_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_td1316_tuner_set_params_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +{ + return philips_tda6651_pll_set_compat(0x61, fe, params); +} + +static int philips_td1316_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { return philips_tda6651_pll_set(0x61, fe, params); } @@ -457,7 +603,7 @@ static int philips_fmd1216_tuner_sleep(s return 0; } -static int philips_fmd1216_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_fmd1216_tuner_set_params_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) { struct saa7134_dev *dev = fe->dvb->priv; u8 tuner_buf[4]; @@ -541,6 +687,91 @@ static int philips_fmd1216_tuner_set_par return 0; } +static int philips_fmd1216_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) +{ + struct saa7134_dev *dev = fe->dvb->priv; + u8 tuner_buf[4]; + struct i2c_msg tuner_msg = {.addr = 0x61,.flags = 0,.buf = tuner_buf,.len = + sizeof(tuner_buf) }; + int tuner_frequency = 0; + int divider = 0; + u8 band, mode, cp; + + /* determine charge pump */ + tuner_frequency = params->frequency + 36130000; + if (tuner_frequency < 87000000) + return -EINVAL; + /* low band */ + else if (tuner_frequency < 180000000) { + band = 1; + mode = 7; + cp = 0; + } else if (tuner_frequency < 195000000) { + band = 1; + mode = 6; + cp = 1; + /* mid band */ + } else if (tuner_frequency < 366000000) { + if (params->delsys.dvbt.bandwidth == DVBFE_BANDWIDTH_8_MHZ) { + band = 10; + } else { + band = 2; + } + mode = 7; + cp = 0; + } else if (tuner_frequency < 478000000) { + if (params->delsys.dvbt.bandwidth == DVBFE_BANDWIDTH_8_MHZ) { + band = 10; + } else { + band = 2; + } + mode = 6; + cp = 1; + /* high band */ + } else if (tuner_frequency < 662000000) { + if (params->delsys.dvbt.bandwidth == DVBFE_BANDWIDTH_8_MHZ) { + band = 12; + } else { + band = 4; + } + mode = 7; + cp = 0; + } else if (tuner_frequency < 840000000) { + if (params->delsys.dvbt.bandwidth == DVBFE_BANDWIDTH_8_MHZ) { + band = 12; + } else { + band = 4; + } + mode = 6; + cp = 1; + } else { + if (params->delsys.dvbt.bandwidth == DVBFE_BANDWIDTH_8_MHZ) { + band = 12; + } else { + band = 4; + } + mode = 7; + cp = 1; + + } + /* calculate divisor */ + /* ((36166000 + Finput) / 166666) rounded! */ + divider = (tuner_frequency + 83333) / 166667; + + /* setup tuner buffer */ + tuner_buf[0] = (divider >> 8) & 0x7f; + tuner_buf[1] = divider & 0xff; + tuner_buf[2] = 0x80 | (cp << 6) | (mode << 3) | 4; + tuner_buf[3] = 0x40 | band; + + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + if (i2c_transfer(&dev->i2c_adap, &tuner_msg, 1) != 1) + return -EIO; + return 0; +} + static struct tda1004x_config medion_cardbus = { .demod_address = 0x08, .invert = 1, @@ -600,7 +831,7 @@ static int philips_tda827x_tuner_init(st return 0; } -static int philips_tda827x_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_tda827x_tuner_set_params_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) { struct saa7134_dev *dev = fe->dvb->priv; u8 tuner_buf[14]; @@ -664,6 +895,71 @@ static int philips_tda827x_tuner_set_par return 0; } +static int philips_tda827x_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) +{ + struct saa7134_dev *dev = fe->dvb->priv; + u8 tuner_buf[14]; + + struct i2c_msg tuner_msg = {.addr = 0x60,.flags = 0,.buf = tuner_buf, + .len = sizeof(tuner_buf) }; + int i, tuner_freq, if_freq; + u32 N; + switch (params->delsys.dvbt.bandwidth) { + case DVBFE_BANDWIDTH_6_MHZ: + if_freq = 4000000; + break; + case DVBFE_BANDWIDTH_7_MHZ: + if_freq = 4500000; + break; + default: /* 8 MHz or Auto */ + if_freq = 5000000; + break; + } + tuner_freq = params->frequency + if_freq; + + i = 0; + while (tda827x_dvbt[i].lomax < tuner_freq) { + if(tda827x_dvbt[i + 1].lomax == 0) + break; + i++; + } + + N = ((tuner_freq + 125000) / 250000) << (tda827x_dvbt[i].spd + 2); + tuner_buf[0] = 0; + tuner_buf[1] = (N>>8) | 0x40; + tuner_buf[2] = N & 0xff; + tuner_buf[3] = 0; + tuner_buf[4] = 0x52; + tuner_buf[5] = (tda827x_dvbt[i].spd << 6) + (tda827x_dvbt[i].div1p5 << 5) + + (tda827x_dvbt[i].bs << 3) + tda827x_dvbt[i].bp; + tuner_buf[6] = (tda827x_dvbt[i].gc3 << 4) + 0x8f; + tuner_buf[7] = 0xbf; + tuner_buf[8] = 0x2a; + tuner_buf[9] = 0x05; + tuner_buf[10] = 0xff; + tuner_buf[11] = 0x00; + tuner_buf[12] = 0x00; + tuner_buf[13] = 0x40; + + tuner_msg.len = 14; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + if (i2c_transfer(&dev->i2c_adap, &tuner_msg, 1) != 1) + return -EIO; + + msleep(500); + /* correct CP value */ + tuner_buf[0] = 0x30; + tuner_buf[1] = 0x50 + tda827x_dvbt[i].cp; + tuner_msg.len = 2; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &tuner_msg, 1); + + return 0; +} + static int philips_tda827x_tuner_sleep(struct dvb_frontend *fe) { struct saa7134_dev *dev = fe->dvb->priv; @@ -727,7 +1023,7 @@ static struct tda827xa_data tda827xa_dvb { .lomax = 0, .svco = 0, .spd = 0, .scr = 0, .sbs = 0, .gc3 = 0}}; -static int philips_tda827xa_pll_set(u8 addr, struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_tda827xa_pll_set_compat(u8 addr, struct dvb_frontend *fe, struct dvb_frontend_parameters *params) { struct saa7134_dev *dev = fe->dvb->priv; u8 tuner_buf[14]; @@ -813,6 +1109,94 @@ static int philips_tda827xa_pll_set(u8 a } +static int philips_tda827xa_pll_set(u8 addr, + struct dvb_frontend *fe, + struct dvbfe_params *params) +{ + struct saa7134_dev *dev = fe->dvb->priv; + u8 tuner_buf[14]; + unsigned char reg2[2]; + + struct i2c_msg msg = {.addr = addr,.flags = 0,.buf = tuner_buf}; + int i, tuner_freq, if_freq; + u32 N; + + switch (params->delsys.dvbt.bandwidth) { + case DVBFE_BANDWIDTH_6_MHZ: + if_freq = 4000000; + break; + case DVBFE_BANDWIDTH_7_MHZ: + if_freq = 4500000; + break; + default: /* 8 MHz or Auto */ + if_freq = 5000000; + break; + } + tuner_freq = params->frequency + if_freq; + + i = 0; + while (tda827xa_dvbt[i].lomax < tuner_freq) { + if(tda827xa_dvbt[i + 1].lomax == 0) + break; + i++; + } + + N = ((tuner_freq + 31250) / 62500) << tda827xa_dvbt[i].spd; + tuner_buf[0] = 0; // subaddress + tuner_buf[1] = N >> 8; + tuner_buf[2] = N & 0xff; + tuner_buf[3] = 0; + tuner_buf[4] = 0x16; + tuner_buf[5] = (tda827xa_dvbt[i].spd << 5) + (tda827xa_dvbt[i].svco << 3) + + tda827xa_dvbt[i].sbs; + tuner_buf[6] = 0x4b + (tda827xa_dvbt[i].gc3 << 4); + tuner_buf[7] = 0x0c; + tuner_buf[8] = 0x06; + tuner_buf[9] = 0x24; + tuner_buf[10] = 0xff; + tuner_buf[11] = 0x60; + tuner_buf[12] = 0x00; + tuner_buf[13] = 0x39; // lpsel + msg.len = 14; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1) + return -EIO; + + msg.buf= reg2; + msg.len = 2; + reg2[0] = 0x60; + reg2[1] = 0x3c; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &msg, 1); + + reg2[0] = 0xa0; + reg2[1] = 0x40; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &msg, 1); + + msleep(2); + /* correct CP value */ + reg2[0] = 0x30; + reg2[1] = 0x10 + tda827xa_dvbt[i].scr; + msg.len = 2; + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &msg, 1); + + msleep(550); + reg2[0] = 0x50; + reg2[1] = 0x4f + (tda827xa_dvbt[i].gc3 << 4); + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); + i2c_transfer(&dev->i2c_adap, &msg, 1); + + return 0; + +} + static int philips_tda827xa_tuner_sleep(u8 addr, struct dvb_frontend *fe) { struct saa7134_dev *dev = fe->dvb->priv; @@ -827,7 +1211,31 @@ static int philips_tda827xa_tuner_sleep( /* ------------------------------------------------------------------ */ -static int philips_tiger_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int philips_tiger_tuner_set_params_compat(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +{ + int ret; + struct saa7134_dev *dev = fe->dvb->priv; + static u8 tda8290_close[] = { 0x21, 0xc0}; + static u8 tda8290_open[] = { 0x21, 0x80}; + struct i2c_msg tda8290_msg = {.addr = 0x4b,.flags = 0, .len = 2}; + + /* close tda8290 i2c bridge */ + tda8290_msg.buf = tda8290_close; + ret = i2c_transfer(&dev->i2c_adap, &tda8290_msg, 1); + if (ret != 1) + return -EIO; + msleep(20); + ret = philips_tda827xa_pll_set_compat(0x61, fe, params); + if (ret != 0) + return ret; + /* open tda8290 i2c bridge */ + tda8290_msg.buf = tda8290_open; + i2c_transfer(&dev->i2c_adap, &tda8290_msg, 1); + return ret; +} + +static int philips_tiger_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { int ret; struct saa7134_dev *dev = fe->dvb->priv; @@ -884,7 +1292,17 @@ static struct tda1004x_config philips_ti /* ------------------------------------------------------------------ */ -static int lifeview_trio_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int lifeview_trio_tuner_set_params_compat(struct dvb_frontend *fe, + struct dvb_frontend_parameters *params) +{ + int ret; + + ret = philips_tda827xa_pll_set_compat(0x60, fe, params); + return ret; +} + +static int lifeview_trio_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { int ret; @@ -910,7 +1328,17 @@ static struct tda1004x_config lifeview_t /* ------------------------------------------------------------------ */ -static int ads_duo_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int ads_duo_tuner_set_params_compat(struct dvb_frontend *fe, + struct dvb_frontend_parameters *params) +{ + int ret; + + ret = philips_tda827xa_pll_set_compat(0x61, fe, params); + return ret; +} + +static int ads_duo_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { int ret; @@ -947,7 +1375,16 @@ static struct tda1004x_config ads_tech_d /* ------------------------------------------------------------------ */ -static int tevion_dvb220rf_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) +static int tevion_dvb220rf_tuner_set_params_compat(struct dvb_frontend *fe, + struct dvb_frontend_parameters *params) +{ + int ret; + ret = philips_tda827xa_pll_set_compat(0x60, fe, params); + return ret; +} + +static int tevion_dvb220rf_tuner_set_params(struct dvb_frontend *fe, + struct dvbfe_params *params) { int ret; ret = philips_tda827xa_pll_set(0x60, fe, params); @@ -1016,6 +1453,7 @@ static int dvb_init(struct saa7134_dev * dev->dvb.frontend = mt352_attach(&pinnacle_300i, &dev->i2c_adap); if (dev->dvb.frontend) { + dev->dvb.frontend->ops.tuner_ops.set_params_compat = mt352_pinnacle_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = mt352_pinnacle_tuner_set_params; } break; @@ -1025,6 +1463,7 @@ static int dvb_init(struct saa7134_dev * dev->dvb.frontend = mt352_attach(&avermedia_777, &dev->i2c_adap); if (dev->dvb.frontend) { + dev->dvb.frontend->ops.tuner_ops.calc_regs_compat = mt352_aver777_tuner_calc_regs_compat; dev->dvb.frontend->ops.tuner_ops.calc_regs = mt352_aver777_tuner_calc_regs; } break; @@ -1036,6 +1475,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_fmd1216_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_fmd1216_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_fmd1216_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_fmd1216_tuner_set_params; } break; @@ -1044,6 +1484,7 @@ static int dvb_init(struct saa7134_dev * &dev->i2c_adap); if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tu1216_tuner_60_init; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tu1216_tuner_60_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tu1216_tuner_60_set_params; } break; @@ -1053,6 +1494,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tda827x_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tda827x_tuner_set_params; } break; @@ -1062,6 +1504,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tda827x_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tda827x_tuner_set_params; } break; @@ -1073,6 +1516,7 @@ static int dvb_init(struct saa7134_dev * dev->dvb.frontend->ops.sleep = philips_europa_demod_sleep; dev->dvb.frontend->ops.tuner_ops.init = philips_europa_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_europa_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_td1316_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_td1316_tuner_set_params; } break; @@ -1082,6 +1526,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_europa_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_europa_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_td1316_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_td1316_tuner_set_params; } break; @@ -1090,6 +1535,7 @@ static int dvb_init(struct saa7134_dev * &dev->i2c_adap); if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tu1216_tuner_61_init; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tu1216_tuner_61_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tu1216_tuner_61_set_params; } break; @@ -1099,6 +1545,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tiger_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tiger_tuner_set_params; } break; @@ -1108,6 +1555,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tiger_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tiger_tuner_set_params; } break; @@ -1117,6 +1565,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = philips_tda827x_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = philips_tda827x_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = philips_tda827x_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = philips_tda827x_tuner_set_params; } break; @@ -1125,6 +1574,7 @@ static int dvb_init(struct saa7134_dev * &dev->i2c_adap); if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = lifeview_trio_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = lifeview_trio_tuner_set_params; } break; @@ -1134,6 +1584,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = ads_duo_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = ads_duo_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = ads_duo_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = ads_duo_tuner_set_params; } break; @@ -1142,6 +1593,7 @@ static int dvb_init(struct saa7134_dev * &dev->i2c_adap); if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.sleep = tevion_dvb220rf_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = tevion_dvb220rf_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = tevion_dvb220rf_tuner_set_params; } break; @@ -1151,6 +1603,7 @@ static int dvb_init(struct saa7134_dev * if (dev->dvb.frontend) { dev->dvb.frontend->ops.tuner_ops.init = ads_duo_tuner_init; dev->dvb.frontend->ops.tuner_ops.sleep = ads_duo_tuner_sleep; + dev->dvb.frontend->ops.tuner_ops.set_params_compat = ads_duo_tuner_set_params_compat; dev->dvb.frontend->ops.tuner_ops.set_params = ads_duo_tuner_set_params; } break;
_______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb