libhwc2.1: remove unnecessary property_get

First, we remove property_get for checking the camera preview.
This is probably a legacy code which we don't use anymore.

Second, we remove unnecessary call to ExynosCompositionInfo's
constructor which contains a property_get.

Test: simpleperf profiler
Bug: 205901755
Change-Id: I1f7aba3cdfbbb7f75f3dd39c9ed06dc5366f07ac
diff --git a/libhwc2.1/libdevice/ExynosDisplay.cpp b/libhwc2.1/libdevice/ExynosDisplay.cpp
index 87749b3..8ceacdb 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.cpp
+++ b/libhwc2.1/libdevice/ExynosDisplay.cpp
@@ -934,9 +934,6 @@
         (mDevice->mDisplayMode != exynosHWCControl.displayMode))
         setGeometryChanged(GEOMETRY_DEVICE_DISP_MODE_CHAGED);
 
-    if ((ret = mResourceManager->checkScenario(this)) != NO_ERROR)
-        DISPLAY_LOGE("checkScenario error ret(%d)", ret);
-
     if (exynosHWCControl.skipResourceAssign == 0) {
         /* Set any flag to mGeometryChanged */
         setGeometryChanged(GEOMETRY_DEVICE_SCENARIO_CHANGED);
@@ -4282,14 +4279,14 @@
 
 int32_t ExynosDisplay::setCompositionTargetExynosImage(uint32_t targetType, exynos_image *src_img, exynos_image *dst_img)
 {
-    ExynosCompositionInfo compositionInfo;
+    std::optional<ExynosCompositionInfo> compositionInfo;
 
     if (targetType == COMPOSITION_CLIENT)
         compositionInfo = mClientCompositionInfo;
     else if (targetType == COMPOSITION_EXYNOS)
         compositionInfo = mExynosCompositionInfo;
-    else
-        return -EINVAL;
+
+    if (!compositionInfo) return -EINVAL;
 
     src_img->fullWidth = mXres;
     src_img->fullHeight = mYres;
@@ -4300,10 +4297,10 @@
     src_img->w = mXres;
     src_img->h = mYres;
 
-    if (compositionInfo.mTargetBuffer != NULL) {
-        src_img->bufferHandle = compositionInfo.mTargetBuffer;
+    if (compositionInfo->mTargetBuffer != NULL) {
+        src_img->bufferHandle = compositionInfo->mTargetBuffer;
 
-        VendorGraphicBufferMeta gmeta(compositionInfo.mTargetBuffer);
+        VendorGraphicBufferMeta gmeta(compositionInfo->mTargetBuffer);
         src_img->format = gmeta.format;
         src_img->usageFlags = gmeta.producer_usage;
     } else {
@@ -4312,16 +4309,16 @@
         src_img->usageFlags = 0;
     }
     src_img->layerFlags = 0x0;
-    src_img->acquireFenceFd = compositionInfo.mAcquireFence;
+    src_img->acquireFenceFd = compositionInfo->mAcquireFence;
     src_img->releaseFenceFd = -1;
-    src_img->dataSpace = compositionInfo.mDataSpace;
+    src_img->dataSpace = compositionInfo->mDataSpace;
     src_img->blending = HWC2_BLEND_MODE_PREMULTIPLIED;
     src_img->transform = 0;
-    src_img->compressed = compositionInfo.mCompressed;
+    src_img->compressed = compositionInfo->mCompressed;
     src_img->planeAlpha = 1;
     src_img->zOrder = 0;
     if ((targetType == COMPOSITION_CLIENT) && (mType == HWC_DISPLAY_VIRTUAL)) {
-        if (compositionInfo.mLastIndex < mExynosCompositionInfo.mLastIndex)
+        if (compositionInfo->mLastIndex < mExynosCompositionInfo.mLastIndex)
             src_img->zOrder = 0;
         else
             src_img->zOrder = 1000;
@@ -4348,7 +4345,7 @@
         dst_img->dataSpace = colorModeToDataspace(mColorMode);
     dst_img->blending = HWC2_BLEND_MODE_NONE;
     dst_img->transform = 0;
-    dst_img->compressed = compositionInfo.mCompressed;
+    dst_img->compressed = compositionInfo->mCompressed;
     dst_img->planeAlpha = 1;
     dst_img->zOrder = src_img->zOrder;
 
diff --git a/libhwc2.1/libresource/ExynosResourceManager.cpp b/libhwc2.1/libresource/ExynosResourceManager.cpp
index 502baac..70eac92 100644
--- a/libhwc2.1/libresource/ExynosResourceManager.cpp
+++ b/libhwc2.1/libresource/ExynosResourceManager.cpp
@@ -376,41 +376,6 @@
     return ret;
 }
 
-int32_t ExynosResourceManager::checkScenario(ExynosDisplay __unused *display)
-{
-    uint32_t prevResourceReserved = mResourceReserved;
-    mResourceReserved = 0x0;
-    /* Check whether camera preview is running */
-    ExynosDisplay *exynosDisplay = NULL;
-    for (uint32_t i = 0; i < mDevice->mDisplays.size(); i++) {
-        exynosDisplay = mDevice->mDisplays[i];
-        if ((exynosDisplay != NULL) && (exynosDisplay->mPlugState == true)) {
-            for (uint32_t i = 0; i < exynosDisplay->mLayers.size(); i++) {
-                ExynosLayer *layer = exynosDisplay->mLayers[i];
-                VendorGraphicBufferMeta gmeta(layer->mLayerBuffer);
-                if ((layer->mLayerBuffer != NULL) &&
-                    (gmeta.producer_usage & BufferUsage::CAMERA_OUTPUT)) {
-                    mResourceReserved |= (MPP_LOGICAL_G2D_YUV | MPP_LOGICAL_G2D_RGB);
-                    break;
-                }
-            }
-        }
-    }
-
-    char value[PROPERTY_VALUE_MAX];
-    bool preview;
-    property_get("persist.vendor.sys.camera.preview", value, "0");
-    preview = !!atoi(value);
-    if (preview)
-        mResourceReserved |= (MPP_LOGICAL_G2D_YUV | MPP_LOGICAL_G2D_RGB);
-
-    if (prevResourceReserved != mResourceReserved) {
-        mDevice->setGeometryChanged(GEOMETRY_DEVICE_SCENARIO_CHANGED);
-    }
-
-    return NO_ERROR;
-}
-
 /**
  * @param * display
  * @return int
diff --git a/libhwc2.1/libresource/ExynosResourceManager.h b/libhwc2.1/libresource/ExynosResourceManager.h
index f440d92..853fe1e 100644
--- a/libhwc2.1/libresource/ExynosResourceManager.h
+++ b/libhwc2.1/libresource/ExynosResourceManager.h
@@ -141,7 +141,6 @@
         int32_t assignLayers(ExynosDisplay *display, uint32_t priority);
         virtual int32_t assignLayer(ExynosDisplay *display, ExynosLayer *layer, uint32_t layer_index,
                 exynos_image &m2m_out_img, ExynosMPP **m2mMPP, ExynosMPP **otfMPP, uint32_t &overlayInfo);
-        virtual int32_t checkScenario(ExynosDisplay *display);
         virtual int32_t assignWindow(ExynosDisplay *display);
         int32_t updateResourceState();
         static float getResourceUsedCapa(ExynosMPP &mpp);