Lines Matching refs:dvb
241 dvb_dmx_swfilter(&dev->dvb->demux, in dvb_isoc_copy()
265 dvb_dmx_swfilter(&dev->dvb->demux, in dvb_bulk_copy()
271 static int start_streaming(struct cx231xx_dvb *dvb) in start_streaming() argument
274 struct cx231xx *dev = dvb->adapter.priv; in start_streaming()
302 static int stop_streaming(struct cx231xx_dvb *dvb) in stop_streaming() argument
304 struct cx231xx *dev = dvb->adapter.priv; in stop_streaming()
319 struct cx231xx_dvb *dvb = demux->priv; in start_feed() local
325 mutex_lock(&dvb->lock); in start_feed()
326 dvb->nfeeds++; in start_feed()
327 rc = dvb->nfeeds; in start_feed()
329 if (dvb->nfeeds == 1) { in start_feed()
330 ret = start_streaming(dvb); in start_feed()
335 mutex_unlock(&dvb->lock); in start_feed()
342 struct cx231xx_dvb *dvb = demux->priv; in stop_feed() local
345 mutex_lock(&dvb->lock); in stop_feed()
346 dvb->nfeeds--; in stop_feed()
348 if (0 == dvb->nfeeds) in stop_feed()
349 err = stop_streaming(dvb); in stop_feed()
351 mutex_unlock(&dvb->lock); in stop_feed()
358 struct cx231xx *dev = fe->dvb->priv; in cx231xx_dvb_bus_ctrl()
389 if (!dev->dvb->frontend) {
395 fe = dvb_attach(xc5000_attach, dev->dvb->frontend, &cfg);
398 dvb_frontend_detach(dev->dvb->frontend);
399 dev->dvb->frontend = NULL;
411 if ((dev->dvb != NULL) && (dev->dvb->frontend != NULL)) { in cx231xx_set_analog_freq()
413 struct dvb_tuner_ops *dops = &dev->dvb->frontend->ops.tuner_ops; in cx231xx_set_analog_freq()
424 dops->set_analog_params(dev->dvb->frontend, ¶ms); in cx231xx_set_analog_freq()
436 if ((dev->dvb != NULL) && (dev->dvb->frontend != NULL)) { in cx231xx_reset_analog_tuner()
438 struct dvb_tuner_ops *dops = &dev->dvb->frontend->ops.tuner_ops; in cx231xx_reset_analog_tuner()
444 status = dops->init(dev->dvb->frontend); in cx231xx_reset_analog_tuner()
463 static int register_dvb(struct cx231xx_dvb *dvb, in register_dvb() argument
469 mutex_init(&dvb->lock); in register_dvb()
473 result = dvb_register_adapter(&dvb->adapter, dev->name, module, device, in register_dvb()
481 dvb_register_media_controller(&dvb->adapter, dev->media_dev); in register_dvb()
484 dvb->frontend->ops.ts_bus_ctrl = cx231xx_dvb_bus_ctrl; in register_dvb()
486 dvb->adapter.priv = dev; in register_dvb()
489 result = dvb_register_frontend(&dvb->adapter, dvb->frontend); in register_dvb()
498 dvb->demux.dmx.capabilities = in register_dvb()
501 dvb->demux.priv = dvb; in register_dvb()
502 dvb->demux.filternum = 256; in register_dvb()
503 dvb->demux.feednum = 256; in register_dvb()
504 dvb->demux.start_feed = start_feed; in register_dvb()
505 dvb->demux.stop_feed = stop_feed; in register_dvb()
507 result = dvb_dmx_init(&dvb->demux); in register_dvb()
515 dvb->dmxdev.filternum = 256; in register_dvb()
516 dvb->dmxdev.demux = &dvb->demux.dmx; in register_dvb()
517 dvb->dmxdev.capabilities = 0; in register_dvb()
518 result = dvb_dmxdev_init(&dvb->dmxdev, &dvb->adapter); in register_dvb()
526 dvb->fe_hw.source = DMX_FRONTEND_0; in register_dvb()
527 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_hw); in register_dvb()
535 dvb->fe_mem.source = DMX_MEMORY_FE; in register_dvb()
536 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_mem); in register_dvb()
544 result = dvb->demux.dmx.connect_frontend(&dvb->demux.dmx, &dvb->fe_hw); in register_dvb()
553 dvb_net_init(&dvb->adapter, &dvb->net, &dvb->demux.dmx); in register_dvb()
554 dvb_create_media_graph(&dvb->adapter); in register_dvb()
559 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in register_dvb()
561 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in register_dvb()
563 dvb_dmxdev_release(&dvb->dmxdev); in register_dvb()
565 dvb_dmx_release(&dvb->demux); in register_dvb()
567 dvb_unregister_frontend(dvb->frontend); in register_dvb()
569 dvb_frontend_detach(dvb->frontend); in register_dvb()
570 dvb_unregister_adapter(&dvb->adapter); in register_dvb()
575 static void unregister_dvb(struct cx231xx_dvb *dvb) in unregister_dvb() argument
578 dvb_net_release(&dvb->net); in unregister_dvb()
579 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in unregister_dvb()
580 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in unregister_dvb()
581 dvb_dmxdev_release(&dvb->dmxdev); in unregister_dvb()
582 dvb_dmx_release(&dvb->demux); in unregister_dvb()
583 client = dvb->i2c_client_tuner; in unregister_dvb()
589 dvb_unregister_frontend(dvb->frontend); in unregister_dvb()
590 dvb_frontend_detach(dvb->frontend); in unregister_dvb()
591 dvb_unregister_adapter(&dvb->adapter); in unregister_dvb()
597 struct cx231xx_dvb *dvb; in dvb_init() local
606 dvb = kzalloc(sizeof(struct cx231xx_dvb), GFP_KERNEL); in dvb_init()
608 if (dvb == NULL) { in dvb_init()
613 dev->dvb = dvb; in dvb_init()
627 dev->dvb->frontend = dvb_attach(s5h1432_attach, in dvb_init()
631 if (dev->dvb->frontend == NULL) { in dvb_init()
639 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
641 if (!dvb_attach(xc5000_attach, dev->dvb->frontend, in dvb_init()
652 dev->dvb->frontend = dvb_attach(s5h1411_attach, in dvb_init()
656 if (dev->dvb->frontend == NULL) { in dvb_init()
664 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
666 if (!dvb_attach(xc5000_attach, dev->dvb->frontend, in dvb_init()
675 dev->dvb->frontend = dvb_attach(s5h1432_attach, in dvb_init()
679 if (dev->dvb->frontend == NULL) { in dvb_init()
687 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
689 if (!dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
699 dev->dvb->frontend = dvb_attach(s5h1411_attach, in dvb_init()
703 if (dev->dvb->frontend == NULL) { in dvb_init()
711 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
713 if (!dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
726 dev->dvb->frontend = dvb_attach(lgdt3305_attach, in dvb_init()
730 if (dev->dvb->frontend == NULL) { in dvb_init()
738 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
740 dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
747 dev->dvb->frontend = dvb_attach(si2165_attach, in dvb_init()
752 if (dev->dvb->frontend == NULL) { in dvb_init()
759 dev->dvb->frontend->ops.i2c_gate_ctrl = NULL; in dvb_init()
762 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
764 dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
780 dev->dvb->frontend = dvb_attach(si2165_attach, in dvb_init()
785 if (dev->dvb->frontend == NULL) { in dvb_init()
792 dev->dvb->frontend->ops.i2c_gate_ctrl = NULL; in dvb_init()
795 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
799 si2157_config.fe = dev->dvb->frontend; in dvb_init()
811 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
818 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
825 dev->dvb->i2c_client_tuner = client; in dvb_init()
836 dev->dvb->frontend = dvb_attach(lgdt3306a_attach, in dvb_init()
841 if (dev->dvb->frontend == NULL) { in dvb_init()
848 dev->dvb->frontend->ops.i2c_gate_ctrl = NULL; in dvb_init()
851 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
855 si2157_config.fe = dev->dvb->frontend; in dvb_init()
867 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
874 dvb_frontend_detach(dev->dvb->frontend); in dvb_init()
881 dev->dvb->i2c_client_tuner = client; in dvb_init()
891 dev->dvb->frontend = dvb_attach(mb86a20s_attach, in dvb_init()
895 if (dev->dvb->frontend == NULL) { in dvb_init()
903 dvb->frontend->callback = cx231xx_tuner_callback; in dvb_init()
905 dvb_attach(tda18271_attach, dev->dvb->frontend, in dvb_init()
916 if (NULL == dvb->frontend) { in dvb_init()
924 result = register_dvb(dvb, THIS_MODULE, dev, dev->dev); in dvb_init()
938 kfree(dvb); in dvb_init()
939 dev->dvb = NULL; in dvb_init()
950 if (dev->dvb) { in dvb_fini()
951 unregister_dvb(dev->dvb); in dvb_fini()
952 dev->dvb = NULL; in dvb_fini()