Back to home page

OSCL-LXR

 
 

    


0001 /* Copyright 2012-15 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 __DC_ABM_H__
0026 #define __DC_ABM_H__
0027 
0028 #include "dm_services_types.h"
0029 
0030 struct abm {
0031     struct dc_context *ctx;
0032     const struct abm_funcs *funcs;
0033     bool dmcu_is_running;
0034 };
0035 
0036 struct abm_funcs {
0037     void (*abm_init)(struct abm *abm, uint32_t back_light);
0038     bool (*set_abm_level)(struct abm *abm, unsigned int abm_level);
0039     bool (*set_abm_immediate_disable)(struct abm *abm, unsigned int panel_inst);
0040     bool (*set_pipe)(struct abm *abm, unsigned int controller_id, unsigned int panel_inst);
0041 
0042     /* backlight_pwm_u16_16 is unsigned 32 bit,
0043      * 16 bit integer + 16 fractional, where 1.0 is max backlight value.
0044      */
0045     bool (*set_backlight_level_pwm)(struct abm *abm,
0046             unsigned int backlight_pwm_u16_16,
0047             unsigned int frame_ramp,
0048             unsigned int controller_id,
0049             unsigned int panel_inst);
0050 
0051     unsigned int (*get_current_backlight)(struct abm *abm);
0052     unsigned int (*get_target_backlight)(struct abm *abm);
0053     bool (*init_abm_config)(struct abm *abm,
0054             const char *src,
0055             unsigned int bytes,
0056             unsigned int inst);
0057     bool (*set_abm_pause)(struct abm *abm, bool pause, unsigned int panel_inst, unsigned int otg_inst);
0058 };
0059 
0060 #endif