2 * Support for Intel Camera Imaging ISP subsystem.
3 * Copyright (c) 2015, Intel Corporation.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 #include <type_support.h>
16 #include <string_support.h> /* memcpy */
17 #include "system_global.h"
19 #include "ia_css_types.h"
20 #include "ia_css_ctc_table.host.h"
22 struct ia_css_ctc_table default_ctc_table;
24 #if defined(HAS_VAMEM_VERSION_2)
27 default_ctc_table_data[IA_CSS_VAMEM_2_CTC_TABLE_SIZE] = {
28 0, 384, 837, 957, 1011, 1062, 1083, 1080,
29 1078, 1077, 1053, 1039, 1012, 992, 969, 951,
30 929, 906, 886, 866, 845, 823, 809, 790,
31 772, 758, 741, 726, 711, 701, 688, 675,
32 666, 656, 648, 639, 633, 626, 618, 612,
33 603, 594, 582, 572, 557, 545, 529, 516,
34 504, 491, 480, 467, 459, 447, 438, 429,
35 419, 412, 404, 397, 389, 382, 376, 368,
36 363, 357, 351, 345, 340, 336, 330, 326,
37 321, 318, 312, 308, 304, 300, 297, 294,
38 291, 286, 284, 281, 278, 275, 271, 268,
39 261, 257, 251, 245, 240, 235, 232, 225,
40 223, 218, 213, 209, 206, 204, 199, 197,
41 193, 189, 186, 185, 183, 179, 177, 175,
42 172, 170, 169, 167, 164, 164, 162, 160,
43 158, 157, 156, 154, 154, 152, 151, 150,
44 149, 148, 146, 147, 146, 144, 143, 143,
45 142, 141, 140, 141, 139, 138, 138, 138,
46 137, 136, 136, 135, 134, 134, 134, 133,
47 132, 132, 131, 130, 131, 130, 129, 128,
48 129, 127, 127, 127, 127, 125, 125, 125,
49 123, 123, 122, 120, 118, 115, 114, 111,
50 110, 108, 106, 105, 103, 102, 100, 99,
51 97, 97, 96, 95, 94, 93, 93, 91,
52 91, 91, 90, 90, 89, 89, 88, 88,
53 89, 88, 88, 87, 87, 87, 87, 86,
54 87, 87, 86, 87, 86, 86, 84, 84,
55 82, 80, 78, 76, 74, 72, 70, 68,
56 67, 65, 62, 60, 58, 56, 55, 54,
57 53, 51, 49, 49, 47, 45, 45, 45,
58 41, 40, 39, 39, 34, 33, 34, 32,
59 25, 23, 24, 20, 13, 9, 12, 0,
63 #elif defined(HAS_VAMEM_VERSION_1)
65 /* Default Parameters */
67 default_ctc_table_data[IA_CSS_VAMEM_1_CTC_TABLE_SIZE] = {
68 0, 0, 256, 384, 384, 497, 765, 806,
69 837, 851, 888, 901, 957, 981, 993, 1001,
70 1011, 1029, 1028, 1039, 1062, 1059, 1073, 1080,
71 1083, 1085, 1085, 1098, 1080, 1084, 1085, 1093,
72 1078, 1073, 1070, 1069, 1077, 1066, 1072, 1063,
73 1053, 1044, 1046, 1053, 1039, 1028, 1025, 1024,
74 1012, 1013, 1016, 996, 992, 990, 990, 980,
75 969, 968, 961, 955, 951, 949, 933, 930,
76 929, 925, 921, 916, 906, 901, 895, 893,
77 886, 877, 872, 869, 866, 861, 857, 849,
78 845, 838, 836, 832, 823, 821, 815, 813,
79 809, 805, 796, 793, 790, 785, 784, 778,
80 772, 768, 766, 763, 758, 752, 749, 745,
81 741, 740, 736, 730, 726, 724, 723, 718,
82 711, 709, 706, 704, 701, 698, 691, 689,
83 688, 683, 683, 678, 675, 673, 671, 669,
84 666, 663, 661, 660, 656, 656, 653, 650,
85 648, 647, 646, 643, 639, 638, 637, 635,
86 633, 632, 629, 627, 626, 625, 622, 621,
87 618, 618, 614, 614, 612, 609, 606, 606,
88 603, 600, 600, 597, 594, 591, 590, 586,
89 582, 581, 578, 575, 572, 569, 563, 560,
90 557, 554, 551, 548, 545, 539, 536, 533,
91 529, 527, 524, 519, 516, 513, 510, 507,
92 504, 501, 498, 493, 491, 488, 485, 484,
93 480, 476, 474, 471, 467, 466, 464, 460,
94 459, 455, 453, 449, 447, 446, 443, 441,
95 438, 435, 432, 432, 429, 427, 426, 422,
96 419, 418, 416, 414, 412, 410, 408, 406,
97 404, 402, 401, 398, 397, 395, 393, 390,
98 389, 388, 387, 384, 382, 380, 378, 377,
99 376, 375, 372, 370, 368, 368, 366, 364,
100 363, 361, 360, 358, 357, 355, 354, 352,
101 351, 350, 349, 346, 345, 344, 344, 342,
102 340, 339, 337, 337, 336, 335, 333, 331,
103 330, 329, 328, 326, 326, 324, 324, 322,
104 321, 320, 318, 318, 318, 317, 315, 313,
105 312, 311, 311, 310, 308, 307, 306, 306,
106 304, 304, 302, 301, 300, 300, 299, 297,
107 297, 296, 296, 294, 294, 292, 291, 291,
108 291, 290, 288, 287, 286, 286, 287, 285,
109 284, 283, 282, 282, 281, 281, 279, 278,
110 278, 278, 276, 276, 275, 274, 274, 273,
111 271, 270, 269, 268, 268, 267, 265, 262,
112 261, 260, 260, 259, 257, 254, 252, 252,
113 251, 251, 249, 246, 245, 244, 243, 242,
114 240, 239, 239, 237, 235, 235, 233, 231,
115 232, 230, 229, 226, 225, 224, 225, 224,
116 223, 220, 219, 219, 218, 217, 217, 214,
117 213, 213, 212, 211, 209, 209, 209, 208,
118 206, 205, 204, 203, 204, 203, 201, 200,
119 199, 197, 198, 198, 197, 195, 194, 194,
120 193, 192, 192, 191, 189, 190, 189, 188,
121 186, 187, 186, 185, 185, 184, 183, 181,
122 183, 182, 181, 180, 179, 178, 178, 178,
123 177, 176, 175, 176, 175, 174, 174, 173,
124 172, 173, 172, 171, 170, 170, 169, 169,
125 169, 168, 167, 166, 167, 167, 166, 165,
126 164, 164, 164, 163, 164, 163, 162, 163,
127 162, 161, 160, 161, 160, 160, 160, 159,
128 158, 157, 158, 158, 157, 157, 156, 156,
129 156, 156, 155, 155, 154, 154, 154, 154,
130 154, 153, 152, 153, 152, 152, 151, 152,
131 151, 152, 151, 150, 150, 149, 149, 150,
132 149, 149, 148, 148, 148, 149, 148, 147,
133 146, 146, 147, 146, 147, 146, 145, 146,
134 146, 145, 144, 145, 144, 145, 144, 144,
135 143, 143, 143, 144, 143, 142, 142, 142,
136 142, 142, 142, 141, 141, 141, 141, 140,
137 140, 141, 140, 140, 141, 140, 139, 139,
138 139, 140, 139, 139, 138, 138, 137, 139,
139 138, 138, 138, 137, 138, 137, 137, 137,
140 137, 136, 137, 136, 136, 136, 136, 135,
141 136, 135, 135, 135, 135, 136, 135, 135,
142 134, 134, 133, 135, 134, 134, 134, 133,
143 134, 133, 134, 133, 133, 132, 133, 133,
144 132, 133, 132, 132, 132, 132, 131, 131,
145 131, 132, 131, 131, 130, 131, 130, 132,
146 131, 130, 130, 129, 130, 129, 130, 129,
147 129, 129, 130, 129, 128, 128, 128, 128,
148 129, 128, 128, 127, 127, 128, 128, 127,
149 127, 126, 126, 127, 127, 126, 126, 126,
150 127, 126, 126, 126, 125, 125, 126, 125,
151 125, 124, 124, 124, 125, 125, 124, 124,
152 123, 124, 124, 123, 123, 122, 122, 122,
153 122, 122, 121, 120, 120, 119, 118, 118,
154 118, 117, 117, 116, 115, 115, 115, 114,
155 114, 113, 113, 112, 111, 111, 111, 110,
156 110, 109, 109, 108, 108, 108, 107, 107,
157 106, 106, 105, 105, 105, 104, 104, 103,
158 103, 102, 102, 102, 102, 101, 101, 100,
159 100, 99, 99, 99, 99, 99, 99, 98,
160 97, 98, 97, 97, 97, 96, 96, 95,
161 96, 95, 96, 95, 95, 94, 94, 95,
162 94, 94, 94, 93, 93, 92, 93, 93,
163 93, 93, 92, 92, 91, 92, 92, 92,
164 91, 91, 90, 90, 91, 91, 91, 90,
165 90, 90, 90, 91, 90, 90, 90, 89,
166 89, 89, 90, 89, 89, 89, 89, 89,
167 88, 89, 89, 88, 88, 88, 88, 87,
168 89, 88, 88, 88, 88, 88, 87, 88,
169 88, 88, 87, 87, 87, 87, 87, 88,
170 87, 87, 87, 87, 87, 87, 88, 87,
171 87, 87, 87, 86, 86, 87, 87, 87,
172 87, 86, 86, 86, 87, 87, 86, 87,
173 86, 86, 86, 87, 87, 86, 86, 86,
174 86, 86, 87, 87, 86, 85, 85, 85,
175 84, 85, 85, 84, 84, 83, 83, 82,
176 82, 82, 81, 81, 80, 79, 79, 79,
177 78, 77, 77, 76, 76, 76, 75, 74,
178 74, 74, 73, 73, 72, 71, 71, 71,
179 70, 70, 69, 69, 68, 68, 67, 67,
180 67, 66, 66, 65, 65, 64, 64, 63,
181 62, 62, 62, 61, 60, 60, 59, 59,
182 58, 58, 57, 57, 56, 56, 56, 55,
183 55, 54, 55, 55, 54, 53, 53, 52,
184 53, 53, 52, 51, 51, 50, 51, 50,
185 49, 49, 50, 49, 49, 48, 48, 47,
186 47, 48, 46, 45, 45, 45, 46, 45,
187 45, 44, 45, 45, 45, 43, 42, 42,
188 41, 43, 41, 40, 40, 39, 40, 41,
189 39, 39, 39, 39, 39, 38, 35, 35,
190 34, 37, 36, 34, 33, 33, 33, 35,
191 34, 32, 32, 31, 32, 30, 29, 26,
192 25, 25, 27, 26, 23, 23, 23, 25,
193 24, 24, 22, 21, 20, 19, 16, 14,
194 13, 13, 13, 10, 9, 7, 7, 7,
195 12, 12, 12, 7, 0, 0, 0, 0
199 #error "VAMEM version must be one of {VAMEM_VERSION_1, VAMEM_VERSION_2}"
203 ia_css_config_ctc_table(void)
205 #if defined(HAS_VAMEM_VERSION_2)
206 memcpy(default_ctc_table.data.vamem_2, default_ctc_table_data,
207 sizeof(default_ctc_table_data));
208 default_ctc_table.vamem_type = IA_CSS_VAMEM_TYPE_2;
210 memcpy(default_ctc_table.data.vamem_1, default_ctc_table_data,
211 sizeof(default_ctc_table_data));
212 default_ctc_table.vamem_type = 1IA_CSS_VAMEM_TYPE_1;