1ec7e6bb8SLeo (Sunpeng) Li /*
2ec7e6bb8SLeo (Sunpeng) Li  * Copyright 2016 Advanced Micro Devices, Inc.
3ec7e6bb8SLeo (Sunpeng) Li  *
4ec7e6bb8SLeo (Sunpeng) Li  * Permission is hereby granted, free of charge, to any person obtaining a
5ec7e6bb8SLeo (Sunpeng) Li  * copy of this software and associated documentation files (the "Software"),
6ec7e6bb8SLeo (Sunpeng) Li  * to deal in the Software without restriction, including without limitation
7ec7e6bb8SLeo (Sunpeng) Li  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8ec7e6bb8SLeo (Sunpeng) Li  * and/or sell copies of the Software, and to permit persons to whom the
9ec7e6bb8SLeo (Sunpeng) Li  * Software is furnished to do so, subject to the following conditions:
10ec7e6bb8SLeo (Sunpeng) Li  *
11ec7e6bb8SLeo (Sunpeng) Li  * The above copyright notice and this permission notice shall be included in
12ec7e6bb8SLeo (Sunpeng) Li  * all copies or substantial portions of the Software.
13ec7e6bb8SLeo (Sunpeng) Li  *
14ec7e6bb8SLeo (Sunpeng) Li  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15ec7e6bb8SLeo (Sunpeng) Li  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16ec7e6bb8SLeo (Sunpeng) Li  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17ec7e6bb8SLeo (Sunpeng) Li  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18ec7e6bb8SLeo (Sunpeng) Li  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19ec7e6bb8SLeo (Sunpeng) Li  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20ec7e6bb8SLeo (Sunpeng) Li  * OTHER DEALINGS IN THE SOFTWARE.
21ec7e6bb8SLeo (Sunpeng) Li  *
22ec7e6bb8SLeo (Sunpeng) Li  * Authors: AMD
23ec7e6bb8SLeo (Sunpeng) Li  *
24ec7e6bb8SLeo (Sunpeng) Li  */
25ec7e6bb8SLeo (Sunpeng) Li 
26ec7e6bb8SLeo (Sunpeng) Li #ifndef COLOR_MOD_COLOR_GAMMA_H_
27ec7e6bb8SLeo (Sunpeng) Li #define COLOR_MOD_COLOR_GAMMA_H_
28ec7e6bb8SLeo (Sunpeng) Li 
29ec7e6bb8SLeo (Sunpeng) Li struct dc_transfer_func;
30ec7e6bb8SLeo (Sunpeng) Li struct dc_gamma;
31ec7e6bb8SLeo (Sunpeng) Li struct dc_transfer_func_distributed_points;
32ec7e6bb8SLeo (Sunpeng) Li struct dc_rgb_fixed;
33ec7e6bb8SLeo (Sunpeng) Li enum dc_transfer_func_predefined;
34ec7e6bb8SLeo (Sunpeng) Li 
35ec7e6bb8SLeo (Sunpeng) Li void setup_x_points_distribution(void);
36ec7e6bb8SLeo (Sunpeng) Li void precompute_pq(void);
37792474b7SVitaly Prosyak void precompute_de_pq(void);
38ec7e6bb8SLeo (Sunpeng) Li 
39ec7e6bb8SLeo (Sunpeng) Li bool mod_color_calculate_regamma_params(struct dc_transfer_func *output_tf,
40ec7e6bb8SLeo (Sunpeng) Li 		const struct dc_gamma *ramp, bool mapUserRamp);
41ec7e6bb8SLeo (Sunpeng) Li 
42792474b7SVitaly Prosyak bool mod_color_calculate_degamma_params(struct dc_transfer_func *output_tf,
43792474b7SVitaly Prosyak 		const struct dc_gamma *ramp, bool mapUserRamp);
44792474b7SVitaly Prosyak 
45ec7e6bb8SLeo (Sunpeng) Li bool mod_color_calculate_curve(enum dc_transfer_func_predefined  trans,
46ec7e6bb8SLeo (Sunpeng) Li 		struct dc_transfer_func_distributed_points *points);
47ec7e6bb8SLeo (Sunpeng) Li 
48792474b7SVitaly Prosyak bool  mod_color_calculate_degamma_curve(enum dc_transfer_func_predefined trans,
49792474b7SVitaly Prosyak 				struct dc_transfer_func_distributed_points *points);
50792474b7SVitaly Prosyak 
51792474b7SVitaly Prosyak 
52ec7e6bb8SLeo (Sunpeng) Li 
53ec7e6bb8SLeo (Sunpeng) Li #endif /* COLOR_MOD_COLOR_GAMMA_H_ */
54