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