From 2fd8a03bf798271e65896327db48e1721e8652b4 Mon Sep 17 00:00:00 2001 From: ddl Date: Wed, 3 Jul 2013 11:00:40 +0800 Subject: [PATCH] camera: ov5640 v0.1.3, rk_cam_io:v0.1.1 --- arch/arm/plat-rk/rk_camera.c | 7 +++++-- drivers/media/video/ov5640.c | 15 +++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/arch/arm/plat-rk/rk_camera.c b/arch/arm/plat-rk/rk_camera.c index bb024f67f90c..4b8bfc3f8bdc 100755 --- a/arch/arm/plat-rk/rk_camera.c +++ b/arch/arm/plat-rk/rk_camera.c @@ -264,8 +264,10 @@ /* * Driver Version Note *v0.0.1: this driver is compatible with generic_sensor +*v0.1.1: +* Cam_Power return success in rk_sensor_ioctrl when power io havn't config; */ -static int camio_version = KERNEL_VERSION(0,1,0); +static int camio_version = KERNEL_VERSION(0,1,1); module_param(camio_version, int, S_IRUGO); @@ -1387,7 +1389,8 @@ static int rk_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd, i case Cam_Power: { if (sensor_ioctl_cb.sensor_power_cb) { - ret = sensor_ioctl_cb.sensor_power_cb(res, on); + ret = sensor_ioctl_cb.sensor_power_cb(res, on); + ret = (ret != RK29_CAM_EIO_INVALID)?ret:0; /* ddl@rock-chips.com: v0.1.1 */ } else { eprintk("sensor_ioctl_cb.sensor_power_cb is NULL"); WARN_ON(1); diff --git a/drivers/media/video/ov5640.c b/drivers/media/video/ov5640.c index 0310235fc00e..2b684280c302 100755 --- a/drivers/media/video/ov5640.c +++ b/drivers/media/video/ov5640.c @@ -5,8 +5,10 @@ *v0.0.1: this driver is compatible with generic_sensor *v0.1.1: * add sensor_focus_af_const_pause_usr_cb; +*v0.1.3: +* config sensor io H-Z in sensor_deactive_cb; */ -static int version = KERNEL_VERSION(0,1,1); +static int version = KERNEL_VERSION(0,1,3); module_param(version, int, S_IRUGO); @@ -1087,10 +1089,15 @@ static int sensor_activate_cb(struct i2c_client *client) */ static int sensor_deactivate_cb(struct i2c_client *client) { - + struct generic_sensor *sensor = to_generic_sensor(client); + SENSOR_DG("%s",__FUNCTION__); - - + if (sensor->info_priv.funmodule_state & SENSOR_INIT_IS_OK) { + sensor_write(client, 0x3017, 0x00); // FREX,VSYNC,HREF,PCLK,D9-D6 + sensor_write(client, 0x3018, 0x03); // D5-D0 + sensor_write(client,0x3019,0x00); // STROBE,SDA + } + return 0; } /* -- 2.34.1