]> Pileus Git - ~andy/linux/commitdiff
V4L/DVB (9241): soc-camera: move sensor power management to soc_camera_platform.c
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Thu, 16 Oct 2008 22:49:27 +0000 (19:49 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 17 Oct 2008 20:25:29 +0000 (17:25 -0300)
Switching sensors on and off is now done by sensor drivers themselves,
typically using platform-provided hooks. Update soc_camera_platform.c to
do the same. Also remove a refundant struct soc_camera_platform_info
definition from soc_camera_platform.c.

Tested-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/soc_camera_platform.c
include/media/soc_camera_platform.h

index 1adc257ebdb97f00140d162dbdc51aacea04f7df..bb7a9d480e8f3ff94058f7521da413463da661d9 100644 (file)
 #include <linux/videodev2.h>
 #include <media/v4l2-common.h>
 #include <media/soc_camera.h>
-
-struct soc_camera_platform_info {
-       int iface;
-       char *format_name;
-       unsigned long format_depth;
-       struct v4l2_pix_format format;
-       unsigned long bus_param;
-       int (*set_capture)(struct soc_camera_platform_info *info, int enable);
-};
+#include <media/soc_camera_platform.h>
 
 struct soc_camera_platform_priv {
        struct soc_camera_platform_info *info;
@@ -44,11 +36,21 @@ soc_camera_platform_get_info(struct soc_camera_device *icd)
 
 static int soc_camera_platform_init(struct soc_camera_device *icd)
 {
+       struct soc_camera_platform_info *p = soc_camera_platform_get_info(icd);
+
+       if (p->power)
+               p->power(1);
+
        return 0;
 }
 
 static int soc_camera_platform_release(struct soc_camera_device *icd)
 {
+       struct soc_camera_platform_info *p = soc_camera_platform_get_info(icd);
+
+       if (p->power)
+               p->power(0);
+
        return 0;
 }
 
index 851f1822098438ac1f55bcc21fd6a2eb7439a743..7c81ad32b1e5ae90b91a758216f91ec7f67ef3c0 100644 (file)
@@ -9,6 +9,7 @@ struct soc_camera_platform_info {
        unsigned long format_depth;
        struct v4l2_pix_format format;
        unsigned long bus_param;
+       void (*power)(int);
        int (*set_capture)(struct soc_camera_platform_info *info, int enable);
 };