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/QCamera3Channel.cpp b/msm8998/QCamera2/HAL3/QCamera3Channel.cpp
index fd0c9c4..59996aa 100644
--- a/msm8998/QCamera2/HAL3/QCamera3Channel.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3Channel.cpp
@@ -3961,19 +3961,25 @@
// Image description
const char *eepromVersion = hal_obj->getEepromVersionInfo();
const uint32_t *ldafCalib = hal_obj->getLdafCalib();
+ const char *easelFwVersion = hal_obj->getEaselFwVersion();
if ((eepromVersion && strlen(eepromVersion)) ||
ldafCalib) {
int len = 0;
settings->image_desc_valid = true;
if (eepromVersion && strlen(eepromVersion)) {
len = snprintf(settings->image_desc, sizeof(settings->image_desc),
- "%s ", eepromVersion);
+ "%s", eepromVersion);
}
if (ldafCalib) {
- snprintf(settings->image_desc + len,
+ len += snprintf(settings->image_desc + len,
sizeof(settings->image_desc) - len, "L:%u-%u",
ldafCalib[0], ldafCalib[1]);
}
+ if (easelFwVersion) {
+ ALOGD("%s: Easel FW version %s", __FUNCTION__, easelFwVersion);
+ len += snprintf(settings->image_desc + len,
+ sizeof(settings->image_desc) - len, ":%s", easelFwVersion);
+ }
}
return m_postprocessor.processJpegSettingData(settings);
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:
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.h b/msm8998/QCamera2/HAL3/QCamera3HWI.h
index 0746c11..e17ff7b 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.h
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.h
@@ -343,6 +343,7 @@
char (&flashNode)[QCAMERA_MAX_FILEPATH_LENGTH]);
const char *getEepromVersionInfo();
const uint32_t *getLdafCalib();
+ const char *getEaselFwVersion();
void get3AVersion(cam_q3a_version_t &swVersion);
static void setBufferErrorStatus(QCamera3Channel*, uint32_t frameNumber,
camera3_buffer_status_t err, void *userdata);
@@ -696,7 +697,8 @@
bool mLdafCalibExist;
uint32_t mLdafCalib[2];
int32_t mLastCustIntentFrmNum;
-
+ // Easel firmware version
+ char mEaselFwVersion[FW_VER_SIZE];
static const QCameraMap<camera_metadata_enum_android_control_effect_mode_t,
cam_effect_mode_type> EFFECT_MODES_MAP[];
static const QCameraMap<camera_metadata_enum_android_control_awb_mode_t,