[automerger skipped] hwc2: add locks for callback functions am: 9bac9d39bb -s ours

am skip reason: Change-Id I3b29c2e17f3a8968348d0d0a29feaca287d4c72c with SHA-1 ccf7cd3bf2 is in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/qcom/display/+/11902570

Change-Id: I70a2cbe7abb89a1653df2c04e872fe6af303e7ce
diff --git a/msm8909/gpu_tonemapper/Android.mk b/msm8909/gpu_tonemapper/Android.mk
index 8b7a866..8da0628 100644
--- a/msm8909/gpu_tonemapper/Android.mk
+++ b/msm8909/gpu_tonemapper/Android.mk
@@ -17,7 +17,7 @@
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps) $(kernel_deps)
 
 LOCAL_CFLAGS              := $(version_flag) -Wno-missing-field-initializers -Wall \
-                             -Wno-unused-parameter -std=c++11 -DLOG_TAG=\"GPU_TONEMAPPER\"
+                             -Wno-unused-parameter -DLOG_TAG=\"GPU_TONEMAPPER\"
 
 LOCAL_SRC_FILES           := TonemapFactory.cpp \
                              glengine.cpp \
diff --git a/msm8909/libdisplayconfig/Android.mk b/msm8909/libdisplayconfig/Android.mk
index 3d44444..de8b260 100644
--- a/msm8909/libdisplayconfig/Android.mk
+++ b/msm8909/libdisplayconfig/Android.mk
@@ -6,7 +6,7 @@
 LOCAL_C_INCLUDES              := $(common_includes)
 LOCAL_HEADER_LIBRARIES        := display_headers
 LOCAL_SRC_FILES               := DisplayConfig.cpp
-LOCAL_SHARED_LIBRARIES        := libhidlbase libhidltransport libutils \
+LOCAL_SHARED_LIBRARIES        := libhidlbase libutils \
                                  vendor.display.config@1.0
 LOCAL_EXPORT_C_INCLUDE_DIRS   := $(LOCAL_PATH)
 
diff --git a/msm8909/sdm/libs/hwc/Android.mk b/msm8909/sdm/libs/hwc/Android.mk
index 11495b9..6b7aa6c 100644
--- a/msm8909/sdm/libs/hwc/Android.mk
+++ b/msm8909/sdm/libs/hwc/Android.mk
@@ -11,7 +11,7 @@
 LOCAL_HEADER_LIBRARIES        := display_headers
 
 LOCAL_CFLAGS                  := $(common_flags) -Wno-missing-field-initializers -Wno-unused-parameter \
-                                 -std=c++11 -fcolor-diagnostics -Wno-sign-conversion -DLOG_TAG=\"SDM\"
+                                 -fcolor-diagnostics -Wno-sign-conversion -DLOG_TAG=\"SDM\"
 LOCAL_CLANG                   := true
 
 LOCAL_SHARED_LIBRARIES        := libsdmcore libqservice libbinder libhardware libhardware_legacy \
@@ -20,7 +20,7 @@
                                  libdrmutils libui
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_display.cpp \
diff --git a/msm8909/sdm/libs/hwc2/Android.mk b/msm8909/sdm/libs/hwc2/Android.mk
index b2d0078..22e101b 100644
--- a/msm8909/sdm/libs/hwc2/Android.mk
+++ b/msm8909/sdm/libs/hwc2/Android.mk
@@ -12,7 +12,7 @@
 LOCAL_HEADER_LIBRARIES        := display_headers
 
 LOCAL_CFLAGS                  := -Wno-missing-field-initializers -Wno-unused-parameter \
-                                 -std=c++11 -fcolor-diagnostics\
+                                 -fcolor-diagnostics\
                                  -DLOG_TAG=\"SDM\" $(common_flags) \
                                  -I $(display_top)/sdm/libs/hwc
 ifeq ($(TARGET_EXCLUDES_DISPLAY_PP), true)
