]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/media/soc_camera.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[linux-2.6-omap-h63xx.git] / include / media / soc_camera.h
index 80e1193c07d5fea9c936ac92ff90935526c406a3..d548de326722a657ae8a257fe35e214f6585f432 100644 (file)
@@ -13,7 +13,8 @@
 #define SOC_CAMERA_H
 
 #include <linux/videodev2.h>
-#include <media/videobuf-dma-sg.h>
+#include <media/videobuf-core.h>
+#include <linux/pm.h>
 
 struct soc_camera_device {
        struct list_head list;
@@ -54,8 +55,6 @@ struct soc_camera_host {
        struct list_head list;
        struct device dev;
        unsigned char nr;                               /* Host number */
-       size_t msize;
-       struct videobuf_queue_ops *vbq_ops;
        void *priv;
        char *drv_name;
        struct soc_camera_host_ops *ops;
@@ -65,9 +64,13 @@ struct soc_camera_host_ops {
        struct module *owner;
        int (*add)(struct soc_camera_device *);
        void (*remove)(struct soc_camera_device *);
+       int (*suspend)(struct soc_camera_device *, pm_message_t state);
+       int (*resume)(struct soc_camera_device *);
        int (*set_fmt_cap)(struct soc_camera_device *, __u32,
                           struct v4l2_rect *);
        int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *);
+       void (*init_videobuf)(struct videobuf_queue *,
+                             struct soc_camera_device *);
        int (*reqbufs)(struct soc_camera_file *, struct v4l2_requestbuffers *);
        int (*querycap)(struct soc_camera_host *, struct v4l2_capability *);
        int (*try_bus_param)(struct soc_camera_device *, __u32);
@@ -111,6 +114,8 @@ struct soc_camera_ops {
        struct module *owner;
        int (*probe)(struct soc_camera_device *);
        void (*remove)(struct soc_camera_device *);
+       int (*suspend)(struct soc_camera_device *, pm_message_t state);
+       int (*resume)(struct soc_camera_device *);
        int (*init)(struct soc_camera_device *);
        int (*release)(struct soc_camera_device *);
        int (*start_capture)(struct soc_camera_device *);
@@ -153,11 +158,12 @@ static inline struct v4l2_queryctrl const *soc_camera_find_qctrl(
 #define SOCAM_DATAWIDTH_8              (1 << 6)
 #define SOCAM_DATAWIDTH_9              (1 << 7)
 #define SOCAM_DATAWIDTH_10             (1 << 8)
-#define SOCAM_PCLK_SAMPLE_RISING       (1 << 9)
-#define SOCAM_PCLK_SAMPLE_FALLING      (1 << 10)
+#define SOCAM_DATAWIDTH_16             (1 << 9)
+#define SOCAM_PCLK_SAMPLE_RISING       (1 << 10)
+#define SOCAM_PCLK_SAMPLE_FALLING      (1 << 11)
 
 #define SOCAM_DATAWIDTH_MASK (SOCAM_DATAWIDTH_8 | SOCAM_DATAWIDTH_9 | \
-                             SOCAM_DATAWIDTH_10)
+                             SOCAM_DATAWIDTH_10 | SOCAM_DATAWIDTH_16)
 
 static inline unsigned long soc_camera_bus_param_compatible(
                        unsigned long camera_flags, unsigned long bus_flags)