sdm: Set layer frame rate if not specified.
Set current refresh rate to external layers and
max refresh rate to virtual layers.
CRs-Fixed: 1098053, 1081429
Change-Id: Iae9e809d8d17c77d666a9e413a727c5f7f763170
diff --git a/sdm/libs/core/fb/hw_virtual.cpp b/sdm/libs/core/fb/hw_virtual.cpp
index 455d0d2..21017a5 100644
--- a/sdm/libs/core/fb/hw_virtual.cpp
+++ b/sdm/libs/core/fb/hw_virtual.cpp
@@ -51,10 +51,6 @@
}
DisplayError HWVirtual::GetMixerAttributes(HWMixerAttributes *mixer_attributes) {
- if (!mixer_attributes) {
- return kErrorParameters;
- }
-
mixer_attributes->width = display_attributes_.x_pixels;
mixer_attributes->height = display_attributes_.y_pixels;
mixer_attributes_.split_left = display_attributes_.is_device_split ?
@@ -77,5 +73,14 @@
return kErrorNone;
}
+DisplayError HWVirtual::GetDisplayAttributes(uint32_t index,
+ HWDisplayAttributes *display_attributes) {
+ display_attributes->fps = 60;
+ // TODO(user): Need to update WB fps
+
+ return kErrorNone;
+}
+
+
} // namespace sdm
diff --git a/sdm/libs/core/fb/hw_virtual.h b/sdm/libs/core/fb/hw_virtual.h
index eb82731..1c204cd 100644
--- a/sdm/libs/core/fb/hw_virtual.h
+++ b/sdm/libs/core/fb/hw_virtual.h
@@ -38,6 +38,8 @@
}
virtual DisplayError GetMixerAttributes(HWMixerAttributes *mixer_attributes);
virtual DisplayError SetDisplayAttributes(const HWDisplayAttributes &display_attributes);
+ virtual DisplayError GetDisplayAttributes(uint32_t index,
+ HWDisplayAttributes *display_attributes);
protected:
virtual DisplayError Init();
diff --git a/sdm/libs/hwc/hwc_display_external.cpp b/sdm/libs/hwc/hwc_display_external.cpp
index 5b277c7..a535819 100644
--- a/sdm/libs/hwc/hwc_display_external.cpp
+++ b/sdm/libs/hwc/hwc_display_external.cpp
@@ -284,6 +284,8 @@
metadata_refresh_rate_ = current_refresh_rate_;
}
layer->frame_rate = current_refresh_rate_;
+ } else if (!layer->frame_rate) {
+ layer->frame_rate = current_refresh_rate_;
}
}