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[2]; 22 23 struct i2c_client *i2c_client_demod[2]; 24 struct i2c_client *i2c_client_tuner; 25 26 int feedcount; 27 int max_feed_count; 28 29 struct task_struct *thread; 30 struct mutex lock; 31 32 unsigned int stream_run:1; 33 34 wait_queue_head_t buffer_wait_data; 35 char *buffer_storage[PVR2_DVB_BUFFER_COUNT]; 36 }; 37 38 struct pvr2_dvb_props { 39 int (*frontend_attach) (struct pvr2_dvb_adapter *); 40 int (*tuner_attach) (struct pvr2_dvb_adapter *); 41 }; 42 43 struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr); 44 45 #endif /* __PVRUSB2_DVB_H__ */ 46