Lines Matching refs:dvbdemux
868 struct dvb_demux *dvbdemux = dvbdmxfeed->demux; in dmx_section_feed_allocate_filter() local
871 if (mutex_lock_interruptible(&dvbdemux->mutex)) in dmx_section_feed_allocate_filter()
874 dvbdmxfilter = dvb_dmx_filter_alloc(dvbdemux); in dmx_section_feed_allocate_filter()
876 mutex_unlock(&dvbdemux->mutex); in dmx_section_feed_allocate_filter()
880 spin_lock_irq(&dvbdemux->lock); in dmx_section_feed_allocate_filter()
889 spin_unlock_irq(&dvbdemux->lock); in dmx_section_feed_allocate_filter()
891 mutex_unlock(&dvbdemux->mutex); in dmx_section_feed_allocate_filter()
1131 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_open() local
1133 if (dvbdemux->users >= MAX_DVB_DEMUX_USERS) in dvbdmx_open()
1136 dvbdemux->users++; in dvbdmx_open()
1142 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_close() local
1144 if (dvbdemux->users == 0) in dvbdmx_close()
1147 dvbdemux->users--; in dvbdmx_close()
1154 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_write() local
1163 if (mutex_lock_interruptible(&dvbdemux->mutex)) { in dvbdmx_write()
1167 dvb_dmx_swfilter(dvbdemux, p, count); in dvbdmx_write()
1169 mutex_unlock(&dvbdemux->mutex); in dvbdmx_write()
1179 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_add_frontend() local
1180 struct list_head *head = &dvbdemux->frontend_list; in dvbdmx_add_frontend()
1190 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_remove_frontend() local
1191 struct list_head *pos, *n, *head = &dvbdemux->frontend_list; in dvbdmx_remove_frontend()
1205 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_get_frontends() local
1207 if (list_empty(&dvbdemux->frontend_list)) in dvbdmx_get_frontends()
1210 return &dvbdemux->frontend_list; in dvbdmx_get_frontends()
1216 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_connect_frontend() local
1221 mutex_lock(&dvbdemux->mutex); in dvbdmx_connect_frontend()
1224 mutex_unlock(&dvbdemux->mutex); in dvbdmx_connect_frontend()
1230 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_disconnect_frontend() local
1232 mutex_lock(&dvbdemux->mutex); in dvbdmx_disconnect_frontend()
1235 mutex_unlock(&dvbdemux->mutex); in dvbdmx_disconnect_frontend()
1241 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_get_pes_pids() local
1243 memcpy(pids, dvbdemux->pids, 5 * sizeof(u16)); in dvbdmx_get_pes_pids()
1247 int dvb_dmx_init(struct dvb_demux *dvbdemux) in dvb_dmx_init() argument
1250 struct dmx_demux *dmx = &dvbdemux->dmx; in dvb_dmx_init()
1252 dvbdemux->cnt_storage = NULL; in dvb_dmx_init()
1253 dvbdemux->users = 0; in dvb_dmx_init()
1254 dvbdemux->filter = vmalloc(dvbdemux->filternum * sizeof(struct dvb_demux_filter)); in dvb_dmx_init()
1256 if (!dvbdemux->filter) in dvb_dmx_init()
1259 dvbdemux->feed = vmalloc(dvbdemux->feednum * sizeof(struct dvb_demux_feed)); in dvb_dmx_init()
1260 if (!dvbdemux->feed) { in dvb_dmx_init()
1261 vfree(dvbdemux->filter); in dvb_dmx_init()
1262 dvbdemux->filter = NULL; in dvb_dmx_init()
1265 for (i = 0; i < dvbdemux->filternum; i++) { in dvb_dmx_init()
1266 dvbdemux->filter[i].state = DMX_STATE_FREE; in dvb_dmx_init()
1267 dvbdemux->filter[i].index = i; in dvb_dmx_init()
1269 for (i = 0; i < dvbdemux->feednum; i++) { in dvb_dmx_init()
1270 dvbdemux->feed[i].state = DMX_STATE_FREE; in dvb_dmx_init()
1271 dvbdemux->feed[i].index = i; in dvb_dmx_init()
1274 dvbdemux->cnt_storage = vmalloc(MAX_PID + 1); in dvb_dmx_init()
1275 if (!dvbdemux->cnt_storage) in dvb_dmx_init()
1278 INIT_LIST_HEAD(&dvbdemux->frontend_list); in dvb_dmx_init()
1281 dvbdemux->pesfilter[i] = NULL; in dvb_dmx_init()
1282 dvbdemux->pids[i] = 0xffff; in dvb_dmx_init()
1285 INIT_LIST_HEAD(&dvbdemux->feed_list); in dvb_dmx_init()
1287 dvbdemux->playing = 0; in dvb_dmx_init()
1288 dvbdemux->recording = 0; in dvb_dmx_init()
1289 dvbdemux->tsbufp = 0; in dvb_dmx_init()
1291 if (!dvbdemux->check_crc32) in dvb_dmx_init()
1292 dvbdemux->check_crc32 = dvb_dmx_crc32; in dvb_dmx_init()
1294 if (!dvbdemux->memcopy) in dvb_dmx_init()
1295 dvbdemux->memcopy = dvb_dmx_memcopy; in dvb_dmx_init()
1298 dmx->priv = dvbdemux; in dvb_dmx_init()
1314 mutex_init(&dvbdemux->mutex); in dvb_dmx_init()
1315 spin_lock_init(&dvbdemux->lock); in dvb_dmx_init()
1322 void dvb_dmx_release(struct dvb_demux *dvbdemux) in dvb_dmx_release() argument
1324 vfree(dvbdemux->cnt_storage); in dvb_dmx_release()
1325 vfree(dvbdemux->filter); in dvb_dmx_release()
1326 vfree(dvbdemux->feed); in dvb_dmx_release()