hwc: Partial update support for dual DSI panels with source
split.
1) When source split is enabled, both the panels are calibrated
in a single coordinate system. So only one ROI is generated
for the whole panel extending equally from the midpoint and
populated for the left side.
2) Fixes a bug in mdpcomp where ROI generated for the frame is
reset when a strategy fails.
Change-Id: I47fa0e827985dd76d06dcbe464ef832cfc57a671
diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp
index 9ea8246..43d9911 100644
--- a/libhwcomposer/hwc_utils.cpp
+++ b/libhwcomposer/hwc_utils.cpp
@@ -2634,7 +2634,13 @@
void resetROI(hwc_context_t *ctx, const int dpy) {
const int fbXRes = (int)ctx->dpyAttr[dpy].xres;
const int fbYRes = (int)ctx->dpyAttr[dpy].yres;
- if(isDisplaySplit(ctx, dpy)) {
+
+ /* When source split is enabled, both the panels are calibrated
+ * in a single coordinate system. So only one ROI is generated
+ * for the whole panel extending equally from the midpoint and
+ * populated for the left side. */
+ if(!qdutils::MDPVersion::getInstance().isSrcSplit() &&
+ isDisplaySplit(ctx, dpy)) {
const int lSplit = getLeftSplit(ctx, dpy);
ctx->listStats[dpy].lRoi = (struct hwc_rect){0, 0, lSplit, fbYRes};
ctx->listStats[dpy].rRoi = (struct hwc_rect){lSplit, 0, fbXRes, fbYRes};