xref: /linux/drivers/gpu/drm/vkms/vkms_luts.c (revision 3f1c07fc21c68bd3bd2df9d2c9441f6485e934d9)
1 // SPDX-License-Identifier: GPL-2.0+
2 
3 #include <drm/drm_mode.h>
4 
5 #include "vkms_drv.h"
6 #include "vkms_luts.h"
7 
8 /*
9  * These luts were generated with a LUT generated based on
10  * skia's transfer function code. The LUT generator can be
11  * found at
12  * https://gitlab.freedesktop.org/hwentland/lutgen
13  */
14 
15 static struct drm_color_lut linear_array[LUT_SIZE] = {
16 	{ 0x0, 0x0, 0x0, 0 },
17 	{ 0x101, 0x101, 0x101, 0 },
18 	{ 0x202, 0x202, 0x202, 0 },
19 	{ 0x303, 0x303, 0x303, 0 },
20 	{ 0x404, 0x404, 0x404, 0 },
21 	{ 0x505, 0x505, 0x505, 0 },
22 	{ 0x606, 0x606, 0x606, 0 },
23 	{ 0x707, 0x707, 0x707, 0 },
24 	{ 0x808, 0x808, 0x808, 0 },
25 	{ 0x909, 0x909, 0x909, 0 },
26 	{ 0xa0a, 0xa0a, 0xa0a, 0 },
27 	{ 0xb0b, 0xb0b, 0xb0b, 0 },
28 	{ 0xc0c, 0xc0c, 0xc0c, 0 },
29 	{ 0xd0d, 0xd0d, 0xd0d, 0 },
30 	{ 0xe0e, 0xe0e, 0xe0e, 0 },
31 	{ 0xf0f, 0xf0f, 0xf0f, 0 },
32 	{ 0x1010, 0x1010, 0x1010, 0 },
33 	{ 0x1111, 0x1111, 0x1111, 0 },
34 	{ 0x1212, 0x1212, 0x1212, 0 },
35 	{ 0x1313, 0x1313, 0x1313, 0 },
36 	{ 0x1414, 0x1414, 0x1414, 0 },
37 	{ 0x1515, 0x1515, 0x1515, 0 },
38 	{ 0x1616, 0x1616, 0x1616, 0 },
39 	{ 0x1717, 0x1717, 0x1717, 0 },
40 	{ 0x1818, 0x1818, 0x1818, 0 },
41 	{ 0x1919, 0x1919, 0x1919, 0 },
42 	{ 0x1a1a, 0x1a1a, 0x1a1a, 0 },
43 	{ 0x1b1b, 0x1b1b, 0x1b1b, 0 },
44 	{ 0x1c1c, 0x1c1c, 0x1c1c, 0 },
45 	{ 0x1d1d, 0x1d1d, 0x1d1d, 0 },
46 	{ 0x1e1e, 0x1e1e, 0x1e1e, 0 },
47 	{ 0x1f1f, 0x1f1f, 0x1f1f, 0 },
48 	{ 0x2020, 0x2020, 0x2020, 0 },
49 	{ 0x2121, 0x2121, 0x2121, 0 },
50 	{ 0x2222, 0x2222, 0x2222, 0 },
51 	{ 0x2323, 0x2323, 0x2323, 0 },
52 	{ 0x2424, 0x2424, 0x2424, 0 },
53 	{ 0x2525, 0x2525, 0x2525, 0 },
54 	{ 0x2626, 0x2626, 0x2626, 0 },
55 	{ 0x2727, 0x2727, 0x2727, 0 },
56 	{ 0x2828, 0x2828, 0x2828, 0 },
57 	{ 0x2929, 0x2929, 0x2929, 0 },
58 	{ 0x2a2a, 0x2a2a, 0x2a2a, 0 },
59 	{ 0x2b2b, 0x2b2b, 0x2b2b, 0 },
60 	{ 0x2c2c, 0x2c2c, 0x2c2c, 0 },
61 	{ 0x2d2d, 0x2d2d, 0x2d2d, 0 },
62 	{ 0x2e2e, 0x2e2e, 0x2e2e, 0 },
63 	{ 0x2f2f, 0x2f2f, 0x2f2f, 0 },
64 	{ 0x3030, 0x3030, 0x3030, 0 },
65 	{ 0x3131, 0x3131, 0x3131, 0 },
66 	{ 0x3232, 0x3232, 0x3232, 0 },
67 	{ 0x3333, 0x3333, 0x3333, 0 },
68 	{ 0x3434, 0x3434, 0x3434, 0 },
69 	{ 0x3535, 0x3535, 0x3535, 0 },
70 	{ 0x3636, 0x3636, 0x3636, 0 },
71 	{ 0x3737, 0x3737, 0x3737, 0 },
72 	{ 0x3838, 0x3838, 0x3838, 0 },
73 	{ 0x3939, 0x3939, 0x3939, 0 },
74 	{ 0x3a3a, 0x3a3a, 0x3a3a, 0 },
75 	{ 0x3b3b, 0x3b3b, 0x3b3b, 0 },
76 	{ 0x3c3c, 0x3c3c, 0x3c3c, 0 },
77 	{ 0x3d3d, 0x3d3d, 0x3d3d, 0 },
78 	{ 0x3e3e, 0x3e3e, 0x3e3e, 0 },
79 	{ 0x3f3f, 0x3f3f, 0x3f3f, 0 },
80 	{ 0x4040, 0x4040, 0x4040, 0 },
81 	{ 0x4141, 0x4141, 0x4141, 0 },
82 	{ 0x4242, 0x4242, 0x4242, 0 },
83 	{ 0x4343, 0x4343, 0x4343, 0 },
84 	{ 0x4444, 0x4444, 0x4444, 0 },
85 	{ 0x4545, 0x4545, 0x4545, 0 },
86 	{ 0x4646, 0x4646, 0x4646, 0 },
87 	{ 0x4747, 0x4747, 0x4747, 0 },
88 	{ 0x4848, 0x4848, 0x4848, 0 },
89 	{ 0x4949, 0x4949, 0x4949, 0 },
90 	{ 0x4a4a, 0x4a4a, 0x4a4a, 0 },
91 	{ 0x4b4b, 0x4b4b, 0x4b4b, 0 },
92 	{ 0x4c4c, 0x4c4c, 0x4c4c, 0 },
93 	{ 0x4d4d, 0x4d4d, 0x4d4d, 0 },
94 	{ 0x4e4e, 0x4e4e, 0x4e4e, 0 },
95 	{ 0x4f4f, 0x4f4f, 0x4f4f, 0 },
96 	{ 0x5050, 0x5050, 0x5050, 0 },
97 	{ 0x5151, 0x5151, 0x5151, 0 },
98 	{ 0x5252, 0x5252, 0x5252, 0 },
99 	{ 0x5353, 0x5353, 0x5353, 0 },
100 	{ 0x5454, 0x5454, 0x5454, 0 },
101 	{ 0x5555, 0x5555, 0x5555, 0 },
102 	{ 0x5656, 0x5656, 0x5656, 0 },
103 	{ 0x5757, 0x5757, 0x5757, 0 },
104 	{ 0x5858, 0x5858, 0x5858, 0 },
105 	{ 0x5959, 0x5959, 0x5959, 0 },
106 	{ 0x5a5a, 0x5a5a, 0x5a5a, 0 },
107 	{ 0x5b5b, 0x5b5b, 0x5b5b, 0 },
108 	{ 0x5c5c, 0x5c5c, 0x5c5c, 0 },
109 	{ 0x5d5d, 0x5d5d, 0x5d5d, 0 },
110 	{ 0x5e5e, 0x5e5e, 0x5e5e, 0 },
111 	{ 0x5f5f, 0x5f5f, 0x5f5f, 0 },
112 	{ 0x6060, 0x6060, 0x6060, 0 },
113 	{ 0x6161, 0x6161, 0x6161, 0 },
114 	{ 0x6262, 0x6262, 0x6262, 0 },
115 	{ 0x6363, 0x6363, 0x6363, 0 },
116 	{ 0x6464, 0x6464, 0x6464, 0 },
117 	{ 0x6565, 0x6565, 0x6565, 0 },
118 	{ 0x6666, 0x6666, 0x6666, 0 },
119 	{ 0x6767, 0x6767, 0x6767, 0 },
120 	{ 0x6868, 0x6868, 0x6868, 0 },
121 	{ 0x6969, 0x6969, 0x6969, 0 },
122 	{ 0x6a6a, 0x6a6a, 0x6a6a, 0 },
123 	{ 0x6b6b, 0x6b6b, 0x6b6b, 0 },
124 	{ 0x6c6c, 0x6c6c, 0x6c6c, 0 },
125 	{ 0x6d6d, 0x6d6d, 0x6d6d, 0 },
126 	{ 0x6e6e, 0x6e6e, 0x6e6e, 0 },
127 	{ 0x6f6f, 0x6f6f, 0x6f6f, 0 },
128 	{ 0x7070, 0x7070, 0x7070, 0 },
129 	{ 0x7171, 0x7171, 0x7171, 0 },
130 	{ 0x7272, 0x7272, 0x7272, 0 },
131 	{ 0x7373, 0x7373, 0x7373, 0 },
132 	{ 0x7474, 0x7474, 0x7474, 0 },
133 	{ 0x7575, 0x7575, 0x7575, 0 },
134 	{ 0x7676, 0x7676, 0x7676, 0 },
135 	{ 0x7777, 0x7777, 0x7777, 0 },
136 	{ 0x7878, 0x7878, 0x7878, 0 },
137 	{ 0x7979, 0x7979, 0x7979, 0 },
138 	{ 0x7a7a, 0x7a7a, 0x7a7a, 0 },
139 	{ 0x7b7b, 0x7b7b, 0x7b7b, 0 },
140 	{ 0x7c7c, 0x7c7c, 0x7c7c, 0 },
141 	{ 0x7d7d, 0x7d7d, 0x7d7d, 0 },
142 	{ 0x7e7e, 0x7e7e, 0x7e7e, 0 },
143 	{ 0x7f7f, 0x7f7f, 0x7f7f, 0 },
144 	{ 0x8080, 0x8080, 0x8080, 0 },
145 	{ 0x8181, 0x8181, 0x8181, 0 },
146 	{ 0x8282, 0x8282, 0x8282, 0 },
147 	{ 0x8383, 0x8383, 0x8383, 0 },
148 	{ 0x8484, 0x8484, 0x8484, 0 },
149 	{ 0x8585, 0x8585, 0x8585, 0 },
150 	{ 0x8686, 0x8686, 0x8686, 0 },
151 	{ 0x8787, 0x8787, 0x8787, 0 },
152 	{ 0x8888, 0x8888, 0x8888, 0 },
153 	{ 0x8989, 0x8989, 0x8989, 0 },
154 	{ 0x8a8a, 0x8a8a, 0x8a8a, 0 },
155 	{ 0x8b8b, 0x8b8b, 0x8b8b, 0 },
156 	{ 0x8c8c, 0x8c8c, 0x8c8c, 0 },
157 	{ 0x8d8d, 0x8d8d, 0x8d8d, 0 },
158 	{ 0x8e8e, 0x8e8e, 0x8e8e, 0 },
159 	{ 0x8f8f, 0x8f8f, 0x8f8f, 0 },
160 	{ 0x9090, 0x9090, 0x9090, 0 },
161 	{ 0x9191, 0x9191, 0x9191, 0 },
162 	{ 0x9292, 0x9292, 0x9292, 0 },
163 	{ 0x9393, 0x9393, 0x9393, 0 },
164 	{ 0x9494, 0x9494, 0x9494, 0 },
165 	{ 0x9595, 0x9595, 0x9595, 0 },
166 	{ 0x9696, 0x9696, 0x9696, 0 },
167 	{ 0x9797, 0x9797, 0x9797, 0 },
168 	{ 0x9898, 0x9898, 0x9898, 0 },
169 	{ 0x9999, 0x9999, 0x9999, 0 },
170 	{ 0x9a9a, 0x9a9a, 0x9a9a, 0 },
171 	{ 0x9b9b, 0x9b9b, 0x9b9b, 0 },
172 	{ 0x9c9c, 0x9c9c, 0x9c9c, 0 },
173 	{ 0x9d9d, 0x9d9d, 0x9d9d, 0 },
174 	{ 0x9e9e, 0x9e9e, 0x9e9e, 0 },
175 	{ 0x9f9f, 0x9f9f, 0x9f9f, 0 },
176 	{ 0xa0a0, 0xa0a0, 0xa0a0, 0 },
177 	{ 0xa1a1, 0xa1a1, 0xa1a1, 0 },
178 	{ 0xa2a2, 0xa2a2, 0xa2a2, 0 },
179 	{ 0xa3a3, 0xa3a3, 0xa3a3, 0 },
180 	{ 0xa4a4, 0xa4a4, 0xa4a4, 0 },
181 	{ 0xa5a5, 0xa5a5, 0xa5a5, 0 },
182 	{ 0xa6a6, 0xa6a6, 0xa6a6, 0 },
183 	{ 0xa7a7, 0xa7a7, 0xa7a7, 0 },
184 	{ 0xa8a8, 0xa8a8, 0xa8a8, 0 },
185 	{ 0xa9a9, 0xa9a9, 0xa9a9, 0 },
186 	{ 0xaaaa, 0xaaaa, 0xaaaa, 0 },
187 	{ 0xabab, 0xabab, 0xabab, 0 },
188 	{ 0xacac, 0xacac, 0xacac, 0 },
189 	{ 0xadad, 0xadad, 0xadad, 0 },
190 	{ 0xaeae, 0xaeae, 0xaeae, 0 },
191 	{ 0xafaf, 0xafaf, 0xafaf, 0 },
192 	{ 0xb0b0, 0xb0b0, 0xb0b0, 0 },
193 	{ 0xb1b1, 0xb1b1, 0xb1b1, 0 },
194 	{ 0xb2b2, 0xb2b2, 0xb2b2, 0 },
195 	{ 0xb3b3, 0xb3b3, 0xb3b3, 0 },
196 	{ 0xb4b4, 0xb4b4, 0xb4b4, 0 },
197 	{ 0xb5b5, 0xb5b5, 0xb5b5, 0 },
198 	{ 0xb6b6, 0xb6b6, 0xb6b6, 0 },
199 	{ 0xb7b7, 0xb7b7, 0xb7b7, 0 },
200 	{ 0xb8b8, 0xb8b8, 0xb8b8, 0 },
201 	{ 0xb9b9, 0xb9b9, 0xb9b9, 0 },
202 	{ 0xbaba, 0xbaba, 0xbaba, 0 },
203 	{ 0xbbbb, 0xbbbb, 0xbbbb, 0 },
204 	{ 0xbcbc, 0xbcbc, 0xbcbc, 0 },
205 	{ 0xbdbd, 0xbdbd, 0xbdbd, 0 },
206 	{ 0xbebe, 0xbebe, 0xbebe, 0 },
207 	{ 0xbfbf, 0xbfbf, 0xbfbf, 0 },
208 	{ 0xc0c0, 0xc0c0, 0xc0c0, 0 },
209 	{ 0xc1c1, 0xc1c1, 0xc1c1, 0 },
210 	{ 0xc2c2, 0xc2c2, 0xc2c2, 0 },
211 	{ 0xc3c3, 0xc3c3, 0xc3c3, 0 },
212 	{ 0xc4c4, 0xc4c4, 0xc4c4, 0 },
213 	{ 0xc5c5, 0xc5c5, 0xc5c5, 0 },
214 	{ 0xc6c6, 0xc6c6, 0xc6c6, 0 },
215 	{ 0xc7c7, 0xc7c7, 0xc7c7, 0 },
216 	{ 0xc8c8, 0xc8c8, 0xc8c8, 0 },
217 	{ 0xc9c9, 0xc9c9, 0xc9c9, 0 },
218 	{ 0xcaca, 0xcaca, 0xcaca, 0 },
219 	{ 0xcbcb, 0xcbcb, 0xcbcb, 0 },
220 	{ 0xcccc, 0xcccc, 0xcccc, 0 },
221 	{ 0xcdcd, 0xcdcd, 0xcdcd, 0 },
222 	{ 0xcece, 0xcece, 0xcece, 0 },
223 	{ 0xcfcf, 0xcfcf, 0xcfcf, 0 },
224 	{ 0xd0d0, 0xd0d0, 0xd0d0, 0 },
225 	{ 0xd1d1, 0xd1d1, 0xd1d1, 0 },
226 	{ 0xd2d2, 0xd2d2, 0xd2d2, 0 },
227 	{ 0xd3d3, 0xd3d3, 0xd3d3, 0 },
228 	{ 0xd4d4, 0xd4d4, 0xd4d4, 0 },
229 	{ 0xd5d5, 0xd5d5, 0xd5d5, 0 },
230 	{ 0xd6d6, 0xd6d6, 0xd6d6, 0 },
231 	{ 0xd7d7, 0xd7d7, 0xd7d7, 0 },
232 	{ 0xd8d8, 0xd8d8, 0xd8d8, 0 },
233 	{ 0xd9d9, 0xd9d9, 0xd9d9, 0 },
234 	{ 0xdada, 0xdada, 0xdada, 0 },
235 	{ 0xdbdb, 0xdbdb, 0xdbdb, 0 },
236 	{ 0xdcdc, 0xdcdc, 0xdcdc, 0 },
237 	{ 0xdddd, 0xdddd, 0xdddd, 0 },
238 	{ 0xdede, 0xdede, 0xdede, 0 },
239 	{ 0xdfdf, 0xdfdf, 0xdfdf, 0 },
240 	{ 0xe0e0, 0xe0e0, 0xe0e0, 0 },
241 	{ 0xe1e1, 0xe1e1, 0xe1e1, 0 },
242 	{ 0xe2e2, 0xe2e2, 0xe2e2, 0 },
243 	{ 0xe3e3, 0xe3e3, 0xe3e3, 0 },
244 	{ 0xe4e4, 0xe4e4, 0xe4e4, 0 },
245 	{ 0xe5e5, 0xe5e5, 0xe5e5, 0 },
246 	{ 0xe6e6, 0xe6e6, 0xe6e6, 0 },
247 	{ 0xe7e7, 0xe7e7, 0xe7e7, 0 },
248 	{ 0xe8e8, 0xe8e8, 0xe8e8, 0 },
249 	{ 0xe9e9, 0xe9e9, 0xe9e9, 0 },
250 	{ 0xeaea, 0xeaea, 0xeaea, 0 },
251 	{ 0xebeb, 0xebeb, 0xebeb, 0 },
252 	{ 0xecec, 0xecec, 0xecec, 0 },
253 	{ 0xeded, 0xeded, 0xeded, 0 },
254 	{ 0xeeee, 0xeeee, 0xeeee, 0 },
255 	{ 0xefef, 0xefef, 0xefef, 0 },
256 	{ 0xf0f0, 0xf0f0, 0xf0f0, 0 },
257 	{ 0xf1f1, 0xf1f1, 0xf1f1, 0 },
258 	{ 0xf2f2, 0xf2f2, 0xf2f2, 0 },
259 	{ 0xf3f3, 0xf3f3, 0xf3f3, 0 },
260 	{ 0xf4f4, 0xf4f4, 0xf4f4, 0 },
261 	{ 0xf5f5, 0xf5f5, 0xf5f5, 0 },
262 	{ 0xf6f6, 0xf6f6, 0xf6f6, 0 },
263 	{ 0xf7f7, 0xf7f7, 0xf7f7, 0 },
264 	{ 0xf8f8, 0xf8f8, 0xf8f8, 0 },
265 	{ 0xf9f9, 0xf9f9, 0xf9f9, 0 },
266 	{ 0xfafa, 0xfafa, 0xfafa, 0 },
267 	{ 0xfbfb, 0xfbfb, 0xfbfb, 0 },
268 	{ 0xfcfc, 0xfcfc, 0xfcfc, 0 },
269 	{ 0xfdfd, 0xfdfd, 0xfdfd, 0 },
270 	{ 0xfefe, 0xfefe, 0xfefe, 0 },
271 	{ 0xffff, 0xffff, 0xffff, 0 },
272 };
273 
274 const struct vkms_color_lut linear_eotf = {
275 	.base = linear_array,
276 	.lut_length = LUT_SIZE,
277 	.channel_value2index_ratio = 0xff00ffll
278 };
279 EXPORT_SYMBOL(linear_eotf);
280 
281 static struct drm_color_lut srgb_array[LUT_SIZE] = {
282 	{ 0x0, 0x0, 0x0, 0 },
283 	{ 0x13, 0x13, 0x13, 0 },
284 	{ 0x27, 0x27, 0x27, 0 },
285 	{ 0x3b, 0x3b, 0x3b, 0 },
286 	{ 0x4f, 0x4f, 0x4f, 0 },
287 	{ 0x63, 0x63, 0x63, 0 },
288 	{ 0x77, 0x77, 0x77, 0 },
289 	{ 0x8b, 0x8b, 0x8b, 0 },
290 	{ 0x9f, 0x9f, 0x9f, 0 },
291 	{ 0xb3, 0xb3, 0xb3, 0 },
292 	{ 0xc6, 0xc6, 0xc6, 0 },
293 	{ 0xdb, 0xdb, 0xdb, 0 },
294 	{ 0xf0, 0xf0, 0xf0, 0 },
295 	{ 0x107, 0x107, 0x107, 0 },
296 	{ 0x11f, 0x11f, 0x11f, 0 },
297 	{ 0x139, 0x139, 0x139, 0 },
298 	{ 0x153, 0x153, 0x153, 0 },
299 	{ 0x16f, 0x16f, 0x16f, 0 },
300 	{ 0x18c, 0x18c, 0x18c, 0 },
301 	{ 0x1aa, 0x1aa, 0x1aa, 0 },
302 	{ 0x1ca, 0x1ca, 0x1ca, 0 },
303 	{ 0x1eb, 0x1eb, 0x1eb, 0 },
304 	{ 0x20d, 0x20d, 0x20d, 0 },
305 	{ 0x231, 0x231, 0x231, 0 },
306 	{ 0x256, 0x256, 0x256, 0 },
307 	{ 0x27d, 0x27d, 0x27d, 0 },
308 	{ 0x2a4, 0x2a4, 0x2a4, 0 },
309 	{ 0x2ce, 0x2ce, 0x2ce, 0 },
310 	{ 0x2f9, 0x2f9, 0x2f9, 0 },
311 	{ 0x325, 0x325, 0x325, 0 },
312 	{ 0x352, 0x352, 0x352, 0 },
313 	{ 0x381, 0x381, 0x381, 0 },
314 	{ 0x3b2, 0x3b2, 0x3b2, 0 },
315 	{ 0x3e4, 0x3e4, 0x3e4, 0 },
316 	{ 0x418, 0x418, 0x418, 0 },
317 	{ 0x44d, 0x44d, 0x44d, 0 },
318 	{ 0x484, 0x484, 0x484, 0 },
319 	{ 0x4bc, 0x4bc, 0x4bc, 0 },
320 	{ 0x4f6, 0x4f6, 0x4f6, 0 },
321 	{ 0x531, 0x531, 0x531, 0 },
322 	{ 0x56e, 0x56e, 0x56e, 0 },
323 	{ 0x5ad, 0x5ad, 0x5ad, 0 },
324 	{ 0x5ed, 0x5ed, 0x5ed, 0 },
325 	{ 0x62f, 0x62f, 0x62f, 0 },
326 	{ 0x672, 0x672, 0x672, 0 },
327 	{ 0x6b7, 0x6b7, 0x6b7, 0 },
328 	{ 0x6fe, 0x6fe, 0x6fe, 0 },
329 	{ 0x746, 0x746, 0x746, 0 },
330 	{ 0x791, 0x791, 0x791, 0 },
331 	{ 0x7dc, 0x7dc, 0x7dc, 0 },
332 	{ 0x82a, 0x82a, 0x82a, 0 },
333 	{ 0x879, 0x879, 0x879, 0 },
334 	{ 0x8ca, 0x8ca, 0x8ca, 0 },
335 	{ 0x91d, 0x91d, 0x91d, 0 },
336 	{ 0x971, 0x971, 0x971, 0 },
337 	{ 0x9c7, 0x9c7, 0x9c7, 0 },
338 	{ 0xa1f, 0xa1f, 0xa1f, 0 },
339 	{ 0xa79, 0xa79, 0xa79, 0 },
340 	{ 0xad4, 0xad4, 0xad4, 0 },
341 	{ 0xb32, 0xb32, 0xb32, 0 },
342 	{ 0xb91, 0xb91, 0xb91, 0 },
343 	{ 0xbf2, 0xbf2, 0xbf2, 0 },
344 	{ 0xc54, 0xc54, 0xc54, 0 },
345 	{ 0xcb9, 0xcb9, 0xcb9, 0 },
346 	{ 0xd1f, 0xd1f, 0xd1f, 0 },
347 	{ 0xd88, 0xd88, 0xd88, 0 },
348 	{ 0xdf2, 0xdf2, 0xdf2, 0 },
349 	{ 0xe5e, 0xe5e, 0xe5e, 0 },
350 	{ 0xecc, 0xecc, 0xecc, 0 },
351 	{ 0xf3c, 0xf3c, 0xf3c, 0 },
352 	{ 0xfad, 0xfad, 0xfad, 0 },
353 	{ 0x1021, 0x1021, 0x1021, 0 },
354 	{ 0x1096, 0x1096, 0x1096, 0 },
355 	{ 0x110e, 0x110e, 0x110e, 0 },
356 	{ 0x1187, 0x1187, 0x1187, 0 },
357 	{ 0x1203, 0x1203, 0x1203, 0 },
358 	{ 0x1280, 0x1280, 0x1280, 0 },
359 	{ 0x12ff, 0x12ff, 0x12ff, 0 },
360 	{ 0x1380, 0x1380, 0x1380, 0 },
361 	{ 0x1404, 0x1404, 0x1404, 0 },
362 	{ 0x1489, 0x1489, 0x1489, 0 },
363 	{ 0x1510, 0x1510, 0x1510, 0 },
364 	{ 0x1599, 0x1599, 0x1599, 0 },
365 	{ 0x1624, 0x1624, 0x1624, 0 },
366 	{ 0x16b2, 0x16b2, 0x16b2, 0 },
367 	{ 0x1741, 0x1741, 0x1741, 0 },
368 	{ 0x17d2, 0x17d2, 0x17d2, 0 },
369 	{ 0x1865, 0x1865, 0x1865, 0 },
370 	{ 0x18fb, 0x18fb, 0x18fb, 0 },
371 	{ 0x1992, 0x1992, 0x1992, 0 },
372 	{ 0x1a2c, 0x1a2c, 0x1a2c, 0 },
373 	{ 0x1ac8, 0x1ac8, 0x1ac8, 0 },
374 	{ 0x1b65, 0x1b65, 0x1b65, 0 },
375 	{ 0x1c05, 0x1c05, 0x1c05, 0 },
376 	{ 0x1ca7, 0x1ca7, 0x1ca7, 0 },
377 	{ 0x1d4b, 0x1d4b, 0x1d4b, 0 },
378 	{ 0x1df1, 0x1df1, 0x1df1, 0 },
379 	{ 0x1e99, 0x1e99, 0x1e99, 0 },
380 	{ 0x1f44, 0x1f44, 0x1f44, 0 },
381 	{ 0x1ff0, 0x1ff0, 0x1ff0, 0 },
382 	{ 0x209f, 0x209f, 0x209f, 0 },
383 	{ 0x2150, 0x2150, 0x2150, 0 },
384 	{ 0x2203, 0x2203, 0x2203, 0 },
385 	{ 0x22b8, 0x22b8, 0x22b8, 0 },
386 	{ 0x2370, 0x2370, 0x2370, 0 },
387 	{ 0x2429, 0x2429, 0x2429, 0 },
388 	{ 0x24e5, 0x24e5, 0x24e5, 0 },
389 	{ 0x25a3, 0x25a3, 0x25a3, 0 },
390 	{ 0x2663, 0x2663, 0x2663, 0 },
391 	{ 0x2726, 0x2726, 0x2726, 0 },
392 	{ 0x27ea, 0x27ea, 0x27ea, 0 },
393 	{ 0x28b1, 0x28b1, 0x28b1, 0 },
394 	{ 0x297a, 0x297a, 0x297a, 0 },
395 	{ 0x2a45, 0x2a45, 0x2a45, 0 },
396 	{ 0x2b13, 0x2b13, 0x2b13, 0 },
397 	{ 0x2be3, 0x2be3, 0x2be3, 0 },
398 	{ 0x2cb5, 0x2cb5, 0x2cb5, 0 },
399 	{ 0x2d89, 0x2d89, 0x2d89, 0 },
400 	{ 0x2e60, 0x2e60, 0x2e60, 0 },
401 	{ 0x2f39, 0x2f39, 0x2f39, 0 },
402 	{ 0x3014, 0x3014, 0x3014, 0 },
403 	{ 0x30f2, 0x30f2, 0x30f2, 0 },
404 	{ 0x31d2, 0x31d2, 0x31d2, 0 },
405 	{ 0x32b4, 0x32b4, 0x32b4, 0 },
406 	{ 0x3398, 0x3398, 0x3398, 0 },
407 	{ 0x347f, 0x347f, 0x347f, 0 },
408 	{ 0x3569, 0x3569, 0x3569, 0 },
409 	{ 0x3654, 0x3654, 0x3654, 0 },
410 	{ 0x3742, 0x3742, 0x3742, 0 },
411 	{ 0x3832, 0x3832, 0x3832, 0 },
412 	{ 0x3925, 0x3925, 0x3925, 0 },
413 	{ 0x3a1a, 0x3a1a, 0x3a1a, 0 },
414 	{ 0x3b11, 0x3b11, 0x3b11, 0 },
415 	{ 0x3c0b, 0x3c0b, 0x3c0b, 0 },
416 	{ 0x3d07, 0x3d07, 0x3d07, 0 },
417 	{ 0x3e05, 0x3e05, 0x3e05, 0 },
418 	{ 0x3f06, 0x3f06, 0x3f06, 0 },
419 	{ 0x400a, 0x400a, 0x400a, 0 },
420 	{ 0x410f, 0x410f, 0x410f, 0 },
421 	{ 0x4218, 0x4218, 0x4218, 0 },
422 	{ 0x4322, 0x4322, 0x4322, 0 },
423 	{ 0x442f, 0x442f, 0x442f, 0 },
424 	{ 0x453f, 0x453f, 0x453f, 0 },
425 	{ 0x4650, 0x4650, 0x4650, 0 },
426 	{ 0x4765, 0x4765, 0x4765, 0 },
427 	{ 0x487c, 0x487c, 0x487c, 0 },
428 	{ 0x4995, 0x4995, 0x4995, 0 },
429 	{ 0x4ab1, 0x4ab1, 0x4ab1, 0 },
430 	{ 0x4bcf, 0x4bcf, 0x4bcf, 0 },
431 	{ 0x4cf0, 0x4cf0, 0x4cf0, 0 },
432 	{ 0x4e13, 0x4e13, 0x4e13, 0 },
433 	{ 0x4f39, 0x4f39, 0x4f39, 0 },
434 	{ 0x5061, 0x5061, 0x5061, 0 },
435 	{ 0x518b, 0x518b, 0x518b, 0 },
436 	{ 0x52b9, 0x52b9, 0x52b9, 0 },
437 	{ 0x53e8, 0x53e8, 0x53e8, 0 },
438 	{ 0x551b, 0x551b, 0x551b, 0 },
439 	{ 0x5650, 0x5650, 0x5650, 0 },
440 	{ 0x5787, 0x5787, 0x5787, 0 },
441 	{ 0x58c1, 0x58c1, 0x58c1, 0 },
442 	{ 0x59fd, 0x59fd, 0x59fd, 0 },
443 	{ 0x5b3c, 0x5b3c, 0x5b3c, 0 },
444 	{ 0x5c7e, 0x5c7e, 0x5c7e, 0 },
445 	{ 0x5dc2, 0x5dc2, 0x5dc2, 0 },
446 	{ 0x5f09, 0x5f09, 0x5f09, 0 },
447 	{ 0x6052, 0x6052, 0x6052, 0 },
448 	{ 0x619e, 0x619e, 0x619e, 0 },
449 	{ 0x62ec, 0x62ec, 0x62ec, 0 },
450 	{ 0x643d, 0x643d, 0x643d, 0 },
451 	{ 0x6591, 0x6591, 0x6591, 0 },
452 	{ 0x66e7, 0x66e7, 0x66e7, 0 },
453 	{ 0x6840, 0x6840, 0x6840, 0 },
454 	{ 0x699b, 0x699b, 0x699b, 0 },
455 	{ 0x6afa, 0x6afa, 0x6afa, 0 },
456 	{ 0x6c5a, 0x6c5a, 0x6c5a, 0 },
457 	{ 0x6dbe, 0x6dbe, 0x6dbe, 0 },
458 	{ 0x6f24, 0x6f24, 0x6f24, 0 },
459 	{ 0x708c, 0x708c, 0x708c, 0 },
460 	{ 0x71f8, 0x71f8, 0x71f8, 0 },
461 	{ 0x7366, 0x7366, 0x7366, 0 },
462 	{ 0x74d6, 0x74d6, 0x74d6, 0 },
463 	{ 0x764a, 0x764a, 0x764a, 0 },
464 	{ 0x77c0, 0x77c0, 0x77c0, 0 },
465 	{ 0x7938, 0x7938, 0x7938, 0 },
466 	{ 0x7ab4, 0x7ab4, 0x7ab4, 0 },
467 	{ 0x7c32, 0x7c32, 0x7c32, 0 },
468 	{ 0x7db3, 0x7db3, 0x7db3, 0 },
469 	{ 0x7f36, 0x7f36, 0x7f36, 0 },
470 	{ 0x80bc, 0x80bc, 0x80bc, 0 },
471 	{ 0x8245, 0x8245, 0x8245, 0 },
472 	{ 0x83d1, 0x83d1, 0x83d1, 0 },
473 	{ 0x855f, 0x855f, 0x855f, 0 },
474 	{ 0x86f0, 0x86f0, 0x86f0, 0 },
475 	{ 0x8884, 0x8884, 0x8884, 0 },
476 	{ 0x8a1a, 0x8a1a, 0x8a1a, 0 },
477 	{ 0x8bb4, 0x8bb4, 0x8bb4, 0 },
478 	{ 0x8d50, 0x8d50, 0x8d50, 0 },
479 	{ 0x8eee, 0x8eee, 0x8eee, 0 },
480 	{ 0x9090, 0x9090, 0x9090, 0 },
481 	{ 0x9234, 0x9234, 0x9234, 0 },
482 	{ 0x93db, 0x93db, 0x93db, 0 },
483 	{ 0x9585, 0x9585, 0x9585, 0 },
484 	{ 0x9732, 0x9732, 0x9732, 0 },
485 	{ 0x98e1, 0x98e1, 0x98e1, 0 },
486 	{ 0x9a93, 0x9a93, 0x9a93, 0 },
487 	{ 0x9c48, 0x9c48, 0x9c48, 0 },
488 	{ 0x9e00, 0x9e00, 0x9e00, 0 },
489 	{ 0x9fbb, 0x9fbb, 0x9fbb, 0 },
490 	{ 0xa178, 0xa178, 0xa178, 0 },
491 	{ 0xa338, 0xa338, 0xa338, 0 },
492 	{ 0xa4fb, 0xa4fb, 0xa4fb, 0 },
493 	{ 0xa6c1, 0xa6c1, 0xa6c1, 0 },
494 	{ 0xa88a, 0xa88a, 0xa88a, 0 },
495 	{ 0xaa56, 0xaa56, 0xaa56, 0 },
496 	{ 0xac24, 0xac24, 0xac24, 0 },
497 	{ 0xadf5, 0xadf5, 0xadf5, 0 },
498 	{ 0xafc9, 0xafc9, 0xafc9, 0 },
499 	{ 0xb1a0, 0xb1a0, 0xb1a0, 0 },
500 	{ 0xb37a, 0xb37a, 0xb37a, 0 },
501 	{ 0xb557, 0xb557, 0xb557, 0 },
502 	{ 0xb736, 0xb736, 0xb736, 0 },
503 	{ 0xb919, 0xb919, 0xb919, 0 },
504 	{ 0xbafe, 0xbafe, 0xbafe, 0 },
505 	{ 0xbce6, 0xbce6, 0xbce6, 0 },
506 	{ 0xbed2, 0xbed2, 0xbed2, 0 },
507 	{ 0xc0c0, 0xc0c0, 0xc0c0, 0 },
508 	{ 0xc2b0, 0xc2b0, 0xc2b0, 0 },
509 	{ 0xc4a4, 0xc4a4, 0xc4a4, 0 },
510 	{ 0xc69b, 0xc69b, 0xc69b, 0 },
511 	{ 0xc895, 0xc895, 0xc895, 0 },
512 	{ 0xca91, 0xca91, 0xca91, 0 },
513 	{ 0xcc91, 0xcc91, 0xcc91, 0 },
514 	{ 0xce93, 0xce93, 0xce93, 0 },
515 	{ 0xd098, 0xd098, 0xd098, 0 },
516 	{ 0xd2a1, 0xd2a1, 0xd2a1, 0 },
517 	{ 0xd4ac, 0xd4ac, 0xd4ac, 0 },
518 	{ 0xd6ba, 0xd6ba, 0xd6ba, 0 },
519 	{ 0xd8cb, 0xd8cb, 0xd8cb, 0 },
520 	{ 0xdadf, 0xdadf, 0xdadf, 0 },
521 	{ 0xdcf7, 0xdcf7, 0xdcf7, 0 },
522 	{ 0xdf11, 0xdf11, 0xdf11, 0 },
523 	{ 0xe12e, 0xe12e, 0xe12e, 0 },
524 	{ 0xe34e, 0xe34e, 0xe34e, 0 },
525 	{ 0xe571, 0xe571, 0xe571, 0 },
526 	{ 0xe796, 0xe796, 0xe796, 0 },
527 	{ 0xe9bf, 0xe9bf, 0xe9bf, 0 },
528 	{ 0xebeb, 0xebeb, 0xebeb, 0 },
529 	{ 0xee1a, 0xee1a, 0xee1a, 0 },
530 	{ 0xf04c, 0xf04c, 0xf04c, 0 },
531 	{ 0xf281, 0xf281, 0xf281, 0 },
532 	{ 0xf4b9, 0xf4b9, 0xf4b9, 0 },
533 	{ 0xf6f4, 0xf6f4, 0xf6f4, 0 },
534 	{ 0xf932, 0xf932, 0xf932, 0 },
535 	{ 0xfb73, 0xfb73, 0xfb73, 0 },
536 	{ 0xfdb7, 0xfdb7, 0xfdb7, 0 },
537 	{ 0xffff, 0xffff, 0xffff, 0 },
538 };
539 
540 const struct vkms_color_lut srgb_eotf = {
541 	.base = srgb_array,
542 	.lut_length = LUT_SIZE,
543 	.channel_value2index_ratio = 0xff00ffll
544 };
545 EXPORT_SYMBOL(srgb_eotf);
546 
547 static struct drm_color_lut srgb_inv_array[LUT_SIZE] = {
548 	{ 0x0, 0x0, 0x0, 0 },
549 	{ 0xcc2, 0xcc2, 0xcc2, 0 },
550 	{ 0x15be, 0x15be, 0x15be, 0 },
551 	{ 0x1c56, 0x1c56, 0x1c56, 0 },
552 	{ 0x21bd, 0x21bd, 0x21bd, 0 },
553 	{ 0x2666, 0x2666, 0x2666, 0 },
554 	{ 0x2a8a, 0x2a8a, 0x2a8a, 0 },
555 	{ 0x2e4c, 0x2e4c, 0x2e4c, 0 },
556 	{ 0x31c0, 0x31c0, 0x31c0, 0 },
557 	{ 0x34f6, 0x34f6, 0x34f6, 0 },
558 	{ 0x37f9, 0x37f9, 0x37f9, 0 },
559 	{ 0x3acf, 0x3acf, 0x3acf, 0 },
560 	{ 0x3d80, 0x3d80, 0x3d80, 0 },
561 	{ 0x4010, 0x4010, 0x4010, 0 },
562 	{ 0x4284, 0x4284, 0x4284, 0 },
563 	{ 0x44dd, 0x44dd, 0x44dd, 0 },
564 	{ 0x4720, 0x4720, 0x4720, 0 },
565 	{ 0x494e, 0x494e, 0x494e, 0 },
566 	{ 0x4b69, 0x4b69, 0x4b69, 0 },
567 	{ 0x4d73, 0x4d73, 0x4d73, 0 },
568 	{ 0x4f6e, 0x4f6e, 0x4f6e, 0 },
569 	{ 0x5159, 0x5159, 0x5159, 0 },
570 	{ 0x5337, 0x5337, 0x5337, 0 },
571 	{ 0x5509, 0x5509, 0x5509, 0 },
572 	{ 0x56cf, 0x56cf, 0x56cf, 0 },
573 	{ 0x588a, 0x588a, 0x588a, 0 },
574 	{ 0x5a3b, 0x5a3b, 0x5a3b, 0 },
575 	{ 0x5be2, 0x5be2, 0x5be2, 0 },
576 	{ 0x5d80, 0x5d80, 0x5d80, 0 },
577 	{ 0x5f16, 0x5f16, 0x5f16, 0 },
578 	{ 0x60a4, 0x60a4, 0x60a4, 0 },
579 	{ 0x6229, 0x6229, 0x6229, 0 },
580 	{ 0x63a8, 0x63a8, 0x63a8, 0 },
581 	{ 0x6520, 0x6520, 0x6520, 0 },
582 	{ 0x6691, 0x6691, 0x6691, 0 },
583 	{ 0x67fc, 0x67fc, 0x67fc, 0 },
584 	{ 0x6961, 0x6961, 0x6961, 0 },
585 	{ 0x6ac0, 0x6ac0, 0x6ac0, 0 },
586 	{ 0x6c19, 0x6c19, 0x6c19, 0 },
587 	{ 0x6d6e, 0x6d6e, 0x6d6e, 0 },
588 	{ 0x6ebd, 0x6ebd, 0x6ebd, 0 },
589 	{ 0x7008, 0x7008, 0x7008, 0 },
590 	{ 0x714d, 0x714d, 0x714d, 0 },
591 	{ 0x728f, 0x728f, 0x728f, 0 },
592 	{ 0x73cc, 0x73cc, 0x73cc, 0 },
593 	{ 0x7504, 0x7504, 0x7504, 0 },
594 	{ 0x7639, 0x7639, 0x7639, 0 },
595 	{ 0x776a, 0x776a, 0x776a, 0 },
596 	{ 0x7897, 0x7897, 0x7897, 0 },
597 	{ 0x79c1, 0x79c1, 0x79c1, 0 },
598 	{ 0x7ae7, 0x7ae7, 0x7ae7, 0 },
599 	{ 0x7c09, 0x7c09, 0x7c09, 0 },
600 	{ 0x7d28, 0x7d28, 0x7d28, 0 },
601 	{ 0x7e44, 0x7e44, 0x7e44, 0 },
602 	{ 0x7f5d, 0x7f5d, 0x7f5d, 0 },
603 	{ 0x8073, 0x8073, 0x8073, 0 },
604 	{ 0x8186, 0x8186, 0x8186, 0 },
605 	{ 0x8296, 0x8296, 0x8296, 0 },
606 	{ 0x83a4, 0x83a4, 0x83a4, 0 },
607 	{ 0x84ae, 0x84ae, 0x84ae, 0 },
608 	{ 0x85b6, 0x85b6, 0x85b6, 0 },
609 	{ 0x86bc, 0x86bc, 0x86bc, 0 },
610 	{ 0x87bf, 0x87bf, 0x87bf, 0 },
611 	{ 0x88bf, 0x88bf, 0x88bf, 0 },
612 	{ 0x89be, 0x89be, 0x89be, 0 },
613 	{ 0x8ab9, 0x8ab9, 0x8ab9, 0 },
614 	{ 0x8bb3, 0x8bb3, 0x8bb3, 0 },
615 	{ 0x8cab, 0x8cab, 0x8cab, 0 },
616 	{ 0x8da0, 0x8da0, 0x8da0, 0 },
617 	{ 0x8e93, 0x8e93, 0x8e93, 0 },
618 	{ 0x8f84, 0x8f84, 0x8f84, 0 },
619 	{ 0x9073, 0x9073, 0x9073, 0 },
620 	{ 0x9161, 0x9161, 0x9161, 0 },
621 	{ 0x924c, 0x924c, 0x924c, 0 },
622 	{ 0x9335, 0x9335, 0x9335, 0 },
623 	{ 0x941d, 0x941d, 0x941d, 0 },
624 	{ 0x9503, 0x9503, 0x9503, 0 },
625 	{ 0x95e7, 0x95e7, 0x95e7, 0 },
626 	{ 0x96c9, 0x96c9, 0x96c9, 0 },
627 	{ 0x97aa, 0x97aa, 0x97aa, 0 },
628 	{ 0x9889, 0x9889, 0x9889, 0 },
629 	{ 0x9966, 0x9966, 0x9966, 0 },
630 	{ 0x9a42, 0x9a42, 0x9a42, 0 },
631 	{ 0x9b1c, 0x9b1c, 0x9b1c, 0 },
632 	{ 0x9bf5, 0x9bf5, 0x9bf5, 0 },
633 	{ 0x9ccc, 0x9ccc, 0x9ccc, 0 },
634 	{ 0x9da1, 0x9da1, 0x9da1, 0 },
635 	{ 0x9e76, 0x9e76, 0x9e76, 0 },
636 	{ 0x9f49, 0x9f49, 0x9f49, 0 },
637 	{ 0xa01a, 0xa01a, 0xa01a, 0 },
638 	{ 0xa0ea, 0xa0ea, 0xa0ea, 0 },
639 	{ 0xa1b9, 0xa1b9, 0xa1b9, 0 },
640 	{ 0xa286, 0xa286, 0xa286, 0 },
641 	{ 0xa352, 0xa352, 0xa352, 0 },
642 	{ 0xa41d, 0xa41d, 0xa41d, 0 },
643 	{ 0xa4e7, 0xa4e7, 0xa4e7, 0 },
644 	{ 0xa5af, 0xa5af, 0xa5af, 0 },
645 	{ 0xa676, 0xa676, 0xa676, 0 },
646 	{ 0xa73c, 0xa73c, 0xa73c, 0 },
647 	{ 0xa801, 0xa801, 0xa801, 0 },
648 	{ 0xa8c5, 0xa8c5, 0xa8c5, 0 },
649 	{ 0xa987, 0xa987, 0xa987, 0 },
650 	{ 0xaa48, 0xaa48, 0xaa48, 0 },
651 	{ 0xab09, 0xab09, 0xab09, 0 },
652 	{ 0xabc8, 0xabc8, 0xabc8, 0 },
653 	{ 0xac86, 0xac86, 0xac86, 0 },
654 	{ 0xad43, 0xad43, 0xad43, 0 },
655 	{ 0xadff, 0xadff, 0xadff, 0 },
656 	{ 0xaeba, 0xaeba, 0xaeba, 0 },
657 	{ 0xaf74, 0xaf74, 0xaf74, 0 },
658 	{ 0xb02d, 0xb02d, 0xb02d, 0 },
659 	{ 0xb0e5, 0xb0e5, 0xb0e5, 0 },
660 	{ 0xb19c, 0xb19c, 0xb19c, 0 },
661 	{ 0xb252, 0xb252, 0xb252, 0 },
662 	{ 0xb307, 0xb307, 0xb307, 0 },
663 	{ 0xb3bb, 0xb3bb, 0xb3bb, 0 },
664 	{ 0xb46f, 0xb46f, 0xb46f, 0 },
665 	{ 0xb521, 0xb521, 0xb521, 0 },
666 	{ 0xb5d3, 0xb5d3, 0xb5d3, 0 },
667 	{ 0xb683, 0xb683, 0xb683, 0 },
668 	{ 0xb733, 0xb733, 0xb733, 0 },
669 	{ 0xb7e2, 0xb7e2, 0xb7e2, 0 },
670 	{ 0xb890, 0xb890, 0xb890, 0 },
671 	{ 0xb93d, 0xb93d, 0xb93d, 0 },
672 	{ 0xb9ea, 0xb9ea, 0xb9ea, 0 },
673 	{ 0xba96, 0xba96, 0xba96, 0 },
674 	{ 0xbb40, 0xbb40, 0xbb40, 0 },
675 	{ 0xbbea, 0xbbea, 0xbbea, 0 },
676 	{ 0xbc94, 0xbc94, 0xbc94, 0 },
677 	{ 0xbd3c, 0xbd3c, 0xbd3c, 0 },
678 	{ 0xbde4, 0xbde4, 0xbde4, 0 },
679 	{ 0xbe8b, 0xbe8b, 0xbe8b, 0 },
680 	{ 0xbf31, 0xbf31, 0xbf31, 0 },
681 	{ 0xbfd7, 0xbfd7, 0xbfd7, 0 },
682 	{ 0xc07b, 0xc07b, 0xc07b, 0 },
683 	{ 0xc120, 0xc120, 0xc120, 0 },
684 	{ 0xc1c3, 0xc1c3, 0xc1c3, 0 },
685 	{ 0xc266, 0xc266, 0xc266, 0 },
686 	{ 0xc308, 0xc308, 0xc308, 0 },
687 	{ 0xc3a9, 0xc3a9, 0xc3a9, 0 },
688 	{ 0xc449, 0xc449, 0xc449, 0 },
689 	{ 0xc4e9, 0xc4e9, 0xc4e9, 0 },
690 	{ 0xc589, 0xc589, 0xc589, 0 },
691 	{ 0xc627, 0xc627, 0xc627, 0 },
692 	{ 0xc6c5, 0xc6c5, 0xc6c5, 0 },
693 	{ 0xc763, 0xc763, 0xc763, 0 },
694 	{ 0xc7ff, 0xc7ff, 0xc7ff, 0 },
695 	{ 0xc89b, 0xc89b, 0xc89b, 0 },
696 	{ 0xc937, 0xc937, 0xc937, 0 },
697 	{ 0xc9d2, 0xc9d2, 0xc9d2, 0 },
698 	{ 0xca6c, 0xca6c, 0xca6c, 0 },
699 	{ 0xcb06, 0xcb06, 0xcb06, 0 },
700 	{ 0xcb9f, 0xcb9f, 0xcb9f, 0 },
701 	{ 0xcc37, 0xcc37, 0xcc37, 0 },
702 	{ 0xcccf, 0xcccf, 0xcccf, 0 },
703 	{ 0xcd66, 0xcd66, 0xcd66, 0 },
704 	{ 0xcdfd, 0xcdfd, 0xcdfd, 0 },
705 	{ 0xce93, 0xce93, 0xce93, 0 },
706 	{ 0xcf29, 0xcf29, 0xcf29, 0 },
707 	{ 0xcfbe, 0xcfbe, 0xcfbe, 0 },
708 	{ 0xd053, 0xd053, 0xd053, 0 },
709 	{ 0xd0e7, 0xd0e7, 0xd0e7, 0 },
710 	{ 0xd17a, 0xd17a, 0xd17a, 0 },
711 	{ 0xd20d, 0xd20d, 0xd20d, 0 },
712 	{ 0xd2a0, 0xd2a0, 0xd2a0, 0 },
713 	{ 0xd331, 0xd331, 0xd331, 0 },
714 	{ 0xd3c3, 0xd3c3, 0xd3c3, 0 },
715 	{ 0xd454, 0xd454, 0xd454, 0 },
716 	{ 0xd4e4, 0xd4e4, 0xd4e4, 0 },
717 	{ 0xd574, 0xd574, 0xd574, 0 },
718 	{ 0xd603, 0xd603, 0xd603, 0 },
719 	{ 0xd692, 0xd692, 0xd692, 0 },
720 	{ 0xd720, 0xd720, 0xd720, 0 },
721 	{ 0xd7ae, 0xd7ae, 0xd7ae, 0 },
722 	{ 0xd83c, 0xd83c, 0xd83c, 0 },
723 	{ 0xd8c9, 0xd8c9, 0xd8c9, 0 },
724 	{ 0xd955, 0xd955, 0xd955, 0 },
725 	{ 0xd9e1, 0xd9e1, 0xd9e1, 0 },
726 	{ 0xda6d, 0xda6d, 0xda6d, 0 },
727 	{ 0xdaf8, 0xdaf8, 0xdaf8, 0 },
728 	{ 0xdb83, 0xdb83, 0xdb83, 0 },
729 	{ 0xdc0d, 0xdc0d, 0xdc0d, 0 },
730 	{ 0xdc97, 0xdc97, 0xdc97, 0 },
731 	{ 0xdd20, 0xdd20, 0xdd20, 0 },
732 	{ 0xdda9, 0xdda9, 0xdda9, 0 },
733 	{ 0xde31, 0xde31, 0xde31, 0 },
734 	{ 0xdeb9, 0xdeb9, 0xdeb9, 0 },
735 	{ 0xdf41, 0xdf41, 0xdf41, 0 },
736 	{ 0xdfc8, 0xdfc8, 0xdfc8, 0 },
737 	{ 0xe04f, 0xe04f, 0xe04f, 0 },
738 	{ 0xe0d5, 0xe0d5, 0xe0d5, 0 },
739 	{ 0xe15b, 0xe15b, 0xe15b, 0 },
740 	{ 0xe1e0, 0xe1e0, 0xe1e0, 0 },
741 	{ 0xe266, 0xe266, 0xe266, 0 },
742 	{ 0xe2ea, 0xe2ea, 0xe2ea, 0 },
743 	{ 0xe36f, 0xe36f, 0xe36f, 0 },
744 	{ 0xe3f3, 0xe3f3, 0xe3f3, 0 },
745 	{ 0xe476, 0xe476, 0xe476, 0 },
746 	{ 0xe4f9, 0xe4f9, 0xe4f9, 0 },
747 	{ 0xe57c, 0xe57c, 0xe57c, 0 },
748 	{ 0xe5fe, 0xe5fe, 0xe5fe, 0 },
749 	{ 0xe680, 0xe680, 0xe680, 0 },
750 	{ 0xe702, 0xe702, 0xe702, 0 },
751 	{ 0xe783, 0xe783, 0xe783, 0 },
752 	{ 0xe804, 0xe804, 0xe804, 0 },
753 	{ 0xe884, 0xe884, 0xe884, 0 },
754 	{ 0xe905, 0xe905, 0xe905, 0 },
755 	{ 0xe984, 0xe984, 0xe984, 0 },
756 	{ 0xea04, 0xea04, 0xea04, 0 },
757 	{ 0xea83, 0xea83, 0xea83, 0 },
758 	{ 0xeb02, 0xeb02, 0xeb02, 0 },
759 	{ 0xeb80, 0xeb80, 0xeb80, 0 },
760 	{ 0xebfe, 0xebfe, 0xebfe, 0 },
761 	{ 0xec7b, 0xec7b, 0xec7b, 0 },
762 	{ 0xecf9, 0xecf9, 0xecf9, 0 },
763 	{ 0xed76, 0xed76, 0xed76, 0 },
764 	{ 0xedf2, 0xedf2, 0xedf2, 0 },
765 	{ 0xee6f, 0xee6f, 0xee6f, 0 },
766 	{ 0xeeeb, 0xeeeb, 0xeeeb, 0 },
767 	{ 0xef66, 0xef66, 0xef66, 0 },
768 	{ 0xefe2, 0xefe2, 0xefe2, 0 },
769 	{ 0xf05d, 0xf05d, 0xf05d, 0 },
770 	{ 0xf0d7, 0xf0d7, 0xf0d7, 0 },
771 	{ 0xf152, 0xf152, 0xf152, 0 },
772 	{ 0xf1cc, 0xf1cc, 0xf1cc, 0 },
773 	{ 0xf245, 0xf245, 0xf245, 0 },
774 	{ 0xf2bf, 0xf2bf, 0xf2bf, 0 },
775 	{ 0xf338, 0xf338, 0xf338, 0 },
776 	{ 0xf3b0, 0xf3b0, 0xf3b0, 0 },
777 	{ 0xf429, 0xf429, 0xf429, 0 },
778 	{ 0xf4a1, 0xf4a1, 0xf4a1, 0 },
779 	{ 0xf519, 0xf519, 0xf519, 0 },
780 	{ 0xf590, 0xf590, 0xf590, 0 },
781 	{ 0xf608, 0xf608, 0xf608, 0 },
782 	{ 0xf67e, 0xf67e, 0xf67e, 0 },
783 	{ 0xf6f5, 0xf6f5, 0xf6f5, 0 },
784 	{ 0xf76b, 0xf76b, 0xf76b, 0 },
785 	{ 0xf7e1, 0xf7e1, 0xf7e1, 0 },
786 	{ 0xf857, 0xf857, 0xf857, 0 },
787 	{ 0xf8cd, 0xf8cd, 0xf8cd, 0 },
788 	{ 0xf942, 0xf942, 0xf942, 0 },
789 	{ 0xf9b7, 0xf9b7, 0xf9b7, 0 },
790 	{ 0xfa2b, 0xfa2b, 0xfa2b, 0 },
791 	{ 0xfaa0, 0xfaa0, 0xfaa0, 0 },
792 	{ 0xfb14, 0xfb14, 0xfb14, 0 },
793 	{ 0xfb88, 0xfb88, 0xfb88, 0 },
794 	{ 0xfbfb, 0xfbfb, 0xfbfb, 0 },
795 	{ 0xfc6e, 0xfc6e, 0xfc6e, 0 },
796 	{ 0xfce1, 0xfce1, 0xfce1, 0 },
797 	{ 0xfd54, 0xfd54, 0xfd54, 0 },
798 	{ 0xfdc6, 0xfdc6, 0xfdc6, 0 },
799 	{ 0xfe39, 0xfe39, 0xfe39, 0 },
800 	{ 0xfeaa, 0xfeaa, 0xfeaa, 0 },
801 	{ 0xff1c, 0xff1c, 0xff1c, 0 },
802 	{ 0xff8d, 0xff8d, 0xff8d, 0 },
803 	{ 0xffff, 0xffff, 0xffff, 0 },
804 };
805 
806 const struct vkms_color_lut srgb_inv_eotf = {
807 	.base = srgb_inv_array,
808 	.lut_length = LUT_SIZE,
809 	.channel_value2index_ratio = 0xff00ffll
810 };
811 EXPORT_SYMBOL(srgb_inv_eotf);
812