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_gc_table.host.h"
22 #if defined(HAS_VAMEM_VERSION_2)
24 struct ia_css_gamma_table default_gamma_table;
27 default_gamma_table_data[IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE] = {
28 0, 4, 8, 12, 17, 21, 27, 32,
29 38, 44, 49, 55, 61, 66, 71, 76,
30 80, 84, 88, 92, 95, 98, 102, 105,
31 108, 110, 113, 116, 118, 121, 123, 126,
32 128, 130, 132, 135, 137, 139, 141, 143,
33 145, 146, 148, 150, 152, 153, 155, 156,
34 158, 160, 161, 162, 164, 165, 166, 168,
35 169, 170, 171, 172, 174, 175, 176, 177,
36 178, 179, 180, 181, 182, 183, 184, 184,
37 185, 186, 187, 188, 189, 189, 190, 191,
38 192, 192, 193, 194, 195, 195, 196, 197,
39 197, 198, 198, 199, 200, 200, 201, 201,
40 202, 203, 203, 204, 204, 205, 205, 206,
41 206, 207, 207, 208, 208, 209, 209, 210,
42 210, 210, 211, 211, 212, 212, 213, 213,
43 214, 214, 214, 215, 215, 216, 216, 216,
44 217, 217, 218, 218, 218, 219, 219, 220,
45 220, 220, 221, 221, 222, 222, 222, 223,
46 223, 223, 224, 224, 225, 225, 225, 226,
47 226, 226, 227, 227, 227, 228, 228, 228,
48 229, 229, 229, 230, 230, 230, 231, 231,
49 231, 232, 232, 232, 233, 233, 233, 234,
50 234, 234, 234, 235, 235, 235, 236, 236,
51 236, 237, 237, 237, 237, 238, 238, 238,
52 239, 239, 239, 239, 240, 240, 240, 241,
53 241, 241, 241, 242, 242, 242, 242, 243,
54 243, 243, 243, 244, 244, 244, 245, 245,
55 245, 245, 246, 246, 246, 246, 247, 247,
56 247, 247, 248, 248, 248, 248, 249, 249,
57 249, 249, 250, 250, 250, 250, 251, 251,
58 251, 251, 252, 252, 252, 252, 253, 253,
59 253, 253, 254, 254, 254, 254, 255, 255,
63 #elif defined(HAS_VAMEM_VERSION_1)
66 default_gamma_table_data[IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE] = {
67 0, 1, 2, 3, 4, 5, 6, 7,
68 8, 9, 10, 11, 12, 13, 14, 16,
69 17, 18, 19, 20, 21, 23, 24, 25,
70 27, 28, 29, 31, 32, 33, 35, 36,
71 38, 39, 41, 42, 44, 45, 47, 48,
72 49, 51, 52, 54, 55, 57, 58, 60,
73 61, 62, 64, 65, 66, 68, 69, 70,
74 71, 72, 74, 75, 76, 77, 78, 79,
75 80, 81, 82, 83, 84, 85, 86, 87,
76 88, 89, 90, 91, 92, 93, 93, 94,
77 95, 96, 97, 98, 98, 99, 100, 101,
78 102, 102, 103, 104, 105, 105, 106, 107,
79 108, 108, 109, 110, 110, 111, 112, 112,
80 113, 114, 114, 115, 116, 116, 117, 118,
81 118, 119, 120, 120, 121, 121, 122, 123,
82 123, 124, 125, 125, 126, 126, 127, 127, /* 128 */
83 128, 129, 129, 130, 130, 131, 131, 132,
84 132, 133, 134, 134, 135, 135, 136, 136,
85 137, 137, 138, 138, 139, 139, 140, 140,
86 141, 141, 142, 142, 143, 143, 144, 144,
87 145, 145, 145, 146, 146, 147, 147, 148,
88 148, 149, 149, 150, 150, 150, 151, 151,
89 152, 152, 152, 153, 153, 154, 154, 155,
90 155, 155, 156, 156, 156, 157, 157, 158,
91 158, 158, 159, 159, 160, 160, 160, 161,
92 161, 161, 162, 162, 162, 163, 163, 163,
93 164, 164, 164, 165, 165, 165, 166, 166,
94 166, 167, 167, 167, 168, 168, 168, 169,
95 169, 169, 170, 170, 170, 170, 171, 171,
96 171, 172, 172, 172, 172, 173, 173, 173,
97 174, 174, 174, 174, 175, 175, 175, 176,
98 176, 176, 176, 177, 177, 177, 177, 178, /* 256 */
99 178, 178, 178, 179, 179, 179, 179, 180,
100 180, 180, 180, 181, 181, 181, 181, 182,
101 182, 182, 182, 182, 183, 183, 183, 183,
102 184, 184, 184, 184, 184, 185, 185, 185,
103 185, 186, 186, 186, 186, 186, 187, 187,
104 187, 187, 187, 188, 188, 188, 188, 188,
105 189, 189, 189, 189, 189, 190, 190, 190,
106 190, 190, 191, 191, 191, 191, 191, 192,
107 192, 192, 192, 192, 192, 193, 193, 193,
108 193, 193, 194, 194, 194, 194, 194, 194,
109 195, 195, 195, 195, 195, 195, 196, 196,
110 196, 196, 196, 196, 197, 197, 197, 197,
111 197, 197, 198, 198, 198, 198, 198, 198,
112 198, 199, 199, 199, 199, 199, 199, 200,
113 200, 200, 200, 200, 200, 200, 201, 201,
114 201, 201, 201, 201, 201, 202, 202, 202, /* 384 */
115 202, 202, 202, 202, 203, 203, 203, 203,
116 203, 203, 203, 204, 204, 204, 204, 204,
117 204, 204, 204, 205, 205, 205, 205, 205,
118 205, 205, 205, 206, 206, 206, 206, 206,
119 206, 206, 206, 207, 207, 207, 207, 207,
120 207, 207, 207, 208, 208, 208, 208, 208,
121 208, 208, 208, 209, 209, 209, 209, 209,
122 209, 209, 209, 209, 210, 210, 210, 210,
123 210, 210, 210, 210, 210, 211, 211, 211,
124 211, 211, 211, 211, 211, 211, 212, 212,
125 212, 212, 212, 212, 212, 212, 212, 213,
126 213, 213, 213, 213, 213, 213, 213, 213,
127 214, 214, 214, 214, 214, 214, 214, 214,
128 214, 214, 215, 215, 215, 215, 215, 215,
129 215, 215, 215, 216, 216, 216, 216, 216,
130 216, 216, 216, 216, 216, 217, 217, 217, /* 512 */
131 217, 217, 217, 217, 217, 217, 217, 218,
132 218, 218, 218, 218, 218, 218, 218, 218,
133 218, 219, 219, 219, 219, 219, 219, 219,
134 219, 219, 219, 220, 220, 220, 220, 220,
135 220, 220, 220, 220, 220, 221, 221, 221,
136 221, 221, 221, 221, 221, 221, 221, 221,
137 222, 222, 222, 222, 222, 222, 222, 222,
138 222, 222, 223, 223, 223, 223, 223, 223,
139 223, 223, 223, 223, 223, 224, 224, 224,
140 224, 224, 224, 224, 224, 224, 224, 224,
141 225, 225, 225, 225, 225, 225, 225, 225,
142 225, 225, 225, 226, 226, 226, 226, 226,
143 226, 226, 226, 226, 226, 226, 226, 227,
144 227, 227, 227, 227, 227, 227, 227, 227,
145 227, 227, 228, 228, 228, 228, 228, 228,
146 228, 228, 228, 228, 228, 228, 229, 229,
147 229, 229, 229, 229, 229, 229, 229, 229,
148 229, 229, 230, 230, 230, 230, 230, 230,
149 230, 230, 230, 230, 230, 230, 231, 231,
150 231, 231, 231, 231, 231, 231, 231, 231,
151 231, 231, 231, 232, 232, 232, 232, 232,
152 232, 232, 232, 232, 232, 232, 232, 233,
153 233, 233, 233, 233, 233, 233, 233, 233,
154 233, 233, 233, 233, 234, 234, 234, 234,
155 234, 234, 234, 234, 234, 234, 234, 234,
156 234, 235, 235, 235, 235, 235, 235, 235,
157 235, 235, 235, 235, 235, 235, 236, 236,
158 236, 236, 236, 236, 236, 236, 236, 236,
159 236, 236, 236, 236, 237, 237, 237, 237,
160 237, 237, 237, 237, 237, 237, 237, 237,
161 237, 237, 238, 238, 238, 238, 238, 238,
162 238, 238, 238, 238, 238, 238, 238, 238,
163 239, 239, 239, 239, 239, 239, 239, 239,
164 239, 239, 239, 239, 239, 239, 240, 240,
165 240, 240, 240, 240, 240, 240, 240, 240,
166 240, 240, 240, 240, 241, 241, 241, 241,
167 241, 241, 241, 241, 241, 241, 241, 241,
168 241, 241, 241, 242, 242, 242, 242, 242,
169 242, 242, 242, 242, 242, 242, 242, 242,
170 242, 242, 243, 243, 243, 243, 243, 243,
171 243, 243, 243, 243, 243, 243, 243, 243,
172 243, 244, 244, 244, 244, 244, 244, 244,
173 244, 244, 244, 244, 244, 244, 244, 244,
174 245, 245, 245, 245, 245, 245, 245, 245,
175 245, 245, 245, 245, 245, 245, 245, 246,
176 246, 246, 246, 246, 246, 246, 246, 246,
177 246, 246, 246, 246, 246, 246, 246, 247,
178 247, 247, 247, 247, 247, 247, 247, 247,
179 247, 247, 247, 247, 247, 247, 247, 248,
180 248, 248, 248, 248, 248, 248, 248, 248,
181 248, 248, 248, 248, 248, 248, 248, 249,
182 249, 249, 249, 249, 249, 249, 249, 249,
183 249, 249, 249, 249, 249, 249, 249, 250,
184 250, 250, 250, 250, 250, 250, 250, 250,
185 250, 250, 250, 250, 250, 250, 250, 251,
186 251, 251, 251, 251, 251, 251, 251, 251,
187 251, 251, 251, 251, 251, 251, 251, 252,
188 252, 252, 252, 252, 252, 252, 252, 252,
189 252, 252, 252, 252, 252, 252, 252, 253,
190 253, 253, 253, 253, 253, 253, 253, 253,
191 253, 253, 253, 253, 253, 253, 253, 253,
192 254, 254, 254, 254, 254, 254, 254, 254,
193 254, 254, 254, 254, 254, 254, 254, 254,
194 255, 255, 255, 255, 255, 255, 255, 255
198 #error "VAMEM version must be one of {VAMEM_VERSION_1, VAMEM_VERSION_2}"
202 ia_css_config_gamma_table(void)
204 #if defined(HAS_VAMEM_VERSION_2)
205 memcpy(default_gamma_table.data.vamem_2, default_gamma_table_data,
206 sizeof(default_gamma_table_data));
207 default_gamma_table.vamem_type = IA_CSS_VAMEM_TYPE_2;
209 memcpy(default_gamma_table.data.vamem_1, default_gamma_table_data,
210 sizeof(default_gamma_table_data));
211 default_gamma_table.vamem_type = IA_CSS_VAMEM_TYPE_1;