GNU Linux-libre 4.14.295-gnu1
[releases.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / gc / gc_1.0 / ia_css_gc_table.host.c
1 /*
2  * Support for Intel Camera Imaging ISP subsystem.
3  * Copyright (c) 2015, Intel Corporation.
4  *
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.
8  *
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
12  * more details.
13  */
14
15 #include <type_support.h>
16 #include <string_support.h> /* memcpy */
17 #include "system_global.h"
18 #include "vamem.h"
19 #include "ia_css_types.h"
20 #include "ia_css_gc_table.host.h"
21
22 #if defined(HAS_VAMEM_VERSION_2)
23
24 struct ia_css_gamma_table default_gamma_table;
25
26 static const uint16_t
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,
60 255
61 };
62
63 #elif defined(HAS_VAMEM_VERSION_1)
64
65 static const uint16_t
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
195 };
196
197 #else
198 #error "VAMEM version must be one of {VAMEM_VERSION_1, VAMEM_VERSION_2}"
199 #endif
200
201 void
202 ia_css_config_gamma_table(void)
203 {
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;
208 #else
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;
212 #endif
213 }
214