Lines Matching refs:dvb
177 dvb_dmx_swfilter(&dev->dvb->demux, urb->transfer_buffer, in em28xx_dvb_urb_data_copy()
188 dvb_dmx_swfilter(&dev->dvb->demux, in em28xx_dvb_urb_data_copy()
198 static int em28xx_start_streaming(struct em28xx_dvb *dvb) in em28xx_start_streaming() argument
201 struct em28xx_i2c_bus *i2c_bus = dvb->adapter.priv; in em28xx_start_streaming()
242 static int em28xx_stop_streaming(struct em28xx_dvb *dvb) in em28xx_stop_streaming() argument
244 struct em28xx_i2c_bus *i2c_bus = dvb->adapter.priv; in em28xx_stop_streaming()
255 struct em28xx_dvb *dvb = demux->priv; in em28xx_start_feed() local
261 mutex_lock(&dvb->lock); in em28xx_start_feed()
262 dvb->nfeeds++; in em28xx_start_feed()
263 rc = dvb->nfeeds; in em28xx_start_feed()
265 if (dvb->nfeeds == 1) { in em28xx_start_feed()
266 ret = em28xx_start_streaming(dvb); in em28xx_start_feed()
271 mutex_unlock(&dvb->lock); in em28xx_start_feed()
278 struct em28xx_dvb *dvb = demux->priv; in em28xx_stop_feed() local
281 mutex_lock(&dvb->lock); in em28xx_stop_feed()
282 dvb->nfeeds--; in em28xx_stop_feed()
284 if (!dvb->nfeeds) in em28xx_stop_feed()
285 err = em28xx_stop_streaming(dvb); in em28xx_stop_feed()
287 mutex_unlock(&dvb->lock); in em28xx_stop_feed()
294 struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; in em28xx_dvb_bus_ctrl()
455 struct em28xx_dvb *dvb = fe->sec_priv; in drxk_gate_ctrl() local
458 if (!dvb) in drxk_gate_ctrl()
462 down(&dvb->pll_mutex); in drxk_gate_ctrl()
463 status = dvb->gate_ctrl(fe, 1); in drxk_gate_ctrl()
465 status = dvb->gate_ctrl(fe, 0); in drxk_gate_ctrl()
466 up(&dvb->pll_mutex); in drxk_gate_ctrl()
732 struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; in em28xx_pctv_290e_set_lna()
735 struct em28xx_dvb *dvb = dev->dvb; in em28xx_pctv_290e_set_lna() local
744 ret = gpio_request_one(dvb->lna_gpio, flags, NULL); in em28xx_pctv_290e_set_lna()
748 gpio_free(dvb->lna_gpio); in em28xx_pctv_290e_set_lna()
761 struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; in em28xx_pctv_292e_set_lna()
846 dev->dvb->i2c_client_demod->addr = 0x14; in px_bcud_init()
848 i2c_master_send(dev->dvb->i2c_client_demod, in px_bcud_init()
851 dev->dvb->i2c_client_demod->addr = 0x15; in px_bcud_init()
853 i2c_master_send(dev->dvb->i2c_client_demod, regs2[i].r, in px_bcud_init()
956 if (!dev->dvb->fe[0]) { in em28xx_attach_xc3028()
962 fe = dvb_attach(xc2028_attach, dev->dvb->fe[0], &cfg); in em28xx_attach_xc3028()
965 dvb_frontend_detach(dev->dvb->fe[0]); in em28xx_attach_xc3028()
966 dev->dvb->fe[0] = NULL; in em28xx_attach_xc3028()
977 static int em28xx_register_dvb(struct em28xx_dvb *dvb, struct module *module, in em28xx_register_dvb() argument
983 mutex_init(&dvb->lock); in em28xx_register_dvb()
986 result = dvb_register_adapter(&dvb->adapter, in em28xx_register_dvb()
996 dvb->adapter.mdev = dev->media_dev; in em28xx_register_dvb()
1000 dvb->fe[0]->ops.ts_bus_ctrl = em28xx_dvb_bus_ctrl; in em28xx_register_dvb()
1001 if (dvb->fe[1]) in em28xx_register_dvb()
1002 dvb->fe[1]->ops.ts_bus_ctrl = em28xx_dvb_bus_ctrl; in em28xx_register_dvb()
1004 dvb->adapter.priv = &dev->i2c_bus[dev->def_i2c_bus]; in em28xx_register_dvb()
1007 result = dvb_register_frontend(&dvb->adapter, dvb->fe[0]); in em28xx_register_dvb()
1016 if (dvb->fe[1]) { in em28xx_register_dvb()
1017 result = dvb_register_frontend(&dvb->adapter, dvb->fe[1]); in em28xx_register_dvb()
1027 dvb->demux.dmx.capabilities = in em28xx_register_dvb()
1030 dvb->demux.priv = dvb; in em28xx_register_dvb()
1031 dvb->demux.filternum = 256; in em28xx_register_dvb()
1032 dvb->demux.feednum = 256; in em28xx_register_dvb()
1033 dvb->demux.start_feed = em28xx_start_feed; in em28xx_register_dvb()
1034 dvb->demux.stop_feed = em28xx_stop_feed; in em28xx_register_dvb()
1036 result = dvb_dmx_init(&dvb->demux); in em28xx_register_dvb()
1044 dvb->dmxdev.filternum = 256; in em28xx_register_dvb()
1045 dvb->dmxdev.demux = &dvb->demux.dmx; in em28xx_register_dvb()
1046 dvb->dmxdev.capabilities = 0; in em28xx_register_dvb()
1047 result = dvb_dmxdev_init(&dvb->dmxdev, &dvb->adapter); in em28xx_register_dvb()
1055 dvb->fe_hw.source = DMX_FRONTEND_0; in em28xx_register_dvb()
1056 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_register_dvb()
1064 dvb->fe_mem.source = DMX_MEMORY_FE; in em28xx_register_dvb()
1065 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_mem); in em28xx_register_dvb()
1073 result = dvb->demux.dmx.connect_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_register_dvb()
1082 dvb_net_init(&dvb->adapter, &dvb->net, &dvb->demux.dmx); in em28xx_register_dvb()
1088 result = dvb_create_media_graph(&dvb->adapter, create_rf_connector); in em28xx_register_dvb()
1095 dvb_net_release(&dvb->net); in em28xx_register_dvb()
1097 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in em28xx_register_dvb()
1099 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_register_dvb()
1101 dvb_dmxdev_release(&dvb->dmxdev); in em28xx_register_dvb()
1103 dvb_dmx_release(&dvb->demux); in em28xx_register_dvb()
1105 if (dvb->fe[1]) in em28xx_register_dvb()
1106 dvb_unregister_frontend(dvb->fe[1]); in em28xx_register_dvb()
1107 dvb_unregister_frontend(dvb->fe[0]); in em28xx_register_dvb()
1109 if (dvb->fe[1]) in em28xx_register_dvb()
1110 dvb_frontend_detach(dvb->fe[1]); in em28xx_register_dvb()
1112 dvb_frontend_detach(dvb->fe[0]); in em28xx_register_dvb()
1113 dvb_unregister_adapter(&dvb->adapter); in em28xx_register_dvb()
1118 static void em28xx_unregister_dvb(struct em28xx_dvb *dvb) in em28xx_unregister_dvb() argument
1120 dvb_net_release(&dvb->net); in em28xx_unregister_dvb()
1121 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in em28xx_unregister_dvb()
1122 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in em28xx_unregister_dvb()
1123 dvb_dmxdev_release(&dvb->dmxdev); in em28xx_unregister_dvb()
1124 dvb_dmx_release(&dvb->demux); in em28xx_unregister_dvb()
1125 if (dvb->fe[1]) in em28xx_unregister_dvb()
1126 dvb_unregister_frontend(dvb->fe[1]); in em28xx_unregister_dvb()
1127 dvb_unregister_frontend(dvb->fe[0]); in em28xx_unregister_dvb()
1128 if (dvb->fe[1] && !dvb->dont_attach_fe1) in em28xx_unregister_dvb()
1129 dvb_frontend_detach(dvb->fe[1]); in em28xx_unregister_dvb()
1130 dvb_frontend_detach(dvb->fe[0]); in em28xx_unregister_dvb()
1131 dvb_unregister_adapter(&dvb->adapter); in em28xx_unregister_dvb()
1136 struct em28xx_dvb *dvb = dev->dvb; in em28174_dvb_init_pctv_460e() local
1147 dvb->i2c_client_demod = dvb_module_probe("tda10071", "tda10071_cx24118", in em28174_dvb_init_pctv_460e()
1150 if (!dvb->i2c_client_demod) in em28174_dvb_init_pctv_460e()
1153 dvb->fe[0] = tda10071_pdata.get_dvb_frontend(dvb->i2c_client_demod); in em28174_dvb_init_pctv_460e()
1156 a8293_pdata.dvb_frontend = dvb->fe[0]; in em28174_dvb_init_pctv_460e()
1158 dvb->i2c_client_sec = dvb_module_probe("a8293", NULL, in em28174_dvb_init_pctv_460e()
1161 if (!dvb->i2c_client_sec) { in em28174_dvb_init_pctv_460e()
1162 dvb_module_release(dvb->i2c_client_demod); in em28174_dvb_init_pctv_460e()
1171 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_pctv_461e() local
1185 dvb->i2c_client_demod = dvb_module_probe("m88ds3103", NULL, in em28178_dvb_init_pctv_461e()
1188 if (!dvb->i2c_client_demod) in em28178_dvb_init_pctv_461e()
1191 dvb->fe[0] = m88ds3103_pdata.get_dvb_frontend(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1192 i2c_adapter = m88ds3103_pdata.get_i2c_adapter(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1195 ts2020_config.fe = dvb->fe[0]; in em28178_dvb_init_pctv_461e()
1197 dvb->i2c_client_tuner = dvb_module_probe("ts2020", "ts2022", in em28178_dvb_init_pctv_461e()
1200 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_pctv_461e()
1201 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1206 dvb->fe[0]->ops.read_signal_strength = in em28178_dvb_init_pctv_461e()
1207 dvb->fe[0]->ops.tuner_ops.get_rf_strength; in em28178_dvb_init_pctv_461e()
1210 a8293_pdata.dvb_frontend = dvb->fe[0]; in em28178_dvb_init_pctv_461e()
1211 dvb->i2c_client_sec = dvb_module_probe("a8293", NULL, in em28178_dvb_init_pctv_461e()
1214 if (!dvb->i2c_client_sec) { in em28178_dvb_init_pctv_461e()
1215 dvb_module_release(dvb->i2c_client_tuner); in em28178_dvb_init_pctv_461e()
1216 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e()
1225 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_pctv_461e_v2() local
1240 dvb->i2c_client_demod = dvb_module_probe("m88ds3103", "m88ds3103b", in em28178_dvb_init_pctv_461e_v2()
1244 if (!dvb->i2c_client_demod) in em28178_dvb_init_pctv_461e_v2()
1247 dvb->fe[0] = m88ds3103_pdata.get_dvb_frontend(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1248 i2c_adapter = m88ds3103_pdata.get_i2c_adapter(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1251 ts2020_config.fe = dvb->fe[0]; in em28178_dvb_init_pctv_461e_v2()
1252 dvb->i2c_client_tuner = dvb_module_probe("ts2020", "ts2022", in em28178_dvb_init_pctv_461e_v2()
1255 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_pctv_461e_v2()
1256 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1261 dvb->fe[0]->ops.read_signal_strength = in em28178_dvb_init_pctv_461e_v2()
1262 dvb->fe[0]->ops.tuner_ops.get_rf_strength; in em28178_dvb_init_pctv_461e_v2()
1265 a8293_pdata.dvb_frontend = dvb->fe[0]; in em28178_dvb_init_pctv_461e_v2()
1266 dvb->i2c_client_sec = dvb_module_probe("a8293", NULL, in em28178_dvb_init_pctv_461e_v2()
1269 if (!dvb->i2c_client_sec) { in em28178_dvb_init_pctv_461e_v2()
1270 dvb_module_release(dvb->i2c_client_tuner); in em28178_dvb_init_pctv_461e_v2()
1271 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_461e_v2()
1280 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_pctv_292e() local
1287 si2168_config.fe = &dvb->fe[0]; in em28178_dvb_init_pctv_292e()
1291 dvb->i2c_client_demod = dvb_module_probe("si2168", NULL, in em28178_dvb_init_pctv_292e()
1294 if (!dvb->i2c_client_demod) in em28178_dvb_init_pctv_292e()
1298 si2157_config.fe = dvb->fe[0]; in em28178_dvb_init_pctv_292e()
1303 dvb->i2c_client_tuner = dvb_module_probe("si2157", NULL, in em28178_dvb_init_pctv_292e()
1306 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_pctv_292e()
1307 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_pctv_292e()
1310 dvb->fe[0]->ops.set_lna = em28xx_pctv_292e_set_lna; in em28178_dvb_init_pctv_292e()
1317 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_terratec_t2_stick_hd() local
1324 si2168_config.fe = &dvb->fe[0]; in em28178_dvb_init_terratec_t2_stick_hd()
1327 dvb->i2c_client_demod = dvb_module_probe("si2168", NULL, in em28178_dvb_init_terratec_t2_stick_hd()
1330 if (!dvb->i2c_client_demod) in em28178_dvb_init_terratec_t2_stick_hd()
1335 si2157_config.fe = dvb->fe[0]; in em28178_dvb_init_terratec_t2_stick_hd()
1340 dvb->i2c_client_tuner = dvb_module_probe("si2157", "si2146", in em28178_dvb_init_terratec_t2_stick_hd()
1343 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_terratec_t2_stick_hd()
1344 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_terratec_t2_stick_hd()
1353 struct em28xx_dvb *dvb = dev->dvb; in em28178_dvb_init_plex_px_bcud() local
1358 dvb->i2c_client_demod = dvb_module_probe("tc90522", "tc90522sat", in em28178_dvb_init_plex_px_bcud()
1361 if (!dvb->i2c_client_demod) in em28178_dvb_init_plex_px_bcud()
1368 dvb->i2c_client_tuner = dvb_module_probe("qm1d1c0042", NULL, in em28178_dvb_init_plex_px_bcud()
1371 if (!dvb->i2c_client_tuner) { in em28178_dvb_init_plex_px_bcud()
1372 dvb_module_release(dvb->i2c_client_demod); in em28178_dvb_init_plex_px_bcud()
1376 dvb->fe[0] = tc90522_config.fe; in em28178_dvb_init_plex_px_bcud()
1384 struct em28xx_dvb *dvb = dev->dvb; in em28174_dvb_init_hauppauge_wintv_dualhd_dvb() local
1392 si2168_config.fe = &dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1397 dvb->i2c_client_demod = dvb_module_probe("si2168", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1400 if (!dvb->i2c_client_demod) in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1405 si2157_config.fe = dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1412 dvb->i2c_client_tuner = dvb_module_probe("si2157", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1415 if (!dvb->i2c_client_tuner) { in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1416 dvb_module_release(dvb->i2c_client_demod); in em28174_dvb_init_hauppauge_wintv_dualhd_dvb()
1425 struct em28xx_dvb *dvb = dev->dvb; in em28174_dvb_init_hauppauge_wintv_dualhd_01595() local
1433 lgdt3306a_config.fe = &dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1437 dvb->i2c_client_demod = dvb_module_probe("lgdt3306a", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1440 if (!dvb->i2c_client_demod) in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1444 si2157_config.fe = dvb->fe[0]; in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1452 dvb->i2c_client_tuner = dvb_module_probe("si2157", NULL, in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1455 if (!dvb->i2c_client_tuner) { in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1456 dvb_module_release(dvb->i2c_client_demod); in em28174_dvb_init_hauppauge_wintv_dualhd_01595()
1465 struct em28xx_dvb *dvb = dev->dvb; in em2874_dvb_init_hauppauge_usb_quadhd() local
1471 mxl692_config.fe = &dvb->fe[0]; in em2874_dvb_init_hauppauge_usb_quadhd()
1474 dvb->i2c_client_demod = dvb_module_probe("mxl692", NULL, in em2874_dvb_init_hauppauge_usb_quadhd()
1477 if (!dvb->i2c_client_demod) in em2874_dvb_init_hauppauge_usb_quadhd()
1486 struct em28xx_dvb *dvb; in em28xx_dvb_init() local
1501 dvb = kzalloc(sizeof(*dvb), GFP_KERNEL); in em28xx_dvb_init()
1502 if (!dvb) in em28xx_dvb_init()
1505 dev->dvb = dvb; in em28xx_dvb_init()
1506 dvb->fe[0] = NULL; in em28xx_dvb_init()
1507 dvb->fe[1] = NULL; in em28xx_dvb_init()
1526 kfree(dvb); in em28xx_dvb_init()
1527 dev->dvb = NULL; in em28xx_dvb_init()
1536 dvb->fe[0] = dvb_attach(s921_attach, in em28xx_dvb_init()
1540 if (!dvb->fe[0]) { in em28xx_dvb_init()
1550 dvb->fe[0] = dvb_attach(lgdt330x_attach, in em28xx_dvb_init()
1560 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1572 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1589 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1592 if (!dvb->fe[0]) in em28xx_dvb_init()
1593 dvb->fe[0] = dvb_attach(mt352_attach, in em28xx_dvb_init()
1603 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1606 if (dvb->fe[0]) { in em28xx_dvb_init()
1607 dvb_attach(mt2060_attach, dvb->fe[0], in em28xx_dvb_init()
1613 dvb->fe[0] = dvb_attach(zl10353_attach, in em28xx_dvb_init()
1616 if (dvb->fe[0]) in em28xx_dvb_init()
1617 dvb_attach(qt1010_attach, dvb->fe[0], in em28xx_dvb_init()
1623 dvb->fe[0] = dvb_attach(s5h1409_attach, in em28xx_dvb_init()
1632 dvb->fe[0] = dvb_attach(lgdt330x_attach, in em28xx_dvb_init()
1636 if (dvb->fe[0]) { in em28xx_dvb_init()
1637 if (!dvb_attach(simple_tuner_attach, dvb->fe[0], in em28xx_dvb_init()
1647 dvb->fe[0] = dvb_attach(drxd_attach, &em28xx_drxd, NULL, in em28xx_dvb_init()
1657 dvb->fe[0] = dvb_attach(tda10023_attach, in em28xx_dvb_init()
1661 if (dvb->fe[0]) { in em28xx_dvb_init()
1662 if (!dvb_attach(simple_tuner_attach, dvb->fe[0], in em28xx_dvb_init()
1671 dvb->fe[0] = dvb_attach(lgdt3305_attach, in em28xx_dvb_init()
1674 if (!dvb->fe[0]) { in em28xx_dvb_init()
1678 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1681 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1688 dvb->lna_gpio = CXD2820R_GPIO_E | CXD2820R_GPIO_O | in em28xx_dvb_init()
1690 dvb->fe[0] = dvb_attach(cxd2820r_attach, in em28xx_dvb_init()
1693 &dvb->lna_gpio); in em28xx_dvb_init()
1694 if (dvb->fe[0]) { in em28xx_dvb_init()
1697 dvb->fe[0], in em28xx_dvb_init()
1701 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1708 result = gpio_request_one(dvb->lna_gpio, in em28xx_dvb_init()
1715 gpio_free(dvb->lna_gpio); in em28xx_dvb_init()
1719 dvb->fe[0]->ops.set_lna = em28xx_pctv_290e_set_lna; in em28xx_dvb_init()
1729 dvb->fe[0] = dvb_attach(drxk_attach, in em28xx_dvb_init()
1732 if (!dvb->fe[0]) { in em28xx_dvb_init()
1737 dvb->fe[0]->sec_priv = dvb; in em28xx_dvb_init()
1738 sema_init(&dvb->pll_mutex, 1); in em28xx_dvb_init()
1739 dvb->gate_ctrl = dvb->fe[0]->ops.i2c_gate_ctrl; in em28xx_dvb_init()
1740 dvb->fe[0]->ops.i2c_gate_ctrl = drxk_gate_ctrl; in em28xx_dvb_init()
1746 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1747 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 1); in em28xx_dvb_init()
1748 if (!dvb_attach(xc5000_attach, dvb->fe[0], 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], 0); in em28xx_dvb_init()
1761 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_h5_drxk, in em28xx_dvb_init()
1763 if (!dvb->fe[0]) { in em28xx_dvb_init()
1768 dvb->fe[0]->sec_priv = dvb; in em28xx_dvb_init()
1769 sema_init(&dvb->pll_mutex, 1); in em28xx_dvb_init()
1770 dvb->gate_ctrl = dvb->fe[0]->ops.i2c_gate_ctrl; in em28xx_dvb_init()
1771 dvb->fe[0]->ops.i2c_gate_ctrl = drxk_gate_ctrl; in em28xx_dvb_init()
1774 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1775 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 1); in em28xx_dvb_init()
1776 if (!dvb_attach(tda18271c2dd_attach, dvb->fe[0], in em28xx_dvb_init()
1781 if (dvb->fe[0]->ops.i2c_gate_ctrl) in em28xx_dvb_init()
1782 dvb->fe[0]->ops.i2c_gate_ctrl(dvb->fe[0], 0); in em28xx_dvb_init()
1786 dvb->fe[0] = dvb_attach(mb86a20s_attach, in em28xx_dvb_init()
1789 if (dvb->fe[0]) in em28xx_dvb_init()
1790 dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1802 dvb->fe[0] = dvb_attach(drxk_attach, &maxmedia_ub425_tc_drxk, in em28xx_dvb_init()
1805 if (dvb->fe[0]) { in em28xx_dvb_init()
1807 dvb->fe[0]->ops.i2c_gate_ctrl = NULL; in em28xx_dvb_init()
1810 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1813 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1824 dvb->fe[0] = dvb_attach(drxk_attach, &pctv_520e_drxk, in em28xx_dvb_init()
1827 if (dvb->fe[0]) { in em28xx_dvb_init()
1829 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1832 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1844 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_htc_stick_drxk, in em28xx_dvb_init()
1846 if (!dvb->fe[0]) { in em28xx_dvb_init()
1852 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1863 dvb->fe[0] = dvb_attach(drxk_attach, &terratec_htc_stick_drxk, in em28xx_dvb_init()
1865 if (!dvb->fe[0]) { in em28xx_dvb_init()
1871 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1879 dvb->fe[0] = dvb_attach(lgdt3305_attach, in em28xx_dvb_init()
1882 if (!dvb->fe[0]) { in em28xx_dvb_init()
1888 if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, in em28xx_dvb_init()
1899 dvb->fe[0] = dvb_attach(lgdt3305_attach, in em28xx_dvb_init()
1902 if (!dvb->fe[0]) { in em28xx_dvb_init()
1908 kworld_ub435q_v3_config.fe = dvb->fe[0]; in em28xx_dvb_init()
1910 dvb->i2c_client_tuner = dvb_module_probe("tda18212", NULL, in em28xx_dvb_init()
1913 if (!dvb->i2c_client_tuner) { in em28xx_dvb_init()
1914 dvb_frontend_detach(dvb->fe[0]); in em28xx_dvb_init()
1921 dvb->fe[0] = dvb_attach(drx39xxj_attach, in em28xx_dvb_init()
1923 if (dvb->fe[0]) { in em28xx_dvb_init()
1924 dvb->fe[0] = dvb_attach(tda18271_attach, dvb->fe[0], in em28xx_dvb_init()
1928 if (!dvb->fe[0]) { in em28xx_dvb_init()
1979 if (!dvb->fe[0]) { in em28xx_dvb_init()
1985 dvb->fe[0]->callback = em28xx_tuner_callback; in em28xx_dvb_init()
1986 if (dvb->fe[1]) in em28xx_dvb_init()
1987 dvb->fe[1]->callback = em28xx_tuner_callback; in em28xx_dvb_init()
1990 result = em28xx_register_dvb(dvb, THIS_MODULE, dev, &dev->intf->dev); in em28xx_dvb_init()
2014 kfree(dvb); in em28xx_dvb_init()
2015 dev->dvb = NULL; in em28xx_dvb_init()
2028 struct em28xx_dvb *dvb; in em28xx_dvb_fini() local
2040 if (!dev->dvb) in em28xx_dvb_fini()
2045 dvb = dev->dvb; in em28xx_dvb_fini()
2054 if (dvb->fe[0]) { in em28xx_dvb_fini()
2055 prevent_sleep(&dvb->fe[0]->ops); in em28xx_dvb_fini()
2056 dvb->fe[0]->exit = DVB_FE_DEVICE_REMOVED; in em28xx_dvb_fini()
2058 if (dvb->fe[1]) { in em28xx_dvb_fini()
2059 prevent_sleep(&dvb->fe[1]->ops); in em28xx_dvb_fini()
2060 dvb->fe[1]->exit = DVB_FE_DEVICE_REMOVED; in em28xx_dvb_fini()
2064 em28xx_unregister_dvb(dvb); in em28xx_dvb_fini()
2067 dvb_module_release(dvb->i2c_client_sec); in em28xx_dvb_fini()
2068 dvb_module_release(dvb->i2c_client_tuner); in em28xx_dvb_fini()
2069 dvb_module_release(dvb->i2c_client_demod); in em28xx_dvb_fini()
2071 kfree(dvb); in em28xx_dvb_fini()
2072 dev->dvb = NULL; in em28xx_dvb_fini()
2089 if (dev->dvb) { in em28xx_dvb_suspend()
2090 struct em28xx_dvb *dvb = dev->dvb; in em28xx_dvb_suspend() local
2092 if (dvb->fe[0]) { in em28xx_dvb_suspend()
2093 ret = dvb_frontend_suspend(dvb->fe[0]); in em28xx_dvb_suspend()
2096 if (dvb->fe[1]) { in em28xx_dvb_suspend()
2097 dvb_frontend_suspend(dvb->fe[1]); in em28xx_dvb_suspend()
2116 if (dev->dvb) { in em28xx_dvb_resume()
2117 struct em28xx_dvb *dvb = dev->dvb; in em28xx_dvb_resume() local
2119 if (dvb->fe[0]) { in em28xx_dvb_resume()
2120 ret = dvb_frontend_resume(dvb->fe[0]); in em28xx_dvb_resume()
2124 if (dvb->fe[1]) { in em28xx_dvb_resume()
2125 ret = dvb_frontend_resume(dvb->fe[1]); in em28xx_dvb_resume()