Lines Matching refs:adap

100 pt3_demod_write(struct pt3_adapter *adap, const struct reg_val *data, int num)  in pt3_demod_write()  argument
106 msg.addr = adap->i2c_demod->addr; in pt3_demod_write()
111 ret = i2c_transfer(adap->i2c_demod->adapter, &msg, 1); in pt3_demod_write()
158 struct pt3_adapter *adap; in pt3_set_lna() local
165 adap = pt3_find_adapter(fe); in pt3_set_lna()
167 if (val == LNA_AUTO || val == adap->cur_lna) in pt3_set_lna()
170 pt3 = adap->dvb_adap.priv; in pt3_set_lna()
187 adap->cur_lna = (val != 0); in pt3_set_lna()
193 struct pt3_adapter *adap; in pt3_set_voltage() local
199 adap = pt3_find_adapter(fe); in pt3_set_voltage()
201 if (on == adap->cur_lnb) in pt3_set_voltage()
203 adap->cur_lnb = on; in pt3_set_voltage()
204 pt3 = adap->dvb_adap.priv; in pt3_set_voltage()
445 struct pt3_adapter *adap = data; in pt3_fetch_thread() local
453 pt3_init_dmabuf(adap); in pt3_fetch_thread()
454 adap->num_discard = PT3_INITIAL_BUF_DROPS; in pt3_fetch_thread()
456 dev_dbg(adap->dvb_adap.device, "PT3: [%s] started\n", in pt3_fetch_thread()
457 adap->thread->comm); in pt3_fetch_thread()
461 adap->num_discard = PT3_INITIAL_BUF_DROPS; in pt3_fetch_thread()
463 pt3_proc_dma(adap); in pt3_fetch_thread()
471 dev_dbg(adap->dvb_adap.device, "PT3: [%s] exited\n", in pt3_fetch_thread()
472 adap->thread->comm); in pt3_fetch_thread()
473 adap->thread = NULL; in pt3_fetch_thread()
477 static int pt3_start_streaming(struct pt3_adapter *adap) in pt3_start_streaming() argument
482 thread = kthread_run(pt3_fetch_thread, adap, "pt3-ad%i-dmx%i", in pt3_start_streaming()
483 adap->dvb_adap.num, adap->dmxdev.dvbdev->id); in pt3_start_streaming()
487 dev_warn(adap->dvb_adap.device, in pt3_start_streaming()
489 adap->dvb_adap.num, adap->dmxdev.dvbdev->id); in pt3_start_streaming()
492 adap->thread = thread; in pt3_start_streaming()
494 return pt3_start_dma(adap); in pt3_start_streaming()
497 static int pt3_stop_streaming(struct pt3_adapter *adap) in pt3_stop_streaming() argument
501 ret = pt3_stop_dma(adap); in pt3_stop_streaming()
503 dev_warn(adap->dvb_adap.device, in pt3_stop_streaming()
505 adap->dvb_adap.num, adap->fe->id); in pt3_stop_streaming()
508 ret = kthread_stop(adap->thread); in pt3_stop_streaming()
514 struct pt3_adapter *adap; in pt3_start_feed() local
519 adap = container_of(feed->demux, struct pt3_adapter, demux); in pt3_start_feed()
520 adap->num_feeds++; in pt3_start_feed()
521 if (adap->thread) in pt3_start_feed()
523 if (adap->num_feeds != 1) { in pt3_start_feed()
524 dev_warn(adap->dvb_adap.device, in pt3_start_feed()
526 __func__, adap->dvb_adap.num, adap->dmxdev.dvbdev->id); in pt3_start_feed()
527 adap->num_feeds = 1; in pt3_start_feed()
530 return pt3_start_streaming(adap); in pt3_start_feed()
536 struct pt3_adapter *adap; in pt3_stop_feed() local
538 adap = container_of(feed->demux, struct pt3_adapter, demux); in pt3_stop_feed()
540 adap->num_feeds--; in pt3_stop_feed()
541 if (adap->num_feeds > 0 || !adap->thread) in pt3_stop_feed()
543 adap->num_feeds = 0; in pt3_stop_feed()
545 return pt3_stop_streaming(adap); in pt3_stop_feed()
552 struct pt3_adapter *adap; in pt3_alloc_adapter() local
555 adap = kzalloc(sizeof(*adap), GFP_KERNEL); in pt3_alloc_adapter()
556 if (!adap) in pt3_alloc_adapter()
559 pt3->adaps[index] = adap; in pt3_alloc_adapter()
560 adap->adap_idx = index; in pt3_alloc_adapter()
563 ret = dvb_register_adapter(&adap->dvb_adap, "PT3 DVB", in pt3_alloc_adapter()
570 da = &adap->dvb_adap; in pt3_alloc_adapter()
574 adap->dvb_adap.priv = pt3; in pt3_alloc_adapter()
575 adap->demux.dmx.capabilities = DMX_TS_FILTERING | DMX_SECTION_FILTERING; in pt3_alloc_adapter()
576 adap->demux.priv = adap; in pt3_alloc_adapter()
577 adap->demux.feednum = 256; in pt3_alloc_adapter()
578 adap->demux.filternum = 256; in pt3_alloc_adapter()
579 adap->demux.start_feed = pt3_start_feed; in pt3_alloc_adapter()
580 adap->demux.stop_feed = pt3_stop_feed; in pt3_alloc_adapter()
581 ret = dvb_dmx_init(&adap->demux); in pt3_alloc_adapter()
587 adap->dmxdev.filternum = 256; in pt3_alloc_adapter()
588 adap->dmxdev.demux = &adap->demux.dmx; in pt3_alloc_adapter()
589 ret = dvb_dmxdev_init(&adap->dmxdev, da); in pt3_alloc_adapter()
595 ret = pt3_alloc_dmabuf(adap); in pt3_alloc_adapter()
604 pt3_free_dmabuf(adap); in pt3_alloc_adapter()
605 dvb_dmxdev_release(&adap->dmxdev); in pt3_alloc_adapter()
607 dvb_dmx_release(&adap->demux); in pt3_alloc_adapter()
612 kfree(adap); in pt3_alloc_adapter()
619 struct pt3_adapter *adap; in pt3_cleanup_adapter() local
622 adap = pt3->adaps[index]; in pt3_cleanup_adapter()
623 if (adap == NULL) in pt3_cleanup_adapter()
627 if (adap->thread) in pt3_cleanup_adapter()
628 pt3_stop_streaming(adap); in pt3_cleanup_adapter()
630 dmx = &adap->demux.dmx; in pt3_cleanup_adapter()
632 if (adap->fe) { in pt3_cleanup_adapter()
633 adap->fe->callback = NULL; in pt3_cleanup_adapter()
634 if (adap->fe->frontend_priv) in pt3_cleanup_adapter()
635 dvb_unregister_frontend(adap->fe); in pt3_cleanup_adapter()
636 if (adap->i2c_tuner) { in pt3_cleanup_adapter()
637 module_put(adap->i2c_tuner->dev.driver->owner); in pt3_cleanup_adapter()
638 i2c_unregister_device(adap->i2c_tuner); in pt3_cleanup_adapter()
640 if (adap->i2c_demod) { in pt3_cleanup_adapter()
641 module_put(adap->i2c_demod->dev.driver->owner); in pt3_cleanup_adapter()
642 i2c_unregister_device(adap->i2c_demod); in pt3_cleanup_adapter()
645 pt3_free_dmabuf(adap); in pt3_cleanup_adapter()
646 dvb_dmxdev_release(&adap->dmxdev); in pt3_cleanup_adapter()
647 dvb_dmx_release(&adap->demux); in pt3_cleanup_adapter()
649 dvb_unregister_adapter(&adap->dvb_adap); in pt3_cleanup_adapter()
650 kfree(adap); in pt3_cleanup_adapter()
661 struct pt3_adapter *adap; in pt3_suspend() local
664 adap = pt3->adaps[i]; in pt3_suspend()
665 if (adap->num_feeds > 0) in pt3_suspend()
666 pt3_stop_dma(adap); in pt3_suspend()
667 dvb_frontend_suspend(adap->fe); in pt3_suspend()
668 pt3_free_dmabuf(adap); in pt3_suspend()
681 struct pt3_adapter *adap; in pt3_resume() local
693 adap = pt3->adaps[i]; in pt3_resume()
694 dvb_frontend_resume(adap->fe); in pt3_resume()
695 ret = pt3_alloc_dmabuf(adap); in pt3_resume()
700 if (adap->num_feeds > 0) in pt3_resume()
701 pt3_start_dma(adap); in pt3_resume()