@@ -28,7 +28,7 @@
 LOCAL_SHARED_LIBRARIES        := libsdmcore libqservice libbinder libhardware libhardware_legacy \
                                  libutils libcutils libsync libqdutils libqdMetaData libdl libdrmutils \
                                  libsdmutils libc++ liblog libgrallocutils libdl \
-                                 vendor.display.config@1.0 libhidlbase libhidltransport \
+                                 vendor.display.config@1.0 libhidlbase \
                                  libui libgpu_tonemapper
 
 ifneq ($(TARGET_USES_GRALLOC1), true)
@@ -40,7 +40,7 @@
 endif
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_session_services.cpp \
diff --git a/msm8909w_3100/gpu_tonemapper/Android.mk b/msm8909w_3100/gpu_tonemapper/Android.mk
index a2471e5..20e86b1 100644
--- a/msm8909w_3100/gpu_tonemapper/Android.mk
+++ b/msm8909w_3100/gpu_tonemapper/Android.mk
@@ -15,7 +15,7 @@
 LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps) $(kernel_deps)
 
 LOCAL_CFLAGS              := $(version_flag) -Wno-missing-field-initializers -Wall \
-                             -Wno-unused-parameter -std=c++11 -DLOG_TAG=\"GPU_TONEMAPPER\"
+                             -Wno-unused-parameter -DLOG_TAG=\"GPU_TONEMAPPER\"
 
 LOCAL_SRC_FILES           := TonemapFactory.cpp \
                              glengine.cpp \
diff --git a/msm8909w_3100/libdisplayconfig/Android.mk b/msm8909w_3100/libdisplayconfig/Android.mk
index f6f1d3e..40b96e6 100644
--- a/msm8909w_3100/libdisplayconfig/Android.mk
+++ b/msm8909w_3100/libdisplayconfig/Android.mk
@@ -7,7 +7,7 @@
 LOCAL_HEADER_LIBRARIES        := display_headers
 LOCAL_COPY_HEADERS            := DisplayConfig.h
 LOCAL_SRC_FILES               := DisplayConfig.cpp
-LOCAL_SHARED_LIBRARIES        := libhidlbase libhidltransport libutils \
+LOCAL_SHARED_LIBRARIES        := libhidlbase libutils \
                                  vendor.display.config@1.0
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/msm8909w_3100/sdm/libs/hwc/Android.mk b/msm8909w_3100/sdm/libs/hwc/Android.mk
index 11495b9..6b7aa6c 100644
--- a/msm8909w_3100/sdm/libs/hwc/Android.mk
+++ b/msm8909w_3100/sdm/libs/hwc/Android.mk
@@ -11,7 +11,7 @@
 LOCAL_HEADER_LIBRARIES        := display_headers
 
 LOCAL_CFLAGS                  := $(common_flags) -Wno-missing-field-initializers -Wno-unused-parameter \
-                                 -std=c++11 -fcolor-diagnostics -Wno-sign-conversion -DLOG_TAG=\"SDM\"
+                                 -fcolor-diagnostics -Wno-sign-conversion -DLOG_TAG=\"SDM\"
 LOCAL_CLANG                   := true
 
 LOCAL_SHARED_LIBRARIES        := libsdmcore libqservice libbinder libhardware libhardware_legacy \
@@ -20,7 +20,7 @@
                                  libdrmutils libui
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_display.cpp \
diff --git a/msm8909w_3100/sdm/libs/hwc2/Android.mk b/msm8909w_3100/sdm/libs/hwc2/Android.mk
index ff16de5..beec1a8 100644
--- a/msm8909w_3100/sdm/libs/hwc2/Android.mk
+++ b/msm8909w_3100/sdm/libs/hwc2/Android.mk
@@ -12,7 +12,7 @@
 LOCAL_HEADER_LIBRARIES        := display_headers
 
 LOCAL_CFLAGS                  := -Wno-missing-field-initializers -Wno-unused-parameter \
-                                 -std=c++11 -fcolor-diagnostics\
+                                 -fcolor-diagnostics\
                                  -DLOG_TAG=\"SDM\" $(common_flags) \
                                  -I $(display_top)/sdm/libs/hwc
 
