display: Add support for dynamic refresh rate
- The primary panels refresh rate can be change by clients
- Required refresh rate will be set by client using metadata
- If there are multiple clients requesting, it will be used only
when the refresh rates are equal, else it resets to default
- Set the new refresh rate only when there are only YUV layers
updating or when the list has only one RGB layer updating
- MdpVersion gets the dyn fps capabilities from panelInfo
Change-Id: If3e7e6b2f028eb301399c4d32c748eed8a97c41f
diff --git a/libqdutils/mdp_version.h b/libqdutils/mdp_version.h
index 1ddad70..dd1aa3d 100644
--- a/libqdutils/mdp_version.h
+++ b/libqdutils/mdp_version.h
@@ -92,9 +92,13 @@
int mMinROIWidth; // Min width needed for ROI
int mMinROIHeight; // Min height needed for ROI
bool mNeedsROIMerge; // Merge ROI's of both the DSI's
+ bool mDynFpsSupported; // Panel Supports dyn fps
+ uint32_t mMinFps; // Min fps supported by panel
+ uint32_t mMaxFps; // Max fps supported by panel
PanelInfo() : mType(NO_PANEL), mPartialUpdateEnable(0),
mLeftAlign(0), mWidthAlign(0), mTopAlign(0), mHeightAlign(0),
- mMinROIWidth(0), mMinROIHeight(0), mNeedsROIMerge(false){}
+ mMinROIWidth(0), mMinROIHeight(0), mNeedsROIMerge(false),
+ mDynFpsSupported(0), mMinFps(0), mMaxFps(0) {}
friend class MDPVersion;
};
@@ -130,6 +134,9 @@
unsigned long getLowBw() { return mLowBw; }
unsigned long getHighBw() { return mHighBw; }
bool isRotDownscaleEnabled() { return mRotDownscale; }
+ bool isDynFpsSupported() { return mPanelInfo.mDynFpsSupported; }
+ uint32_t getMinFpsSupported() { return mPanelInfo.mMinFps; }
+ uint32_t getMaxFpsSupported() { return mPanelInfo.mMaxFps; }
int getMaxMixerWidth() const { return mMaxMixerWidth; }
bool isSrcSplit() const;
bool isSrcSplitAlways() const;