summaryrefslogtreecommitdiff
path: root/merrifield
diff options
context:
space:
mode:
Diffstat (limited to 'merrifield')
-rw-r--r--merrifield/common/planes/DisplayPlane.cpp6
-rw-r--r--merrifield/common/planes/DisplayPlaneManager.cpp1
-rw-r--r--merrifield/include/DisplayPlane.h2
3 files changed, 8 insertions, 1 deletions
diff --git a/merrifield/common/planes/DisplayPlane.cpp b/merrifield/common/planes/DisplayPlane.cpp
index 2a1ca51..cbab8e0 100644
--- a/merrifield/common/planes/DisplayPlane.cpp
+++ b/merrifield/common/planes/DisplayPlane.cpp
@@ -326,6 +326,12 @@ void DisplayPlane::invalidateBufferCache()
mCurrentDataBuffer = 0;
}
+void DisplayPlane::resetCurrentBuffer()
+{
+ // reset current data buffer
+ mCurrentDataBuffer = 0;
+}
+
bool DisplayPlane::assignToDevice(int disp)
{
RETURN_FALSE_IF_NOT_INIT();
diff --git a/merrifield/common/planes/DisplayPlaneManager.cpp b/merrifield/common/planes/DisplayPlaneManager.cpp
index 1b60d93..0461ef0 100644
--- a/merrifield/common/planes/DisplayPlaneManager.cpp
+++ b/merrifield/common/planes/DisplayPlaneManager.cpp
@@ -269,6 +269,7 @@ void DisplayPlaneManager::reclaimPlane(int dsp, DisplayPlane& plane)
}
putPlane(index, mReclaimedPlanes[type]);
+ plane.resetCurrentBuffer();
// NOTE: don't invalidate plane's data cache here because the reclaimed
// plane might be re-assigned to the same layer later
diff --git a/merrifield/include/DisplayPlane.h b/merrifield/include/DisplayPlane.h
index 250d485..6110152 100644
--- a/merrifield/include/DisplayPlane.h
+++ b/merrifield/include/DisplayPlane.h
@@ -87,7 +87,7 @@ public:
// data source
virtual bool setDataBuffer(buffer_handle_t handle);
-
+ virtual void resetCurrentBuffer();
virtual void invalidateBufferCache();
// display device