Lines Matching refs:dvb

176 			dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer,  in em28xx_dvb_urb_data_copy()
187 dvb_dmx_swfilter(&dev->dvb->demux, in em28xx_dvb_urb_data_copy()
197 static int em28xx_start_streaming(struct em28xx_dvb *dvb) in em28xx_start_streaming() argument
200 struct em28xx_i2c_bus *i2c_bus = dvb->adapter.priv; in em28xx_start_streaming()
241 static int em28xx_stop_streaming(struct em28xx_dvb *dvb) in em28xx_stop_streaming() argument
243 struct em28xx_i2c_bus *i2c_bus = dvb->adapter.priv; in em28xx_stop_streaming()
254 struct em28xx_dvb *dvb = demux->priv; in em28xx_start_feed() local
260 mutex_lock(&dvb->lock); in em28xx_start_feed()
261 dvb->nfeeds++; in em28xx_start_feed()
262 rc = dvb->nfeeds; in em28xx_start_feed()
264 if (dvb->nfeeds == 1) { in em28xx_start_feed()
265 ret = em28xx_start_streaming(dvb); in em28xx_start_feed()
270 mutex_unlock(&dvb->lock); in em28xx_start_feed()
277 struct em28xx_dvb *dvb = demux->priv; in em28xx_stop_feed() local
280 mutex_lock(&dvb->lock); in em28xx_stop_feed()
281 dvb->nfeeds--; in em28xx_stop_feed()
283 if (!dvb->nfeeds) in em28xx_stop_feed()
284 err = em28xx_stop_streaming(dvb); in em28xx_stop_feed()
286 mutex_unlock(&dvb->lock); in em28xx_stop_feed()
293 struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; in em28xx_dvb_bus_ctrl()
454 struct em28xx_dvb *dvb = fe->sec_priv; in drxk_gate_ctrl() local
457 if (!dvb) in drxk_gate_ctrl()
461 down(&dvb->pll_mutex); in drxk_gate_ctrl()
462 status = dvb->gate_ctrl(fe, 1); in drxk_gate_ctrl()
464 status = dvb->gate_ctrl(fe, 0); in drxk_gate_ctrl()
465 up(&dvb->pll_mutex); in drxk_gate_ctrl()
731 struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; in em28xx_pctv_290e_set_lna()
734 struct em28xx_dvb *dvb = dev->dvb; in em28xx_pctv_290e_set_lna() local
743 ret = gpio_request_one(dvb->lna_gpio, flags, NULL); in em28xx_pctv_290e_set_lna()
747 gpio_free(dvb->lna_gpio); in em28xx_pctv_290e_set_lna()
760 struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; in em28xx_pctv_292e_set_lna()
845 dev->dvb->i2c_client_demod->addr = 0x14; in px_bcud_init()
847 i2c_master_send(dev->dvb->i2c_client_demod, in px_bcud_init()
850 dev->dvb->i2c_client_demod->addr = 0x15; in px_bcud_init()
852 i2c_master_send(dev->dvb->i2c_client_demod, regs2[i].r, in px_bcud_init()
955 if (!dev->dvb->fe[0]) { in em28xx_attach_xc3028()
961 fe = dvb_attach(xc2028_attach, dev->dvb->fe[0], &cfg); in em28xx_attach_xc3028()
964 dvb_frontend_detach(dev->dvb->fe[0]); in em28xx_attach_xc3028()
965 dev->dvb->fe[0] = NULL; in em28xx_attach_xc3028()
976 static int em28xx_register_dvb(struct em28xx_dvb *dvb, struct module *module, in em28xx_register_dvb() argument
982 mutex_init(&dvb->lock); in em28xx_register_dvb()
985 result = dvb_register_adapter(&dvb->adapter, in em28xx_register_dvb()
995 dvb->adapter.mdev = dev->media_dev; in em28xx_register_dvb()
999 dvb->fe[0]->ops.ts_bus_ctrl = em28xx_dvb_bus_ctrl; in em28xx_register_dvb()
1000 if (dvb->fe[1]) in em28xx_register_dvb()
1001 dvb->fe[1]->ops.ts_bus_ctrl = em28xx_dvb_bus_ctrl; in em28xx_register_dvb()
1003 dvb->adapter.priv = &dev->i2c_bus[dev->def_i2c_bus]; in em28xx_register_dvb()
1006 result = dvb_register_frontend(&dvb->adapter, dvb->fe[0]); in em28xx_register_dvb()
1015 if (dvb->fe[1]) { in em28xx_register_dvb()
1016 result = dvb_register_frontend(&dvb->adapter, dvb->fe[1]); in em28xx_register_dvb()
1026 dvb->demux.dmx.capabilities = in em28xx_register_dvb()
1029 dvb->demux.priv = dvb; in em28xx_register_dvb()
1030 dvb->demux.filternum = 256; in em28xx_register_dvb()
1031 dvb->demux.feednum = 256; in em28xx_register_dvb()
1032 dvb->demux.start_feed = em28xx_start_feed; in em28xx_register_dvb()
1033 dvb->demux.stop_feed = em28xx_stop_feed; in em28xx_register_dvb()
1035 result = dvb_dmx_init(&dvb->demux); in em28xx_register_dvb()
1043 dvb->dmxdev.filternum = 256; in em28xx_register_dvb()
1044 dvb->dmxdev.demux = &dvb->demux.dmx; in em28xx_register_dvb()
1045 dvb->dmxdev.capabilities = 0; in em28xx_register_dvb()
1046 result = dvb_dmxdev_init(&dvb->dmxdev, &dvb->adapter); in em28xx_register_dvb()
1054 dvb->fe_hw.source = DMX_FRONTEND_0; in em28xx_register_dvb()
1055 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_register_dvb()
1063 dvb->fe_mem.source = DMX_MEMORY_FE; in em28xx_register_dvb()
1064 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_mem); in em28xx_register_dvb()
1072 result = dvb->demux.dmx.connect_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_register_dvb()
1081 dvb_net_init(&dvb->adapter, &dvb->net, &dvb->demux.dmx); in em28xx_register_dvb()
1087 result = dvb_create_media_graph(&dvb->adapter, create_rf_connector); in em28xx_register_dvb()
1094 dvb_net_release(&dvb->net); in em28xx_register_dvb()
1096 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in em28xx_register_dvb()
1098 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_register_dvb()
1100 dvb_dmxdev_release(&dvb->dmxdev); in em28xx_register_dvb()
1102 dvb_dmx_release(&dvb->demux); in em28xx_register_dvb()
1104 if (dvb->fe[1]) in em28xx_register_dvb()
1105 dvb_unregister_frontend(dvb->fe[1]); in em28xx_register_dvb()
1106 dvb_unregister_frontend(dvb->fe[0]); in em28xx_register_dvb()
1108 if (dvb->fe[1]) in em28xx_register_dvb()
1109 dvb_frontend_detach(dvb->fe[1]); in em28xx_register_dvb()
1111 dvb_frontend_detach(dvb->fe[0]); in em28xx_register_dvb()
1112 dvb_unregister_adapter(&dvb->adapter); in em28xx_register_dvb()
1117 static void em28xx_unregister_dvb(struct em28xx_dvb *dvb) in em28xx_unregister_dvb() argument
1119 dvb_net_release(&dvb->net); in em28xx_unregister_dvb()
1120 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in em28xx_unregister_dvb()
1121 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_unregister_dvb()
1122 dvb_dmxdev_release(&dvb->dmxdev); in em28xx_unregister_dvb()
1123 dvb_dmx_release(&dvb->demux); in em28xx_unregister_dvb()
1124 if (dvb->fe[1]) in em28xx_unregister_dvb()
1125 dvb_unregister_frontend(dvb->fe[1]); in em28xx_unregister_dvb()
1126 dvb_unregister_frontend(dvb->fe[0]); in em28xx_unregister_dvb()
1127 if (dvb->fe[1] && !dvb->dont_attach_fe1) in em28xx_unregister_dvb()
1128 dvb_frontend_detach(dvb->fe[1]); in em28xx_unregister_dvb()
1129 dvb_frontend_detach(dvb->fe[0]); in em28xx_unregister_dvb()
1130 dvb_unregister_adapter(&dvb->adapter); in em28xx_unregister_dvb()
1135 struct em28xx_dvb *dvb = dev->dvb; in em28174_dvb_init_pctv_460e() local
1146 dvb->i2c_client_demod = dvb_module_probe("tda10071", "tda10071_cx24118", in em28174_dvb_init_pctv_460e()
1149 if (!dvb->i2c_client_demod) in em28174_dvb_init_pctv_460e()
1152 dvb->fe[0] = tda10071_pdata.get_dvb_frontend(dvb->i2c_client_demod); in em28174_dvb_init_pctv_460e()
1155 a8293_pdata.dvb_frontend = dvb->fe[0]; in em28174_dvb_init_pctv_460e()
1157 dvb->i2c_client_sec = dvb_module_probe("a8293", NULL, in em28174_dvb_init_pctv_460e()
1160 if (!dvb->i2c_client_sec) { in em28174_dvb_init_pctv_460e()
1161 dvb_module_release(dvb->i2c_client_demod); in em28174_dvb_init_pctv_460e()
1170 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_pctv_461e() local
1184 dvb->i2c_client_demod = dvb_module_probe("m88ds3103", NULL, in em28178_dvb_init_pctv_461e()
1187 if (!dvb->i2c_client_demod) in em28178_dvb_init_pctv_461e()
1190 dvb->fe[0] = m88ds3103_pdata.get_dvb_frontend(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1191 i2c_adapter = m88ds3103_pdata.get_i2c_adapter(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1194 ts2020_config.fe = dvb->fe[0]; in em28178_dvb_init_pctv_461e()
1196 dvb->i2c_client_tuner = dvb_module_probe("ts2020", "ts2022", in em28178_dvb_init_pctv_461e()
1199 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_pctv_461e()
1200 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1205 dvb->fe[0]->ops.read_signal_strength = in em28178_dvb_init_pctv_461e()
1206 dvb->fe[0]->ops.tuner_ops.get_rf_strength; in em28178_dvb_init_pctv_461e()
1209 a8293_pdata.dvb_frontend = dvb->fe[0]; in em28178_dvb_init_pctv_461e()
1210 dvb->i2c_client_sec = dvb_module_probe("a8293", NULL, in em28178_dvb_init_pctv_461e()
1213 if (!dvb->i2c_client_sec) { in em28178_dvb_init_pctv_461e()
1214 dvb_module_release(dvb->i2c_client_tuner); in em28178_dvb_init_pctv_461e()
1215 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1224 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_pctv_461e_v2() local
1239 dvb->i2c_client_demod = dvb_module_probe("m88ds3103", "m88ds3103b", in em28178_dvb_init_pctv_461e_v2()
1243 if (!dvb->i2c_client_demod) in em28178_dvb_init_pctv_461e_v2()
1246 dvb->fe[0] = m88ds3103_pdata.get_dvb_frontend(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1247 i2c_adapter = m88ds3103_pdata.get_i2c_adapter(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1250 ts2020_config.fe = dvb->fe[0]; in em28178_dvb_init_pctv_461e_v2()
1251 dvb->i2c_client_tuner = dvb_module_probe("ts2020", "ts2022", in em28178_dvb_init_pctv_461e_v2()
1254 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_pctv_461e_v2()
1255 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1260 dvb->fe[0]->ops.read_signal_strength = in em28178_dvb_init_pctv_461e_v2()
1261 dvb->fe[0]->ops.tuner_ops.get_rf_strength; in em28178_dvb_init_pctv_461e_v2()
1264 a8293_pdata.dvb_frontend = dvb->fe[0]; in em28178_dvb_init_pctv_461e_v2()
1265 dvb->i2c_client_sec = dvb_module_probe("a8293", NULL, in em28178_dvb_init_pctv_461e_v2()
1268 if (!dvb->i2c_client_sec) { in em28178_dvb_init_pctv_461e_v2()
1269 dvb_module_release(dvb->i2c_client_tuner); in em28178_dvb_init_pctv_461e_v2()
1270 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1279 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_pctv_292e() local
1286 si2168_config.fe = &dvb->fe[0]; in em28178_dvb_init_pctv_292e()
1290 dvb->i2c_client_demod = dvb_module_probe("si2168", NULL, in em28178_dvb_init_pctv_292e()
1293 if (!dvb->i2c_client_demod) in em28178_dvb_init_pctv_292e()
1297 si2157_config.fe = dvb->fe[0]; in em28178_dvb_init_pctv_292e()
1302 dvb->i2c_client_tuner = dvb_module_probe("si2157", NULL, in em28178_dvb_init_pctv_292e()
1305 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_pctv_292e()
1306 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_292e()
1309 dvb->fe[0]->ops.set_lna = em28xx_pctv_292e_set_lna; in em28178_dvb_init_pctv_292e()
1316 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_terratec_t2_stick_hd() local
1323 si2168_config.fe = &dvb->fe[0]; in em28178_dvb_init_terratec_t2_stick_hd()
1326 dvb->i2c_client_demod = dvb_module_probe("si2168", NULL, in em28178_dvb_init_terratec_t2_stick_hd()
1329 if (!dvb->i2c_client_demod) in em28178_dvb_init_terratec_t2_stick_hd()
1334 si2157_config.fe = dvb->fe[0]; in em28178_dvb_init_terratec_t2_stick_hd()
1339 dvb->i2c_client_tuner = dvb_module_probe("si2157", "si2146", in em28178_dvb_init_terratec_t2_stick_hd()
1342 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_terratec_t2_stick_hd()
1343 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_terratec_t2_stick_hd()
1352 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_plex_px_bcud() local
1357 dvb->i2c_client_demod = dvb_module_probe("tc90522", "tc90522sat", in em28178_dvb_init_plex_px_bcud()
1360 if (!dvb->i2c_client_demod) in em28178_dvb_init_plex_px_bcud()
1367 dvb->i2c_client_tuner = dvb_module_probe("qm1d1c0042", NULL, in em28178_dvb_init_plex_px_bcud()
1370 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_plex_px_bcud()
1371 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_plex_px_bcud()
1375 dvb->fe[0] = tc90522_config.fe; in em28178_dvb_init_plex_px_bcud()
1383 struct em28xx_dvb *dvb = dev->dvb; in em28174_dvb_init_hauppauge_wintv_dualhd_dvb() local
1391 si2168_config.fe = &dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1396 dvb->i2c_client_demod = dvb_module_probe("si2168", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1399 if (!dvb->i2c_client_demod) in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1404 si2157_config.fe = dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1411 dvb->i2c_client_tuner = dvb_module_probe("si2157", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1414 if (!dvb->i2c_client_tuner) { in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1415 dvb_module_release(dvb->i2c_client_demod); in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1424 struct em28xx_dvb *dvb = dev->dvb; in em28174_dvb_init_hauppauge_wintv_dualhd_01595() local
1432 lgdt3306a_config.fe = &dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1436 dvb->i2c_client_demod = dvb_module_probe("lgdt3306a", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1439 if (!dvb->i2c_client_demod) in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1443 si2157_config.fe = dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1451 dvb->i2c_client_tuner = dvb_module_probe("si2157", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1454 if (!dvb->i2c_client_tuner) { in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1455 dvb_module_release(dvb->i2c_client_demod); in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1465 struct em28xx_dvb *dvb; in em28xx_dvb_init() local
1480 dvb = kzalloc(sizeof(*dvb), GFP_KERNEL); in em28xx_dvb_init()
1481 if (!dvb) in em28xx_dvb_init()
1484 dev->dvb = dvb; in em28xx_dvb_init()
1485 dvb->fe[0] = NULL; in em28xx_dvb_init()
1486 dvb->fe[1] = NULL; in em28xx_dvb_init()
1505 kfree(dvb); in em28xx_dvb_init()
1506 dev->dvb = NULL; in em28xx_dvb_init()
1515 dvb->fe[0] = dvb_attach(s921_attach, in em28xx_dvb_init()
1519 if (!dvb->fe[0]) { in em28xx_dvb_init()
1529 dvb->fe[0] = dvb_attach(lgdt330x_attach, in em28xx_dvb_init()
1539 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1551 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1568 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1571 if (!dvb->fe[0]) in em28xx_dvb_init()
1572 dvb->fe[0] = dvb_attach(mt352_attach, in em28xx_dvb_init()
1582 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1585 if (dvb->fe[0]) { in em28xx_dvb_init()
1586 dvb_attach(mt2060_attach, dvb->fe[0], in em28xx_dvb_init()
1592 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1595 if (dvb->fe[0]) in em28xx_dvb_init()
1596 dvb_attach(qt1010_attach, dvb->fe[0], in em28xx_dvb_init()
1602 dvb->fe[0] = dvb_attach(s5h1409_attach, in em28xx_dvb_init()
1611 dvb->fe[0] = dvb_attach(lgdt330x_attach, in em28xx_dvb_init()
1615 if (dvb->fe[0]) { in em28xx_dvb_init()
1616 if (!dvb_attach(simple_tuner_attach, dvb->fe[0], in em28xx_dvb_init()
1626 dvb->fe[0] = dvb_attach(drxd_attach, &em28xx_drxd, NULL, in em28xx_dvb_init()
1636 dvb->fe[0] = dvb_attach(tda10023_attach, in em28xx_dvb_init()
1640 if (dvb->fe[0]) { in em28xx_dvb_init()
1641 if (!dvb_attach(simple_tuner_attach, dvb->fe[0], in em28xx_dvb_init()
1650 dvb->fe[0] = dvb_attach(lgdt3305_attach, in em28xx_dvb_init()
1653 if (!dvb->fe[0]) { in em28xx_dvb_init()
1657 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1660 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1667 dvb->lna_gpio = CXD2820R_GPIO_E | CXD2820R_GPIO_O | in em28xx_dvb_init()
1669 dvb->fe[0] = dvb_attach(cxd2820r_attach, in em28xx_dvb_init()
1672 &dvb->lna_gpio); in em28xx_dvb_init()
1673 if (dvb->fe[0]) { in em28xx_dvb_init()
1676 dvb->fe[0], in em28xx_dvb_init()
1680 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1687 result = gpio_request_one(dvb->lna_gpio, in em28xx_dvb_init()
1694 gpio_free(dvb->lna_gpio); in em28xx_dvb_init()
1698 dvb->fe[0]->ops.set_lna = em28xx_pctv_290e_set_lna; in em28xx_dvb_init()
1708 dvb->fe[0] = dvb_attach(drxk_attach, in em28xx_dvb_init()
1711 if (!dvb->fe[0]) { in em28xx_dvb_init()
1716 dvb->fe[0]->sec_priv = dvb; in em28xx_dvb_init()
1717 sema_init(&dvb->pll_mutex, 1); in em28xx_dvb_init()
1718 dvb->gate_ctrl = dvb->fe[0]->ops.i2c_gate_ctrl; in em28xx_dvb_init()
1719 dvb->fe[0]->ops.i2c_gate_ctrl = drxk_gate_ctrl; in em28xx_dvb_init()
1725 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1726 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 1); in em28xx_dvb_init()
1727 if (!dvb_attach(xc5000_attach, dvb->fe[0], in em28xx_dvb_init()
1732 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1733 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 0); in em28xx_dvb_init()
1740 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_h5_drxk, in em28xx_dvb_init()
1742 if (!dvb->fe[0]) { in em28xx_dvb_init()
1747 dvb->fe[0]->sec_priv = dvb; in em28xx_dvb_init()
1748 sema_init(&dvb->pll_mutex, 1); in em28xx_dvb_init()
1749 dvb->gate_ctrl = dvb->fe[0]->ops.i2c_gate_ctrl; in em28xx_dvb_init()
1750 dvb->fe[0]->ops.i2c_gate_ctrl = drxk_gate_ctrl; in em28xx_dvb_init()
1753 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1754 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 1); in em28xx_dvb_init()
1755 if (!dvb_attach(tda18271c2dd_attach, dvb->fe[0], in em28xx_dvb_init()
1760 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1761 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 0); in em28xx_dvb_init()
1765 dvb->fe[0] = dvb_attach(mb86a20s_attach, in em28xx_dvb_init()
1768 if (dvb->fe[0]) in em28xx_dvb_init()
1769 dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1781 dvb->fe[0] = dvb_attach(drxk_attach, &maxmedia_ub425_tc_drxk, in em28xx_dvb_init()
1784 if (dvb->fe[0]) { in em28xx_dvb_init()
1786 dvb->fe[0]->ops.i2c_gate_ctrl = NULL; in em28xx_dvb_init()
1789 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1792 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1803 dvb->fe[0] = dvb_attach(drxk_attach, &pctv_520e_drxk, in em28xx_dvb_init()
1806 if (dvb->fe[0]) { in em28xx_dvb_init()
1808 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1811 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1823 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_htc_stick_drxk, in em28xx_dvb_init()
1825 if (!dvb->fe[0]) { in em28xx_dvb_init()
1831 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1842 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_htc_stick_drxk, in em28xx_dvb_init()
1844 if (!dvb->fe[0]) { in em28xx_dvb_init()
1850 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1858 dvb->fe[0] = dvb_attach(lgdt3305_attach, in em28xx_dvb_init()
1861 if (!dvb->fe[0]) { in em28xx_dvb_init()
1867 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1878 dvb->fe[0] = dvb_attach(lgdt3305_attach, in em28xx_dvb_init()
1881 if (!dvb->fe[0]) { in em28xx_dvb_init()
1887 kworld_ub435q_v3_config.fe = dvb->fe[0]; in em28xx_dvb_init()
1889 dvb->i2c_client_tuner = dvb_module_probe("tda18212", NULL, in em28xx_dvb_init()
1892 if (!dvb->i2c_client_tuner) { in em28xx_dvb_init()
1893 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1900 dvb->fe[0] = dvb_attach(drx39xxj_attach, in em28xx_dvb_init()
1902 if (dvb->fe[0]) { in em28xx_dvb_init()
1903 dvb->fe[0] = dvb_attach(tda18271_attach, dvb->fe[0], in em28xx_dvb_init()
1907 if (!dvb->fe[0]) { in em28xx_dvb_init()
1953 if (!dvb->fe[0]) { in em28xx_dvb_init()
1959 dvb->fe[0]->callback = em28xx_tuner_callback; in em28xx_dvb_init()
1960 if (dvb->fe[1]) in em28xx_dvb_init()
1961 dvb->fe[1]->callback = em28xx_tuner_callback; in em28xx_dvb_init()
1964 result = em28xx_register_dvb(dvb, THIS_MODULE, dev, &dev->intf->dev); in em28xx_dvb_init()
1988 kfree(dvb); in em28xx_dvb_init()
1989 dev->dvb = NULL; in em28xx_dvb_init()
2002 struct em28xx_dvb *dvb; in em28xx_dvb_fini() local
2014 if (!dev->dvb) in em28xx_dvb_fini()
2019 dvb = dev->dvb; in em28xx_dvb_fini()
2028 if (dvb->fe[0]) { in em28xx_dvb_fini()
2029 prevent_sleep(&dvb->fe[0]->ops); in em28xx_dvb_fini()
2030 dvb->fe[0]->exit = DVB_FE_DEVICE_REMOVED; in em28xx_dvb_fini()
2032 if (dvb->fe[1]) { in em28xx_dvb_fini()
2033 prevent_sleep(&dvb->fe[1]->ops); in em28xx_dvb_fini()
2034 dvb->fe[1]->exit = DVB_FE_DEVICE_REMOVED; in em28xx_dvb_fini()
2038 em28xx_unregister_dvb(dvb); in em28xx_dvb_fini()
2041 dvb_module_release(dvb->i2c_client_sec); in em28xx_dvb_fini()
2042 dvb_module_release(dvb->i2c_client_tuner); in em28xx_dvb_fini()
2043 dvb_module_release(dvb->i2c_client_demod); in em28xx_dvb_fini()
2045 kfree(dvb); in em28xx_dvb_fini()
2046 dev->dvb = NULL; in em28xx_dvb_fini()
2063 if (dev->dvb) { in em28xx_dvb_suspend()
2064 struct em28xx_dvb *dvb = dev->dvb; in em28xx_dvb_suspend() local
2066 if (dvb->fe[0]) { in em28xx_dvb_suspend()
2067 ret = dvb_frontend_suspend(dvb->fe[0]); in em28xx_dvb_suspend()
2070 if (dvb->fe[1]) { in em28xx_dvb_suspend()
2071 dvb_frontend_suspend(dvb->fe[1]); in em28xx_dvb_suspend()
2090 if (dev->dvb) { in em28xx_dvb_resume()
2091 struct em28xx_dvb *dvb = dev->dvb; in em28xx_dvb_resume() local
2093 if (dvb->fe[0]) { in em28xx_dvb_resume()
2094 ret = dvb_frontend_resume(dvb->fe[0]); in em28xx_dvb_resume()
2098 if (dvb->fe[1]) { in em28xx_dvb_resume()
2099 ret = dvb_frontend_resume(dvb->fe[1]); in em28xx_dvb_resume()