1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __PVRUSB2_DVB_H__ 3 #define __PVRUSB2_DVB_H__ 4 5 #include <media/dvb_frontend.h> 6 #include <media/dvb_demux.h> 7 #include <media/dvb_net.h> 8 #include <media/dmxdev.h> 9 #include "pvrusb2-context.h" 10 11 #define PVR2_DVB_BUFFER_COUNT 32 12 #define PVR2_DVB_BUFFER_SIZE PAGE_ALIGN(0x4000) 13 14 struct pvr2_dvb_adapter { 15 struct pvr2_channel channel; 16 17 struct dvb_adapter dvb_adap; 18 struct dmxdev dmxdev; 19 struct dvb_demux demux; 20 struct dvb_net dvb_net; 21 struct dvb_frontend *fe; 22 23 int feedcount; 24 int max_feed_count; 25 26 struct task_struct *thread; 27 struct mutex lock; 28 29 unsigned int stream_run:1; 30 31 wait_queue_head_t buffer_wait_data; 32 char *buffer_storage[PVR2_DVB_BUFFER_COUNT]; 33 }; 34 35 struct pvr2_dvb_props { 36 int (*frontend_attach) (struct pvr2_dvb_adapter *); 37 int (*tuner_attach) (struct pvr2_dvb_adapter *); 38 }; 39 40 struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr); 41 42 #endif /* __PVRUSB2_DVB_H__ */ 43