kernel-fxtec-pro1x/drivers/media/video/pvrusb2/pvrusb2-dvb.h
Mike Isely 07b80264c3 V4L/DVB (7708): pvrusb2-dvb: Fix stuck thread on streaming abort
If the device fails to stream, the feed thread will block forever
waiting for buffers.  But while in this state it was not looking for
an exit condition from the driver DVB interface.  This caused the
thread to jam.  Implement a new stop flag (which will be set
appropriately) to tell the thread to stop.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:09:48 -03:00

42 lines
912 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 stream_run:1;
wait_queue_head_t buffer_wait_data;
int feed_thread_stop;
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__ */