Lines Matching refs:dvbdemux
869 struct dvb_demux *dvbdemux = dvbdmxfeed->demux; in dmx_section_feed_allocate_filter() local
872 if (mutex_lock_interruptible(&dvbdemux->mutex)) in dmx_section_feed_allocate_filter()
875 dvbdmxfilter = dvb_dmx_filter_alloc(dvbdemux); in dmx_section_feed_allocate_filter()
877 mutex_unlock(&dvbdemux->mutex); in dmx_section_feed_allocate_filter()
881 spin_lock_irq(&dvbdemux->lock); in dmx_section_feed_allocate_filter()
890 spin_unlock_irq(&dvbdemux->lock); in dmx_section_feed_allocate_filter()
892 mutex_unlock(&dvbdemux->mutex); in dmx_section_feed_allocate_filter()
1132 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_open() local
1134 if (dvbdemux->users >= MAX_DVB_DEMUX_USERS) in dvbdmx_open()
1137 dvbdemux->users++; in dvbdmx_open()
1143 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_close() local
1145 if (dvbdemux->users == 0) in dvbdmx_close()
1148 dvbdemux->users--; in dvbdmx_close()
1155 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_write() local
1164 if (mutex_lock_interruptible(&dvbdemux->mutex)) { in dvbdmx_write()
1168 dvb_dmx_swfilter(dvbdemux, p, count); in dvbdmx_write()
1170 mutex_unlock(&dvbdemux->mutex); in dvbdmx_write()
1180 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_add_frontend() local
1181 struct list_head *head = &dvbdemux->frontend_list; in dvbdmx_add_frontend()
1191 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_remove_frontend() local
1192 struct list_head *pos, *n, *head = &dvbdemux->frontend_list; in dvbdmx_remove_frontend()
1206 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_get_frontends() local
1208 if (list_empty(&dvbdemux->frontend_list)) in dvbdmx_get_frontends()
1211 return &dvbdemux->frontend_list; in dvbdmx_get_frontends()
1217 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_connect_frontend() local
1222 mutex_lock(&dvbdemux->mutex); in dvbdmx_connect_frontend()
1225 mutex_unlock(&dvbdemux->mutex); in dvbdmx_connect_frontend()
1231 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_disconnect_frontend() local
1233 mutex_lock(&dvbdemux->mutex); in dvbdmx_disconnect_frontend()
1236 mutex_unlock(&dvbdemux->mutex); in dvbdmx_disconnect_frontend()
1242 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_get_pes_pids() local
1244 memcpy(pids, dvbdemux->pids, 5 * sizeof(u16)); in dvbdmx_get_pes_pids()
1248 int dvb_dmx_init(struct dvb_demux *dvbdemux) in dvb_dmx_init() argument
1251 struct dmx_demux *dmx = &dvbdemux->dmx; in dvb_dmx_init()
1253 dvbdemux->cnt_storage = NULL; in dvb_dmx_init()
1254 dvbdemux->users = 0; in dvb_dmx_init()
1255 dvbdemux->filter = vmalloc(dvbdemux->filternum * sizeof(struct dvb_demux_filter)); in dvb_dmx_init()
1257 if (!dvbdemux->filter) in dvb_dmx_init()
1260 dvbdemux->feed = vmalloc(dvbdemux->feednum * sizeof(struct dvb_demux_feed)); in dvb_dmx_init()
1261 if (!dvbdemux->feed) { in dvb_dmx_init()
1262 vfree(dvbdemux->filter); in dvb_dmx_init()
1263 dvbdemux->filter = NULL; in dvb_dmx_init()
1266 for (i = 0; i < dvbdemux->filternum; i++) { in dvb_dmx_init()
1267 dvbdemux->filter[i].state = DMX_STATE_FREE; in dvb_dmx_init()
1268 dvbdemux->filter[i].index = i; in dvb_dmx_init()
1270 for (i = 0; i < dvbdemux->feednum; i++) { in dvb_dmx_init()
1271 dvbdemux->feed[i].state = DMX_STATE_FREE; in dvb_dmx_init()
1272 dvbdemux->feed[i].index = i; in dvb_dmx_init()
1275 dvbdemux->cnt_storage = vmalloc(MAX_PID + 1); in dvb_dmx_init()
1276 if (!dvbdemux->cnt_storage) in dvb_dmx_init()
1279 INIT_LIST_HEAD(&dvbdemux->frontend_list); in dvb_dmx_init()
1282 dvbdemux->pesfilter[i] = NULL; in dvb_dmx_init()
1283 dvbdemux->pids[i] = 0xffff; in dvb_dmx_init()
1286 INIT_LIST_HEAD(&dvbdemux->feed_list); in dvb_dmx_init()
1288 dvbdemux->playing = 0; in dvb_dmx_init()
1289 dvbdemux->recording = 0; in dvb_dmx_init()
1290 dvbdemux->tsbufp = 0; in dvb_dmx_init()
1292 if (!dvbdemux->check_crc32) in dvb_dmx_init()
1293 dvbdemux->check_crc32 = dvb_dmx_crc32; in dvb_dmx_init()
1295 if (!dvbdemux->memcopy) in dvb_dmx_init()
1296 dvbdemux->memcopy = dvb_dmx_memcopy; in dvb_dmx_init()
1299 dmx->priv = dvbdemux; in dvb_dmx_init()
1315 mutex_init(&dvbdemux->mutex); in dvb_dmx_init()
1316 spin_lock_init(&dvbdemux->lock); in dvb_dmx_init()
1323 void dvb_dmx_release(struct dvb_demux *dvbdemux) in dvb_dmx_release() argument
1325 vfree(dvbdemux->cnt_storage); in dvb_dmx_release()
1326 vfree(dvbdemux->filter); in dvb_dmx_release()
1327 vfree(dvbdemux->feed); in dvb_dmx_release()