QCamera3: add Easel firmware version to exif

Bug: 36723642

Change-Id: I3628306c07afeec8e4340ccfb111f81605a77ba6
Signed-off-by: Arnd Geis <arndg@google.com>
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index c3672b1..b74cfa3 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -565,6 +565,8 @@
     memset(&mInputStreamInfo, 0, sizeof(mInputStreamInfo));
     memset(mLdafCalib, 0, sizeof(mLdafCalib));
 
+    memset(mEaselFwVersion, 0, sizeof(mEaselFwVersion));
+
     memset(prop, 0, sizeof(prop));
     property_get("persist.camera.tnr.preview", prop, "0");
     m_bTnrPreview = (uint8_t)atoi(prop);
@@ -10691,7 +10693,7 @@
         if (eepromLength + sizeof(easelInfo) < MAX_EEPROM_VERSION_INFO_LEN) {
             eepromLength += sizeof(easelInfo);
             strlcat(eepromInfo, ((gEaselManagerClient != nullptr &&
-                    gEaselManagerClient->isEaselPresentOnDevice()) ? ",E:Y" : ",E:N"),
+                    gEaselManagerClient->isEaselPresentOnDevice()) ? ",E-ver" : ",E:N"),
                     MAX_EEPROM_VERSION_INFO_LEN);
         }
         staticInfo.update(NEXUS_EXPERIMENTAL_2017_EEPROM_VERSION_INFO,
@@ -14014,6 +14016,32 @@
 }
 
 /*===========================================================================
+* FUNCTION   : getEaselFwVersion
+*
+* DESCRIPTION: Retrieve Easel firmware version
+*
+* PARAMETERS : None
+*
+* RETURN     : string describing Firmware version
+*              "\0" if Easel manager client is not open
+*==========================================================================*/
+const char *QCamera3HardwareInterface::getEaselFwVersion()
+{
+    int rc = NO_ERROR;
+
+    std::unique_lock<std::mutex> l(gHdrPlusClientLock);
+    ALOGD("%s: Querying Easel firmware version", __FUNCTION__);
+    if (EaselManagerClientOpened) {
+        rc = gEaselManagerClient->getFwVersion(mEaselFwVersion);
+        if (rc != OK)
+            ALOGD("%s: Failed to query Easel firmware version", __FUNCTION__);
+        else
+            return (const char *)&mEaselFwVersion[0];
+    }
+    return NULL;
+}
+
+/*===========================================================================
  * FUNCTION   : dynamicUpdateMetaStreamInfo
  *
  * DESCRIPTION: This function: