blob: fbce8b61a18c8e5452af3dc7bf6d6967abdc17ea [file] [log] [blame]
Dileep Marchya6860b2b2017-04-07 15:56:47 +05301/*
Uday Kiran Pichika71f5daa2017-10-10 11:37:19 +05302* Copyright (c) 2017 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*/
Dileep Marchya6860b2b2017-04-07 15:56:47 +053029
30#ifndef __DISPLAY_CONFIG_H__
31#define __DISPLAY_CONFIG_H__
32
33#include <stdint.h>
34#include <vector>
35
36// This header is for clients to use to set/get global display configuration.
37
38namespace display {
39
40enum {
41 DISPLAY_PRIMARY = 0,
42 DISPLAY_EXTERNAL,
43 DISPLAY_VIRTUAL,
44};
45
46enum {
47 EXTERNAL_OFFLINE = 0,
48 EXTERNAL_ONLINE,
49 EXTERNAL_PAUSE,
50 EXTERNAL_RESUME,
51};
52
53enum {
54 DISABLE_METADATA_DYN_REFRESH_RATE = 0,
55 ENABLE_METADATA_DYN_REFRESH_RATE,
56 SET_BINDER_DYN_REFRESH_RATE,
57};
58
59enum {
60 DISPLAY_PORT_DEFAULT = 0,
61 DISPLAY_PORT_DSI,
62 DISPLAY_PORT_DTV,
63 DISPLAY_PORT_WRITEBACK,
64 DISPLAY_PORT_LVDS,
65 DISPLAY_PORT_EDP,
66 DISPLAY_PORT_DP,
67};
68
69struct DisplayAttributes {
70 uint32_t vsync_period = 0; //nanoseconds
71 uint32_t xres = 0;
72 uint32_t yres = 0;
73 float xdpi = 0.0f;
74 float ydpi = 0.0f;
75 int panel_type = DISPLAY_PORT_DEFAULT;
76 bool is_yuv = false;
77};
78
79struct DisplayHDRCapabilities {
80 std::vector<int32_t> supported_hdr_types;
81 float max_luminance = 0.0f;
82 float max_avg_luminance = 0.0f;
83 float min_luminance = 0.0f;
84};
85
Ramakant Singhdbe738a2018-08-23 23:57:07 +053086struct WriteBackCapabilities {
87 bool isWbUbwcSupported;
88};
89
Dileep Marchya6860b2b2017-04-07 15:56:47 +053090//=============================================================================
91// The functions below run in the client pocess and wherever necessary
92// do a binder call to HWC to get/set data.
93
94int isExternalConnected();
95int setSecondayDisplayStatus(int dpy, uint32_t status);
96int configureDynRefeshRate(uint32_t op, uint32_t refreshRate);
97int getConfigCount(int dpy);
98int getActiveConfig(int dpy);
99int setActiveConfig(int dpy, uint32_t config);
100DisplayAttributes getDisplayAttributes(uint32_t configIndex, int dpy);
101int setPanelBrightness(uint32_t level);
102uint32_t getPanelBrightness();
103int minHdcpEncryptionLevelChanged(int dpy, uint32_t min_enc_level);
104int refreshScreen();
105int controlPartialUpdate(int dpy, bool enable);
106int toggleScreenUpdate(uint32_t on);
107int setIdleTimeout(uint32_t value);
108int getHDRCapabilities(int dpy, DisplayHDRCapabilities *caps);
109int setCameraLaunchStatus(uint32_t on);
110bool displayBWTransactionPending();
Ramakant Singhdbe738a2018-08-23 23:57:07 +0530111int32_t getWriteBackCapabilities( WriteBackCapabilities *caps);
Dileep Marchya6860b2b2017-04-07 15:56:47 +0530112
113} // namespace display
114
115#endif // __DISPLAY_CONFIG_H__