camera: update AU_LINUX_ANDROID_LA.BF64.1.2.9.05.01.00.089.170

ef0c115 Camera3: Add support for dynamic black level reporting
5f25369 QCamera2/HAL3: Dynamic Black level feature
ed517be QCamera2/HAL3: Disable 120 fps mode in HFR

Change-Id: I7c827a8140cbdc19df9246a6f0afd8cfafb0764c
diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
old mode 100644
new mode 100755
index f47655e..cd6ed04
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3762,6 +3762,21 @@
         camMetadata.update(ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR, effectiveExposureFactor, 1);
     }
 
+    IF_META_AVAILABLE(cam_black_level_metadata_t, blackLevelInd, CAM_INTF_META_BLACK_LEVEL_IND, metadata) {
+        int32_t fwk_blackLevelInd[4];
+        fwk_blackLevelInd[0] = blackLevelInd->cam_black_level[0];
+        fwk_blackLevelInd[1] = blackLevelInd->cam_black_level[1];
+        fwk_blackLevelInd[2] = blackLevelInd->cam_black_level[2];
+        fwk_blackLevelInd[3] = blackLevelInd->cam_black_level[3];
+
+        ALOGE("%s: dynamicblackLevel = %d %d %d %d", __func__,
+          blackLevelInd->cam_black_level[0],
+          blackLevelInd->cam_black_level[1],
+          blackLevelInd->cam_black_level[2],
+          blackLevelInd->cam_black_level[3]);
+        camMetadata.update(QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN, fwk_blackLevelInd, 4);
+    }
+
     IF_META_AVAILABLE(cam_crop_region_t, hScalerCropRegion,
             CAM_INTF_META_SCALER_CROP_REGION, metadata) {
         int32_t scalerCropRegion[4];
diff --git a/QCamera2/HAL3/QCamera3VendorTags.cpp b/QCamera2/HAL3/QCamera3VendorTags.cpp
index e50b968..1ae0ddb 100644
--- a/QCamera2/HAL3/QCamera3VendorTags.cpp
+++ b/QCamera2/HAL3/QCamera3VendorTags.cpp
@@ -49,7 +49,8 @@
         QCAMERA3_OPAQUE_RAW_END,
         QCAMERA3_CROP_END,
         QCAMERA3_TUNING_META_DATA_END,
-        QCAMERA3_AV_TIMER_END
+        QCAMERA3_AV_TIMER_END,
+        QCAMERA3_SENSOR_META_DATA_END
 } ;
 
 typedef struct vendor_tag_info {
@@ -64,7 +65,8 @@
     "org.codeaurora.qcamera3.opaque_raw",
     "org.codeaurora.qcamera3.crop",
     "org.codeaurora.qcamera3.tuning_meta_data",
-    "org.codeaurora.qcamera3.av_timer"
+    "org.codeaurora.qcamera3.av_timer",
+    "org.codeaurora.qcamera3.sensor_meta_data"
 };
 
 vendor_tag_info_t qcamera3_privatedata[QCAMERA3_PRIVATEDATA_END - QCAMERA3_PRIVATEDATA_START] = {
@@ -98,6 +100,11 @@
    {"use_av_timer", TYPE_BYTE }
 };
 
+vendor_tag_info qcamera3_sensor_meta_data[QCAMERA3_SENSOR_META_DATA_END -
+                                  QCAMERA3_SENSOR_META_DATA_START] = {
+   {"dynamic_black_level_pattern", TYPE_INT32 }
+};
+
 vendor_tag_info_t *qcamera3_tag_info[QCAMERA3_SECTIONS_END -
         VENDOR_SECTION] = {
     qcamera3_privatedata,
@@ -105,7 +112,8 @@
     qcamera3_opaque_raw,
     qcamera3_crop,
     qcamera3_tuning_meta_data,
-    qcamera3_av_timer
+    qcamera3_av_timer,
+    qcamera3_sensor_meta_data,
 };
 
 uint32_t qcamera3_all_tags[] = {
@@ -126,7 +134,10 @@
     (uint32_t)QCAMERA3_TUNING_META_DATA_BLOB,
 
     //QCAMERA3_AVTIMER
-    (uint32_t)QCAMERA3_USE_AV_TIMER
+    (uint32_t)QCAMERA3_USE_AV_TIMER,
+
+    //QCAMERA3_SENSOR_META_DATA
+    (uint32_t)QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN
 };
 
 const vendor_tag_ops_t* QCamera3VendorTags::Ops = NULL;
