1 /* 2 * Copyright (c) 2014 - 2016, 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 #include <stdlib.h> 31 #include <utils/debug.h> 32 #include <utils/constants.h> 33 34 namespace sdm { 35 36 Debug Debug::debug_; 37 38 Debug::Debug() : debug_handler_(&default_debug_handler_) { 39 } 40 41 int Debug::GetSimulationFlag() { 42 int value = 0; 43 debug_.debug_handler_->GetProperty("sdm.composition_simulation", &value); 44 45 return value; 46 } 47 48 int Debug::GetHDMIResolution() { 49 int value = 0; 50 debug_.debug_handler_->GetProperty("hw.hdmi.resolution", &value); 51 52 return value; 53 } 54 55 uint32_t Debug::GetIdleTimeoutMs() { 56 int value = IDLE_TIMEOUT_DEFAULT_MS; 57 debug_.debug_handler_->GetProperty("sdm.idle_time", &value); 58 59 return UINT32(value); 60 } 61 62 int Debug::GetBootAnimLayerCount() { 63 int value = 0; 64 debug_.debug_handler_->GetProperty("sdm.boot_anim_layer_count", &value); 65 66 return value; 67 } 68 69 bool Debug::IsRotatorDownScaleDisabled() { 70 int value = 0; 71 debug_.debug_handler_->GetProperty("sdm.debug.rotator_downscale", &value); 72 73 return (value == 1); 74 } 75 76 bool Debug::IsDecimationDisabled() { 77 int value = 0; 78 debug_.debug_handler_->GetProperty("sdm.disable_decimation", &value); 79 80 return (value == 1); 81 } 82 83 int Debug::GetMaxPipesPerMixer(DisplayType display_type) { 84 int value = -1; 85 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 } 98 99 return value; 100 } 101 102 bool Debug::IsVideoModeEnabled() { 103 int value = 0; 104 debug_.debug_handler_->GetProperty("sdm.video_mode_panel", &value); 105 106 return (value == 1); 107 } 108 109 bool Debug::IsRotatorUbwcDisabled() { 110 int value = 0; 111 debug_.debug_handler_->GetProperty("sdm.debug.rotator_disable_ubwc", &value); 112 113 return (value == 1); 114 } 115 116 bool Debug::IsRotatorSplitDisabled() { 117 int value = 0; 118 debug_.debug_handler_->GetProperty("sdm.debug.disable_rotator_split", &value); 119 120 return (value == 1); 121 } 122 123 bool Debug::IsScalarDisabled() { 124 int value = 0; 125 debug_.debug_handler_->GetProperty("sdm.debug.disable_scalar", &value); 126 127 return (value == 1); 128 } 129 130 bool Debug::IsUbwcTiledFrameBuffer() { 131 int ubwc_disabled = 0; 132 int ubwc_framebuffer = 0; 133 134 debug_.debug_handler_->GetProperty("debug.gralloc.gfx_ubwc_disable", &ubwc_disabled); 135 136 if (!ubwc_disabled) { 137 debug_.debug_handler_->GetProperty("debug.gralloc.enable_fb_ubwc", &ubwc_framebuffer); 138 } 139 140 return (ubwc_framebuffer == 1); 141 } 142 143 bool Debug::GetProperty(const char* property_name, char* value) { 144 if (debug_.debug_handler_->GetProperty(property_name, value) != kErrorNone) { 145 return false; 146 } 147 148 return true; 149 } 150 151 bool Debug::SetProperty(const char* property_name, const char* value) { 152 if (debug_.debug_handler_->SetProperty(property_name, value) != kErrorNone) { 153 return false; 154 } 155 156 return true; 157 } 158 159 } // namespace sdm 160 161