• Home
  • Raw
  • Download

Lines Matching refs:adap

101 pt3_demod_write(struct pt3_adapter *adap, const struct reg_val *data, int num)  in pt3_demod_write()  argument
107 msg.addr = adap->i2c_demod->addr; in pt3_demod_write()
112 ret = i2c_transfer(adap->i2c_demod->adapter, &msg, 1); in pt3_demod_write()
159 struct pt3_adapter *adap; in pt3_set_lna() local
166 adap = pt3_find_adapter(fe); in pt3_set_lna()
168 if (val == LNA_AUTO || val == adap->cur_lna) in pt3_set_lna()
171 pt3 = adap->dvb_adap.priv; in pt3_set_lna()
188 adap->cur_lna = (val != 0); in pt3_set_lna()
194 struct pt3_adapter *adap; in pt3_set_voltage() local
200 adap = pt3_find_adapter(fe); in pt3_set_voltage()
202 if (on == adap->cur_lnb) in pt3_set_voltage()
204 adap->cur_lnb = on; in pt3_set_voltage()
205 pt3 = adap->dvb_adap.priv; in pt3_set_voltage()
447 struct pt3_adapter *adap = data; in pt3_fetch_thread() local
455 pt3_init_dmabuf(adap); in pt3_fetch_thread()
456 adap->num_discard = PT3_INITIAL_BUF_DROPS; in pt3_fetch_thread()
458 dev_dbg(adap->dvb_adap.device, "PT3: [%s] started\n", in pt3_fetch_thread()
459 adap->thread->comm); in pt3_fetch_thread()
463 adap->num_discard = PT3_INITIAL_BUF_DROPS; in pt3_fetch_thread()
465 pt3_proc_dma(adap); in pt3_fetch_thread()
473 dev_dbg(adap->dvb_adap.device, "PT3: [%s] exited\n", in pt3_fetch_thread()
474 adap->thread->comm); in pt3_fetch_thread()
478 static int pt3_start_streaming(struct pt3_adapter *adap) in pt3_start_streaming() argument
483 thread = kthread_run(pt3_fetch_thread, adap, "pt3-ad%i-dmx%i", in pt3_start_streaming()
484 adap->dvb_adap.num, adap->dmxdev.dvbdev->id); in pt3_start_streaming()
488 adap->thread = NULL; in pt3_start_streaming()
489 dev_warn(adap->dvb_adap.device, in pt3_start_streaming()
491 adap->dvb_adap.num, adap->dmxdev.dvbdev->id); in pt3_start_streaming()
494 adap->thread = thread; in pt3_start_streaming()
496 return pt3_start_dma(adap); in pt3_start_streaming()
499 static int pt3_stop_streaming(struct pt3_adapter *adap) in pt3_stop_streaming() argument
503 ret = pt3_stop_dma(adap); in pt3_stop_streaming()
505 dev_warn(adap->dvb_adap.device, in pt3_stop_streaming()
507 adap->dvb_adap.num, adap->fe->id); in pt3_stop_streaming()
510 ret = kthread_stop(adap->thread); in pt3_stop_streaming()
511 adap->thread = NULL; in pt3_stop_streaming()
517 struct pt3_adapter *adap; in pt3_start_feed() local
522 adap = container_of(feed->demux, struct pt3_adapter, demux); in pt3_start_feed()
523 adap->num_feeds++; in pt3_start_feed()
524 if (adap->num_feeds > 1) in pt3_start_feed()
527 return pt3_start_streaming(adap); in pt3_start_feed()
533 struct pt3_adapter *adap; in pt3_stop_feed() local
535 adap = container_of(feed->demux, struct pt3_adapter, demux); in pt3_stop_feed()
537 adap->num_feeds--; in pt3_stop_feed()
538 if (adap->num_feeds > 0 || !adap->thread) in pt3_stop_feed()
540 adap->num_feeds = 0; in pt3_stop_feed()
542 return pt3_stop_streaming(adap); in pt3_stop_feed()
549 struct pt3_adapter *adap; in pt3_alloc_adapter() local
552 adap = kzalloc(sizeof(*adap), GFP_KERNEL); in pt3_alloc_adapter()
553 if (!adap) in pt3_alloc_adapter()
556 pt3->adaps[index] = adap; in pt3_alloc_adapter()
557 adap->adap_idx = index; in pt3_alloc_adapter()
560 ret = dvb_register_adapter(&adap->dvb_adap, "PT3 DVB", in pt3_alloc_adapter()
567 da = &adap->dvb_adap; in pt3_alloc_adapter()
571 adap->dvb_adap.priv = pt3; in pt3_alloc_adapter()
572 adap->demux.dmx.capabilities = DMX_TS_FILTERING | DMX_SECTION_FILTERING; in pt3_alloc_adapter()
573 adap->demux.priv = adap; in pt3_alloc_adapter()
574 adap->demux.feednum = 256; in pt3_alloc_adapter()
575 adap->demux.filternum = 256; in pt3_alloc_adapter()
576 adap->demux.start_feed = pt3_start_feed; in pt3_alloc_adapter()
577 adap->demux.stop_feed = pt3_stop_feed; in pt3_alloc_adapter()
578 ret = dvb_dmx_init(&adap->demux); in pt3_alloc_adapter()
584 adap->dmxdev.filternum = 256; in pt3_alloc_adapter()
585 adap->dmxdev.demux = &adap->demux.dmx; in pt3_alloc_adapter()
586 ret = dvb_dmxdev_init(&adap->dmxdev, da); in pt3_alloc_adapter()
592 ret = pt3_alloc_dmabuf(adap); in pt3_alloc_adapter()
601 pt3_free_dmabuf(adap); in pt3_alloc_adapter()
602 dvb_dmxdev_release(&adap->dmxdev); in pt3_alloc_adapter()
604 dvb_dmx_release(&adap->demux); in pt3_alloc_adapter()
609 kfree(adap); in pt3_alloc_adapter()
616 struct pt3_adapter *adap; in pt3_cleanup_adapter() local
619 adap = pt3->adaps[index]; in pt3_cleanup_adapter()
620 if (adap == NULL) in pt3_cleanup_adapter()
624 if (adap->thread) in pt3_cleanup_adapter()
625 pt3_stop_streaming(adap); in pt3_cleanup_adapter()
627 dmx = &adap->demux.dmx; in pt3_cleanup_adapter()
629 if (adap->fe) { in pt3_cleanup_adapter()
630 adap->fe->callback = NULL; in pt3_cleanup_adapter()
631 if (adap->fe->frontend_priv) in pt3_cleanup_adapter()
632 dvb_unregister_frontend(adap->fe); in pt3_cleanup_adapter()
633 if (adap->i2c_tuner) { in pt3_cleanup_adapter()
634 module_put(adap->i2c_tuner->dev.driver->owner); in pt3_cleanup_adapter()
635 i2c_unregister_device(adap->i2c_tuner); in pt3_cleanup_adapter()
637 if (adap->i2c_demod) { in pt3_cleanup_adapter()
638 module_put(adap->i2c_demod->dev.driver->owner); in pt3_cleanup_adapter()
639 i2c_unregister_device(adap->i2c_demod); in pt3_cleanup_adapter()
642 pt3_free_dmabuf(adap); in pt3_cleanup_adapter()
643 dvb_dmxdev_release(&adap->dmxdev); in pt3_cleanup_adapter()
644 dvb_dmx_release(&adap->demux); in pt3_cleanup_adapter()
646 dvb_unregister_adapter(&adap->dvb_adap); in pt3_cleanup_adapter()
647 kfree(adap); in pt3_cleanup_adapter()
658 struct pt3_adapter *adap; in pt3_suspend() local
661 adap = pt3->adaps[i]; in pt3_suspend()
662 if (adap->num_feeds > 0) in pt3_suspend()
663 pt3_stop_dma(adap); in pt3_suspend()
664 dvb_frontend_suspend(adap->fe); in pt3_suspend()
665 pt3_free_dmabuf(adap); in pt3_suspend()
678 struct pt3_adapter *adap; in pt3_resume() local
690 adap = pt3->adaps[i]; in pt3_resume()
691 dvb_frontend_resume(adap->fe); in pt3_resume()
692 ret = pt3_alloc_dmabuf(adap); in pt3_resume()
697 if (adap->num_feeds > 0) in pt3_resume()
698 pt3_start_dma(adap); in pt3_resume()