diff --git a/QCamera2/HAL3/QCamera3VendorTags.h b/QCamera2/HAL3/QCamera3VendorTags.h
index 5abcc99..57ffc53 100644
--- a/QCamera2/HAL3/QCamera3VendorTags.h
+++ b/QCamera2/HAL3/QCamera3VendorTags.h
@@ -39,6 +39,7 @@
     QCAMERA3_CROP,
     QCAMERA3_TUNING_META_DATA,
     QCAMERA3_AV_TIMER,
+    QCAMERA3_SENSOR_META_DATA,
     QCAMERA3_SECTIONS_END
 };
 
@@ -48,7 +49,8 @@
     QCAMERA3_OPAQUE_RAW_START = QCAMERA3_OPAQUE_RAW << 16,
     QCAMERA3_CROP_START = QCAMERA3_CROP << 16,
     QCAMERA3_TUNING_META_DATA_START = QCAMERA3_TUNING_META_DATA << 16,
-    QCAMERA3_AV_TIMER_START = QCAMERA3_AV_TIMER << 16
+    QCAMERA3_AV_TIMER_START = QCAMERA3_AV_TIMER << 16,
+    QCAMERA3_SENSOR_META_DATA_START = QCAMERA3_SENSOR_META_DATA << 16
 };
 
 enum qcamera3_ext_tags {
@@ -119,7 +121,10 @@
     QCAMERA3_TUNING_META_DATA_END,
 
     QCAMERA3_USE_AV_TIMER = QCAMERA3_AV_TIMER_START,
-    QCAMERA3_AV_TIMER_END
+    QCAMERA3_AV_TIMER_END,
+
+    QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN = QCAMERA3_SENSOR_META_DATA_START,
+    QCAMERA3_SENSOR_META_DATA_END
 };
 
 // QCAMERA3_OPAQUE_RAW_FORMAT
diff --git a/QCamera2/stack/common/cam_intf.h b/QCamera2/stack/common/cam_intf.h
index 1091e2e..2ec451d 100644
--- a/QCamera2/stack/common/cam_intf.h
+++ b/QCamera2/stack/common/cam_intf.h
@@ -764,6 +764,7 @@
     INCLUDE(CAM_INTF_PARM_FLIP,                         int32_t,                     1);
     INCLUDE(CAM_INTF_META_USE_AV_TIMER,                 uint8_t,                     1);
     INCLUDE(CAM_INTF_META_EFFECTIVE_EXPOSURE_FACTOR,    float,                       1);
+    INCLUDE(CAM_INTF_META_BLACK_LEVEL_IND,              cam_black_level_metadata_t,  1);
 } metadata_data_t;
 
 /* Update clear_metadata_buffer() function when a new is_xxx_valid is added to
diff --git a/QCamera2/stack/common/cam_types.h b/QCamera2/stack/common/cam_types.h
index 9bc5520..8bb0e9a 100644
--- a/QCamera2/stack/common/cam_types.h
+++ b/QCamera2/stack/common/cam_types.h
@@ -1722,6 +1722,9 @@
     CAM_INTF_META_USE_AV_TIMER,
 
     CAM_INTF_META_EFFECTIVE_EXPOSURE_FACTOR,
+
+    /*Black level parameters*/
+    CAM_INTF_META_BLACK_LEVEL_IND,
     CAM_INTF_PARM_MAX
 } cam_intf_parm_type_t;
 
@@ -1737,6 +1740,10 @@
     } u;
 } cam_ez_force_params_t;
 
+typedef struct {
+    uint32_t cam_black_level[4];
+} cam_black_level_metadata_t;
+
 typedef enum {
     CAM_EZTUNE_CMD_STATUS,
     CAM_EZTUNE_CMD_AEC_ENABLE,