@@ -25,7 +25,7 @@
 LOCAL_SHARED_LIBRARIES        := libsdmcore libqservice libbinder libhardware libhardware_legacy \
                                  libutils libcutils libsync libqdutils libqdMetaData libdl libdrmutils \
                                  libsdmutils libc++ liblog libgrallocutils libdl \
-                                 vendor.display.config@1.0 libhidlbase libhidltransport \
+                                 vendor.display.config@1.0 libhidlbase \
                                  libui libgpu_tonemapper
 
 ifneq ($(TARGET_USES_GRALLOC1), true)
@@ -33,7 +33,7 @@
 endif
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_session_services.cpp \
diff --git a/msm8996/sdm/libs/hwc/Android.mk b/msm8996/sdm/libs/hwc/Android.mk
index 154b16b..a34e9c8 100644
--- a/msm8996/sdm/libs/hwc/Android.mk
+++ b/msm8996/sdm/libs/hwc/Android.mk
@@ -19,7 +19,7 @@
                                  libpowermanager libsdmutils libc++
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_display.cpp \
diff --git a/msm8996/sdm/libs/hwc2/Android.mk b/msm8996/sdm/libs/hwc2/Android.mk
index f4150b1..a581ab6 100644
--- a/msm8996/sdm/libs/hwc2/Android.mk
+++ b/msm8996/sdm/libs/hwc2/Android.mk
@@ -11,7 +11,7 @@
 LOCAL_C_INCLUDES              := $(common_includes)
 
 LOCAL_CFLAGS                  := -Wno-missing-field-initializers -Wno-unused-parameter \
-                                 -std=c++11 -fcolor-diagnostics\
+                                 -fcolor-diagnostics\
                                  -DLOG_TAG=\"SDM\" $(common_flags) \
                                  -I $(display_top)/sdm/libs/hwc
 
@@ -26,7 +26,7 @@
 endif
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_display.cpp \
diff --git a/msm8998/common.mk b/msm8998/common.mk
index 8c4ea2e..1427261 100644
--- a/msm8998/common.mk
+++ b/msm8998/common.mk
@@ -3,7 +3,7 @@
 
 #Common C flags
 common_flags := -DDEBUG_CALC_FPS -Wno-missing-field-initializers
-common_flags += -Wconversion -Wall -Werror -std=c++14
+common_flags += -Wconversion -Wall -Werror
 common_flags += -DUSE_GRALLOC1
 ifneq ($(TARGET_IS_HEADLESS), true)
     common_flags += -DCOMPILE_DRM
diff --git a/msm8998/gpu_tonemapper/Android.mk b/msm8998/gpu_tonemapper/Android.mk
index fcb66cb..ea1d2e9 100644
--- a/msm8998/gpu_tonemapper/Android.mk
+++ b/msm8998/gpu_tonemapper/Android.mk
@@ -17,7 +17,7 @@
 LOCAL_SHARED_LIBRARIES    := libEGL libGLESv2 libGLESv3 libui libutils liblog
 
 LOCAL_CFLAGS              := $(version_flag) -Wno-missing-field-initializers -Wall \
-                             -Wno-unused-parameter -std=c++11 -DLOG_TAG=\"GPU_TONEMAPPER\"
+                             -Wno-unused-parameter -DLOG_TAG=\"GPU_TONEMAPPER\"
 
 LOCAL_SRC_FILES           := TonemapFactory.cpp \
                              glengine.cpp \
