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