diff options
Diffstat (limited to 'msm8909/liboverlay/overlayWriteback.h')
-rw-r--r-- | msm8909/liboverlay/overlayWriteback.h | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/msm8909/liboverlay/overlayWriteback.h b/msm8909/liboverlay/overlayWriteback.h deleted file mode 100644 index 21186e6a..00000000 --- a/msm8909/liboverlay/overlayWriteback.h +++ /dev/null @@ -1,122 +0,0 @@ -/* -* Copyright (c) 2013 The Linux Foundation. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are -* met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of The Linux Foundation. nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -#ifndef OVERLAY_WRITEBACK_H -#define OVERLAY_WRITEBACK_H - -#include "overlayMem.h" - -namespace overlay { - -class WritebackMgr; - -class WritebackMem { -public: - explicit WritebackMem() : mCurrOffsetIndex(0) { - memset(&mOffsets, 0, sizeof(mOffsets)); - } - ~WritebackMem() { dealloc(); } - bool manageMem(uint32_t size, bool isSecure); - void useNextBuffer() { - mCurrOffsetIndex = (mCurrOffsetIndex + 1) % NUM_BUFS; - } - uint32_t getOffset() const { return mOffsets[mCurrOffsetIndex]; } - int getDstFd() const { return mBuf.getFD(); } -private: - bool alloc(uint32_t size, bool isSecure); - bool dealloc(); - enum { NUM_BUFS = 2 }; - OvMem mBuf; - uint32_t mOffsets[NUM_BUFS]; - uint32_t mCurrOffsetIndex; -}; - -//Abstracts the WB2 interface of MDP -//Has modes to either manage memory or work with memory allocated elsewhere -class Writeback { -public: - ~Writeback(); - bool configureDpyInfo(int xres, int yres); - bool configureMemory(uint32_t size); - /* Blocking write. (queue, commit, dequeue) - * This class will do writeback memory management. - * This class will call display-commit on writeback mixer. - */ - bool writeSync(); - /* Blocking write. (queue, commit, dequeue) - * Client must do writeback memory management. - * Client must not call display-commit on writeback mixer. - */ - bool writeSync(int opFd, uint32_t opOffset); - /* Async queue. (Does not write) - * Client must do writeback memory management. - * Client must call display-commit on their own. - * Client must use sync mechanism e.g sync pt. - */ - bool queueBuffer(int opFd, uint32_t opOffset); - uint32_t getOffset() const { return mWbMem.getOffset(); } - int getDstFd() const { return mWbMem.getDstFd(); } - int getWidth() const { return mXres; } - int getHeight() const { return mYres; } - /* Subject to GC if writeback isnt used for a drawing round. - * Get always if caching the value. - */ - int getFbFd() const { return mFd.getFD(); } - int getOutputFormat(); - bool setOutputFormat(int mdpFormat); - bool setSecure(bool isSecure); - - static Writeback* getInstance(); - static void configBegin() { sUsed = false; } - static void configDone(); - static void clear(); - //Will take a dump of data structure only if there is an instance existing - //Returns true if dump is added to the input buffer, false otherwise - static bool getDump(char *buf, size_t len); - -private: - explicit Writeback(); - bool startSession(); - bool stopSession(); - //Actually block_until_write_done for the usage here. - bool dequeueBuffer(); - OvFD mFd; - WritebackMem mWbMem; - struct msmfb_data mFbData; - int mXres; - int mYres; - int mOpFmt; - bool mSecure; - - static bool sUsed; - static Writeback *sWb; -}; - -} - -#endif |