/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PVRUSB2_DVB_H__
#define __PVRUSB2_DVB_H__
#include <media/dvb_frontend.h>
#include <media/dvb_demux.h>
#include <media/dvb_net.h>
#include <media/dmxdev.h>
#include "pvrusb2-context.h"
#define PVR2_DVB_BUFFER_COUNT 32
#define PVR2_DVB_BUFFER_SIZE PAGE_ALIGN(0x4000)
struct pvr2_dvb_adapter {
struct pvr2_channel channel;
struct dvb_adapter dvb_adap;
struct dmxdev dmxdev;
struct dvb_demux demux;
struct dvb_net dvb_net;
struct dvb_frontend *fe[2];
struct i2c_client *i2c_client_demod[2];
struct i2c_client *i2c_client_tuner;
int feedcount;
int max_feed_count;
struct task_struct *thread;
struct mutex lock;
unsigned int stream_run:1;
wait_queue_head_t buffer_wait_data;
char *buffer_storage[PVR2_DVB_BUFFER_COUNT];
};
struct pvr2_dvb_props {
int (*frontend_attach) (struct pvr2_dvb_adapter *);
int (*tuner_attach) (struct pvr2_dvb_adapter *);
};
struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr);
#endif /* __PVRUSB2_DVB_H__ */