1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Medifield PNW Camera Imaging ISP subsystem.
4  *
5  * Copyright (c) 2010 Intel Corporation. All Rights Reserved.
6  *
7  * Copyright (c) 2010 Silicon Hive www.siliconhive.com.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License version
11  * 2 as published by the Free Software Foundation.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  *
19  */
20 #ifndef	__ATOMISP_TABLES_H__
21 #define	__ATOMISP_TABLES_H__
22 
23 #include "sh_css_params.h"
24 
25 /*Sepia image effect table*/
26 static struct ia_css_cc_config sepia_cc_config = {
27 	.fraction_bits  = 8,
28 	.matrix	 = {141, 18, 68, -40, -5, -19, 35, 4, 16},
29 };
30 
31 /*Negative image effect table*/
32 static struct ia_css_cc_config nega_cc_config = {
33 	.fraction_bits  = 8,
34 	.matrix	 = {255, 29, 120, 0, 374, 342, 0, 672, -301},
35 };
36 
37 /*Mono image effect table*/
38 static struct ia_css_cc_config mono_cc_config = {
39 	.fraction_bits  = 8,
40 	.matrix	 = {255, 29, 120, 0, 0, 0, 0, 0, 0},
41 };
42 
43 /*Skin whiten image effect table*/
44 static struct ia_css_macc_table skin_low_macc_table = {
45 	.data = {
46 		8192, 0, 0, 8192,
47 		8192, 0, 0, 8192,
48 		8192, 0, 0, 8192,
49 		8192, 0, 0, 8192,
50 		7168, 0, 2048, 8192,
51 		5120, -1024, 2048, 8192,
52 		8192, 2048, -1024, 5120,
53 		8192, 2048, 0, 7168,
54 		8192, 0, 0, 8192,
55 		8192, 0, 0, 8192,
56 		8192, 0, 0, 8192,
57 		8192, 0, 0, 8192,
58 		8192, 0, 0, 8192,
59 		8192, 0, 0, 8192,
60 		8192, 0, 0, 8192,
61 		8192, 0, 0, 8192
62 	}
63 };
64 
65 static struct ia_css_macc_table skin_medium_macc_table = {
66 	.data = {
67 		8192, 0, 0, 8192,
68 		8192, 0, 0, 8192,
69 		8192, 0, 0, 8192,
70 		8192, 0, 0, 8192,
71 		5120, 0, 6144, 8192,
72 		3072, -1024, 2048, 6144,
73 		6144, 2048, -1024, 3072,
74 		8192, 6144, 0, 5120,
75 		8192, 0, 0, 8192,
76 		8192, 0, 0, 8192,
77 		8192, 0, 0, 8192,
78 		8192, 0, 0, 8192,
79 		8192, 0, 0, 8192,
80 		8192, 0, 0, 8192,
81 		8192, 0, 0, 8192,
82 		8192, 0, 0, 8192
83 	}
84 };
85 
86 static struct ia_css_macc_table skin_high_macc_table = {
87 	.data = {
88 		8192, 0, 0, 8192,
89 		8192, 0, 0, 8192,
90 		8192, 0, 0, 8192,
91 		8192, 0, 0, 8192,
92 		4096, 0, 8192, 8192,
93 		0, -2048, 4096, 6144,
94 		6144, 4096, -2048, 0,
95 		8192, 8192, 0, 4096,
96 		8192, 0, 0, 8192,
97 		8192, 0, 0, 8192,
98 		8192, 0, 0, 8192,
99 		8192, 0, 0, 8192,
100 		8192, 0, 0, 8192,
101 		8192, 0, 0, 8192,
102 		8192, 0, 0, 8192,
103 		8192, 0, 0, 8192
104 	}
105 };
106 
107 /*Blue enhencement image effect table*/
108 static struct ia_css_macc_table blue_macc_table = {
109 	.data = {
110 		9728, -3072, 0, 8192,
111 		8192, 0, 0, 8192,
112 		8192, 0, 0, 8192,
113 		8192, 0, 0, 8192,
114 		8192, 0, 0, 8192,
115 		8192, 0, 0, 8192,
116 		8192, 0, 0, 8192,
117 		8192, 0, 0, 8192,
118 		8192, 0, 0, 8192,
119 		8192, 0, 0, 8192,
120 		8192, 0, 0, 8192,
121 		8192, 0, 0, 8192,
122 		9728, 0, -3072, 8192,
123 		12800, 1536, -3072, 8192,
124 		11264, 0, 0, 11264,
125 		9728, -3072, 0, 11264
126 	}
127 };
128 
129 /*Green enhencement image effect table*/
130 static struct ia_css_macc_table green_macc_table = {
131 	.data = {
132 		8192, 0, 0, 8192,
133 		8192, 0, 0, 8192,
134 		8192, 0, 0, 8192,
135 		8192, 0, 0, 8192,
136 		8192, 0, 0, 8192,
137 		8192, 0, 0, 8192,
138 		8192, 0, 0, 8192,
139 		10240, 4096, 0, 8192,
140 		10240, 4096, 0, 12288,
141 		12288, 0, 0, 12288,
142 		14336, -2048, 4096, 8192,
143 		10240, 0, 4096, 8192,
144 		8192, 0, 0, 8192,
145 		8192, 0, 0, 8192,
146 		8192, 0, 0, 8192,
147 		8192, 0, 0, 8192
148 	}
149 };
150 
151 static struct ia_css_ctc_table vivid_ctc_table = {
152 	.data.vamem_2 = {
153 		0,  384,  837,  957, 1011, 1062, 1083, 1080,
154 		1078, 1077, 1053, 1039, 1012,  992,  969,  951,
155 		929,  906,  886,  866,  845,  823,  809,  790,
156 		772,  758,  741,  726,  711,  701,  688,  675,
157 		666,  656,  648,  639,  633,  626,  618,  612,
158 		603,  594,  582,  572,  557,  545,  529,  516,
159 		504,  491,  480,  467,  459,  447,  438,  429,
160 		419,  412,  404,  397,  389,  382,  376,  368,
161 		363,  357,  351,  345,  340,  336,  330,  326,
162 		321,  318,  312,  308,  304,  300,  297,  294,
163 		291,  286,  284,  281,  278,  275,  271,  268,
164 		261,  257,  251,  245,  240,  235,  232,  225,
165 		223,  218,  213,  209,  206,  204,  199,  197,
166 		193,  189,  186,  185,  183,  179,  177,  175,
167 		172,  170,  169,  167,  164,  164,  162,  160,
168 		158,  157,  156,  154,  154,  152,  151,  150,
169 		149,  148,  146,  147,  146,  144,  143,  143,
170 		142,  141,  140,  141,  139,  138,  138,  138,
171 		137,  136,  136,  135,  134,  134,  134,  133,
172 		132,  132,  131,  130,  131,  130,  129,  128,
173 		129,  127,  127,  127,  127,  125,  125,  125,
174 		123,  123,  122,  120,  118,  115,  114,  111,
175 		110,  108,  106,  105,  103,  102,  100,   99,
176 		97,   97,   96,   95,   94,   93,   93,   91,
177 		91,   91,   90,   90,   89,   89,   88,   88,
178 		89,   88,   88,   87,   87,   87,   87,   86,
179 		87,   87,   86,   87,   86,   86,   84,   84,
180 		82,   80,   78,   76,   74,   72,   70,   68,
181 		67,   65,   62,   60,   58,   56,   55,   54,
182 		53,   51,   49,   49,   47,   45,   45,   45,
183 		41,   40,   39,   39,   34,   33,   34,   32,
184 		25,   23,   24,   20,   13,    9,   12,    0,
185 		0
186 	}
187 };
188 #endif
189