camera: enhancement af functionality

-add case for reading AF status and retry value

Bug: 7324783
Change-Id: Ia377b54f296d2b7a240883d6ae128574359ebaba
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/QCamera_Intf.h b/QCamera_Intf.h
index c3b3972..19df6dd 100644
--- a/QCamera_Intf.h
+++ b/QCamera_Intf.h
@@ -471,6 +471,8 @@
     MM_CAMERA_PARM_CAF_TYPE,
 #endif
     MM_CAMERA_PARM_LUX_IDX,
+    MM_CAMERA_PARM_GET_AF_STATUS,
+    MM_CAMERA_PARM_CHECK_AF_RETRY,
     MM_CAMERA_PARM_MAX
 } mm_camera_parm_type_t;
 
@@ -621,6 +623,8 @@
 #endif
   CAMERA_GET_PARM_LUX_IDX,
   CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL,
+  CAMERA_GET_PARM_AF_STATUS,
+  CAMERA_CHECK_AF_RETRY,
   CAMERA_CTRL_PARM_MAX
 } cam_ctrl_type;
 
@@ -1066,6 +1070,11 @@
   LED_MODE_MAX
 } led_mode_t;
 
+typedef struct {
+  int is_checking_af_retry;
+  int is_moving;
+} af_actuator_status_t;
+
 typedef struct{
   int aec_index_for_zsl;
   int zsl_flash_enable;
diff --git a/mm-camera-interface/mm_camera.c b/mm-camera-interface/mm_camera.c
index 54c269b..12b61c0 100644
--- a/mm-camera-interface/mm_camera.c
+++ b/mm-camera-interface/mm_camera.c
@@ -494,6 +494,9 @@
                             MM_CAMERA_STATE_EVT_SET_FMT, fmt);
         }
         break;
+    case MM_CAMERA_PARM_CHECK_AF_RETRY:
+        return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_CHECK_AF_RETRY,
+                 0, (void *)NULL);
     default:
         rc = mm_camera_set_general_parm(my_obj, parm);
         break;
@@ -657,6 +660,10 @@
     case MM_CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL:
         return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL,
                      sizeof(aec_info_for_flash_t), (void *)parm->p_value);
+
+    case MM_CAMERA_PARM_GET_AF_STATUS:
+        return mm_camera_send_native_ctrl_cmd(my_obj,   CAMERA_GET_PARM_AF_STATUS,
+                     sizeof(af_actuator_status_t), (void *)parm->p_value);
     default:
         /* needs to add more implementation */
         rc = -1;