summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/go7007/go7007-priv.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/media/go7007/go7007-priv.h')
-rw-r--r--drivers/staging/media/go7007/go7007-priv.h27
1 files changed, 8 insertions, 19 deletions
diff --git a/drivers/staging/media/go7007/go7007-priv.h b/drivers/staging/media/go7007/go7007-priv.h
index 2c0afb167815..30148eba44b4 100644
--- a/drivers/staging/media/go7007/go7007-priv.h
+++ b/drivers/staging/media/go7007/go7007-priv.h
@@ -24,6 +24,7 @@
#include <media/v4l2-device.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-fh.h>
+#include <media/videobuf2-core.h>
struct go7007;
@@ -125,20 +126,10 @@ struct go7007_hpi_ops {
#define GO7007_BUF_SIZE (GO7007_BUF_PAGES << PAGE_SHIFT)
struct go7007_buffer {
- struct go7007 *go; /* Reverse reference for VMA ops */
- int index; /* Reverse reference for DQBUF */
- enum { BUF_STATE_IDLE, BUF_STATE_QUEUED, BUF_STATE_DONE } state;
- u32 seq;
- struct timeval timestamp;
- struct list_head stream;
- struct page *pages[GO7007_BUF_PAGES + 1]; /* extra for straddling */
- unsigned long user_addr;
- unsigned int page_count;
- unsigned int offset;
- unsigned int bytesused;
+ struct vb2_buffer vb;
+ struct list_head list;
unsigned int frame_offset;
u32 modet_active;
- int mapped;
};
#define GO7007_RATIO_1_1 0
@@ -178,8 +169,7 @@ struct go7007 {
enum { STATUS_INIT, STATUS_ONLINE, STATUS_SHUTDOWN } status;
spinlock_t spinlock;
struct mutex hw_lock;
- int streaming;
- int in_use;
+ struct mutex serialize_lock;
int audio_enabled;
struct v4l2_subdev *sd_video;
struct v4l2_subdev *sd_audio;
@@ -226,17 +216,16 @@ struct go7007 {
unsigned char active_map[216];
/* Video streaming */
- struct go7007_buffer *active_buf;
+ struct mutex queue_lock;
+ struct vb2_queue vidq;
enum go7007_parser_state state;
int parse_length;
u16 modet_word;
int seen_frame;
u32 next_seq;
- struct list_head stream;
+ struct list_head vidq_active;
wait_queue_head_t frame_waitq;
- int buf_count;
- struct go7007_buffer *bufs;
- struct v4l2_fh *bufs_owner;
+ struct go7007_buffer *active_buf;
/* Audio streaming */
void (*audio_deliver)(struct go7007 *go, u8 *buf, int length);