msm8998: Qcamera2: Add vendor tags for DevCamera debug

Add vendor tags for DevCamera debug
g_HAF not ready yet

work with change id:
I6f53199244a54bcf8b4084e67d4782541b58a57b

Change-Id: I82b8778bd41b308070ac99c5ff778f358c01fe22
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index 1bb833c..58599a6 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -394,6 +394,9 @@
       mCallbacks(callbacks),
       mCaptureIntent(0),
       mCacMode(0),
+      /* DevCamDebug metadata internal m control*/
+      mDevCamDebugMetaEnable(0),
+      /* DevCamDebug metadata end */
       mBatchSize(0),
       mToBeQueuedVidBufs(0),
       mHFRVideoFps(DEFAULT_VIDEO_FPS),
@@ -3201,7 +3204,11 @@
 
             result.result = translateFromHalMetadata(metadata,
                     i->timestamp, i->request_id, i->jpegMetadata, i->pipeline_depth,
-                    i->capture_intent, internalPproc, i->fwkCacMode,
+                    i->capture_intent,
+                     /* DevCamDebug metadata translateFromHalMetadata function call*/
+                    i->DevCamDebug_meta_enable,
+                    /* DevCamDebug metadata end */
+                    internalPproc, i->fwkCacMode,
                     firstMetadataInBatch);
 
             saveExifParams(metadata);
@@ -4660,6 +4667,13 @@
                 meta.find(ANDROID_CONTROL_CAPTURE_INTENT).data.u8[0];
     }
     pendingRequest.capture_intent = mCaptureIntent;
+    /* DevCamDebug metadata processCaptureRequest */
+    if (meta.exists(DEVCAMDEBUG_META_ENABLE)) {
+        mDevCamDebugMetaEnable =
+                meta.find(DEVCAMDEBUG_META_ENABLE).data.u8[0];
+    }
+    pendingRequest.DevCamDebug_meta_enable = mDevCamDebugMetaEnable;
+    /* DevCamDebug metadata end */
 
     //extract CAC info
     if (meta.exists(ANDROID_COLOR_CORRECTION_ABERRATION_MODE)) {
@@ -5551,6 +5565,8 @@
  *   @timestamp: metadata buffer timestamp
  *   @request_id: request id
  *   @jpegMetadata: additional jpeg metadata
+ *   @DevCamDebug_meta_enable: enable DevCamDebug meta
+ *   // DevCamDebug metadata end
  *   @pprocDone: whether internal offline postprocsesing is done
  *
  * RETURN     : camera_metadata_t*
@@ -5564,6 +5580,9 @@
                                  const CameraMetadata& jpegMetadata,
                                  uint8_t pipeline_depth,
                                  uint8_t capture_intent,
+                                 /* DevCamDebug metadata translateFromHalMetadata argument */
+                                 uint8_t DevCamDebug_meta_enable,
+                                 /* DevCamDebug metadata end */
                                  bool pprocDone,
                                  uint8_t fwk_cacMode,
                                  bool firstMetadataInBatch)
@@ -5585,6 +5604,10 @@
     camMetadata.update(ANDROID_REQUEST_ID, &request_id, 1);
     camMetadata.update(ANDROID_REQUEST_PIPELINE_DEPTH, &pipeline_depth, 1);
     camMetadata.update(ANDROID_CONTROL_CAPTURE_INTENT, &capture_intent, 1);
+    if (mBatchSize == 0) {
+        // DevCamDebug metadata translateFromHalMetadata. Only update this one for non-HFR mode
+        camMetadata.update(DEVCAMDEBUG_META_ENABLE, &DevCamDebug_meta_enable, 1);
+    }
 
     if (mBatchSize && !firstMetadataInBatch) {
         /* In batch mode, use cached metadata instead of parsing metadata buffer again */
@@ -5592,6 +5615,243 @@
         return resultMetadata;
     }
 
