a36416d0a7
Eliminate the need for a separate pvr2_dvb_fh; since in the DVB context there can only ever be a single instance then there is no need for a separate instance to handle streaming state. This simplifies the module. Also move streaming start/stop out of the feed thread and into the driver's main context - which makes it possible for streaming start up failures to be detected by the DVB core. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
45 lines
961 B
C
45 lines
961 B
C
#ifndef __PVRUSB2_DVB_H__
|
|
#define __PVRUSB2_DVB_H__
|
|
|
|
#include "dvb_frontend.h"
|
|
#include "dvb_demux.h"
|
|
#include "dvb_net.h"
|
|
#include "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;
|
|
|
|
int feedcount;
|
|
int max_feed_count;
|
|
|
|
struct task_struct *thread;
|
|
struct mutex lock;
|
|
|
|
unsigned int digital_up:1;
|
|
unsigned int stream_run:1;
|
|
unsigned int init: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 *);
|
|
};
|
|
|
|
int pvr2_dvb_init(struct pvr2_context *pvr);
|
|
int pvr2_dvb_exit(struct pvr2_context *pvr);
|
|
|
|
#endif /* __PVRUSB2_DVB_H__ */
|