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