camera: update fast af

- enhancing af sensitivity
- retriggering on dynamic change from darkness to brightness
- detecting af conner case
- locking af when press long capture button

Bug: 7354082
Change-Id: I5895372c322732a48a7fcb9f0b6fb12d7c559657

Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/camera/QCameraHWI.cpp b/camera/QCameraHWI.cpp
index 8e8ac3b..ab8b187 100644
--- a/camera/QCameraHWI.cpp
+++ b/camera/QCameraHWI.cpp
@@ -1160,6 +1160,11 @@
 
     ALOGV("%s: setPreviewWindow", __func__);
     mStreamDisplay->setPreviewWindow(mPreviewWindow);
+    ret = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_INFORM_STARTPRVIEW, NULL);
+    if(ret<0)
+    {
+      ALOGE("%s: Failed to Check MM_CAMERA_PARM_INFORM_STARTPRVIEW, rc %d", __func__, ret);
+    }
 
     if(isZSLMode()) {
         /* Start preview streaming */
@@ -1630,7 +1635,7 @@
     int mNuberOfVFEOutputs = 0;
     Mutex::Autolock lock(mLock);
     bool hdr;
-    int  frm_num = 1;
+    int  frm_num = 1, rc = 0;
     int  exp[MAX_HDR_EXP_FRAME_NUM];
 
     if(QCAMERA_HAL_RECORDING_STARTED != mPreviewState){
@@ -1643,6 +1648,11 @@
         mFlashCond = false;
     }
 
+    rc = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_LG_CAF_LOCK, NULL);
+    if(rc<0)
+    {
+      ALOGE("%s: Failed to Check MM_CAMERA_PARM_LG_CAF_LOCK, rc %d", __func__, rc);
+    }
     hdr = getHdrInfoAndSetExp(MAX_HDR_EXP_FRAME_NUM, &frm_num, exp);
     mStreamSnap->resetSnapshotCounters();
     mStreamSnap->InitHdrInfoForSnapshot(hdr, frm_num, exp);
diff --git a/camera/QCameraHWI_Parm.cpp b/camera/QCameraHWI_Parm.cpp
index 103aa92..23e5cdb 100755
--- a/camera/QCameraHWI_Parm.cpp
+++ b/camera/QCameraHWI_Parm.cpp
@@ -1429,7 +1429,6 @@
     if ((rc = setZSLBurstLookBack(params))) final_rc = rc;
     if ((rc = setZSLBurstInterval(params))) final_rc = rc;
     if ((rc = setNoDisplayMode(params))) final_rc = rc;
-    if ((rc = setCAFLockCancel())) final_rc = rc;
 
     //Update Exiftag values.
     setExifTags();
diff --git a/camera/QCamera_Intf.h b/camera/QCamera_Intf.h
index 19df6dd..aa84940 100644
--- a/camera/QCamera_Intf.h
+++ b/camera/QCamera_Intf.h
@@ -473,6 +473,8 @@
     MM_CAMERA_PARM_LUX_IDX,
     MM_CAMERA_PARM_GET_AF_STATUS,
     MM_CAMERA_PARM_CHECK_AF_RETRY,
+    MM_CAMERA_PARM_LG_CAF_LOCK,
+    MM_CAMERA_PARM_INFORM_STARTPRVIEW,
     MM_CAMERA_PARM_MAX
 } mm_camera_parm_type_t;
 
@@ -625,6 +627,8 @@
   CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL,
   CAMERA_GET_PARM_AF_STATUS,
   CAMERA_CHECK_AF_RETRY,
+  CAMERA_SET_LG_CAF_LOCK,
+  CAMERA_SET_INFORM_STARTPREVIEW,
   CAMERA_CTRL_PARM_MAX
 } cam_ctrl_type;
 
diff --git a/camera/mm-camera-interface/mm_camera.c b/camera/mm-camera-interface/mm_camera.c
index 64292bc..cd0571f 100644
--- a/camera/mm-camera-interface/mm_camera.c
+++ b/camera/mm-camera-interface/mm_camera.c
@@ -497,6 +497,12 @@
     case MM_CAMERA_PARM_CHECK_AF_RETRY:
         return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_CHECK_AF_RETRY,
                  0, (void *)NULL);
+    case MM_CAMERA_PARM_LG_CAF_LOCK:
+        return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_SET_LG_CAF_LOCK,
+                 0, (void *)NULL);
+    case MM_CAMERA_PARM_INFORM_STARTPRVIEW:
+        return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_SET_INFORM_STARTPREVIEW,
+                 0, (void *)NULL);
     default:
         rc = mm_camera_set_general_parm(my_obj, parm);
         break;