Lines Matching refs:dvb

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