1f5fbb83fSMauro Carvalho Chehab // SPDX-License-Identifier: GPL-2.0
29d4fa1a1SMauro Carvalho Chehab /*
39d4fa1a1SMauro Carvalho Chehab  * Support for Intel Camera Imaging ISP subsystem.
49d4fa1a1SMauro Carvalho Chehab  * Copyright (c) 2015, Intel Corporation.
59d4fa1a1SMauro Carvalho Chehab  *
69d4fa1a1SMauro Carvalho Chehab  * This program is free software; you can redistribute it and/or modify it
79d4fa1a1SMauro Carvalho Chehab  * under the terms and conditions of the GNU General Public License,
89d4fa1a1SMauro Carvalho Chehab  * version 2, as published by the Free Software Foundation.
99d4fa1a1SMauro Carvalho Chehab  *
109d4fa1a1SMauro Carvalho Chehab  * This program is distributed in the hope it will be useful, but WITHOUT
119d4fa1a1SMauro Carvalho Chehab  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
129d4fa1a1SMauro Carvalho Chehab  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
139d4fa1a1SMauro Carvalho Chehab  * more details.
149d4fa1a1SMauro Carvalho Chehab  */
159d4fa1a1SMauro Carvalho Chehab 
16662fb4fcSMauro Carvalho Chehab #include <linux/string.h> /* for memcpy() */
17662fb4fcSMauro Carvalho Chehab 
189d4fa1a1SMauro Carvalho Chehab #include <type_support.h>
199d4fa1a1SMauro Carvalho Chehab #include "system_global.h"
209d4fa1a1SMauro Carvalho Chehab #include "vamem.h"
219d4fa1a1SMauro Carvalho Chehab #include "ia_css_types.h"
229d4fa1a1SMauro Carvalho Chehab #include "ia_css_gc2_table.host.h"
239d4fa1a1SMauro Carvalho Chehab 
249d4fa1a1SMauro Carvalho Chehab struct ia_css_rgb_gamma_table default_r_gamma_table;
259d4fa1a1SMauro Carvalho Chehab struct ia_css_rgb_gamma_table default_g_gamma_table;
269d4fa1a1SMauro Carvalho Chehab struct ia_css_rgb_gamma_table default_b_gamma_table;
279d4fa1a1SMauro Carvalho Chehab 
289d4fa1a1SMauro Carvalho Chehab /* Identical default gamma table for R, G, and B. */
299d4fa1a1SMauro Carvalho Chehab 
309d4fa1a1SMauro Carvalho Chehab 
319d4fa1a1SMauro Carvalho Chehab static const uint16_t
329d4fa1a1SMauro Carvalho Chehab default_gamma_table_data[IA_CSS_VAMEM_2_RGB_GAMMA_TABLE_SIZE] = {
339d4fa1a1SMauro Carvalho Chehab 	0,   72,  144,  216,  288,  360,  426,  486,
349d4fa1a1SMauro Carvalho Chehab 	541,  592,  641,  687,  730,  772,  812,  850,
359d4fa1a1SMauro Carvalho Chehab 	887,  923,  958,  991, 1024, 1055, 1086, 1117,
369d4fa1a1SMauro Carvalho Chehab 	1146, 1175, 1203, 1230, 1257, 1284, 1310, 1335,
379d4fa1a1SMauro Carvalho Chehab 	1360, 1385, 1409, 1433, 1457, 1480, 1502, 1525,
389d4fa1a1SMauro Carvalho Chehab 	1547, 1569, 1590, 1612, 1632, 1653, 1674, 1694,
399d4fa1a1SMauro Carvalho Chehab 	1714, 1734, 1753, 1772, 1792, 1811, 1829, 1848,
409d4fa1a1SMauro Carvalho Chehab 	1866, 1884, 1902, 1920, 1938, 1955, 1973, 1990,
419d4fa1a1SMauro Carvalho Chehab 	2007, 2024, 2040, 2057, 2074, 2090, 2106, 2122,
429d4fa1a1SMauro Carvalho Chehab 	2138, 2154, 2170, 2185, 2201, 2216, 2231, 2247,
439d4fa1a1SMauro Carvalho Chehab 	2262, 2277, 2291, 2306, 2321, 2335, 2350, 2364,
449d4fa1a1SMauro Carvalho Chehab 	2378, 2393, 2407, 2421, 2435, 2449, 2462, 2476,
459d4fa1a1SMauro Carvalho Chehab 	2490, 2503, 2517, 2530, 2543, 2557, 2570, 2583,
469d4fa1a1SMauro Carvalho Chehab 	2596, 2609, 2622, 2634, 2647, 2660, 2673, 2685,
479d4fa1a1SMauro Carvalho Chehab 	2698, 2710, 2722, 2735, 2747, 2759, 2771, 2783,
489d4fa1a1SMauro Carvalho Chehab 	2795, 2807, 2819, 2831, 2843, 2855, 2867, 2878,
499d4fa1a1SMauro Carvalho Chehab 	2890, 2901, 2913, 2924, 2936, 2947, 2958, 2970,
509d4fa1a1SMauro Carvalho Chehab 	2981, 2992, 3003, 3014, 3025, 3036, 3047, 3058,
519d4fa1a1SMauro Carvalho Chehab 	3069, 3080, 3091, 3102, 3112, 3123, 3134, 3144,
529d4fa1a1SMauro Carvalho Chehab 	3155, 3165, 3176, 3186, 3197, 3207, 3217, 3228,
539d4fa1a1SMauro Carvalho Chehab 	3238, 3248, 3258, 3268, 3279, 3289, 3299, 3309,
549d4fa1a1SMauro Carvalho Chehab 	3319, 3329, 3339, 3349, 3358, 3368, 3378, 3388,
559d4fa1a1SMauro Carvalho Chehab 	3398, 3407, 3417, 3427, 3436, 3446, 3455, 3465,
569d4fa1a1SMauro Carvalho Chehab 	3474, 3484, 3493, 3503, 3512, 3521, 3531, 3540,
579d4fa1a1SMauro Carvalho Chehab 	3549, 3559, 3568, 3577, 3586, 3595, 3605, 3614,
589d4fa1a1SMauro Carvalho Chehab 	3623, 3632, 3641, 3650, 3659, 3668, 3677, 3686,
599d4fa1a1SMauro Carvalho Chehab 	3694, 3703, 3712, 3721, 3730, 3739, 3747, 3756,
609d4fa1a1SMauro Carvalho Chehab 	3765, 3773, 3782, 3791, 3799, 3808, 3816, 3825,
619d4fa1a1SMauro Carvalho Chehab 	3833, 3842, 3850, 3859, 3867, 3876, 3884, 3893,
629d4fa1a1SMauro Carvalho Chehab 	3901, 3909, 3918, 3926, 3934, 3942, 3951, 3959,
639d4fa1a1SMauro Carvalho Chehab 	3967, 3975, 3984, 3992, 4000, 4008, 4016, 4024,
649d4fa1a1SMauro Carvalho Chehab 	4032, 4040, 4048, 4056, 4064, 4072, 4080, 4088,
659d4fa1a1SMauro Carvalho Chehab 	4095
669d4fa1a1SMauro Carvalho Chehab };
679d4fa1a1SMauro Carvalho Chehab 
689d4fa1a1SMauro Carvalho Chehab void
ia_css_config_rgb_gamma_tables(void)699d4fa1a1SMauro Carvalho Chehab ia_css_config_rgb_gamma_tables(void)
709d4fa1a1SMauro Carvalho Chehab {
719d4fa1a1SMauro Carvalho Chehab 	default_r_gamma_table.vamem_type   = IA_CSS_VAMEM_TYPE_2;
729d4fa1a1SMauro Carvalho Chehab 	default_g_gamma_table.vamem_type   = IA_CSS_VAMEM_TYPE_2;
739d4fa1a1SMauro Carvalho Chehab 	default_b_gamma_table.vamem_type   = IA_CSS_VAMEM_TYPE_2;
749d4fa1a1SMauro Carvalho Chehab 	memcpy(default_r_gamma_table.data.vamem_2, default_gamma_table_data,
759d4fa1a1SMauro Carvalho Chehab 	       sizeof(default_gamma_table_data));
769d4fa1a1SMauro Carvalho Chehab 	memcpy(default_g_gamma_table.data.vamem_2, default_gamma_table_data,
779d4fa1a1SMauro Carvalho Chehab 	       sizeof(default_gamma_table_data));
789d4fa1a1SMauro Carvalho Chehab 	memcpy(default_b_gamma_table.data.vamem_2, default_gamma_table_data,
799d4fa1a1SMauro Carvalho Chehab 	       sizeof(default_gamma_table_data));
809d4fa1a1SMauro Carvalho Chehab }
81