• Home
  • Raw
  • Download

Lines Matching refs:dvb

39 	printk(KERN_DEBUG "%s/dvb: " fmt, dvb->name , ## arg)
45 struct videobuf_dvb *dvb = data; in videobuf_dvb_thread() local
52 videobuf_read_start(&dvb->dvbq); in videobuf_dvb_thread()
56 buf = list_entry(dvb->dvbq.stream.next, in videobuf_dvb_thread()
59 videobuf_waiton(&dvb->dvbq, buf, 0, 1); in videobuf_dvb_thread()
62 if (0 == dvb->nfeeds) in videobuf_dvb_thread()
69 outp = videobuf_queue_to_vaddr(&dvb->dvbq, buf); in videobuf_dvb_thread()
72 dvb_dmx_swfilter(&dvb->demux, outp, in videobuf_dvb_thread()
76 list_add_tail(&buf->stream,&dvb->dvbq.stream); in videobuf_dvb_thread()
77 spin_lock_irqsave(dvb->dvbq.irqlock,flags); in videobuf_dvb_thread()
78 dvb->dvbq.ops->buf_queue(&dvb->dvbq,buf); in videobuf_dvb_thread()
79 spin_unlock_irqrestore(dvb->dvbq.irqlock,flags); in videobuf_dvb_thread()
82 videobuf_read_stop(&dvb->dvbq); in videobuf_dvb_thread()
96 struct videobuf_dvb *dvb = demux->priv; in videobuf_dvb_start_feed() local
102 mutex_lock(&dvb->lock); in videobuf_dvb_start_feed()
103 dvb->nfeeds++; in videobuf_dvb_start_feed()
104 rc = dvb->nfeeds; in videobuf_dvb_start_feed()
106 if (NULL != dvb->thread) in videobuf_dvb_start_feed()
108 dvb->thread = kthread_run(videobuf_dvb_thread, in videobuf_dvb_start_feed()
109 dvb, "%s dvb", dvb->name); in videobuf_dvb_start_feed()
110 if (IS_ERR(dvb->thread)) { in videobuf_dvb_start_feed()
111 rc = PTR_ERR(dvb->thread); in videobuf_dvb_start_feed()
112 dvb->thread = NULL; in videobuf_dvb_start_feed()
116 mutex_unlock(&dvb->lock); in videobuf_dvb_start_feed()
123 struct videobuf_dvb *dvb = demux->priv; in videobuf_dvb_stop_feed() local
126 mutex_lock(&dvb->lock); in videobuf_dvb_stop_feed()
127 dvb->nfeeds--; in videobuf_dvb_stop_feed()
128 if (0 == dvb->nfeeds && NULL != dvb->thread) { in videobuf_dvb_stop_feed()
129 err = kthread_stop(dvb->thread); in videobuf_dvb_stop_feed()
130 dvb->thread = NULL; in videobuf_dvb_stop_feed()
132 mutex_unlock(&dvb->lock); in videobuf_dvb_stop_feed()
162 struct videobuf_dvb *dvb) in videobuf_dvb_register_frontend() argument
167 result = dvb_register_frontend(adapter, dvb->frontend); in videobuf_dvb_register_frontend()
170 dvb->name, result); in videobuf_dvb_register_frontend()
175 dvb->demux.dmx.capabilities = in videobuf_dvb_register_frontend()
178 dvb->demux.priv = dvb; in videobuf_dvb_register_frontend()
179 dvb->demux.filternum = 256; in videobuf_dvb_register_frontend()
180 dvb->demux.feednum = 256; in videobuf_dvb_register_frontend()
181 dvb->demux.start_feed = videobuf_dvb_start_feed; in videobuf_dvb_register_frontend()
182 dvb->demux.stop_feed = videobuf_dvb_stop_feed; in videobuf_dvb_register_frontend()
183 result = dvb_dmx_init(&dvb->demux); in videobuf_dvb_register_frontend()
186 dvb->name, result); in videobuf_dvb_register_frontend()
190 dvb->dmxdev.filternum = 256; in videobuf_dvb_register_frontend()
191 dvb->dmxdev.demux = &dvb->demux.dmx; in videobuf_dvb_register_frontend()
192 dvb->dmxdev.capabilities = 0; in videobuf_dvb_register_frontend()
193 result = dvb_dmxdev_init(&dvb->dmxdev, adapter); in videobuf_dvb_register_frontend()
197 dvb->name, result); in videobuf_dvb_register_frontend()
201 dvb->fe_hw.source = DMX_FRONTEND_0; in videobuf_dvb_register_frontend()
202 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_hw); in videobuf_dvb_register_frontend()
205 dvb->name, result); in videobuf_dvb_register_frontend()
209 dvb->fe_mem.source = DMX_MEMORY_FE; in videobuf_dvb_register_frontend()
210 result = dvb->demux.dmx.add_frontend(&dvb->demux.dmx, &dvb->fe_mem); in videobuf_dvb_register_frontend()
213 dvb->name, result); in videobuf_dvb_register_frontend()
217 result = dvb->demux.dmx.connect_frontend(&dvb->demux.dmx, &dvb->fe_hw); in videobuf_dvb_register_frontend()
220 dvb->name, result); in videobuf_dvb_register_frontend()
225 result = dvb_net_init(adapter, &dvb->net, &dvb->demux.dmx); in videobuf_dvb_register_frontend()
228 dvb->name, result); in videobuf_dvb_register_frontend()
234 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem); in videobuf_dvb_register_frontend()
236 dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw); in videobuf_dvb_register_frontend()
238 dvb_dmxdev_release(&dvb->dmxdev); in videobuf_dvb_register_frontend()
240 dvb_dmx_release(&dvb->demux); in videobuf_dvb_register_frontend()
242 dvb_unregister_frontend(dvb->frontend); in videobuf_dvb_register_frontend()
244 dvb_frontend_detach(dvb->frontend); in videobuf_dvb_register_frontend()
245 dvb->frontend = NULL; in videobuf_dvb_register_frontend()
271 fe->dvb.name, adapter_nr, mfe_shared); in videobuf_dvb_register_bus()
281 res = videobuf_dvb_register_frontend(&f->adapter, &fe->dvb); in videobuf_dvb_register_bus()
284 fe->dvb.name, res); in videobuf_dvb_register_bus()
339 if (fe->dvb.frontend == p) { in videobuf_dvb_find_frontend()
361 mutex_init(&fe->dvb.lock); in videobuf_dvb_alloc_frontend()
380 if (fe->dvb.net.dvbdev) { in videobuf_dvb_dealloc_frontends()
381 dvb_net_release(&fe->dvb.net); in videobuf_dvb_dealloc_frontends()
382 fe->dvb.demux.dmx.remove_frontend(&fe->dvb.demux.dmx, in videobuf_dvb_dealloc_frontends()
383 &fe->dvb.fe_mem); in videobuf_dvb_dealloc_frontends()
384 fe->dvb.demux.dmx.remove_frontend(&fe->dvb.demux.dmx, in videobuf_dvb_dealloc_frontends()
385 &fe->dvb.fe_hw); in videobuf_dvb_dealloc_frontends()
386 dvb_dmxdev_release(&fe->dvb.dmxdev); in videobuf_dvb_dealloc_frontends()
387 dvb_dmx_release(&fe->dvb.demux); in videobuf_dvb_dealloc_frontends()
388 dvb_unregister_frontend(fe->dvb.frontend); in videobuf_dvb_dealloc_frontends()
390 if (fe->dvb.frontend) in videobuf_dvb_dealloc_frontends()
392 dvb_frontend_detach(fe->dvb.frontend); in videobuf_dvb_dealloc_frontends()