hwc: Support single ROI for split panels.
For panels that cannot accept commands in both the interfaces, we cannot
send two ROI's (for each half). We merge them into single ROI and split
them across lSplit for MDP mixer use. The ROI's will be merged again
finally before updating the panel in the driver.
- Reads panel property of dual control path.
- If dual control path not supported, merge ROI's before
analysing for composition strategies.
Change-Id: I67e361a299dc5d1adb28b180900e24633eefc4a8
diff --git a/libqdutils/mdp_version.h b/libqdutils/mdp_version.h
index fa137c0..8cc789b 100644
--- a/libqdutils/mdp_version.h
+++ b/libqdutils/mdp_version.h
@@ -101,9 +101,10 @@
int mHeightAlign; // ROI height alignment restriction
int mMinROIWidth; // Min width needed for ROI
int mMinROIHeight; // Min height needed for ROI
+ bool mNeedsROIMerge; // Merge ROI's of both the DSI's
PanelInfo() : mType(NO_PANEL), mPartialUpdateEnable(0),
mLeftAlign(0), mWidthAlign(0), mTopAlign(0), mHeightAlign(0),
- mMinROIWidth(0), mMinROIHeight(0){}
+ mMinROIWidth(0), mMinROIHeight(0), mNeedsROIMerge(false){}
friend class MDPVersion;
};
@@ -135,6 +136,7 @@
int getHeightAlign() { return mPanelInfo.mHeightAlign; }
int getMinROIWidth() { return mPanelInfo.mMinROIWidth; }
int getMinROIHeight() { return mPanelInfo.mMinROIHeight; }
+ bool needsROIMerge() { return mPanelInfo.mNeedsROIMerge; }
unsigned long getLowBw() { return mLowBw; }
unsigned long getHighBw() { return mHighBw; }
bool isSrcSplit() const;