Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 1 | /* |
Uday Kiran Pichika | 2c7883a | 2018-03-08 20:57:56 +0530 | [diff] [blame] | 2 | * Copyright (c) 2014 - 2018, The Linux Foundation. All rights reserved. |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 3 | * |
Ramkumar Radhakrishnan | 7ebf034 | 2015-01-20 15:00:46 -0800 | [diff] [blame] | 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. |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 16 | * |
Ramkumar Radhakrishnan | 7ebf034 | 2015-01-20 15:00:46 -0800 | [diff] [blame] | 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. |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 28 | */ |
| 29 | |
| 30 | #ifndef __DEBUG_H__ |
| 31 | #define __DEBUG_H__ |
| 32 | |
Manoj Kumar AVM | 4746f24 | 2015-01-06 20:25:22 -0800 | [diff] [blame] | 33 | #include <stdint.h> |
Dileep Marchya | 2d58644 | 2018-03-09 16:42:40 +0530 | [diff] [blame] | 34 | #include <debug_handler.h> |
Dileep Marchya | 73d002e | 2015-05-08 18:58:33 -0700 | [diff] [blame] | 35 | #include <core/sdm_types.h> |
Tatenda Chipeperekwa | 299b030 | 2015-05-27 15:42:49 -0700 | [diff] [blame] | 36 | #include <core/display_interface.h> |
Dileep Marchya | b61346f | 2014-11-06 14:36:19 -0800 | [diff] [blame] | 37 | |
Uday Kiran Pichika | 2c7883a | 2018-03-08 20:57:56 +0530 | [diff] [blame] | 38 | #define DISP_PROP_PREFIX "vendor.display." |
| 39 | #define GRALLOC_PROP_PREFIX "vendor.gralloc." |
| 40 | #define DISPLAY_PROP(prop_name) DISP_PROP_PREFIX prop_name |
| 41 | #define GRALLOC_PROP(prop_name) GRALLOC_PROP_PREFIX prop_name |
| 42 | |
| 43 | #define COMPOSITION_MASK_PROP DISPLAY_PROP("comp_mask") |
| 44 | #define HDMI_CONFIG_INDEX_PROP DISPLAY_PROP("hdmi_cfg_idx") |
| 45 | #define IDLE_TIME_PROP DISPLAY_PROP("idle_time") |
| 46 | #define IDLE_TIME_INACTIVE_PROP DISPLAY_PROP("idle_time_inactive") |
| 47 | #define BOOT_ANIMATION_LAYER_COUNT_PROP DISPLAY_PROP("boot_anim_layer_count") |
| 48 | #define DISABLE_ROTATOR_DOWNSCALE_PROP DISPLAY_PROP("disable_rotator_downscale") |
| 49 | #define DISABLE_DECIMATION_PROP DISPLAY_PROP("disable_decimation") |
| 50 | #define PRIMARY_MIXER_STAGES_PROP DISPLAY_PROP("primary_mixer_stages") |
| 51 | #define EXTERNAL_MIXER_STAGES_PROP DISPLAY_PROP("external_mixer_stages") |
| 52 | #define VIRTUAL_MIXER_STAGES_PROP DISPLAY_PROP("virtual_mixer_stages") |
| 53 | #define MAX_UPSCALE_PROP DISPLAY_PROP("max_upscale") |
| 54 | #define VIDEO_MODE_PANEL_PROP DISPLAY_PROP("video_mode_panel") |
| 55 | #define DISABLE_ROTATOR_UBWC_PROP DISPLAY_PROP("disable_rotator_ubwc") |
| 56 | #define DISABLE_ROTATOR_SPLIT_PROP DISPLAY_PROP("disable_rotator_split") |
| 57 | #define DISABLE_SCALER_PROP DISPLAY_PROP("disable_scaler") |
| 58 | #define DISABLE_AVR_PROP DISPLAY_PROP("disable_avr") |
| 59 | #define DISABLE_EXTERNAL_ANIMATION_PROP DISPLAY_PROP("disable_ext_anim") |
| 60 | #define DISABLE_PARTIAL_SPLIT_PROP DISPLAY_PROP("disable_partial_split") |
| 61 | #define PREFER_SOURCE_SPLIT_PROP DISPLAY_PROP("prefer_source_split") |
| 62 | #define MIXER_RESOLUTION_PROP DISPLAY_PROP("mixer_resolution") |
| 63 | #define SIMULATED_CONFIG_PROP DISPLAY_PROP("simulated_config") |
| 64 | #define MAX_EXTERNAL_LAYERS_PROP DISPLAY_PROP("max_external_layers") |
| 65 | #define PERF_HINT_WINDOW_PROP DISPLAY_PROP("perf_hint_window") |
| 66 | #define ENABLE_EXTERNAL_DOWNSCALE_PROP DISPLAY_PROP("enable_external_downscale") |
| 67 | #define EXTERNAL_ACTION_SAFE_WIDTH_PROP DISPLAY_PROP("external_action_safe_width") |
| 68 | #define EXTERNAL_ACTION_SAFE_HEIGHT_PROP DISPLAY_PROP("external_action_safe_height") |
| 69 | #define FB_WIDTH_PROP DISPLAY_PROP("fb_width") |
| 70 | #define FB_HEIGHT_PROP DISPLAY_PROP("fb_height") |
| 71 | #define DISABLE_METADATA_DYNAMIC_FPS_PROP DISPLAY_PROP("disable_metadata_dynamic_fps") |
| 72 | #define DISABLE_BLIT_COMPOSITION_PROP DISPLAY_PROP("disable_blit_comp") |
| 73 | #define DISABLE_SKIP_VALIDATE_PROP DISPLAY_PROP("disable_skip_validate") |
| 74 | #define HDMI_S3D_MODE_PROP DISPLAY_PROP("hdmi_s3d_mode") |
| 75 | #define DISABLE_DESTINATION_SCALER_PROP DISPLAY_PROP("disable_dest_scaler") |
| 76 | #define DISABLE_UBWC_PROP GRALLOC_PROP("disable_ubwc") |
| 77 | #define ENABLE_FB_UBWC_PROP GRALLOC_PROP("enable_fb_ubwc") |
| 78 | #define MAP_FB_MEMORY_PROP GRALLOC_PROP("map_fb_memory") |
| 79 | |
| 80 | #define MAX_BLIT_FACTOR_PROP DISPLAY_PROP("max_blit_factor") |
| 81 | #define DISABLE_SECURE_INLINE_ROTATOR_PROP DISPLAY_PROP("disable_secure_inline_rotator") |
| 82 | #define DISABLE_MULTIRECT_PROP DISPLAY_PROP("disable_multirect") |
| 83 | #define DISABLE_UBWC_FF_VOTING_PROP DISPLAY_PROP("disable_ubwc_ff_voting") |
| 84 | #define DISABLE_INLINE_ROTATOR_PROP DISPLAY_PROP("disable_inline_rotator") |
| 85 | #define DISABLE_FB_CROPPING_PROP DISPLAY_PROP("disable_fb_cropping") |
| 86 | #define PRIORITIZE_CACHE_COMPOSITION_PROP DISPLAY_PROP("prioritize_cache_comp") |
| 87 | #define ENABLE_PIPE_PRIORITY_PROP DISPLAY_PROP("enable_pipe_priority") |
| 88 | |
Dileep Marchya | 73d002e | 2015-05-08 18:58:33 -0700 | [diff] [blame] | 89 | namespace sdm { |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 90 | |
Dileep Marchya | 2d58644 | 2018-03-09 16:42:40 +0530 | [diff] [blame] | 91 | using display::DebugHandler; |
| 92 | |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 93 | class Debug { |
| 94 | public: |
Dileep Marchya | 2d58644 | 2018-03-09 16:42:40 +0530 | [diff] [blame] | 95 | static inline DebugHandler* Get() { return DebugHandler::Get(); } |
Naseer Ahmed | b3b0a33 | 2015-06-05 19:14:32 -0400 | [diff] [blame] | 96 | static int GetSimulationFlag(); |
srikanth rajagopalan | 5d320c6 | 2017-06-05 21:08:57 -0700 | [diff] [blame] | 97 | static bool GetExternalResolution(char *val); |
Dileep Marchya | b06308d | 2017-02-13 09:45:01 +0530 | [diff] [blame] | 98 | static void GetIdleTimeoutMs(uint32_t *active_ms, uint32_t *inactive_ms); |
Siddharth Zaveri | 918435f | 2016-01-12 01:05:14 -0500 | [diff] [blame] | 99 | static int GetBootAnimLayerCount(); |
Ken Zhang | e2605ea | 2015-02-02 10:17:45 -0500 | [diff] [blame] | 100 | static bool IsRotatorDownScaleDisabled(); |
| 101 | static bool IsDecimationDisabled(); |
Tatenda Chipeperekwa | 299b030 | 2015-05-27 15:42:49 -0700 | [diff] [blame] | 102 | static int GetMaxPipesPerMixer(DisplayType display_type); |
Rajavenu Kyatham | 8c305cc | 2017-03-16 20:17:26 +0530 | [diff] [blame] | 103 | static int GetMaxUpscale(); |
Tatenda Chipeperekwa | 299b030 | 2015-05-27 15:42:49 -0700 | [diff] [blame] | 104 | static bool IsVideoModeEnabled(); |
Sushil Chauhan | b5e45c4 | 2015-06-12 16:50:26 -0700 | [diff] [blame] | 105 | static bool IsRotatorUbwcDisabled(); |
Ramkumar Radhakrishnan | 3450811 | 2015-05-28 19:02:05 -0700 | [diff] [blame] | 106 | static bool IsRotatorSplitDisabled(); |
Dileep Marchya | 511fb6d | 2015-07-06 11:37:06 -0700 | [diff] [blame] | 107 | static bool IsScalarDisabled(); |
Sushil Chauhan | ee1fc7e | 2015-07-09 17:43:21 -0700 | [diff] [blame] | 108 | static bool IsUbwcTiledFrameBuffer(); |
Ramkumar Radhakrishnan | 14a1fc6 | 2016-07-14 20:29:12 -0700 | [diff] [blame] | 109 | static bool IsAVRDisabled(); |
Ray Zhang | f2ecade | 2016-08-12 21:50:53 +0800 | [diff] [blame] | 110 | static bool IsExtAnimDisabled(); |
Pullakavi Srinivas | c1a71ca | 2017-02-21 11:54:42 +0530 | [diff] [blame] | 111 | static bool IsPartialSplitDisabled(); |
Sushil Chauhan | 3d66b2b | 2017-07-14 13:24:39 -0700 | [diff] [blame] | 112 | static bool IsSrcSplitPreferred(); |
Ramkumar Radhakrishnan | d3b4c06 | 2016-10-06 18:12:21 -0700 | [diff] [blame] | 113 | static DisplayError GetMixerResolution(uint32_t *width, uint32_t *height); |
Anjaneya Prasad Musunuri | 0a48110 | 2017-07-08 11:17:55 +0530 | [diff] [blame] | 114 | static DisplayError GetReducedConfig(uint32_t *num_vig_pipes, uint32_t *num_dma_pipes); |
Prabhanjan Kandula | a61a5f8 | 2016-08-10 18:42:19 +0530 | [diff] [blame] | 115 | static int GetExtMaxlayers(); |
Dileep Marchya | 2d58644 | 2018-03-09 16:42:40 +0530 | [diff] [blame] | 116 | static DisplayError GetProperty(const char *property_name, char *value); |
| 117 | static DisplayError GetProperty(const char *property_name, int *value); |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 118 | }; |
| 119 | |
Dileep Marchya | 73d002e | 2015-05-08 18:58:33 -0700 | [diff] [blame] | 120 | } // namespace sdm |
Dileep Marchya | f9ba485 | 2014-10-24 19:56:57 -0700 | [diff] [blame] | 121 | |
| 122 | #endif // __DEBUG_H__ |
| 123 | |