diff options
Diffstat (limited to 'merrifield')
-rw-r--r-- | merrifield/common/planes/DisplayPlane.cpp | 6 | ||||
-rw-r--r-- | merrifield/common/planes/DisplayPlaneManager.cpp | 1 | ||||
-rw-r--r-- | merrifield/include/DisplayPlane.h | 2 |
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 |