1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __PVRUSB2_DVB_H__
3 #define __PVRUSB2_DVB_H__
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"
11 #define PVR2_DVB_BUFFER_COUNT 32
12 #define PVR2_DVB_BUFFER_SIZE PAGE_ALIGN(0x4000)
14 struct pvr2_dvb_adapter
{
15 struct pvr2_channel channel
;
17 struct dvb_adapter dvb_adap
;
19 struct dvb_demux demux
;
20 struct dvb_net dvb_net
;
21 struct dvb_frontend
*fe
[2];
23 struct i2c_client
*i2c_client_demod
[2];
24 struct i2c_client
*i2c_client_tuner
;
29 struct task_struct
*thread
;
32 unsigned int stream_run
:1;
34 wait_queue_head_t buffer_wait_data
;
35 char *buffer_storage
[PVR2_DVB_BUFFER_COUNT
];
38 struct pvr2_dvb_props
{
39 int (*frontend_attach
) (struct pvr2_dvb_adapter
*);
40 int (*tuner_attach
) (struct pvr2_dvb_adapter
*);
43 struct pvr2_dvb_adapter
*pvr2_dvb_create(struct pvr2_context
*pvr
);
45 #endif /* __PVRUSB2_DVB_H__ */