Merge "sdm: Fix Dynamic frame rate issue"
diff --git a/sdm/libs/hwc/hwc_display_external.cpp b/sdm/libs/hwc/hwc_display_external.cpp
index 8e866b6..ed916d4 100644
--- a/sdm/libs/hwc/hwc_display_external.cpp
+++ b/sdm/libs/hwc/hwc_display_external.cpp
@@ -51,6 +51,7 @@
uint32_t external_width = 0;
uint32_t external_height = 0;
int drc_enabled = 0;
+ int drc_reset_fps_enabled = 0;
DisplayError error = kErrorNone;
HWCDisplay *hwc_display_external = new HWCDisplayExternal(core_intf, hwc_procs, qservice);
@@ -89,6 +90,10 @@
HWCDebugHandler::Get()->GetProperty("sdm.hdmi.drc_enabled", &(drc_enabled));
reinterpret_cast<HWCDisplayExternal *>(hwc_display_external)->drc_enabled_ = drc_enabled;
+ HWCDebugHandler::Get()->GetProperty("sdm.hdmi.drc_reset_fps", &(drc_reset_fps_enabled));
+ reinterpret_cast<HWCDisplayExternal *>(hwc_display_external)->drc_reset_fps_enabled_ =
+ drc_reset_fps_enabled;
+
*hwc_display = hwc_display_external;
return status;
@@ -299,6 +304,12 @@
return metadata_refresh_rate_;
}
+ if (drc_reset_fps_enabled_) {
+ DisplayConfigVariableInfo fb_config;
+ display_intf_->GetFrameBufferConfig(&fb_config);
+ return (fb_config.fps * 1000);
+ }
+
return current_refresh_rate_;
}
diff --git a/sdm/libs/hwc/hwc_display_external.h b/sdm/libs/hwc/hwc_display_external.h
index 8708e91..ac70489 100644
--- a/sdm/libs/hwc/hwc_display_external.h
+++ b/sdm/libs/hwc/hwc_display_external.h
@@ -46,6 +46,7 @@
virtual uint32_t RoundToStandardFPS(float fps);
virtual void PrepareDynamicRefreshRate(Layer *layer);
int drc_enabled_ = 0;
+ int drc_reset_fps_enabled_ = 0;
private:
HWCDisplayExternal(CoreInterface *core_intf, hwc_procs_t const **hwc_procs,