Lines Matching +full:mini +full:- +full:core

33 #include "dvb-pll.h"
34 #include <media/v4l2-common.h>
38 #include "cx88-vp3054-i2c.h"
49 #include "tuner-simple.h"
80 printk(KERN_DEBUG "%s/2-dvb: " fmt, core->name, ## arg)
82 /* ------------------------------------------------------------------ */
87 struct cx8802_dev *dev = q->priv_data; in dvb_buf_setup()
89 dev->ts_packet_size = 188 * 4; in dvb_buf_setup()
90 dev->ts_packet_count = dvb_buf_tscnt; in dvb_buf_setup()
92 *size = dev->ts_packet_size * dev->ts_packet_count; in dvb_buf_setup()
100 struct cx8802_dev *dev = q->priv_data; in dvb_buf_prepare()
106 struct cx8802_dev *dev = q->priv_data; in dvb_buf_queue()
123 /* ------------------------------------------------------------------ */
127 struct cx8802_dev *dev= fe->dvb->priv; in cx88_dvb_bus_ctrl()
132 fe_id = videobuf_dvb_find_frontend(&dev->frontends, fe); in cx88_dvb_bus_ctrl()
135 return -EINVAL; in cx88_dvb_bus_ctrl()
138 mutex_lock(&dev->core->lock); in cx88_dvb_bus_ctrl()
142 dev->frontends.active_fe_id = fe_id; in cx88_dvb_bus_ctrl()
143 ret = drv->request_acquire(drv); in cx88_dvb_bus_ctrl()
145 ret = drv->request_release(drv); in cx88_dvb_bus_ctrl()
146 dev->frontends.active_fe_id = 0; in cx88_dvb_bus_ctrl()
149 mutex_unlock(&dev->core->lock); in cx88_dvb_bus_ctrl()
154 static void cx88_dvb_gate_ctrl(struct cx88_core *core, int open) in cx88_dvb_gate_ctrl() argument
159 if (!core->dvbdev) in cx88_dvb_gate_ctrl()
162 f = &core->dvbdev->frontends; in cx88_dvb_gate_ctrl()
167 if (f->gate <= 1) /* undefined or fe0 */ in cx88_dvb_gate_ctrl()
170 fe = videobuf_dvb_get_frontend(f, f->gate); in cx88_dvb_gate_ctrl()
172 if (fe && fe->dvb.frontend && fe->dvb.frontend->ops.i2c_gate_ctrl) in cx88_dvb_gate_ctrl()
173 fe->dvb.frontend->ops.i2c_gate_ctrl(fe->dvb.frontend, open); in cx88_dvb_gate_ctrl()
176 /* ------------------------------------------------------------------ */
332 struct cx8802_dev *dev= fe->dvb->priv; in or51132_set_ts_param()
333 dev->ts_gen_cntrl = is_punctured ? 0x04 : 0x00; in or51132_set_ts_param()
344 struct cx8802_dev *dev= fe->dvb->priv; in lgdt330x_pll_rf_set()
345 struct cx88_core *core = dev->core; in lgdt330x_pll_rf_set() local
357 struct cx8802_dev *dev= fe->dvb->priv; in lgdt330x_set_ts_param()
359 dev->ts_gen_cntrl |= 0x04; in lgdt330x_set_ts_param()
361 dev->ts_gen_cntrl &= ~0x04; in lgdt330x_set_ts_param()
388 struct cx8802_dev *dev= fe->dvb->priv; in nxt200x_set_ts_param()
389 dev->ts_gen_cntrl = is_punctured ? 0x04 : 0x00; in nxt200x_set_ts_param()
401 struct cx8802_dev *dev= fe->dvb->priv; in cx24123_set_ts_param()
402 dev->ts_gen_cntrl = 0x02; in cx24123_set_ts_param()
409 struct cx8802_dev *dev= fe->dvb->priv; in kworld_dvbs_100_set_voltage()
410 struct cx88_core *core = dev->core; in kworld_dvbs_100_set_voltage() local
417 if (core->prev_set_voltage) in kworld_dvbs_100_set_voltage()
418 return core->prev_set_voltage(fe, voltage); in kworld_dvbs_100_set_voltage()
425 struct cx8802_dev *dev= fe->dvb->priv; in geniatech_dvbs_set_voltage()
426 struct cx88_core *core = dev->core; in geniatech_dvbs_set_voltage() local
433 if (core->prev_set_voltage) in geniatech_dvbs_set_voltage()
434 return core->prev_set_voltage(fe, voltage); in geniatech_dvbs_set_voltage()
441 struct cx8802_dev *dev= fe->dvb->priv; in tevii_dvbs_set_voltage()
442 struct cx88_core *core = dev->core; in tevii_dvbs_set_voltage() local
457 if (core->prev_set_voltage) in tevii_dvbs_set_voltage()
458 return core->prev_set_voltage(fe, voltage); in tevii_dvbs_set_voltage()
465 struct cx8802_dev *dev = fe->dvb->priv; in vp1027_set_voltage()
466 struct cx88_core *core = dev->core; in vp1027_set_voltage() local
483 if (core->prev_set_voltage) in vp1027_set_voltage()
484 return core->prev_set_voltage(fe, voltage); in vp1027_set_voltage()
570 .i2c_adap = &dev->core->i2c_adap, in attach_xc3028()
576 fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1); in attach_xc3028()
578 return -EINVAL; in attach_xc3028()
580 if (!fe0->dvb.frontend) { in attach_xc3028()
583 dev->core->name); in attach_xc3028()
584 return -EINVAL; in attach_xc3028()
589 * to happen with some s5h1409-based devices. in attach_xc3028()
592 cx88_setup_xc3028(dev->core, &ctl); in attach_xc3028()
594 fe = dvb_attach(xc2028_attach, fe0->dvb.frontend, &cfg); in attach_xc3028()
597 dev->core->name); in attach_xc3028()
598 dvb_frontend_detach(fe0->dvb.frontend); in attach_xc3028()
599 dvb_unregister_frontend(fe0->dvb.frontend); in attach_xc3028()
600 fe0->dvb.frontend = NULL; in attach_xc3028()
601 return -EINVAL; in attach_xc3028()
605 dev->core->name); in attach_xc3028()
616 fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1); in attach_xc4000()
618 return -EINVAL; in attach_xc4000()
620 if (!fe0->dvb.frontend) { in attach_xc4000()
623 dev->core->name); in attach_xc4000()
624 return -EINVAL; in attach_xc4000()
627 fe = dvb_attach(xc4000_attach, fe0->dvb.frontend, &dev->core->i2c_adap, in attach_xc4000()
631 dev->core->name); in attach_xc4000()
632 dvb_frontend_detach(fe0->dvb.frontend); in attach_xc4000()
633 dvb_unregister_frontend(fe0->dvb.frontend); in attach_xc4000()
634 fe0->dvb.frontend = NULL; in attach_xc4000()
635 return -EINVAL; in attach_xc4000()
638 printk(KERN_INFO "%s/2: xc4000 attached\n", dev->core->name); in attach_xc4000()
646 struct cx8802_dev *dev = fe->dvb->priv; in cx24116_set_ts_param()
647 dev->ts_gen_cntrl = 0x2; in cx24116_set_ts_param()
655 struct cx8802_dev *dev = fe->dvb->priv; in stv0900_set_ts_param()
656 dev->ts_gen_cntrl = 0; in stv0900_set_ts_param()
663 struct cx8802_dev *dev = fe->dvb->priv; in cx24116_reset_device()
664 struct cx88_core *core = dev->core; in cx24116_reset_device() local
692 struct cx8802_dev *dev = fe->dvb->priv; in ds3000_set_ts_param()
693 dev->ts_gen_cntrl = 4; in ds3000_set_ts_param()
707 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */
741 struct cx88_core *core = dev->core; in cx8802_alloc_frontends() local
745 mutex_init(&dev->frontends.lock); in cx8802_alloc_frontends()
746 INIT_LIST_HEAD(&dev->frontends.felist); in cx8802_alloc_frontends()
748 if (!core->board.num_frontends) in cx8802_alloc_frontends()
749 return -ENODEV; in cx8802_alloc_frontends()
752 core->board.num_frontends); in cx8802_alloc_frontends()
753 for (i = 1; i <= core->board.num_frontends; i++) { in cx8802_alloc_frontends()
754 fe = videobuf_dvb_alloc_frontend(&dev->frontends, i); in cx8802_alloc_frontends()
757 videobuf_dvb_dealloc_frontends(&dev->frontends); in cx8802_alloc_frontends()
758 return -ENOMEM; in cx8802_alloc_frontends()
820 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in samsung_smt_7020_tuner_set_params()
821 struct cx8802_dev *dev = fe->dvb->priv; in samsung_smt_7020_tuner_set_params()
830 div = c->frequency / 125; in samsung_smt_7020_tuner_set_params()
837 if (c->frequency < 1500000) in samsung_smt_7020_tuner_set_params()
840 if (fe->ops.i2c_gate_ctrl) in samsung_smt_7020_tuner_set_params()
841 fe->ops.i2c_gate_ctrl(fe, 1); in samsung_smt_7020_tuner_set_params()
843 if (i2c_transfer(&dev->core->i2c_adap, &msg, 1) != 1) in samsung_smt_7020_tuner_set_params()
844 return -EIO; in samsung_smt_7020_tuner_set_params()
852 struct cx8802_dev *dev = fe->dvb->priv; in samsung_smt_7020_set_tone()
853 struct cx88_core *core = dev->core; in samsung_smt_7020_set_tone() local
865 return -EINVAL; in samsung_smt_7020_set_tone()
874 struct cx8802_dev *dev = fe->dvb->priv; in samsung_smt_7020_set_voltage()
875 struct cx88_core *core = dev->core; in samsung_smt_7020_set_voltage() local
898 return -EINVAL; in samsung_smt_7020_set_voltage()
901 return (i2c_transfer(&dev->core->i2c_adap, &msg, 1) == 1) ? 0 : -EIO; in samsung_smt_7020_set_voltage()
954 struct cx88_core *core = dev->core; in dvb_register() local
957 int res = -EINVAL; in dvb_register()
959 if (0 != core->i2c_rc) { in dvb_register()
960 printk(KERN_ERR "%s/2: no i2c-bus available, cannot attach dvb drivers\n", core->name); in dvb_register()
965 fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1); in dvb_register()
969 /* multi-frontend gate control is undefined or defaults to fe0 */ in dvb_register()
970 dev->frontends.gate = 0; in dvb_register()
973 core->gate_ctrl = cx88_dvb_gate_ctrl; in dvb_register()
976 switch (core->boardnr) { in dvb_register()
978 fe0->dvb.frontend = dvb_attach(cx22702_attach, in dvb_register()
980 &core->i2c_adap); in dvb_register()
981 if (fe0->dvb.frontend != NULL) { in dvb_register()
982 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
983 0x61, &core->i2c_adap, in dvb_register()
992 fe0->dvb.frontend = dvb_attach(cx22702_attach, in dvb_register()
994 &core->i2c_adap); in dvb_register()
995 if (fe0->dvb.frontend != NULL) { in dvb_register()
996 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
997 0x60, &core->i2c_adap, in dvb_register()
1006 fe0->dvb.frontend = dvb_attach(cx22702_attach, in dvb_register()
1008 &core->i2c_adap); in dvb_register()
1009 if (fe0->dvb.frontend != NULL) { in dvb_register()
1010 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1011 &core->i2c_adap, 0x61, in dvb_register()
1017 fe0->dvb.frontend = dvb_attach(cx22702_attach, in dvb_register()
1019 &core->i2c_adap); in dvb_register()
1020 if (fe0->dvb.frontend != NULL) { in dvb_register()
1021 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1022 &core->i2c_adap, 0x61, in dvb_register()
1030 dev->frontends.gate = 2; in dvb_register()
1031 /* DVB-S init */ in dvb_register()
1032 fe0->dvb.frontend = dvb_attach(cx24123_attach, in dvb_register()
1034 &dev->core->i2c_adap); in dvb_register()
1035 if (fe0->dvb.frontend) { in dvb_register()
1037 fe0->dvb.frontend, in dvb_register()
1038 &dev->core->i2c_adap, in dvb_register()
1043 fe1 = videobuf_dvb_get_frontend(&dev->frontends, 2); in dvb_register()
1046 /* DVB-T init */ in dvb_register()
1047 fe1->dvb.frontend = dvb_attach(cx22702_attach, in dvb_register()
1049 &dev->core->i2c_adap); in dvb_register()
1050 if (fe1->dvb.frontend) { in dvb_register()
1051 fe1->dvb.frontend->id = 1; in dvb_register()
1053 fe1->dvb.frontend, in dvb_register()
1054 &dev->core->i2c_adap, in dvb_register()
1060 fe0->dvb.frontend = dvb_attach(mt352_attach, in dvb_register()
1062 &core->i2c_adap); in dvb_register()
1063 if (fe0->dvb.frontend != NULL) { in dvb_register()
1064 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
1070 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1072 &core->i2c_adap); in dvb_register()
1073 if (fe0->dvb.frontend != NULL) { in dvb_register()
1074 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
1082 fe0->dvb.frontend = dvb_attach(mt352_attach, in dvb_register()
1084 &core->i2c_adap); in dvb_register()
1085 if (fe0->dvb.frontend != NULL) { in dvb_register()
1086 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
1092 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1094 &core->i2c_adap); in dvb_register()
1095 if (fe0->dvb.frontend != NULL) { in dvb_register()
1096 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
1102 fe0->dvb.frontend = dvb_attach(mt352_attach, in dvb_register()
1104 &core->i2c_adap); in dvb_register()
1105 if (fe0->dvb.frontend != NULL) { in dvb_register()
1106 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
1114 fe0->dvb.frontend = dvb_attach(mt352_attach, in dvb_register()
1116 &core->i2c_adap); in dvb_register()
1117 if (fe0->dvb.frontend != NULL) { in dvb_register()
1118 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, in dvb_register()
1126 fe0->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config, in dvb_register()
1127 &dev->vp3054->adap); in dvb_register()
1128 if (fe0->dvb.frontend != NULL) { in dvb_register()
1129 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1130 &core->i2c_adap, 0x61, in dvb_register()
1136 core->name); in dvb_register()
1140 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1142 &core->i2c_adap); in dvb_register()
1143 if (fe0->dvb.frontend != NULL) { in dvb_register()
1144 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1145 &core->i2c_adap, 0x61, in dvb_register()
1151 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1153 &core->i2c_adap); in dvb_register()
1154 if (fe0->dvb.frontend == NULL) in dvb_register()
1155 fe0->dvb.frontend = dvb_attach(mt352_attach, in dvb_register()
1157 &core->i2c_adap); in dvb_register()
1163 if (fe0->dvb.frontend) in dvb_register()
1164 fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL; in dvb_register()
1169 fe0->dvb.frontend = dvb_attach(or51132_attach, &pchdtv_hd3000, in dvb_register()
1170 &core->i2c_adap); in dvb_register()
1171 if (fe0->dvb.frontend != NULL) { in dvb_register()
1172 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1173 &core->i2c_adap, 0x61, in dvb_register()
1179 dev->ts_gen_cntrl = 0x08; in dvb_register()
1189 fe0->dvb.frontend = dvb_attach(lgdt330x_attach, in dvb_register()
1191 &core->i2c_adap); in dvb_register()
1192 if (fe0->dvb.frontend != NULL) { in dvb_register()
1193 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1194 &core->i2c_adap, 0x61, in dvb_register()
1200 dev->ts_gen_cntrl = 0x08; in dvb_register()
1207 fe0->dvb.frontend = dvb_attach(lgdt330x_attach, in dvb_register()
1209 &core->i2c_adap); in dvb_register()
1210 if (fe0->dvb.frontend != NULL) { in dvb_register()
1211 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1212 &core->i2c_adap, 0x61, in dvb_register()
1218 dev->ts_gen_cntrl = 0x08; in dvb_register()
1225 fe0->dvb.frontend = dvb_attach(lgdt330x_attach, in dvb_register()
1227 &core->i2c_adap); in dvb_register()
1228 if (fe0->dvb.frontend != NULL) { in dvb_register()
1229 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1230 &core->i2c_adap, 0x61, in dvb_register()
1233 if (!dvb_attach(tda9887_attach, fe0->dvb.frontend, in dvb_register()
1234 &core->i2c_adap, 0x43)) in dvb_register()
1239 dev->ts_gen_cntrl = 0x08; in dvb_register()
1246 fe0->dvb.frontend = dvb_attach(lgdt330x_attach, in dvb_register()
1248 &core->i2c_adap); in dvb_register()
1249 if (fe0->dvb.frontend != NULL) { in dvb_register()
1250 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1251 &core->i2c_adap, 0x61, in dvb_register()
1254 if (!dvb_attach(tda9887_attach, fe0->dvb.frontend, in dvb_register()
1255 &core->i2c_adap, 0x43)) in dvb_register()
1260 fe0->dvb.frontend = dvb_attach(nxt200x_attach, in dvb_register()
1262 &core->i2c_adap); in dvb_register()
1263 if (fe0->dvb.frontend != NULL) { in dvb_register()
1264 if (!dvb_attach(simple_tuner_attach, fe0->dvb.frontend, in dvb_register()
1265 &core->i2c_adap, 0x61, in dvb_register()
1272 fe0->dvb.frontend = dvb_attach(cx24123_attach, in dvb_register()
1274 &core->i2c_adap); in dvb_register()
1275 if (fe0->dvb.frontend) { in dvb_register()
1276 if (!dvb_attach(isl6421_attach, fe0->dvb.frontend, in dvb_register()
1277 &core->i2c_adap, 0x08, ISL6421_DCL, 0x00)) in dvb_register()
1282 fe0->dvb.frontend = dvb_attach(cx24123_attach, in dvb_register()
1284 &core->i2c_adap); in dvb_register()
1285 if (fe0->dvb.frontend) { in dvb_register()
1286 core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage; in dvb_register()
1287 fe0->dvb.frontend->ops.set_voltage = kworld_dvbs_100_set_voltage; in dvb_register()
1291 fe0->dvb.frontend = dvb_attach(cx24123_attach, in dvb_register()
1293 &core->i2c_adap); in dvb_register()
1294 if (fe0->dvb.frontend) { in dvb_register()
1295 core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage; in dvb_register()
1296 fe0->dvb.frontend->ops.set_voltage = geniatech_dvbs_set_voltage; in dvb_register()
1300 fe0->dvb.frontend = dvb_attach(s5h1409_attach, in dvb_register()
1302 &core->i2c_adap); in dvb_register()
1303 if (fe0->dvb.frontend != NULL) { in dvb_register()
1304 if (!dvb_attach(xc5000_attach, fe0->dvb.frontend, in dvb_register()
1305 &core->i2c_adap, in dvb_register()
1311 fe0->dvb.frontend = dvb_attach(s5h1409_attach, in dvb_register()
1313 &core->i2c_adap); in dvb_register()
1314 if (fe0->dvb.frontend != NULL) { in dvb_register()
1317 .i2c_adap = &core->i2c_adap, in dvb_register()
1327 fe0->dvb.frontend, &cfg); in dvb_register()
1328 if (fe != NULL && fe->ops.tuner_ops.set_config != NULL) in dvb_register()
1329 fe->ops.tuner_ops.set_config(fe, &ctl); in dvb_register()
1334 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1336 &core->i2c_adap); in dvb_register()
1337 if (fe0->dvb.frontend) { in dvb_register()
1338 fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL; in dvb_register()
1345 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1347 &core->i2c_adap); in dvb_register()
1348 if (fe0->dvb.frontend) { in dvb_register()
1356 fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL; in dvb_register()
1362 dev->ts_gen_cntrl = 0x00; in dvb_register()
1364 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1366 &core->i2c_adap); in dvb_register()
1371 fe0->dvb.frontend = dvb_attach(s5h1409_attach, in dvb_register()
1373 &core->i2c_adap); in dvb_register()
1378 fe0->dvb.frontend = dvb_attach(s5h1411_attach, in dvb_register()
1380 &core->i2c_adap); in dvb_register()
1381 if (fe0->dvb.frontend != NULL) { in dvb_register()
1382 if (!dvb_attach(xc5000_attach, fe0->dvb.frontend, in dvb_register()
1383 &core->i2c_adap, in dvb_register()
1391 dev->frontends.gate = 2; in dvb_register()
1392 /* DVB-S/S2 Init */ in dvb_register()
1393 fe0->dvb.frontend = dvb_attach(cx24116_attach, in dvb_register()
1395 &dev->core->i2c_adap); in dvb_register()
1396 if (fe0->dvb.frontend) { in dvb_register()
1398 fe0->dvb.frontend, in dvb_register()
1399 &dev->core->i2c_adap, in dvb_register()
1404 fe1 = videobuf_dvb_get_frontend(&dev->frontends, 2); in dvb_register()
1407 /* DVB-T Init */ in dvb_register()
1408 fe1->dvb.frontend = dvb_attach(cx22702_attach, in dvb_register()
1410 &dev->core->i2c_adap); in dvb_register()
1411 if (fe1->dvb.frontend) { in dvb_register()
1412 fe1->dvb.frontend->id = 1; in dvb_register()
1414 fe1->dvb.frontend, in dvb_register()
1415 &dev->core->i2c_adap, in dvb_register()
1421 fe0->dvb.frontend = dvb_attach(cx24116_attach, in dvb_register()
1423 &dev->core->i2c_adap); in dvb_register()
1424 if (fe0->dvb.frontend) { in dvb_register()
1426 fe0->dvb.frontend, in dvb_register()
1427 &dev->core->i2c_adap, in dvb_register()
1435 fe0->dvb.frontend = dvb_attach(stv0299_attach, in dvb_register()
1437 &core->i2c_adap); in dvb_register()
1438 if (fe0->dvb.frontend != NULL) { in dvb_register()
1439 if (!dvb_attach(dvb_pll_attach, fe0->dvb.frontend, 0x60, in dvb_register()
1440 &core->i2c_adap, DVB_PLL_OPERA1)) in dvb_register()
1442 core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage; in dvb_register()
1443 fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; in dvb_register()
1446 fe0->dvb.frontend = dvb_attach(stv0288_attach, in dvb_register()
1448 &core->i2c_adap); in dvb_register()
1449 if (fe0->dvb.frontend != NULL) { in dvb_register()
1450 if (!dvb_attach(stb6000_attach, fe0->dvb.frontend, 0x61, in dvb_register()
1451 &core->i2c_adap)) in dvb_register()
1453 core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage; in dvb_register()
1454 fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; in dvb_register()
1459 fe0->dvb.frontend = dvb_attach(cx24116_attach, in dvb_register()
1461 &core->i2c_adap); in dvb_register()
1462 if (fe0->dvb.frontend != NULL) in dvb_register()
1463 fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; in dvb_register()
1466 fe0->dvb.frontend = dvb_attach(ds3000_attach, in dvb_register()
1468 &core->i2c_adap); in dvb_register()
1469 if (fe0->dvb.frontend != NULL) in dvb_register()
1470 fe0->dvb.frontend->ops.set_voltage = in dvb_register()
1477 fe0->dvb.frontend = dvb_attach(cx24116_attach, in dvb_register()
1479 &core->i2c_adap); in dvb_register()
1480 if (fe0->dvb.frontend != NULL) in dvb_register()
1481 fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; in dvb_register()
1484 fe0->dvb.frontend = dvb_attach(zl10353_attach, in dvb_register()
1486 &core->i2c_adap); in dvb_register()
1487 if (fe0->dvb.frontend) { in dvb_register()
1488 fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL; in dvb_register()
1496 fe0->dvb.frontend = dvb_attach(stv0900_attach, in dvb_register()
1498 &core->i2c_adap, 0); in dvb_register()
1499 if (fe0->dvb.frontend != NULL) { in dvb_register()
1500 if (!dvb_attach(stb6100_attach, fe0->dvb.frontend, in dvb_register()
1502 &core->i2c_adap)) in dvb_register()
1505 tuner_ops = &fe0->dvb.frontend->ops.tuner_ops; in dvb_register()
1506 tuner_ops->set_frequency = stb6100_set_freq; in dvb_register()
1507 tuner_ops->get_frequency = stb6100_get_freq; in dvb_register()
1508 tuner_ops->set_bandwidth = stb6100_set_bandw; in dvb_register()
1509 tuner_ops->get_bandwidth = stb6100_get_bandw; in dvb_register()
1511 core->prev_set_voltage = in dvb_register()
1512 fe0->dvb.frontend->ops.set_voltage; in dvb_register()
1513 fe0->dvb.frontend->ops.set_voltage = in dvb_register()
1519 dev->ts_gen_cntrl = 0x08; in dvb_register()
1528 fe0->dvb.frontend = dvb_attach(stv0299_attach, in dvb_register()
1530 &dev->core->i2c_adap); in dvb_register()
1531 if (fe0->dvb.frontend) { in dvb_register()
1532 fe0->dvb.frontend->ops.tuner_ops.set_params = in dvb_register()
1534 fe0->dvb.frontend->tuner_priv = in dvb_register()
1535 &dev->core->i2c_adap; in dvb_register()
1536 fe0->dvb.frontend->ops.set_voltage = in dvb_register()
1538 fe0->dvb.frontend->ops.set_tone = in dvb_register()
1544 dev->ts_gen_cntrl = 0x00; in dvb_register()
1545 fe0->dvb.frontend = dvb_attach(mb86a16_attach, in dvb_register()
1547 &core->i2c_adap); in dvb_register()
1548 if (fe0->dvb.frontend) { in dvb_register()
1549 core->prev_set_voltage = in dvb_register()
1550 fe0->dvb.frontend->ops.set_voltage; in dvb_register()
1551 fe0->dvb.frontend->ops.set_voltage = in dvb_register()
1558 core->name); in dvb_register()
1562 if ( (NULL == fe0->dvb.frontend) || (fe1 && NULL == fe1->dvb.frontend) ) { in dvb_register()
1565 core->name); in dvb_register()
1568 /* define general-purpose callback pointer */ in dvb_register()
1569 fe0->dvb.frontend->callback = cx88_tuner_callback; in dvb_register()
1572 fe0->dvb.frontend->ops.ts_bus_ctrl = cx88_dvb_bus_ctrl; in dvb_register()
1574 fe1->dvb.frontend->ops.ts_bus_ctrl = cx88_dvb_bus_ctrl; in dvb_register()
1577 call_all(core, core, s_power, 0); in dvb_register()
1580 res = videobuf_dvb_register_bus(&dev->frontends, THIS_MODULE, dev, in dvb_register()
1581 &dev->pci->dev, adapter_nr, mfe_shared, NULL); in dvb_register()
1587 core->gate_ctrl = NULL; in dvb_register()
1588 videobuf_dvb_dealloc_frontends(&dev->frontends); in dvb_register()
1592 /* ----------------------------------------------------------- */
1594 /* CX8802 MPEG -> mini driver - We have been given the hardware */
1597 struct cx88_core *core = drv->core; in cx8802_dvb_advise_acquire() local
1601 switch (core->boardnr) { in cx8802_dvb_advise_acquire()
1628 switch (core->dvbdev->frontends.active_fe_id) { in cx8802_dvb_advise_acquire()
1629 case 1: /* DVB-S/S2 Enabled */ in cx8802_dvb_advise_acquire()
1630 /* tri-state the cx22702 pins */ in cx8802_dvb_advise_acquire()
1634 core->dvbdev->ts_gen_cntrl = 0x02; /* Parallel IO */ in cx8802_dvb_advise_acquire()
1636 case 2: /* DVB-T Enabled */ in cx8802_dvb_advise_acquire()
1641 core->dvbdev->ts_gen_cntrl = 0x0c; /* Serial IO */ in cx8802_dvb_advise_acquire()
1648 /* set RF input to AIR for DVB-T (GPIO 16) */ in cx8802_dvb_advise_acquire()
1653 err = -ENODEV; in cx8802_dvb_advise_acquire()
1658 /* CX8802 MPEG -> mini driver - We no longer have the hardware */
1661 struct cx88_core *core = drv->core; in cx8802_dvb_advise_release() local
1665 switch (core->boardnr) { in cx8802_dvb_advise_release()
1673 err = -ENODEV; in cx8802_dvb_advise_release()
1680 struct cx88_core *core = drv->core; in cx8802_dvb_probe() local
1681 struct cx8802_dev *dev = drv->core->dvbdev; in cx8802_dvb_probe()
1687 dprintk( 1, " ->being probed by Card=%d Name=%s, PCI %02x:%02x\n", in cx8802_dvb_probe()
1688 core->boardnr, in cx8802_dvb_probe()
1689 core->name, in cx8802_dvb_probe()
1690 core->pci_bus, in cx8802_dvb_probe()
1691 core->pci_slot); in cx8802_dvb_probe()
1693 err = -ENODEV; in cx8802_dvb_probe()
1694 if (!(core->board.mpeg & CX88_MPEG_DVB)) in cx8802_dvb_probe()
1703 printk(KERN_INFO "%s/2: cx2388x based DVB/ATSC card\n", core->name); in cx8802_dvb_probe()
1704 dev->ts_gen_cntrl = 0x0c; in cx8802_dvb_probe()
1710 err = -ENODEV; in cx8802_dvb_probe()
1711 for (i = 1; i <= core->board.num_frontends; i++) { in cx8802_dvb_probe()
1712 fe = videobuf_dvb_get_frontend(&core->dvbdev->frontends, i); in cx8802_dvb_probe()
1718 videobuf_queue_sg_init(&fe->dvb.dvbq, &dvb_qops, in cx8802_dvb_probe()
1719 &dev->pci->dev, &dev->slock, in cx8802_dvb_probe()
1725 fe->dvb.name = dev->core->name; in cx8802_dvb_probe()
1730 /* frontends/adapter de-allocated in dvb_register */ in cx8802_dvb_probe()
1732 core->name, err); in cx8802_dvb_probe()
1735 videobuf_dvb_dealloc_frontends(&core->dvbdev->frontends); in cx8802_dvb_probe()
1742 struct cx88_core *core = drv->core; in cx8802_dvb_remove() local
1743 struct cx8802_dev *dev = drv->core->dvbdev; in cx8802_dvb_remove()
1747 videobuf_dvb_unregister_bus(&dev->frontends); in cx8802_dvb_remove()
1751 core->gate_ctrl = NULL; in cx8802_dvb_remove()