]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/media/v4l2-dev.h
[MTD] [OneNAND] unlikely(x) || unlikely(y) => unlikely(x || y)
[linux-2.6-omap-h63xx.git] / include / media / v4l2-dev.h
index fb96472a1bd38423c4a3ac0790fb14b78064a28e..f2114459995d94826b9530e3a4f9c6feea1e5b00 100644 (file)
@@ -23,8 +23,6 @@
 #include <linux/videodev2.h>
 #endif
 
-#include <linux/fs.h>
-
 #define VIDEO_MAJOR    81
 /* Minor device allocation */
 #define MINOR_VFL_TYPE_GRABBER_MIN   0
@@ -46,6 +44,8 @@ extern unsigned int v4l2_video_std_fps(struct v4l2_standard *vs);
 extern char *v4l2_norm_to_name(v4l2_std_id id);
 extern int v4l2_video_std_construct(struct v4l2_standard *vs,
                                    int id, char *name);
+/* Prints the ioctl in a human-readable format */
+extern void v4l_printk_ioctl(unsigned int cmd);
 
 /* prority handling */
 struct v4l2_prio_state {
@@ -88,12 +88,14 @@ struct video_device
        /* device ops */
        const struct file_operations *fops;
 
+       /* sysfs */
+       struct device class_dev;        /* v4l device */
+       struct device *dev;             /* device parent */
+
        /* device info */
-       struct device *dev;
        char name[32];
        int type;       /* v4l1 */
        int type2;      /* v4l2 */
-       int hardware;
        int minor;
 
        int debug;      /* Activates debug level*/
@@ -127,6 +129,8 @@ struct video_device
                                            struct v4l2_fmtdesc *f);
        int (*vidioc_enum_fmt_video_output)(struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
+       int (*vidioc_enum_fmt_output_overlay) (struct file *file, void *fh,
+                                           struct v4l2_fmtdesc *f);
        int (*vidioc_enum_fmt_vbi_output)  (struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
        int (*vidioc_enum_fmt_type_private)(struct file *file, void *fh,
@@ -145,6 +149,8 @@ struct video_device
                                        struct v4l2_format *f);
        int (*vidioc_g_fmt_video_output)(struct file *file, void *fh,
                                        struct v4l2_format *f);
+       int (*vidioc_g_fmt_output_overlay) (struct file *file, void *fh,
+                                       struct v4l2_format *f);
        int (*vidioc_g_fmt_type_private)(struct file *file, void *fh,
                                        struct v4l2_format *f);
 
@@ -162,6 +168,8 @@ struct video_device
                                        struct v4l2_format *f);
        int (*vidioc_s_fmt_video_output)(struct file *file, void *fh,
                                        struct v4l2_format *f);
+       int (*vidioc_s_fmt_output_overlay) (struct file *file, void *fh,
+                                       struct v4l2_format *f);
        int (*vidioc_s_fmt_type_private)(struct file *file, void *fh,
                                        struct v4l2_format *f);
 
@@ -178,6 +186,8 @@ struct video_device
                                          struct v4l2_format *f);
        int (*vidioc_try_fmt_video_output)(struct file *file, void *fh,
                                          struct v4l2_format *f);
+       int (*vidioc_try_fmt_output_overlay)(struct file *file, void *fh,
+                                         struct v4l2_format *f);
        int (*vidioc_try_fmt_type_private)(struct file *file, void *fh,
                                          struct v4l2_format *f);
 
@@ -263,14 +273,16 @@ struct video_device
        int (*vidioc_s_crop)           (struct file *file, void *fh,
                                        struct v4l2_crop *a);
        /* Compression ioctls */
-       int (*vidioc_g_mpegcomp)       (struct file *file, void *fh,
-                                       struct v4l2_mpeg_compression *a);
-       int (*vidioc_s_mpegcomp)       (struct file *file, void *fh,
-                                       struct v4l2_mpeg_compression *a);
        int (*vidioc_g_jpegcomp)       (struct file *file, void *fh,
                                        struct v4l2_jpegcompression *a);
        int (*vidioc_s_jpegcomp)       (struct file *file, void *fh,
                                        struct v4l2_jpegcompression *a);
+       int (*vidioc_g_enc_index)      (struct file *file, void *fh,
+                                       struct v4l2_enc_idx *a);
+       int (*vidioc_encoder_cmd)      (struct file *file, void *fh,
+                                       struct v4l2_encoder_cmd *a);
+       int (*vidioc_try_encoder_cmd)  (struct file *file, void *fh,
+                                       struct v4l2_encoder_cmd *a);
 
        /* Stream type-dependent parameter ioctls */
        int (*vidioc_g_parm)           (struct file *file, void *fh,
@@ -296,6 +308,17 @@ struct video_device
        int (*vidioc_log_status)       (struct file *file, void *fh);
 
 
+       /* Debugging ioctls */
+#ifdef CONFIG_VIDEO_ADV_DEBUG
+       int (*vidioc_g_register)       (struct file *file, void *fh,
+                                       struct v4l2_register *reg);
+       int (*vidioc_s_register)       (struct file *file, void *fh,
+                                       struct v4l2_register *reg);
+#endif
+       int (*vidioc_g_chip_ident)     (struct file *file, void *fh,
+                                       struct v4l2_chip_ident *chip);
+
+
 #ifdef OBSOLETE_OWNER /* to be removed soon */
 /* obsolete -- fops->owner is used instead */
 struct module *owner;
@@ -309,9 +332,11 @@ void *priv;
        /* for videodev.c intenal usage -- please don't touch */
        int users;                     /* video_exclusive_{open|close} ... */
        struct mutex lock;             /* ... helper function uses these   */
-       struct class_device class_dev; /* sysfs */
 };
 
+/* Class-dev to video-device */
+#define to_video_device(cd) container_of(cd, struct video_device, class_dev)
+
 /* Version 2 functions */
 extern int video_register_device(struct video_device *vfd, int type, int nr);
 void video_unregister_device(struct video_device *);
@@ -329,25 +354,23 @@ extern int video_usercopy(struct inode *inode, struct file *file,
                          int (*func)(struct inode *inode, struct file *file,
                                      unsigned int cmd, void *arg));
 
-
 #ifdef CONFIG_VIDEO_V4L1_COMPAT
 #include <linux/mm.h>
 
-#define to_video_device(cd) container_of(cd, struct video_device, class_dev)
 static inline int __must_check
 video_device_create_file(struct video_device *vfd,
-                        struct class_device_attribute *attr)
+                        struct device_attribute *attr)
 {
-       int ret = class_device_create_file(&vfd->class_dev, attr);
+       int ret = device_create_file(&vfd->class_dev, attr);
        if (ret < 0)
                printk(KERN_WARNING "%s error: %d\n", __FUNCTION__, ret);
        return ret;
 }
 static inline void
 video_device_remove_file(struct video_device *vfd,
-                        struct class_device_attribute *attr)
+                        struct device_attribute *attr)
 {
-       class_device_remove_file(&vfd->class_dev, attr);
+       device_remove_file(&vfd->class_dev, attr);
 }
 
 #endif /* CONFIG_VIDEO_V4L1_COMPAT */