Lines Matching defs:dvb

41 MODULE_PARM_DESC(debug, "enable debug messages [dvb]");
232 dvb_dmx_swfilter(&dev->dvb->demux,
256 dvb_dmx_swfilter(&dev->dvb->demux,
262 static int start_streaming(struct cx231xx_dvb *dvb)
265 struct cx231xx *dev = dvb->adapter.priv;
293 static int stop_streaming(struct cx231xx_dvb *dvb)
295 struct cx231xx *dev = dvb->adapter.priv;
310 struct cx231xx_dvb *dvb = demux->priv;
316 mutex_lock(&dvb->lock);
317 dvb->nfeeds++;
318 rc = dvb->nfeeds;
320 if (dvb->nfeeds == 1) {
321 ret = start_streaming(dvb);
326 mutex_unlock(&dvb->lock);
333 struct cx231xx_dvb *dvb = demux->priv;
336 mutex_lock(&dvb->lock);
337 dvb->nfeeds--;
339 if (0 == dvb->nfeeds)
340 err = stop_streaming(dvb);
342 mutex_unlock(&dvb->lock);
349 struct cx231xx *dev = fe->dvb->priv;
380 if (!dev->dvb->frontend[0]) {
381 dev_err(dev->dev, "%s/2: dvb frontend not attached. Can't attach xc5000\n",
386 fe = dvb_attach(xc5000_attach, dev->dvb->frontend[0], &cfg);
389 dvb_frontend_detach(dev->dvb->frontend[0]);
390 dev->dvb->frontend[0] = NULL;
402 if (dev->dvb && dev->dvb->frontend[0]) {
404 struct dvb_tuner_ops *dops = &dev->dvb->frontend[0]->ops.tuner_ops;
415 dops->set_analog_params(dev->dvb->frontend[0], &params);
427 if (dev->dvb && dev->dvb->frontend[0]) {
429 struct dvb_tuner_ops *dops = &dev->dvb->frontend[0]->ops.tuner_ops;
435 status = dops->init(dev->dvb->frontend[0]);
454 static int register_dvb(struct cx231xx_dvb *dvb,
460 mutex_init(&dvb->lock);
464 result = dvb_register_adapter(&dvb->adapter, dev->name, module, device,
472 dvb_register_media_controller(&dvb->adapter, dev->media_dev);
475 dvb->frontend[0]->ops.ts_bus_ctrl = cx231xx_dvb_bus_ctrl;
476 if (dvb->frontend[1])
477 dvb->frontend[1]->ops.ts_bus_ctrl = cx231xx_dvb_bus_ctrl;
479 dvb->adapter.priv = dev;
482 result = dvb_register_frontend(&dvb->adapter, dvb->frontend[0]);
490 if (dvb->frontend[1]) {
491 result = dvb_register_frontend(&dvb->adapter, dvb->frontend[1]);
500 dvb->adapter.mfe_shared = 1;
504 dvb->demux.dmx.capabilities =
507 dvb->demux.priv = dvb;
508 dvb->demux.filternum = 256;
509 dvb->demux.feednum = 256;
510 dvb->demux.start_feed = start_feed;
511 dvb->demux.stop_feed = stop_feed;
513 result = dvb_dmx_init(&dvb->demux);
521 dvb->dmxdev.filternum = 256;
522 dvb->dmxdev.demux = &dvb->demux.dmx;
523 dvb->dmxdev.capabilities = 0;
524 result = dvb_dmxdev_init(&dvb->dmxdev, &dvb->adapter);
532 dvb->fe_hw.source = DMX_FRONTEND_0;
533 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_hw);
541 dvb->fe_mem.source = DMX_MEMORY_FE;
542 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_mem);
550 result = dvb->demux.dmx.connect_frontend(&dvb->demux.dmx, &dvb->fe_hw);
559 dvb_net_init(&dvb->adapter, &dvb->net, &dvb->demux.dmx);
560 result = dvb_create_media_graph(&dvb->adapter,
568 dvb_net_release(&dvb->net);
570 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem);
572 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw);
574 dvb_dmxdev_release(&dvb->dmxdev);
576 dvb_dmx_release(&dvb->demux);
578 if (dvb->frontend[1])
579 dvb_unregister_frontend(dvb->frontend[1]);
580 dvb_unregister_frontend(dvb->frontend[0]);
582 if (dvb->frontend[1])
583 dvb_frontend_detach(dvb->frontend[1]);
585 dvb_frontend_detach(dvb->frontend[0]);
586 dvb_unregister_adapter(&dvb->adapter);
591 static void unregister_dvb(struct cx231xx_dvb *dvb)
593 dvb_net_release(&dvb->net);
594 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem);
595 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw);
596 dvb_dmxdev_release(&dvb->dmxdev);
597 dvb_dmx_release(&dvb->demux);
598 if (dvb->frontend[1])
599 dvb_unregister_frontend(dvb->frontend[1]);
600 dvb_unregister_frontend(dvb->frontend[0]);
601 if (dvb->frontend[1])
602 dvb_frontend_detach(dvb->frontend[1]);
603 dvb_frontend_detach(dvb->frontend[0]);
604 dvb_unregister_adapter(&dvb->adapter);
607 dvb_module_release(dvb->i2c_client_tuner);
608 dvb->i2c_client_tuner = NULL;
610 dvb_module_release(dvb->i2c_client_demod[1]);
611 dvb->i2c_client_demod[1] = NULL;
612 dvb_module_release(dvb->i2c_client_demod[0]);
613 dvb->i2c_client_demod[0] = NULL;
619 struct cx231xx_dvb *dvb;
630 dvb = kzalloc(sizeof(struct cx231xx_dvb), GFP_KERNEL);
632 if (dvb == NULL) {
637 dev->dvb = dvb;
651 dev->dvb->frontend[0] = dvb_attach(s5h1432_attach,
655 if (!dev->dvb->frontend[0]) {
663 dvb->frontend[0]->callback = cx231xx_tuner_callback;
665 if (!dvb_attach(xc5000_attach, dev->dvb->frontend[0],
676 dev->dvb->frontend[0] = dvb_attach(s5h1411_attach,
680 if (!dev->dvb->frontend[0]) {
688 dvb->frontend[0]->callback = cx231xx_tuner_callback;
690 if (!dvb_attach(xc5000_attach, dev->dvb->frontend[0],
699 dev->dvb->frontend[0] = dvb_attach(s5h1432_attach,
703 if (!dev->dvb->frontend[0]) {
711 dvb->frontend[0]->callback = cx231xx_tuner_callback;
713 if (!dvb_attach(tda18271_attach, dev->dvb->frontend[0],
723 dev->dvb->frontend[0] = dvb_attach(s5h1411_attach,
727 if (!dev->dvb->frontend[0]) {
735 dvb->frontend[0]->callback = cx231xx_tuner_callback;
737 if (!dvb_attach(tda18271_attach, dev->dvb->frontend[0],
750 dev->dvb->frontend[0] = dvb_attach(lgdt3305_attach,
754 if (!dev->dvb->frontend[0]) {
762 dvb->frontend[0]->callback = cx231xx_tuner_callback;
764 dvb_attach(tda18271_attach, dev->dvb->frontend[0],
774 si2165_pdata.fe = &dev->dvb->frontend[0];
786 dvb->i2c_client_demod[0] = client;
788 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL;
791 dvb->frontend[0]->callback = cx231xx_tuner_callback;
793 dvb_attach(tda18271_attach, dev->dvb->frontend[0],
806 si2165_pdata.fe = &dev->dvb->frontend[0];
818 dvb->i2c_client_demod[0] = client;
820 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL;
823 dvb->frontend[0]->callback = cx231xx_tuner_callback;
826 si2157_config.fe = dev->dvb->frontend[0];
843 dev->dvb->i2c_client_tuner = client;
852 lgdt3306a_config.fe = &dev->dvb->frontend[0];
863 dvb->i2c_client_demod[0] = client;
865 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL;
868 dvb->frontend[0]->callback = cx231xx_tuner_callback;
871 si2157_config.fe = dev->dvb->frontend[0];
888 dev->dvb->i2c_client_tuner = client;
898 dev->dvb->frontend[0] = dvb_attach(mb86a20s_attach,
902 if (!dev->dvb->frontend[0]) {
910 dvb->frontend[0]->callback = cx231xx_tuner_callback;
912 dvb_attach(tda18271_attach, dev->dvb->frontend[0],
924 si2168_config.fe = &dev->dvb->frontend[0];
936 dvb->i2c_client_demod[0] = client;
939 si2157_config.fe = dev->dvb->frontend[0];
955 dev->dvb->i2c_client_tuner = client;
965 mn88473_config.fe = &dev->dvb->frontend[0];
975 dvb->i2c_client_demod[0] = client;
978 dvb->frontend[0]->callback = cx231xx_tuner_callback;
981 dvb_attach(r820t_attach, dev->dvb->frontend[0],
993 si2168_config.fe = &dev->dvb->frontend[0];
1005 dvb->i2c_client_demod[0] = client;
1006 dev->dvb->frontend[0]->ops.i2c_gate_ctrl = NULL;
1009 dvb->frontend[0]->callback = cx231xx_tuner_callback;
1012 si2157_config.fe = dev->dvb->frontend[0];
1028 dev->dvb->i2c_client_tuner = client;
1040 lgdt3306a_config.fe = &dev->dvb->frontend[0];
1051 dvb->i2c_client_demod[0] = client;
1055 si2168_config.fe = &dev->dvb->frontend[1];
1067 dvb->i2c_client_demod[1] = client;
1068 dvb->frontend[1]->id = 1;
1071 dvb->frontend[0]->callback = cx231xx_tuner_callback;
1072 dvb->frontend[1]->callback = cx231xx_tuner_callback;
1075 si2157_config.fe = dev->dvb->frontend[0];
1091 dvb->i2c_client_tuner = client;
1093 dvb->frontend[1]->tuner_priv = dvb->frontend[0]->tuner_priv;
1095 memcpy(&dvb->frontend[1]->ops.tuner_ops,
1096 &dvb->frontend[0]->ops.tuner_ops,
1106 if (!dvb->frontend[0]) {
1114 result = register_dvb(dvb, THIS_MODULE, dev, dev->dev);
1120 dev_info(dev->dev, "Successfully loaded cx231xx-dvb\n");
1129 dvb_module_release(dvb->i2c_client_tuner);
1130 dvb->i2c_client_tuner = NULL;
1132 dvb_module_release(dvb->i2c_client_demod[1]);
1133 dvb->i2c_client_demod[1] = NULL;
1134 dvb_module_release(dvb->i2c_client_demod[0]);
1135 dvb->i2c_client_demod[0] = NULL;
1136 kfree(dvb);
1137 dev->dvb = NULL;
1148 if (dev->dvb) {
1149 unregister_dvb(dev->dvb);
1150 kfree(dev->dvb);
1151 dev->dvb = NULL;
1159 .name = "Cx231xx dvb Extension",