diff --git a/camera/QCameraHWI.cpp b/camera/QCameraHWI.cpp
index cd14417..a957821 100644
--- a/camera/QCameraHWI.cpp
+++ b/camera/QCameraHWI.cpp
@@ -1079,22 +1079,8 @@
         mParameters.setPreviewFrameRateMode("frame-rate-auto");
         setPreviewFrameRateMode(mParameters);
 
-        if (mHasAutoFocusSupport) {
-            int cafSupport = true;
-            int caf_type = 2;
-            native_set_parms(MM_CAMERA_PARM_CAF_TYPE, sizeof(caf_type), (void *)&caf_type);
-            native_set_parms(MM_CAMERA_PARM_CONTINUOUS_AF, sizeof(cafSupport),
-                                   (void *)&cafSupport);
-        }
     }
 
-     if (mHasAutoFocusSupport && strcmp(str, "auto")) {
-         int cafSupport = true;
-         int caf_type = 2;
-         native_set_parms(MM_CAMERA_PARM_CAF_TYPE, sizeof(caf_type), (void *)&caf_type);
-         native_set_parms(MM_CAMERA_PARM_CONTINUOUS_AF, sizeof(cafSupport),
-                               (void *)&cafSupport);
-     }
     /*  get existing preview information, by qury mm_camera*/
     memset(&dim, 0, sizeof(cam_ctrl_dimension_t));
     ret = cam_config_get_parm(mCameraId, MM_CAMERA_PARM_DIMENSION,&dim);
