blob: 89b8cd74f89b12537bb6fb0076f6fb0d95b3fd25 [file] [log] [blame]
Dileep Marchyae2a59082015-05-21 13:29:05 -07001/*
Naseer Ahmedbb069a62016-02-05 20:27:30 -05002* Copyright (c) 2014 - 2016, The Linux Foundation. All rights reserved.
Dileep Marchyae2a59082015-05-21 13:29:05 -07003*
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#include <stdlib.h>
31#include <utils/debug.h>
32#include <utils/constants.h>
33
34namespace sdm {
35
36Debug Debug::debug_;
37
38Debug::Debug() : debug_handler_(&default_debug_handler_) {
39}
40
Naseer Ahmedb3b0a332015-06-05 19:14:32 -040041int Debug::GetSimulationFlag() {
Dileep Marchyae2a59082015-05-21 13:29:05 -070042 int value = 0;
Tatenda Chipeperekwa299b0302015-05-27 15:42:49 -070043 debug_.debug_handler_->GetProperty("sdm.composition_simulation", &value);
Dileep Marchyae2a59082015-05-21 13:29:05 -070044
45 return value;
46}
47
Naseer Ahmedb3b0a332015-06-05 19:14:32 -040048int Debug::GetHDMIResolution() {
Dileep Marchyae2a59082015-05-21 13:29:05 -070049 int value = 0;
50 debug_.debug_handler_->GetProperty("hw.hdmi.resolution", &value);
51
52 return value;
53}
54
Naseer Ahmedbb069a62016-02-05 20:27:30 -050055uint32_t Debug::GetIdleTimeoutMs() {
Dileep Marchyae2a59082015-05-21 13:29:05 -070056 int value = IDLE_TIMEOUT_DEFAULT_MS;
Tatenda Chipeperekwa299b0302015-05-27 15:42:49 -070057 debug_.debug_handler_->GetProperty("sdm.idle_time", &value);
Dileep Marchyae2a59082015-05-21 13:29:05 -070058
Naseer Ahmedbb069a62016-02-05 20:27:30 -050059 return UINT32(value);
Dileep Marchyae2a59082015-05-21 13:29:05 -070060}
61
Siddharth Zaveri918435f2016-01-12 01:05:14 -050062int Debug::GetBootAnimLayerCount() {
63 int value = 0;
64 debug_.debug_handler_->GetProperty("sdm.boot_anim_layer_count", &value);
65
66 return value;
67}
68
Dileep Marchyae2a59082015-05-21 13:29:05 -070069bool Debug::IsRotatorDownScaleDisabled() {
70 int value = 0;
Tatenda Chipeperekwa299b0302015-05-27 15:42:49 -070071 debug_.debug_handler_->GetProperty("sdm.debug.rotator_downscale", &value);
Dileep Marchyae2a59082015-05-21 13:29:05 -070072
73 return (value == 1);
74}
75
76bool Debug::IsDecimationDisabled() {
77 int value = 0;
78 debug_.debug_handler_->GetProperty("sdm.disable_decimation", &value);
79
80 return (value == 1);
81}
82
Tatenda Chipeperekwa299b0302015-05-27 15:42:49 -070083int Debug::GetMaxPipesPerMixer(DisplayType display_type) {
Tatenda Chipeperekwa45b11d22015-05-08 12:12:52 -070084 int value = -1;
Tatenda Chipeperekwa299b0302015-05-27 15:42:49 -070085 switch (display_type) {
86 case kPrimary:
87 debug_.debug_handler_->GetProperty("sdm.primary.mixer_stages", &value);
88 break;
89 case kHDMI:
90 debug_.debug_handler_->GetProperty("sdm.external.mixer_stages", &value);
91 break;
92 case kVirtual:
93 debug_.debug_handler_->GetProperty("sdm.virtual.mixer_stages", &value);
94 break;
95 default:
96 break;
97 }
Tatenda Chipeperekwa45b11d22015-05-08 12:12:52 -070098
99 return value;
100}
101
Dileep Marchya694e4b32016-08-08 22:54:13 +0530102int Debug::GetMaxVideoUpscale() {
103 int value = 0;
104 debug_.debug_handler_->GetProperty("sdm.video_max_upscale", &value);
105
106 return value;
107}
108
Tatenda Chipeperekwa299b0302015-05-27 15:42:49 -0700109bool Debug::IsVideoModeEnabled() {
110 int value = 0;
111 debug_.debug_handler_->GetProperty("sdm.video_mode_panel", &value);
112
113 return (value == 1);
114}
115
Sushil Chauhanb5e45c42015-06-12 16:50:26 -0700116bool Debug::IsRotatorUbwcDisabled() {
117 int value = 0;
118 debug_.debug_handler_->GetProperty("sdm.debug.rotator_disable_ubwc", &value);
119
120 return (value == 1);
121}
122
Ramkumar Radhakrishnan34508112015-05-28 19:02:05 -0700123bool Debug::IsRotatorSplitDisabled() {
124 int value = 0;
125 debug_.debug_handler_->GetProperty("sdm.debug.disable_rotator_split", &value);
126
127 return (value == 1);
128}
129
Dileep Marchya511fb6d2015-07-06 11:37:06 -0700130bool Debug::IsScalarDisabled() {
131 int value = 0;
132 debug_.debug_handler_->GetProperty("sdm.debug.disable_scalar", &value);
133
134 return (value == 1);
135}
136
Sushil Chauhanee1fc7e2015-07-09 17:43:21 -0700137bool Debug::IsUbwcTiledFrameBuffer() {
138 int ubwc_disabled = 0;
139 int ubwc_framebuffer = 0;
140
141 debug_.debug_handler_->GetProperty("debug.gralloc.gfx_ubwc_disable", &ubwc_disabled);
142
143 if (!ubwc_disabled) {
144 debug_.debug_handler_->GetProperty("debug.gralloc.enable_fb_ubwc", &ubwc_framebuffer);
145 }
146
147 return (ubwc_framebuffer == 1);
148}
149
Arun Kumar K.R55fe3042015-10-07 00:13:15 -0700150bool Debug::GetProperty(const char* property_name, char* value) {
151 if (debug_.debug_handler_->GetProperty(property_name, value) != kErrorNone) {
152 return false;
153 }
154
155 return true;
156}
157
Tatenda Chipeperekwaca8b2f32016-04-27 19:53:22 -0700158bool Debug::SetProperty(const char* property_name, const char* value) {
159 if (debug_.debug_handler_->SetProperty(property_name, value) != kErrorNone) {
160 return false;
161 }
162
163 return true;
164}
165
Dileep Marchyae2a59082015-05-21 13:29:05 -0700166} // namespace sdm
167