camera: ov5642 capture focus is error in const focus
authorddl <ddl@rockchip.com>
Wed, 4 May 2011 07:25:26 +0000 (15:25 +0800)
committerddl <ddl@rockchip.com>
Wed, 4 May 2011 07:25:26 +0000 (15:25 +0800)
drivers/media/video/ov5642.c

index 7217f4c4c526bae48088ec502092e73bc442aa13..2691c3e6e5f668294faafbc974da9a8b7c60a3a8 100755 (executable)
@@ -4390,11 +4390,6 @@ static int sensor_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
     {
                if (sensor_fmt_capturechk(sd,f) == true) {                                      /* ddl@rock-chips.com : Capture */
                        sensor_parameter_record(client);
-               #if CONFIG_SENSOR_Focus
-                       sensor_af_idlechk(client);
-                       if (sensor->info_priv.auto_focus == SENSOR_AF_MODE_CONTINUOUS)
-                               sensor_af_cmdset(client, PauseFocus_Cmd, NULL);
-               #endif
         #if CONFIG_SENSOR_Flash
             if ((sensor->info_priv.flash == 1) || (sensor->info_priv.flash == 2)) {
                 sensor_ioctrl(icd, Sensor_Flash, Flash_On);
@@ -4442,6 +4437,12 @@ static int sensor_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
                                qctrl = soc_camera_find_qctrl(&sensor_ops, V4L2_CID_DO_WHITE_BALANCE);
                                sensor_set_whiteBalance(icd, qctrl,sensor->info_priv.whiteBalance);
                        }
+                       #if CONFIG_SENSOR_Focus
+                       sensor_af_zoneupdate(client);
+                       if (sensor->info_priv.auto_focus == SENSOR_AF_MODE_CONTINUOUS) {
+                                       sensor_af_const(client);
+                       }
+                   #endif
                        sensor->info_priv.snap2preview = true;
                } else if (sensor_fmt_videochk(sd,f) == true) {                 /* ddl@rock-chips.com : Video */
                        qctrl = soc_camera_find_qctrl(&sensor_ops, V4L2_CID_EFFECT);