+    // atrace_begin(ATRACE_TAG_ALWAYS, "DevCamDebugInfo");
+    // Only update DevCameraDebug metadta conditionally: non-HFR mode and it is enabled.
+    if (mBatchSize == 0 && DevCamDebug_meta_enable != 0) {
+        // DevCamDebug metadata translateFromHalMetadata AF
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_lens_position,
+                CAM_INTF_META_DEV_CAM_AF_LENS_POSITION, metadata) {
+            int32_t fwk_DevCamDebug_af_lens_position = *DevCamDebug_af_lens_position;
+            camMetadata.update(DEVCAMDEBUG_AF_LENS_POSITION, &fwk_DevCamDebug_af_lens_position, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_tof_confidence,
+                CAM_INTF_META_DEV_CAM_AF_TOF_CONFIDENCE, metadata) {
+            int32_t fwk_DevCamDebug_af_tof_confidence = *DevCamDebug_af_tof_confidence;
+            camMetadata.update(DEVCAMDEBUG_AF_TOF_CONFIDENCE, &fwk_DevCamDebug_af_tof_confidence, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_tof_distance,
+                CAM_INTF_META_DEV_CAM_AF_TOF_DISTANCE, metadata) {
+            int32_t fwk_DevCamDebug_af_tof_distance = *DevCamDebug_af_tof_distance;
+            camMetadata.update(DEVCAMDEBUG_AF_TOF_DISTANCE, &fwk_DevCamDebug_af_tof_distance, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_luma,
+                CAM_INTF_META_DEV_CAM_AF_LUMA, metadata) {
+            int32_t fwk_DevCamDebug_af_luma = *DevCamDebug_af_luma;
+            camMetadata.update(DEVCAMDEBUG_AF_LUMA, &fwk_DevCamDebug_af_luma, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_haf_state,
+                CAM_INTF_META_DEV_CAM_AF_HAF_STATE, metadata) {
+            int32_t fwk_DevCamDebug_af_haf_state = *DevCamDebug_af_haf_state;
+            camMetadata.update(DEVCAMDEBUG_AF_HAF_STATE, &fwk_DevCamDebug_af_haf_state, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_pdaf_target_pos,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_TARGET_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_pdaf_target_pos =
+                *DevCamDebug_af_monitor_pdaf_target_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_PDAF_TARGET_POS,
+                &fwk_DevCamDebug_af_monitor_pdaf_target_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_pdaf_confidence,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_CONFIDENCE, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_pdaf_confidence =
+                *DevCamDebug_af_monitor_pdaf_confidence;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_PDAF_CONFIDENCE,
+                &fwk_DevCamDebug_af_monitor_pdaf_confidence, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_pdaf_refocus,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_REFOCUS, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_pdaf_refocus = *DevCamDebug_af_monitor_pdaf_refocus;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_PDAF_REFOCUS,
+                &fwk_DevCamDebug_af_monitor_pdaf_refocus, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_tof_target_pos,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_TARGET_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_tof_target_pos =
+                *DevCamDebug_af_monitor_tof_target_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_TOF_TARGET_POS,
+                &fwk_DevCamDebug_af_monitor_tof_target_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_tof_confidence,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_CONFIDENCE, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_tof_confidence =
+                *DevCamDebug_af_monitor_tof_confidence;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_TOF_CONFIDENCE,
+                &fwk_DevCamDebug_af_monitor_tof_confidence, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_tof_refocus,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_REFOCUS, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_tof_refocus = *DevCamDebug_af_monitor_tof_refocus;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_TOF_REFOCUS,
+                &fwk_DevCamDebug_af_monitor_tof_refocus, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_type_select,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_TYPE_SELECT, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_type_select = *DevCamDebug_af_monitor_type_select;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_TYPE_SELECT,
+                &fwk_DevCamDebug_af_monitor_type_select, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_refocus,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_REFOCUS, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_refocus = *DevCamDebug_af_monitor_refocus;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_REFOCUS,
+                &fwk_DevCamDebug_af_monitor_refocus, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_monitor_target_pos,
+                CAM_INTF_META_DEV_CAM_AF_MONITOR_TARGET_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_monitor_target_pos = *DevCamDebug_af_monitor_target_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_MONITOR_TARGET_POS,
+                &fwk_DevCamDebug_af_monitor_target_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_pdaf_target_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_TARGET_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_pdaf_target_pos =
+                *DevCamDebug_af_search_pdaf_target_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_PDAF_TARGET_POS,
+                &fwk_DevCamDebug_af_search_pdaf_target_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_pdaf_next_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_NEXT_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_pdaf_next_pos = *DevCamDebug_af_search_pdaf_next_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_PDAF_NEXT_POS,
+                &fwk_DevCamDebug_af_search_pdaf_next_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_pdaf_near_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_NEAR_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_pdaf_near_pos = *DevCamDebug_af_search_pdaf_near_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_PDAF_NEAR_POS,
+                &fwk_DevCamDebug_af_search_pdaf_near_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_pdaf_far_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_FAR_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_pdaf_far_pos = *DevCamDebug_af_search_pdaf_far_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_PDAF_FAR_POS,
+                &fwk_DevCamDebug_af_search_pdaf_far_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_pdaf_confidence,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_CONFIDENCE, metadata) {
+            int32_t fwk_DevCamDebug_af_search_pdaf_confidence = *DevCamDebug_af_search_pdaf_confidence;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_PDAF_CONFIDENCE,
+                &fwk_DevCamDebug_af_search_pdaf_confidence, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_tof_target_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_TARGET_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_tof_target_pos =
+                *DevCamDebug_af_search_tof_target_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TOF_TARGET_POS,
+                &fwk_DevCamDebug_af_search_tof_target_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_tof_next_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_NEXT_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_tof_next_pos = *DevCamDebug_af_search_tof_next_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TOF_NEXT_POS,
+                &fwk_DevCamDebug_af_search_tof_next_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_tof_near_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_NEAR_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_tof_near_pos = *DevCamDebug_af_search_tof_near_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TOF_NEAR_POS,
+                &fwk_DevCamDebug_af_search_tof_near_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_tof_far_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_FAR_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_tof_far_pos = *DevCamDebug_af_search_tof_far_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TOF_FAR_POS,
+                &fwk_DevCamDebug_af_search_tof_far_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_tof_confidence,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_CONFIDENCE, metadata) {
+            int32_t fwk_DevCamDebug_af_search_tof_confidence = *DevCamDebug_af_search_tof_confidence;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TOF_CONFIDENCE,
+                &fwk_DevCamDebug_af_search_tof_confidence, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_type_select,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TYPE_SELECT, metadata) {
+            int32_t fwk_DevCamDebug_af_search_type_select = *DevCamDebug_af_search_type_select;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TYPE_SELECT,
+                &fwk_DevCamDebug_af_search_type_select, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_next_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_NEXT_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_next_pos = *DevCamDebug_af_search_next_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_NEXT_POS,
+                &fwk_DevCamDebug_af_search_next_pos, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_af_search_target_pos,
+                CAM_INTF_META_DEV_CAM_AF_SEARCH_TARGET_POS, metadata) {
+            int32_t fwk_DevCamDebug_af_search_target_pos = *DevCamDebug_af_search_target_pos;
+            camMetadata.update(DEVCAMDEBUG_AF_SEARCH_TARGET_POS,
+                &fwk_DevCamDebug_af_search_target_pos, 1);
+        }
+        // DevCamDebug metadata translateFromHalMetadata AEC
+        IF_META_AVAILABLE(int32_t, DevCamDebug_aec_target_luma,
+                CAM_INTF_META_DEV_CAM_AEC_TARGET_LUMA, metadata) {
+            int32_t fwk_DevCamDebug_aec_target_luma = *DevCamDebug_aec_target_luma;
+            camMetadata.update(DEVCAMDEBUG_AEC_TARGET_LUMA, &fwk_DevCamDebug_aec_target_luma, 1);
+    }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_aec_comp_luma,
+                CAM_INTF_META_DEV_CAM_AEC_COMP_LUMA, metadata) {
+            int32_t fwk_DevCamDebug_aec_comp_luma = *DevCamDebug_aec_comp_luma;
+            camMetadata.update(DEVCAMDEBUG_AEC_COMP_LUMA, &fwk_DevCamDebug_aec_comp_luma, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_aec_avg_luma,
+                CAM_INTF_META_DEV_CAM_AEC_AVG_LUMA, metadata) {
+            int32_t fwk_DevCamDebug_aec_avg_luma = *DevCamDebug_aec_avg_luma;
+            camMetadata.update(DEVCAMDEBUG_AEC_AVG_LUMA, &fwk_DevCamDebug_aec_avg_luma, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_aec_cur_luma,
+                CAM_INTF_META_DEV_CAM_AEC_CUR_LUMA, metadata) {
+            int32_t fwk_DevCamDebug_aec_cur_luma = *DevCamDebug_aec_cur_luma;
+            camMetadata.update(DEVCAMDEBUG_AEC_CUR_LUMA, &fwk_DevCamDebug_aec_cur_luma, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_aec_linecount,
+                CAM_INTF_META_DEV_CAM_AEC_LINECOUNT, metadata) {
+            int32_t fwk_DevCamDebug_aec_linecount = *DevCamDebug_aec_linecount;
+            camMetadata.update(DEVCAMDEBUG_AEC_LINECOUNT, &fwk_DevCamDebug_aec_linecount, 1);
+        }
+        IF_META_AVAILABLE(float, DevCamDebug_aec_real_gain,
+                CAM_INTF_META_DEV_CAM_AEC_REAL_GAIN, metadata) {
+            float fwk_DevCamDebug_aec_real_gain = *DevCamDebug_aec_real_gain;
+            camMetadata.update(DEVCAMDEBUG_AEC_REAL_GAIN, &fwk_DevCamDebug_aec_real_gain, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_aec_exp_index,
+                CAM_INTF_META_DEV_CAM_AEC_EXP_INDEX, metadata) {
+            int32_t fwk_DevCamDebug_aec_exp_index = *DevCamDebug_aec_exp_index;
+            camMetadata.update(DEVCAMDEBUG_AEC_EXP_INDEX, &fwk_DevCamDebug_aec_exp_index, 1);
+        }
+        IF_META_AVAILABLE(float, DevCamDebug_aec_lux_idx,
+                CAM_INTF_META_DEV_CAM_AEC_LUX_IDX, metadata) {
+            float fwk_DevCamDebug_aec_lux_idx = *DevCamDebug_aec_lux_idx;
+            camMetadata.update(DEVCAMDEBUG_AEC_LUX_IDX, &fwk_DevCamDebug_aec_lux_idx, 1);
+        }
+        // DevCamDebug metadata translateFromHalMetadata AWB
+        IF_META_AVAILABLE(float, DevCamDebug_awb_r_gain,
+                CAM_INTF_META_DEV_CAM_AWB_R_GAIN, metadata) {
+            float fwk_DevCamDebug_awb_r_gain = *DevCamDebug_awb_r_gain;
+            camMetadata.update(DEVCAMDEBUG_AWB_R_GAIN, &fwk_DevCamDebug_awb_r_gain, 1);
+        }
+        IF_META_AVAILABLE(float, DevCamDebug_awb_g_gain,
+                CAM_INTF_META_DEV_CAM_AWB_G_GAIN, metadata) {
+            float fwk_DevCamDebug_awb_g_gain = *DevCamDebug_awb_g_gain;
+            camMetadata.update(DEVCAMDEBUG_AWB_G_GAIN, &fwk_DevCamDebug_awb_g_gain, 1);
+        }
+        IF_META_AVAILABLE(float, DevCamDebug_awb_b_gain,
+                CAM_INTF_META_DEV_CAM_AWB_B_GAIN, metadata) {
+            float fwk_DevCamDebug_awb_b_gain = *DevCamDebug_awb_b_gain;
+            camMetadata.update(DEVCAMDEBUG_AWB_B_GAIN, &fwk_DevCamDebug_awb_b_gain, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_awb_cct,
+                CAM_INTF_META_DEV_CAM_AWB_CCT, metadata) {
+            int32_t fwk_DevCamDebug_awb_cct = *DevCamDebug_awb_cct;
+            camMetadata.update(DEVCAMDEBUG_AWB_CCT, &fwk_DevCamDebug_awb_cct, 1);
+        }
+        IF_META_AVAILABLE(int32_t, DevCamDebug_awb_decision,
+                CAM_INTF_META_DEV_CAM_AWB_DECISION, metadata) {
+            int32_t fwk_DevCamDebug_awb_decision = *DevCamDebug_awb_decision;
+            camMetadata.update(DEVCAMDEBUG_AWB_DECISION, &fwk_DevCamDebug_awb_decision, 1);
+        }
+    }
+    // atrace_end(ATRACE_TAG_ALWAYS);
+
     IF_META_AVAILABLE(uint32_t, frame_number, CAM_INTF_META_FRAME_NUMBER, metadata) {
         int64_t fwk_frame_number = *frame_number;
         camMetadata.update(ANDROID_SYNC_FRAME_NUMBER, &fwk_frame_number, 1);
@@ -8417,7 +8677,11 @@
        ANDROID_STATISTICS_HISTOGRAM_MODE, ANDROID_STATISTICS_SHARPNESS_MAP_MODE,
        ANDROID_STATISTICS_LENS_SHADING_MAP_MODE, ANDROID_TONEMAP_CURVE_BLUE,
        ANDROID_TONEMAP_CURVE_GREEN, ANDROID_TONEMAP_CURVE_RED, ANDROID_TONEMAP_MODE,
-       ANDROID_BLACK_LEVEL_LOCK };
+       ANDROID_BLACK_LEVEL_LOCK,
+       /* DevCamDebug metadata request_keys_basic */
+       DEVCAMDEBUG_META_ENABLE,
+       /* DevCamDebug metadata end */
+       };
 
     size_t request_keys_cnt =
             sizeof(request_keys_basic)/sizeof(request_keys_basic[0]);
@@ -8455,6 +8719,52 @@
 #ifndef USE_HAL_3_3
        ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST,
 #endif
+       // DevCamDebug metadata result_keys_basic
+       DEVCAMDEBUG_META_ENABLE,
+       // DevCamDebug metadata result_keys AF
+       DEVCAMDEBUG_AF_LENS_POSITION,
+       DEVCAMDEBUG_AF_TOF_CONFIDENCE,
+       DEVCAMDEBUG_AF_TOF_DISTANCE,
+       DEVCAMDEBUG_AF_LUMA,
+       DEVCAMDEBUG_AF_HAF_STATE,
+       DEVCAMDEBUG_AF_MONITOR_PDAF_TARGET_POS,
+       DEVCAMDEBUG_AF_MONITOR_PDAF_CONFIDENCE,
+       DEVCAMDEBUG_AF_MONITOR_PDAF_REFOCUS,
+       DEVCAMDEBUG_AF_MONITOR_TOF_TARGET_POS,
+       DEVCAMDEBUG_AF_MONITOR_TOF_CONFIDENCE,
+       DEVCAMDEBUG_AF_MONITOR_TOF_REFOCUS,
+       DEVCAMDEBUG_AF_MONITOR_TYPE_SELECT,
+       DEVCAMDEBUG_AF_MONITOR_REFOCUS,
+       DEVCAMDEBUG_AF_MONITOR_TARGET_POS,
+       DEVCAMDEBUG_AF_SEARCH_PDAF_TARGET_POS,
+       DEVCAMDEBUG_AF_SEARCH_PDAF_NEXT_POS,
+       DEVCAMDEBUG_AF_SEARCH_PDAF_NEAR_POS,
+       DEVCAMDEBUG_AF_SEARCH_PDAF_FAR_POS,
+       DEVCAMDEBUG_AF_SEARCH_PDAF_CONFIDENCE,
+       DEVCAMDEBUG_AF_SEARCH_TOF_TARGET_POS,
+       DEVCAMDEBUG_AF_SEARCH_TOF_NEXT_POS,
+       DEVCAMDEBUG_AF_SEARCH_TOF_NEAR_POS,
+       DEVCAMDEBUG_AF_SEARCH_TOF_FAR_POS,
+       DEVCAMDEBUG_AF_SEARCH_TOF_CONFIDENCE,
+       DEVCAMDEBUG_AF_SEARCH_TYPE_SELECT,
+       DEVCAMDEBUG_AF_SEARCH_NEXT_POS,
+       DEVCAMDEBUG_AF_SEARCH_TARGET_POS,
+       // DevCamDebug metadata result_keys AEC
+       DEVCAMDEBUG_AEC_TARGET_LUMA,
+       DEVCAMDEBUG_AEC_COMP_LUMA,
+       DEVCAMDEBUG_AEC_AVG_LUMA,
+       DEVCAMDEBUG_AEC_CUR_LUMA,
+       DEVCAMDEBUG_AEC_LINECOUNT,
+       DEVCAMDEBUG_AEC_REAL_GAIN,
+       DEVCAMDEBUG_AEC_EXP_INDEX,
+       DEVCAMDEBUG_AEC_LUX_IDX,
+       // DevCamDebug metadata result_keys AWB
+       DEVCAMDEBUG_AWB_R_GAIN,
+       DEVCAMDEBUG_AWB_G_GAIN,
+       DEVCAMDEBUG_AWB_B_GAIN,
+       DEVCAMDEBUG_AWB_CCT,
+       DEVCAMDEBUG_AWB_DECISION,
+       /* DevCamDebug metadata end */
        };
 
     size_t result_keys_cnt =
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.h b/msm8998/QCamera2/HAL3/QCamera3HWI.h
index 86e1480..309d376 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.h
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.h
@@ -233,7 +233,11 @@
     camera_metadata_t* translateFromHalMetadata(metadata_buffer_t *metadata,
                             nsecs_t timestamp, int32_t request_id,
                             const CameraMetadata& jpegMetadata, uint8_t pipeline_depth,
-                            uint8_t capture_intent, bool pprocDone, uint8_t fwk_cacMode,
+                            uint8_t capture_intent,
+                            /* DevCamDebug metadata translateFromHalMetadata augment .h */
+                            uint8_t DevCamDebug_meta_enable,
+                            /* DevCamDebug metadata end */
+                            bool pprocDone, uint8_t fwk_cacMode,
                             bool firstMetadataInBatch);
     camera_metadata_t* saveRequestSettings(const CameraMetadata& jpegMetadata,
                             camera3_capture_request_t *request);
@@ -475,6 +479,9 @@
         uint8_t capture_intent;
         uint8_t fwkCacMode;
         bool shutter_notified;
+        /* DevCamDebug metadata PendingRequestInfo */
+        uint8_t DevCamDebug_meta_enable;
+        /* DevCamDebug metadata end */
     } PendingRequestInfo;
     typedef struct {
         uint32_t frame_number;
@@ -527,6 +534,10 @@
 
     uint8_t mCaptureIntent;
     uint8_t mCacMode;
+    // DevCamDebug metadata internal variable
+    uint8_t mDevCamDebugMetaEnable;
+    /* DevCamDebug metadata end */
+
     metadata_buffer_t mReprocMeta; //scratch meta buffer
     /* 0: Not batch, non-zero: Number of image buffers in a batch */
     uint8_t mBatchSize;
diff --git a/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp b/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp
index cf8123f..2830963 100644
--- a/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3VendorTags.cpp
@@ -215,7 +215,52 @@
 
 vendor_tag_info_t nexus_experimental_2016[NEXUS_EXPERIMENTAL_2016_END -
         NEXUS_EXPERIMENTAL_2016_START] = {
-   {"3a.hybrid_3a_enable", TYPE_BYTE }
+   {"3a.hybrid_3a_enable",                     TYPE_BYTE  },
+      // DevCamDebug vendor tag
+   { "devcamdebug_meta_enable",                TYPE_BYTE  },
+   // DevCamDebug vendor tag AF
+   { "devcamdebug_af_lens_position",           TYPE_INT32 },
+   { "devcamdebug_af_tof_confidence",          TYPE_INT32 },
+   { "devcamdebug_af_tof_distance",            TYPE_INT32 },
+   { "devcamdebug_af_luma",                    TYPE_INT32 },
+   { "devcamdebug_af_haf_state",               TYPE_INT32 },
+   { "devcamdebug_af_monitor_pdaf_target_pos", TYPE_INT32 },
+   { "devcamdebug_af_monitor_pdaf_confidence", TYPE_INT32 },
+   { "devcamdebug_af_monitor_pdaf_refocus",    TYPE_INT32 },
+   { "devcamdebug_af_monitor_tof_target_pos",  TYPE_INT32 },
+   { "devcamdebug_af_monitor_tof_confidence",  TYPE_INT32 },
+   { "devcamdebug_af_monitor_tof_refocus",     TYPE_INT32 },
+   { "devcamdebug_af_monitor_type_select",     TYPE_INT32 },
+   { "devcamdebug_af_monitor_refocus",         TYPE_INT32 },
+   { "devcamdebug_af_monitor_target_pos",      TYPE_INT32 },
+   { "devcamdebug_af_search_pdaf_target_pos",  TYPE_INT32 },
+   { "devcamdebug_af_search_pdaf_next_pos",    TYPE_INT32 },
+   { "devcamdebug_af_search_pdaf_near_pos",    TYPE_INT32 },
+   { "devcamdebug_af_search_pdaf_far_pos",     TYPE_INT32 },
+   { "devcamdebug_af_search_pdaf_confidence",  TYPE_INT32 },
+   { "devcamdebug_af_search_tof_target_pos",   TYPE_INT32 },
+   { "devcamdebug_af_search_tof_next_pos",     TYPE_INT32 },
+   { "devcamdebug_af_search_tof_near_pos",     TYPE_INT32 },
+   { "devcamdebug_af_search_tof_far_pos",      TYPE_INT32 },
+   { "devcamdebug_af_search_tof_confidence",   TYPE_INT32 },
+   { "devcamdebug_af_search_type_select",      TYPE_INT32 },
+   { "devcamdebug_af_search_next_pos",         TYPE_INT32 },
+   { "devcamdebug_af_search_target_pos",       TYPE_INT32 },
+   // DevCamDebug vendor tag AEC
+   { "devcamdebug_aec_target_luma",            TYPE_INT32 },
+   { "devcamdebug_aec_comp_luma",              TYPE_INT32 },
+   { "devcamdebug_aec_avg_luma",               TYPE_INT32 },
+   { "devcamdebug_aec_cur_luma",               TYPE_INT32 },
+   { "devcamdebug_aec_linecount",              TYPE_INT32 },
+   { "devcamdebug_aec_real_gain",              TYPE_FLOAT },
+   { "devcamdebug_aec_exp_index",              TYPE_INT32 },
+   { "devcamdebug_aec_lux_idx",                TYPE_FLOAT },
+   // DevCamDebug vendor tag AWB
+   { "devcamdebug_awb_r_gain",                 TYPE_FLOAT },
+   { "devcamdebug_awb_g_gain",                 TYPE_FLOAT },
+   { "devcamdebug_awb_b_gain",                 TYPE_FLOAT },
+   { "devcamdebug_awb_cct",                    TYPE_INT32 },
+   { "devcamdebug_awb_decision",               TYPE_INT32 },
 };
 
 vendor_tag_info_t *qcamera3_tag_info[QCAMERA3_SECTIONS_END -
@@ -284,6 +329,54 @@
     (uint32_t)QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN,
     (uint32_t)QCAMERA3_SENSOR_IS_MONO_ONLY,
 
+    //NEXUS_EXPERIMENTAL_2016
+    // DEVCAMDEBUG
+    (uint32_t)DEVCAMDEBUG_META_ENABLE,
+    // DEVCAMDEBUG AF
+    (uint32_t)DEVCAMDEBUG_AF_LENS_POSITION,
+    (uint32_t)DEVCAMDEBUG_AF_TOF_CONFIDENCE,
+    (uint32_t)DEVCAMDEBUG_AF_TOF_DISTANCE,
+    (uint32_t)DEVCAMDEBUG_AF_LUMA,
+    (uint32_t)DEVCAMDEBUG_AF_HAF_STATE,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_PDAF_TARGET_POS,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_PDAF_CONFIDENCE,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_PDAF_REFOCUS,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_TOF_TARGET_POS,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_TOF_CONFIDENCE,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_TOF_REFOCUS,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_TYPE_SELECT,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_REFOCUS,
+    (uint32_t)DEVCAMDEBUG_AF_MONITOR_TARGET_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_PDAF_TARGET_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_PDAF_NEXT_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_PDAF_NEAR_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_PDAF_FAR_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_PDAF_CONFIDENCE,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TOF_TARGET_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TOF_NEXT_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TOF_NEAR_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TOF_FAR_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TOF_CONFIDENCE,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TYPE_SELECT,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_NEXT_POS,
+    (uint32_t)DEVCAMDEBUG_AF_SEARCH_TARGET_POS,
+    // DEVCAMDEBUG AEC
+    (uint32_t)DEVCAMDEBUG_AEC_TARGET_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_COMP_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_AVG_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_CUR_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_LINECOUNT,
+    (uint32_t)DEVCAMDEBUG_AEC_REAL_GAIN,
+    (uint32_t)DEVCAMDEBUG_AEC_EXP_INDEX,
+    (uint32_t)DEVCAMDEBUG_AEC_LUX_IDX,
+    // DEVCAMDEBUG AWB
+    (uint32_t)DEVCAMDEBUG_AWB_R_GAIN,
+    (uint32_t)DEVCAMDEBUG_AWB_G_GAIN,
+    (uint32_t)DEVCAMDEBUG_AWB_B_GAIN,
+    (uint32_t)DEVCAMDEBUG_AWB_CCT,
+    (uint32_t)DEVCAMDEBUG_AWB_DECISION,
+    // DEVCAMDEBUG END
+
     // QCAMERA3_DUALCAM_LINK_META_DATA
     (uint32_t)QCAMERA3_DUALCAM_LINK_ENABLE,
     (uint32_t)QCAMERA3_DUALCAM_LINK_IS_MAIN,
diff --git a/msm8998/QCamera2/HAL3/QCamera3VendorTags.h b/msm8998/QCamera2/HAL3/QCamera3VendorTags.h
index 532c8ab..e39efed 100644
--- a/msm8998/QCamera2/HAL3/QCamera3VendorTags.h
+++ b/msm8998/QCamera2/HAL3/QCamera3VendorTags.h
@@ -230,6 +230,52 @@
     QCAMERA3_INSTANT_AEC_END,
 
     NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE = NEXUS_EXPERIMENTAL_2016_START,
+    // DEVCAMDEBUG
+    DEVCAMDEBUG_META_ENABLE,
+    // DEVCAMDEBUG AF
+    DEVCAMDEBUG_AF_LENS_POSITION,
+    DEVCAMDEBUG_AF_TOF_CONFIDENCE,
+    DEVCAMDEBUG_AF_TOF_DISTANCE,
+    DEVCAMDEBUG_AF_LUMA,
+    DEVCAMDEBUG_AF_HAF_STATE,
+    DEVCAMDEBUG_AF_MONITOR_PDAF_TARGET_POS,
+    DEVCAMDEBUG_AF_MONITOR_PDAF_CONFIDENCE,
+    DEVCAMDEBUG_AF_MONITOR_PDAF_REFOCUS,
+    DEVCAMDEBUG_AF_MONITOR_TOF_TARGET_POS,
+    DEVCAMDEBUG_AF_MONITOR_TOF_CONFIDENCE,
+    DEVCAMDEBUG_AF_MONITOR_TOF_REFOCUS,
+    DEVCAMDEBUG_AF_MONITOR_TYPE_SELECT,
+    DEVCAMDEBUG_AF_MONITOR_REFOCUS,
+    DEVCAMDEBUG_AF_MONITOR_TARGET_POS,
+    DEVCAMDEBUG_AF_SEARCH_PDAF_TARGET_POS,
+    DEVCAMDEBUG_AF_SEARCH_PDAF_NEXT_POS,
+    DEVCAMDEBUG_AF_SEARCH_PDAF_NEAR_POS,
+    DEVCAMDEBUG_AF_SEARCH_PDAF_FAR_POS,
+    DEVCAMDEBUG_AF_SEARCH_PDAF_CONFIDENCE,
+    DEVCAMDEBUG_AF_SEARCH_TOF_TARGET_POS,
+    DEVCAMDEBUG_AF_SEARCH_TOF_NEXT_POS,
+    DEVCAMDEBUG_AF_SEARCH_TOF_NEAR_POS,
+    DEVCAMDEBUG_AF_SEARCH_TOF_FAR_POS,
+    DEVCAMDEBUG_AF_SEARCH_TOF_CONFIDENCE,
+    DEVCAMDEBUG_AF_SEARCH_TYPE_SELECT,
+    DEVCAMDEBUG_AF_SEARCH_NEXT_POS,
+    DEVCAMDEBUG_AF_SEARCH_TARGET_POS,
+    // DEVCAMDEBUG AEC
+    DEVCAMDEBUG_AEC_TARGET_LUMA,
+    DEVCAMDEBUG_AEC_COMP_LUMA,
+    DEVCAMDEBUG_AEC_AVG_LUMA,
+    DEVCAMDEBUG_AEC_CUR_LUMA,
+    DEVCAMDEBUG_AEC_LINECOUNT,
+    DEVCAMDEBUG_AEC_REAL_GAIN,
+    DEVCAMDEBUG_AEC_EXP_INDEX,
+    DEVCAMDEBUG_AEC_LUX_IDX,
+    // DEVCAMDEBUG AWB
+    DEVCAMDEBUG_AWB_R_GAIN,
+    DEVCAMDEBUG_AWB_G_GAIN,
+    DEVCAMDEBUG_AWB_B_GAIN,
+    DEVCAMDEBUG_AWB_CCT,
+    DEVCAMDEBUG_AWB_DECISION,
+    // DEVCAMDEBUG END
     NEXUS_EXPERIMENTAL_2016_END,
 };
 
diff --git a/msm8998/QCamera2/stack/common/cam_intf.h b/msm8998/QCamera2/stack/common/cam_intf.h
index 626d86d..1b82026 100644
--- a/msm8998/QCamera2/stack/common/cam_intf.h
+++ b/msm8998/QCamera2/stack/common/cam_intf.h
@@ -1107,6 +1107,52 @@
     INCLUDE(CAM_INTF_META_DC_LOW_POWER_ENABLE,          uint8_t,                     1);
     INCLUDE(CAM_INTF_META_DC_SAC_OUTPUT_INFO,           cam_sac_output_info_t,       1);
     INCLUDE(CAM_INTF_META_HYBRID_AE,                    uint8_t,                     1);
+    /* DevCamDebug metadata CAM_INTF.H */
+    INCLUDE(CAM_INTF_META_DEV_CAM_ENABLE,               uint8_t,                     1);
+    /* DevCamDebug metadata CAM_INTF.H AF */
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_LENS_POSITION,     int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_TOF_CONFIDENCE,    int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_TOF_DISTANCE,      int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_LUMA,                    int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_HAF_STATE,               int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_TARGET_POS, int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_CONFIDENCE, int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_REFOCUS,    int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_TARGET_POS,  int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_CONFIDENCE,  int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_REFOCUS,     int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_TYPE_SELECT,     int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_REFOCUS,         int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_MONITOR_TARGET_POS,      int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_TARGET_POS,  int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_NEXT_POS,    int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_NEAR_POS,    int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_FAR_POS,     int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_CONFIDENCE,  int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_TARGET_POS,   int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_NEXT_POS,     int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_NEAR_POS,     int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_FAR_POS,      int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_CONFIDENCE,   int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TYPE_SELECT,      int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_NEXT_POS,         int32_t,               1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_SEARCH_TARGET_POS,       int32_t,               1);
+    /* DevCamDebug metadata CAM_INTF.H AEC */
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_TARGET_LUMA,      int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_COMP_LUMA,        int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_AVG_LUMA,         int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_CUR_LUMA,         int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_LINECOUNT,        int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_REAL_GAIN,        float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_EXP_INDEX,        int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_LUX_IDX,          float,                       1);
+    /* DevCamDebug metadata CAM_INTF.H AWB */
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_R_GAIN,           float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_G_GAIN,           float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_B_GAIN,           float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_CCT,              int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_DECISION,         int32_t,                     1);
+    /* DevCamDebug metadata end */
 } metadata_data_t;
 
 /* Update clear_metadata_buffer() function when a new is_xxx_valid is added to
diff --git a/msm8998/QCamera2/stack/common/cam_types.h b/msm8998/QCamera2/stack/common/cam_types.h
index 912d817..06269f3 100644
--- a/msm8998/QCamera2/stack/common/cam_types.h
+++ b/msm8998/QCamera2/stack/common/cam_types.h
@@ -2334,6 +2334,52 @@
     CAM_INTF_META_DC_LOW_POWER_ENABLE,
     /* Whether to enable hybrid ae mode */
     CAM_INTF_META_HYBRID_AE,
+    /* DevCamDebug metadata CAM_TYPES.h */
+    CAM_INTF_META_DEV_CAM_ENABLE,
+    /* DevCamDebug metadata CAM_TYPES.h AF */
+    CAM_INTF_META_DEV_CAM_AF_LENS_POSITION,
+    CAM_INTF_META_DEV_CAM_AF_TOF_CONFIDENCE,
+    CAM_INTF_META_DEV_CAM_AF_TOF_DISTANCE,
+    CAM_INTF_META_DEV_CAM_AF_LUMA,
+    CAM_INTF_META_DEV_CAM_AF_HAF_STATE,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_TARGET_POS,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_CONFIDENCE,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_PDAF_REFOCUS,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_TARGET_POS,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_CONFIDENCE,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_TOF_REFOCUS,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_TYPE_SELECT,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_REFOCUS,
+    CAM_INTF_META_DEV_CAM_AF_MONITOR_TARGET_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_TARGET_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_NEXT_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_NEAR_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_FAR_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_PDAF_CONFIDENCE,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_TARGET_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_NEXT_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_NEAR_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_FAR_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TOF_CONFIDENCE,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TYPE_SELECT,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_NEXT_POS,
+    CAM_INTF_META_DEV_CAM_AF_SEARCH_TARGET_POS,
+    /* DevCamDebug metadata CAM_TYPES.h AEC */
+    CAM_INTF_META_DEV_CAM_AEC_TARGET_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_COMP_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_AVG_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_CUR_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_LINECOUNT,
+    CAM_INTF_META_DEV_CAM_AEC_REAL_GAIN,
+    CAM_INTF_META_DEV_CAM_AEC_EXP_INDEX,
+    CAM_INTF_META_DEV_CAM_AEC_LUX_IDX,
+    /* DevCamDebug metadata CAM_TYPES.h AWB */
+    CAM_INTF_META_DEV_CAM_AWB_R_GAIN,
+    CAM_INTF_META_DEV_CAM_AWB_G_GAIN,
+    CAM_INTF_META_DEV_CAM_AWB_B_GAIN,
+    CAM_INTF_META_DEV_CAM_AWB_CCT,
+    CAM_INTF_META_DEV_CAM_AWB_DECISION,
+    /* DevCamDebug metadata end */
     CAM_INTF_PARM_MAX
 } cam_intf_parm_type_t;