Snap for 4625912 from feda861bb4a8d792ddbd2bd00917b4f324db87c2 to pi-release

Change-Id: Ib484346cff8ca194d43083c8a9c91cd03c57aa83
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 @@
     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 @@
     }
 
     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 @@
 
     // data source
     virtual bool setDataBuffer(buffer_handle_t handle);
-
+    virtual void resetCurrentBuffer();
     virtual void invalidateBufferCache();
 
     // display device