diff --git a/msm8998/libqdutils/profiler.cpp b/msm8998/libqdutils/profiler.cpp
index 810b019..83f549d 100644
--- a/msm8998/libqdutils/profiler.cpp
+++ b/msm8998/libqdutils/profiler.cpp
@@ -185,7 +185,7 @@
     }
     else if (debug_fps_metadata_t::DFM_TIME == debug_fps_metadata.type) {
         debug_fps_metadata.time_elapsed += (float)((float)diff/1000.0);
-        if (debug_fps_metadata.time_elapsed >= debug_fps_metadata.time_period) {
+        if (debug_fps_metadata.time_elapsed >= (float)debug_fps_metadata.time_period) {
             float fps = float(1000.0 * debug_fps_metadata.curr_frame/
                                             debug_fps_metadata.time_elapsed);
             print_fps(fps);
diff --git a/msm8998/sdm/libs/core/display_base.cpp b/msm8998/sdm/libs/core/display_base.cpp
index 6f2966f..257d462 100644
--- a/msm8998/sdm/libs/core/display_base.cpp
+++ b/msm8998/sdm/libs/core/display_base.cpp
@@ -201,8 +201,8 @@
   auto gpu_target_layer_dst_xpixels = out_rect.right - out_rect.left;
   auto gpu_target_layer_dst_ypixels = out_rect.bottom - out_rect.top;
 
-  if (gpu_target_layer_dst_xpixels > mixer_attributes_.width ||
-    gpu_target_layer_dst_ypixels > mixer_attributes_.height) {
+  if (gpu_target_layer_dst_xpixels > layer_mixer_width ||
+    gpu_target_layer_dst_ypixels > layer_mixer_height) {
     DLOGE("GPU target layer dst rect is not with in limits gpu wxh %fx%f, mixer wxh %dx%d",
                   gpu_target_layer_dst_xpixels, gpu_target_layer_dst_ypixels,
                   mixer_attributes_.width, mixer_attributes_.height);
@@ -1179,7 +1179,7 @@
 
     // Align the width and height according to fb's aspect ratio
     *new_mixer_width = FloorToMultipleOf(UINT32((FLOAT(fb_width) / FLOAT(fb_height)) *
-                                         layer_height), align_x);
+                                         FLOAT(layer_height)), align_x);
     *new_mixer_height = FloorToMultipleOf(layer_height, align_y);
 
     LayerRect dst_domain = {0.0f, 0.0f, FLOAT(*new_mixer_width), FLOAT(*new_mixer_height)};
diff --git a/msm8998/sdm/libs/core/display_primary.cpp b/msm8998/sdm/libs/core/display_primary.cpp
index 572dd00..35fdfb0 100644
--- a/msm8998/sdm/libs/core/display_primary.cpp
+++ b/msm8998/sdm/libs/core/display_primary.cpp
@@ -94,8 +94,8 @@
 
   if (needs_hv_flip) {
     DisplayBase::GetFrameBufferConfig(&variable_info);
-    src_domain.right = variable_info.x_pixels;
-    src_domain.bottom = variable_info.y_pixels;
+    src_domain.right = static_cast<float>(variable_info.x_pixels);
+    src_domain.bottom = static_cast<float>(variable_info.y_pixels);
     panel_transform.flip_horizontal = hw_panel_info_.panel_orientation.flip_horizontal;
     panel_transform.flip_vertical = hw_panel_info_.panel_orientation.flip_vertical;
 
diff --git a/msm8998/sdm/libs/core/drm/hw_device_drm.cpp b/msm8998/sdm/libs/core/drm/hw_device_drm.cpp
index 4bbd0f6..f8bf762 100644
--- a/msm8998/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/msm8998/sdm/libs/core/drm/hw_device_drm.cpp
@@ -414,10 +414,10 @@
         // In case of rotation, rotator handles flips
         if (!needs_rotation) {
           if (layer.transform.flip_horizontal) {
-            rot_bit_mask |= 1 << DRM_REFLECT_X;
+            rot_bit_mask |= DRM_MODE_REFLECT_X;
           }
           if (layer.transform.flip_vertical) {
-            rot_bit_mask |= 1 << DRM_REFLECT_Y;
+            rot_bit_mask |= DRM_MODE_REFLECT_Y;
           }
         }
 
@@ -760,7 +760,7 @@
 
   float scale_x = FLOAT(display_attributes_.x_pixels) / FLOAT(mixer_attributes.width);
   float scale_y = FLOAT(display_attributes_.y_pixels) / FLOAT(mixer_attributes.height);
-  float max_scale_up = hw_resource_.hw_dest_scalar_info.max_scale_up;
+  float max_scale_up = FLOAT(hw_resource_.hw_dest_scalar_info.max_scale_up);
   if (scale_x > max_scale_up || scale_y > max_scale_up) {
     DLOGW(
         "Up scaling ratio exceeds for destination scalar upscale limit scale_x %f scale_y %f "
diff --git a/msm8998/sdm/libs/core/fb/hw_device.cpp b/msm8998/sdm/libs/core/fb/hw_device.cpp
index 92dd826..c62917d 100644
--- a/msm8998/sdm/libs/core/fb/hw_device.cpp
+++ b/msm8998/sdm/libs/core/fb/hw_device.cpp
@@ -1333,7 +1333,7 @@
 
   float scale_x = FLOAT(display_attributes_.x_pixels) / FLOAT(mixer_attributes.width);
   float scale_y = FLOAT(display_attributes_.y_pixels) / FLOAT(mixer_attributes.height);
-  float max_scale_up = hw_resource_.hw_dest_scalar_info.max_scale_up;
+  float max_scale_up = FLOAT(hw_resource_.hw_dest_scalar_info.max_scale_up);
   if (scale_x > max_scale_up || scale_y > max_scale_up) {
     DLOGW_IF(kTagDriverConfig, "Up scaling ratio exceeds for destination scalar upscale " \
              "limit scale_x %f scale_y %f max_scale_up %f", scale_x, scale_y, max_scale_up);
diff --git a/msm8998/sdm/libs/core/resource_default.cpp b/msm8998/sdm/libs/core/resource_default.cpp
index 31d8704..bf06153 100644
--- a/msm8998/sdm/libs/core/resource_default.cpp
+++ b/msm8998/sdm/libs/core/resource_default.cpp
@@ -469,7 +469,7 @@
   float dst_width = dst_rect.right - dst_rect.left;
 
   // Layer cannot qualify for SrcSplit if source or destination width exceeds max pipe width.
-  if ((src_width > hw_res_info_.max_pipe_width) || (dst_width > hw_res_info_.max_pipe_width)) {
+  if ((src_width > FLOAT(hw_res_info_.max_pipe_width)) || (dst_width > FLOAT(hw_res_info_.max_pipe_width))) {
     SplitRect(src_rect, dst_rect, &left_pipe->src_roi, &left_pipe->dst_roi, &right_pipe->src_roi,
               &right_pipe->dst_roi);
     left_pipe->valid = true;
diff --git a/msm8998/sdm/libs/core/strategy.cpp b/msm8998/sdm/libs/core/strategy.cpp
index 8398bbd..6cf40b8 100644
--- a/msm8998/sdm/libs/core/strategy.cpp
+++ b/msm8998/sdm/libs/core/strategy.cpp
@@ -174,8 +174,8 @@
     return;
   }
 
-  float layer_mixer_width = mixer_attributes_.width;
-  float layer_mixer_height = mixer_attributes_.height;
+  float layer_mixer_width = FLOAT(mixer_attributes_.width);
+  float layer_mixer_height = FLOAT(mixer_attributes_.height);
 
   if (!hw_resource_info_.is_src_split && display_attributes_.is_device_split) {
     split_display = true;
diff --git a/msm8998/sdm/libs/hwc2/Android.mk b/msm8998/sdm/libs/hwc2/Android.mk
index bfba7b6..7014564 100644
--- a/msm8998/sdm/libs/hwc2/Android.mk
+++ b/msm8998/sdm/libs/hwc2/Android.mk
@@ -12,7 +12,7 @@
 LOCAL_HEADER_LIBRARIES        := display_headers
 
 LOCAL_CFLAGS                  := -Wno-missing-field-initializers -Wno-unused-parameter \
-                                 -std=c++11 -fcolor-diagnostics\
+                                 -fcolor-diagnostics\
                                  -DLOG_TAG=\"SDM\" $(common_flags)
 LOCAL_CLANG                   := true
 
@@ -21,7 +21,7 @@
                                  libsdmutils libc++ liblog libdrmutils libui libgpu_tonemapper
 
 # Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS                  += -Wno-error=implicit-fallthrough
+LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
 
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_display.cpp \
@@ -38,9 +38,6 @@
                                  hwc_socket_handler.cpp \
                                  hwc_buffer_allocator.cpp
 
-# Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
-LOCAL_CFLAGS += -Wno-error=implicit-fallthrough
-
 ifeq ($(TARGET_HAS_WIDE_COLOR_DISPLAY), true)
     LOCAL_CFLAGS += -DFEATURE_WIDE_COLOR
 endif
diff --git a/msm8998/sdm/libs/hwc2/hwc_display.cpp b/msm8998/sdm/libs/hwc2/hwc_display.cpp
index 498c05d..46abc14 100644
--- a/msm8998/sdm/libs/hwc2/hwc_display.cpp
+++ b/msm8998/sdm/libs/hwc2/hwc_display.cpp
@@ -545,8 +545,8 @@
       layer_buffer->release_fence_fd = -1;
       layer->src_rect.left = 0;
       layer->src_rect.top = 0;
-      layer->src_rect.right = layer_buffer->width;
-      layer->src_rect.bottom = layer_buffer->height;
+      layer->src_rect.right = FLOAT(layer_buffer->width);
+      layer->src_rect.bottom = FLOAT(layer_buffer->height);
     }
 
     if (layer->frame_rate > metadata_refresh_rate_) {
@@ -1715,8 +1715,8 @@
 
     LayerRect rect;
     rect.top = 0; rect.left = 0;
-    rect.right = primary_width;
-    rect.bottom = primary_height;
+    rect.right = FLOAT(primary_width);
+    rect.bottom = FLOAT(primary_height);
 
     solid_fill_layer_->composition = kCompositionGPU;
     solid_fill_layer_->src_rect = rect;
diff --git a/msm8998/sdm/libs/hwc2/hwc_display_external.cpp b/msm8998/sdm/libs/hwc2/hwc_display_external.cpp
index f4878c8..14a5dd8 100644
--- a/msm8998/sdm/libs/hwc2/hwc_display_external.cpp
+++ b/msm8998/sdm/libs/hwc2/hwc_display_external.cpp
@@ -154,8 +154,8 @@
     return;
   }
 
-  uint32_t new_mixer_width = UINT32(mixer_width * FLOAT(1.0f - width_ratio));
-  uint32_t new_mixer_height = UINT32(mixer_height * FLOAT(1.0f - height_ratio));
+  uint32_t new_mixer_width = UINT32(FLOAT(mixer_width) * (1.0f - width_ratio));
+  uint32_t new_mixer_height = UINT32(FLOAT(mixer_height) * (1.0f - height_ratio));
 
   int x_offset = INT((FLOAT(mixer_width) * width_ratio) / 2.0f);
   int y_offset = INT((FLOAT(mixer_height) * height_ratio) / 2.0f);
diff --git a/msm8998/sdm/libs/hwc2/hwc_layers.cpp b/msm8998/sdm/libs/hwc2/hwc_layers.cpp
index ea8841b..ee145f5 100644
--- a/msm8998/sdm/libs/hwc2/hwc_layers.cpp
+++ b/msm8998/sdm/libs/hwc2/hwc_layers.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014-2017, 2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2017, 2019-2020, The Linux Foundation. All rights reserved.
  * Not a Contribution.
  *
  * Copyright 2015 The Android Open Source Project
@@ -592,6 +592,7 @@
       format = kFormatYCrCb420PlanarStride16;
       break;
     case HAL_PIXEL_FORMAT_YCrCb_420_SP:
+    case HAL_PIXEL_FORMAT_NV21_ZSL:
       format = kFormatYCrCb420SemiPlanar;
       break;
     case HAL_PIXEL_FORMAT_YCbCr_420_SP:
@@ -679,7 +680,7 @@
   uint32_t fps = 0;
   uint32_t frame_rate = layer->frame_rate;
   if (getMetaData(handle, GET_REFRESH_RATE, &fps) == 0) {
-    frame_rate = RoundToStandardFPS(fps);
+    frame_rate = RoundToStandardFPS(FLOAT(fps));
   }
 
   int32_t interlaced = 0;