camera: ov5640 v0.1.3, rk_cam_io:v0.1.1
authorddl <ddl@rock-chips.com>
Wed, 3 Jul 2013 03:00:40 +0000 (11:00 +0800)
committerddl <ddl@rock-chips.com>
Wed, 3 Jul 2013 03:00:40 +0000 (11:00 +0800)
arch/arm/plat-rk/rk_camera.c
drivers/media/video/ov5640.c

index bb024f67f90c10bc2470257f50295fa9b8587e9c..4b8bfc3f8bdc6e34048838a57e8668b83c504d8a 100755 (executable)
 /*\r
 *      Driver Version Note\r
 *v0.0.1: this driver is compatible with generic_sensor\r
+*v0.1.1:\r
+*        Cam_Power return success in rk_sensor_ioctrl when power io havn't config;\r
 */\r
-static int camio_version = KERNEL_VERSION(0,1,0);\r
+static int camio_version = KERNEL_VERSION(0,1,1);\r
 module_param(camio_version, int, S_IRUGO);\r
 \r
 \r
@@ -1387,7 +1389,8 @@ static int rk_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd, i
                case Cam_Power:\r
                {\r
                        if (sensor_ioctl_cb.sensor_power_cb) {\r
-                ret = sensor_ioctl_cb.sensor_power_cb(res, on);                \r
+                ret = sensor_ioctl_cb.sensor_power_cb(res, on);   \r
+                ret = (ret != RK29_CAM_EIO_INVALID)?ret:0;     /* ddl@rock-chips.com: v0.1.1 */ \r
                        } else {\r
                 eprintk("sensor_ioctl_cb.sensor_power_cb is NULL");\r
                 WARN_ON(1);\r
index 0310235fc00e71fa4f776f3d59d3e50f344b23fb..2b684280c3029379f777a91832fd854f9ad40d98 100755 (executable)
@@ -5,8 +5,10 @@
 *v0.0.1: this driver is compatible with generic_sensor\r
 *v0.1.1:\r
 *        add sensor_focus_af_const_pause_usr_cb;\r
+*v0.1.3:\r
+*        config sensor io H-Z in sensor_deactive_cb;\r
 */\r
-static int version = KERNEL_VERSION(0,1,1);\r
+static int version = KERNEL_VERSION(0,1,3);\r
 module_param(version, int, S_IRUGO);\r
 \r
 \r
@@ -1087,10 +1089,15 @@ static int sensor_activate_cb(struct i2c_client *client)
 */\r
 static int sensor_deactivate_cb(struct i2c_client *client)\r
 {\r
-\r
+    struct generic_sensor *sensor = to_generic_sensor(client);\r
+    \r
        SENSOR_DG("%s",__FUNCTION__);\r
-       \r
-       \r
+       if (sensor->info_priv.funmodule_state & SENSOR_INIT_IS_OK) {\r
+           sensor_write(client, 0x3017, 0x00);  // FREX,VSYNC,HREF,PCLK,D9-D6\r
+        sensor_write(client, 0x3018, 0x03);  // D5-D0\r
+        sensor_write(client,0x3019,0x00);    // STROBE,SDA\r
+    }\r
+    \r
        return 0;\r
 }\r
 /*\r