Back to home page

OSCL-LXR

 
 

    


0001 /* Copyright 2018 Advanced Micro Devices, Inc.
0002  *
0003  * Permission is hereby granted, free of charge, to any person obtaining a
0004  * copy of this software and associated documentation files (the "Software"),
0005  * to deal in the Software without restriction, including without limitation
0006  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
0007  * and/or sell copies of the Software, and to permit persons to whom the
0008  * Software is furnished to do so, subject to the following conditions:
0009  *
0010  * The above copyright notice and this permission notice shall be included in
0011  * all copies or substantial portions of the Software.
0012  *
0013  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0014  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0015  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
0016  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
0017  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
0018  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0019  * OTHER DEALINGS IN THE SOFTWARE.
0020  *
0021  * Authors: AMD
0022  *
0023  */
0024 
0025 #ifndef MODULES_POWER_POWER_HELPERS_H_
0026 #define MODULES_POWER_POWER_HELPERS_H_
0027 
0028 #include "dc/inc/hw/dmcu.h"
0029 #include "dc/inc/hw/abm.h"
0030 #include "dc/inc/core_types.h"
0031 
0032 struct resource_pool;
0033 
0034 
0035 enum abm_defines {
0036     abm_defines_max_level = 4,
0037     abm_defines_max_config = 4,
0038 };
0039 
0040 struct dmcu_iram_parameters {
0041     unsigned int *backlight_lut_array;
0042     unsigned int backlight_lut_array_size;
0043     bool backlight_ramping_override;
0044     unsigned int backlight_ramping_reduction;
0045     unsigned int backlight_ramping_start;
0046     unsigned int min_abm_backlight;
0047     unsigned int set;
0048 };
0049 
0050 bool dmcu_load_iram(struct dmcu *dmcu,
0051         struct dmcu_iram_parameters params);
0052 bool dmub_init_abm_config(struct resource_pool *res_pool,
0053         struct dmcu_iram_parameters params,
0054         unsigned int inst);
0055 
0056 bool is_psr_su_specific_panel(struct dc_link *link);
0057 void mod_power_calc_psr_configs(struct psr_config *psr_config,
0058         struct dc_link *link,
0059         const struct dc_stream_state *stream);
0060 bool mod_power_only_edp(const struct dc_state *context,
0061         const struct dc_stream_state *stream);
0062 #endif /* MODULES_POWER_POWER_HELPERS_H_ */