1 /*
2  * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *   * Redistributions of source code must retain the above copyright
8  *     notice, this list of conditions and the following disclaimer.
9  *   * Redistributions in binary form must reproduce the above
10  *     copyright notice, this list of conditions and the following
11  *     disclaimer in the documentation and/or other materials provided
12  *     with the distribution.
13  *   * Neither the name of The Linux Foundation nor the names of its
14  *     contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #ifndef INCLUDE_LIBQCOMUTILS_MDPVER
31 #define INCLUDE_LIBQCOMUTILS_MDPVER
32 
33 #include <stdint.h>
34 #include <utils/Singleton.h>
35 #include <cutils/properties.h>
36 
37 /* This class gets the MSM type from the soc info
38 */
39 using namespace android;
40 namespace qdutils {
41 enum mdp_version {
42     MDP_V_UNKNOWN = 0,
43     MDP_V2_2    = 220,
44     MDP_V3_0    = 300,
45     MDP_V3_0_3  = 303,
46     MDP_V3_1    = 310,
47     MDP_V4_0    = 400,
48     MDP_V4_1    = 410,
49     MDP_V4_2    = 420,
50     MDP_V4_3    = 430,
51     MDP_V4_4    = 440,
52     MDSS_V5     = 500,
53 };
54 
55 #define MDDI_PANEL       '1'
56 #define EBI2_PANEL       '2'
57 #define LCDC_PANEL       '3'
58 #define EXT_MDDI_PANEL   '4'
59 #define TV_PANEL         '5'
60 #define DTV_PANEL        '7'
61 #define MIPI_VIDEO_PANEL '8'
62 #define MIPI_CMD_PANEL   '9'
63 #define WRITEBACK_PANEL  'a'
64 #define LVDS_PANEL       'b'
65 
66 
67 class MDPVersion : public Singleton <MDPVersion>
68 {
69 public:
70     MDPVersion();
~MDPVersion()71     ~MDPVersion() { }
getMDPVersion()72     int getMDPVersion() {return mMDPVersion;}
getPanelType()73     char getPanelType() {return mPanelType;}
hasOverlay()74     bool hasOverlay() {return mHasOverlay;}
getTotalPipes()75     uint8_t getTotalPipes() { return (mRGBPipes + mVGPipes + mDMAPipes);}
getRGBPipes()76     uint8_t getRGBPipes() { return mRGBPipes; }
getVGPipes()77     uint8_t getVGPipes() { return mVGPipes; }
getDMAPipes()78     uint8_t getDMAPipes() { return mDMAPipes; }
79 private:
80     int mMDPVersion;
81     char mPanelType;
82     bool mHasOverlay;
83     uint32_t mMdpRev;
84     uint8_t mRGBPipes;
85     uint8_t mVGPipes;
86     uint8_t mDMAPipes;
87 };
88 }; //namespace qdutils
89 #endif //INCLUDE_LIBQCOMUTILS_MDPVER
90