Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
[cascardo/linux.git] / include / media / saa7146_vv.h
index 4aeff96..944ecdf 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
+#include <media/v4l2-fh.h>
 #include <media/saa7146.h>
 #include <media/videobuf-dma-sg.h>
 
@@ -84,21 +85,15 @@ struct saa7146_overlay {
 
 /* per open data */
 struct saa7146_fh {
+       /* Must be the first field! */
+       struct v4l2_fh          fh;
        struct saa7146_dev      *dev;
-       /* if this is a vbi or capture open */
-       enum v4l2_buf_type      type;
-
-       /* video overlay */
-       struct saa7146_overlay  ov;
 
        /* video capture */
        struct videobuf_queue   video_q;
-       struct v4l2_pix_format  video_fmt;
 
        /* vbi capture */
        struct videobuf_queue   vbi_q;
-       struct v4l2_vbi_format  vbi_fmt;
-       struct timer_list       vbi_read_timeout;
 
        unsigned int resources; /* resource management for device open */
 };
@@ -109,7 +104,9 @@ struct saa7146_fh {
 struct saa7146_vv
 {
        /* vbi capture */
-       struct saa7146_dmaqueue         vbi_q;
+       struct saa7146_dmaqueue         vbi_dmaq;
+       struct v4l2_vbi_format          vbi_fmt;
+       struct timer_list               vbi_read_timeout;
        /* vbi workaround interrupt queue */
        wait_queue_head_t               vbi_wq;
        int                             vbi_fieldcount;
@@ -119,13 +116,14 @@ struct saa7146_vv
        struct saa7146_fh               *video_fh;
 
        /* video overlay */
+       struct saa7146_overlay          ov;
        struct v4l2_framebuffer         ov_fb;
        struct saa7146_format           *ov_fmt;
-       struct saa7146_overlay          *ov_data;
        struct saa7146_fh               *ov_suspend;
 
        /* video capture */
-       struct saa7146_dmaqueue         video_q;
+       struct saa7146_dmaqueue         video_dmaq;
+       struct v4l2_pix_format          video_fmt;
        enum v4l2_field                 last_field;
 
        /* common: fixme? shouldn't this be in saa7146_fh?
@@ -163,7 +161,8 @@ struct saa7146_ext_vv
        int (*std_callback)(struct saa7146_dev*, struct saa7146_standard *);
 
        /* the extension can override this */
-       struct v4l2_ioctl_ops ops;
+       struct v4l2_ioctl_ops vid_ops;
+       struct v4l2_ioctl_ops vbi_ops;
        /* pointer to the saa7146 core ops */
        const struct v4l2_ioctl_ops *core_ops;
 
@@ -202,10 +201,12 @@ void saa7146_set_gpio(struct saa7146_dev *saa, u8 pin, u8 data);
 
 /* from saa7146_video.c */
 extern const struct v4l2_ioctl_ops saa7146_video_ioctl_ops;
+extern const struct v4l2_ioctl_ops saa7146_vbi_ioctl_ops;
 extern struct saa7146_use_ops saa7146_video_uops;
 int saa7146_start_preview(struct saa7146_fh *fh);
 int saa7146_stop_preview(struct saa7146_fh *fh);
 long saa7146_video_do_ioctl(struct file *file, unsigned int cmd, void *arg);
+int saa7146_s_ctrl(struct v4l2_ctrl *ctrl);
 
 /* from saa7146_vbi.c */
 extern struct saa7146_use_ops saa7146_vbi_uops;