mdp_version.h revision ed2e4f6e223ab95e3d9a8c7c3210324e2fab21f0
1befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed/* 26e146950e61327d425750c1de36bfd70d526acadSushil Chauhan * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. 3befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 4befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * Redistribution and use in source and binary forms, with or without 5befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * modification, are permitted provided that the following conditions are 6befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * met: 7befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * * Redistributions of source code must retain the above copyright 8befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * notice, this list of conditions and the following disclaimer. 9befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * * Redistributions in binary form must reproduce the above 10befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * copyright notice, this list of conditions and the following 11befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * disclaimer in the documentation and/or other materials provided 12befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * with the distribution. 135070c694011ddc30673ec68a9d1d74dc713c49f2Duy Truong * * Neither the name of The Linux Foundation nor the names of its 14befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * contributors may be used to endorse or promote products derived 15befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * from this software without specific prior written permission. 16befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * 17befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 18befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 20befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 21befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 24befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 26befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed */ 29befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 300f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed#ifndef INCLUDE_LIBQCOMUTILS_MDPVER 310f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed#define INCLUDE_LIBQCOMUTILS_MDPVER 32befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 330f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed#include <stdint.h> 340f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed#include <utils/Singleton.h> 350f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed#include <cutils/properties.h> 36befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 370f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed/* This class gets the MSM type from the soc info 380f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed*/ 390f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmedusing namespace android; 400f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmednamespace qdutils { 410f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmedenum mdp_version { 420f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V_UNKNOWN = 0, 430f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V2_2 = 220, 440f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V3_0 = 300, 450f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V3_0_3 = 303, 4666ea016af22283b2dc51ae850841b15a14cacdd0Xiaoming Zhou MDP_V3_0_4 = 304, 470f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V3_1 = 310, 480f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V4_0 = 400, 490f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V4_1 = 410, 500f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V4_2 = 420, 510f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V4_3 = 430, 520f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDP_V4_4 = 440, 530f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDSS_V5 = 500, 54befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed}; 55befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 56e188278e86ebb2f7f1ed3762855f15062b7f9d03Saurabh Shahenum mdp_rev { 57de915f17e0aa7a330fc8edd7ebd0dc3782dd2d44Saurabh Shah MDSS_MDP_HW_REV_100 = 0x10000000, //8974 v1 58e188278e86ebb2f7f1ed3762855f15062b7f9d03Saurabh Shah MDSS_MDP_HW_REV_101 = 0x10010000, //8x26 59de915f17e0aa7a330fc8edd7ebd0dc3782dd2d44Saurabh Shah MDSS_MDP_HW_REV_102 = 0x10020000, //8974 v2 60de915f17e0aa7a330fc8edd7ebd0dc3782dd2d44Saurabh Shah MDSS_MDP_HW_REV_103 = 0x10030000, //Future 61e188278e86ebb2f7f1ed3762855f15062b7f9d03Saurabh Shah}; 62e188278e86ebb2f7f1ed3762855f15062b7f9d03Saurabh Shah 638fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shahenum { 648fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah MAX_DISPLAY_DIM = 2048, 658fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah}; 668fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah 67b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define MDDI_PANEL '1' 68b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define EBI2_PANEL '2' 69b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define LCDC_PANEL '3' 70b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define EXT_MDDI_PANEL '4' 71b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define TV_PANEL '5' 72b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define DTV_PANEL '7' 73b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define MIPI_VIDEO_PANEL '8' 74b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define MIPI_CMD_PANEL '9' 75b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define WRITEBACK_PANEL 'a' 76b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed#define LVDS_PANEL 'b' 77b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed 782e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shahclass MDPVersion; 792e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah 802e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shahstruct Split { 812e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah int mLeft; 822e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah int mRight; 832e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah Split() : mLeft(0), mRight(0){} 842e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah int left() { return mLeft; } 852e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah int right() { return mRight; } 862e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah friend class MDPVersion; 872e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah}; 88b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed 890f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmedclass MDPVersion : public Singleton <MDPVersion> 900f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed{ 910f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmedpublic: 920f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed MDPVersion(); 93da05b4e085dbdd01ffc1c05de4685282e5d4f0e2Xiaoming Zhou ~MDPVersion(); 940f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed int getMDPVersion() {return mMDPVersion;} 95b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed char getPanelType() {return mPanelType;} 960f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed bool hasOverlay() {return mHasOverlay;} 976e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t getTotalPipes() { return (mRGBPipes + mVGPipes + mDMAPipes);} 986e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t getRGBPipes() { return mRGBPipes; } 996e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t getVGPipes() { return mVGPipes; } 1006e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t getDMAPipes() { return mDMAPipes; } 1018fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah bool supportsDecimation(); 1028fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah uint32_t getMaxMDPDownscale(); 10330323b98c1abab90dce91c3d226d4e65a24076fcSushil Chauhan bool supportsBWC(); 104e188278e86ebb2f7f1ed3762855f15062b7f9d03Saurabh Shah bool is8x26(); 105de915f17e0aa7a330fc8edd7ebd0dc3782dd2d44Saurabh Shah bool is8x74v2(); 1062e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah int getLeftSplit() { return mSplit.left(); } 1072e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah int getRightSplit() { return mSplit.right(); } 1080f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmedprivate: 109ed2e4f6e223ab95e3d9a8c7c3210324e2fab21f0manoj kumar amara venkata mastan bool updateSysFsInfo(); 110ed2e4f6e223ab95e3d9a8c7c3210324e2fab21f0manoj kumar amara venkata mastan int tokenizeParams(char *inputParams, const char *delim, 111ed2e4f6e223ab95e3d9a8c7c3210324e2fab21f0manoj kumar amara venkata mastan char* tokenStr[], int *idx); 112da05b4e085dbdd01ffc1c05de4685282e5d4f0e2Xiaoming Zhou int mFd; 1130f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed int mMDPVersion; 114b3c6e058ce1dbc689f27e7d7acbf1529d37307d8Naseer Ahmed char mPanelType; 1150f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed bool mHasOverlay; 1166e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint32_t mMdpRev; 1176e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t mRGBPipes; 1186e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t mVGPipes; 1196e146950e61327d425750c1de36bfd70d526acadSushil Chauhan uint8_t mDMAPipes; 1208fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah uint32_t mFeatures; 1218fe8c938d27e528fcf7fb4a408711b4b6e405f13Saurabh Shah uint32_t mMDPDownscale; 122ed2e4f6e223ab95e3d9a8c7c3210324e2fab21f0manoj kumar amara venkata mastan uint32_t mMDPUpscale; 1232e474227e216ee37ab84a3c9a22ea1f650626231Saurabh Shah Split mSplit; 1240f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed}; 1250f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed}; //namespace qdutils 1260f859f6f0db0e0c05d8c319d8d597ad2731513aeNaseer Ahmed#endif //INCLUDE_LIBQCOMUTILS_MDPVER 127