Lines Matching refs:dvbdemux

880 	struct dvb_demux *dvbdemux = dvbdmxfeed->demux;  in dmx_section_feed_allocate_filter()  local
883 if (mutex_lock_interruptible(&dvbdemux->mutex)) in dmx_section_feed_allocate_filter()
886 dvbdmxfilter = dvb_dmx_filter_alloc(dvbdemux); in dmx_section_feed_allocate_filter()
888 mutex_unlock(&dvbdemux->mutex); in dmx_section_feed_allocate_filter()
892 spin_lock_irq(&dvbdemux->lock); in dmx_section_feed_allocate_filter()
901 spin_unlock_irq(&dvbdemux->lock); in dmx_section_feed_allocate_filter()
903 mutex_unlock(&dvbdemux->mutex); in dmx_section_feed_allocate_filter()
1128 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_open() local
1130 if (dvbdemux->users >= MAX_DVB_DEMUX_USERS) in dvbdmx_open()
1133 dvbdemux->users++; in dvbdmx_open()
1139 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_close() local
1141 if (dvbdemux->users == 0) in dvbdmx_close()
1144 dvbdemux->users--; in dvbdmx_close()
1151 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_write() local
1160 if (mutex_lock_interruptible(&dvbdemux->mutex)) { in dvbdmx_write()
1164 dvb_dmx_swfilter(dvbdemux, p, count); in dvbdmx_write()
1166 mutex_unlock(&dvbdemux->mutex); in dvbdmx_write()
1176 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_add_frontend() local
1177 struct list_head *head = &dvbdemux->frontend_list; in dvbdmx_add_frontend()
1187 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_remove_frontend() local
1188 struct list_head *pos, *n, *head = &dvbdemux->frontend_list; in dvbdmx_remove_frontend()
1202 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_get_frontends() local
1204 if (list_empty(&dvbdemux->frontend_list)) in dvbdmx_get_frontends()
1207 return &dvbdemux->frontend_list; in dvbdmx_get_frontends()
1213 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_connect_frontend() local
1218 mutex_lock(&dvbdemux->mutex); in dvbdmx_connect_frontend()
1221 mutex_unlock(&dvbdemux->mutex); in dvbdmx_connect_frontend()
1227 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_disconnect_frontend() local
1229 mutex_lock(&dvbdemux->mutex); in dvbdmx_disconnect_frontend()
1232 mutex_unlock(&dvbdemux->mutex); in dvbdmx_disconnect_frontend()
1238 struct dvb_demux *dvbdemux = (struct dvb_demux *)demux; in dvbdmx_get_pes_pids() local
1240 memcpy(pids, dvbdemux->pids, 5 * sizeof(u16)); in dvbdmx_get_pes_pids()
1244 int dvb_dmx_init(struct dvb_demux *dvbdemux) in dvb_dmx_init() argument
1247 struct dmx_demux *dmx = &dvbdemux->dmx; in dvb_dmx_init()
1249 dvbdemux->cnt_storage = NULL; in dvb_dmx_init()
1250 dvbdemux->users = 0; in dvb_dmx_init()
1251 dvbdemux->filter = vmalloc(array_size(sizeof(struct dvb_demux_filter), in dvb_dmx_init()
1252 dvbdemux->filternum)); in dvb_dmx_init()
1254 if (!dvbdemux->filter) in dvb_dmx_init()
1257 dvbdemux->feed = vmalloc(array_size(sizeof(struct dvb_demux_feed), in dvb_dmx_init()
1258 dvbdemux->feednum)); in dvb_dmx_init()
1259 if (!dvbdemux->feed) { in dvb_dmx_init()
1260 vfree(dvbdemux->filter); in dvb_dmx_init()
1261 dvbdemux->filter = NULL; in dvb_dmx_init()
1264 for (i = 0; i < dvbdemux->filternum; i++) { in dvb_dmx_init()
1265 dvbdemux->filter[i].state = DMX_STATE_FREE; in dvb_dmx_init()
1266 dvbdemux->filter[i].index = i; in dvb_dmx_init()
1268 for (i = 0; i < dvbdemux->feednum; i++) { in dvb_dmx_init()
1269 dvbdemux->feed[i].state = DMX_STATE_FREE; in dvb_dmx_init()
1270 dvbdemux->feed[i].index = i; in dvb_dmx_init()
1273 dvbdemux->cnt_storage = vmalloc(MAX_PID + 1); in dvb_dmx_init()
1274 if (!dvbdemux->cnt_storage) in dvb_dmx_init()
1277 INIT_LIST_HEAD(&dvbdemux->frontend_list); in dvb_dmx_init()
1280 dvbdemux->pesfilter[i] = NULL; in dvb_dmx_init()
1281 dvbdemux->pids[i] = 0xffff; in dvb_dmx_init()
1284 INIT_LIST_HEAD(&dvbdemux->feed_list); in dvb_dmx_init()
1286 dvbdemux->playing = 0; in dvb_dmx_init()
1287 dvbdemux->recording = 0; in dvb_dmx_init()
1288 dvbdemux->tsbufp = 0; in dvb_dmx_init()
1290 if (!dvbdemux->check_crc32) in dvb_dmx_init()
1291 dvbdemux->check_crc32 = dvb_dmx_crc32; in dvb_dmx_init()
1293 if (!dvbdemux->memcopy) in dvb_dmx_init()
1294 dvbdemux->memcopy = dvb_dmx_memcopy; in dvb_dmx_init()
1297 dmx->priv = dvbdemux; in dvb_dmx_init()
1313 mutex_init(&dvbdemux->mutex); in dvb_dmx_init()
1314 spin_lock_init(&dvbdemux->lock); in dvb_dmx_init()
1321 void dvb_dmx_release(struct dvb_demux *dvbdemux) in dvb_dmx_release() argument
1323 vfree(dvbdemux->cnt_storage); in dvb_dmx_release()
1324 vfree(dvbdemux->filter); in dvb_dmx_release()
1325 vfree(dvbdemux->feed); in dvb_dmx_release()