fbdev: framebuffer support for HTC Dream
[pandora-kernel.git] / drivers / video / msm / mdp_scale_tables.c
1 /* drivers/video/msm_fb/mdp_scale_tables.c
2  *
3  * Copyright (C) 2007 QUALCOMM Incorporated
4  * Copyright (C) 2007 Google Incorporated
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  */
15
16 #include "mdp_scale_tables.h"
17 #include "mdp_hw.h"
18
19 struct mdp_table_entry mdp_upscale_table[] = {
20         { 0x5fffc, 0x0 },
21         { 0x50200, 0x7fc00000 },
22         { 0x5fffc, 0xff80000d },
23         { 0x50204, 0x7ec003f9 },
24         { 0x5fffc, 0xfec0001c },
25         { 0x50208, 0x7d4003f3 },
26         { 0x5fffc, 0xfe40002b },
27         { 0x5020c, 0x7b8003ed },
28         { 0x5fffc, 0xfd80003c },
29         { 0x50210, 0x794003e8 },
30         { 0x5fffc, 0xfcc0004d },
31         { 0x50214, 0x76c003e4 },
32         { 0x5fffc, 0xfc40005f },
33         { 0x50218, 0x73c003e0 },
34         { 0x5fffc, 0xfb800071 },
35         { 0x5021c, 0x708003de },
36         { 0x5fffc, 0xfac00085 },
37         { 0x50220, 0x6d0003db },
38         { 0x5fffc, 0xfa000098 },
39         { 0x50224, 0x698003d9 },
40         { 0x5fffc, 0xf98000ac },
41         { 0x50228, 0x654003d8 },
42         { 0x5fffc, 0xf8c000c1 },
43         { 0x5022c, 0x610003d7 },
44         { 0x5fffc, 0xf84000d5 },
45         { 0x50230, 0x5c8003d7 },
46         { 0x5fffc, 0xf7c000e9 },
47         { 0x50234, 0x580003d7 },
48         { 0x5fffc, 0xf74000fd },
49         { 0x50238, 0x534003d8 },
50         { 0x5fffc, 0xf6c00112 },
51         { 0x5023c, 0x4e8003d8 },
52         { 0x5fffc, 0xf6800126 },
53         { 0x50240, 0x494003da },
54         { 0x5fffc, 0xf600013a },
55         { 0x50244, 0x448003db },
56         { 0x5fffc, 0xf600014d },
57         { 0x50248, 0x3f4003dd },
58         { 0x5fffc, 0xf5c00160 },
59         { 0x5024c, 0x3a4003df },
60         { 0x5fffc, 0xf5c00172 },
61         { 0x50250, 0x354003e1 },
62         { 0x5fffc, 0xf5c00184 },
63         { 0x50254, 0x304003e3 },
64         { 0x5fffc, 0xf6000195 },
65         { 0x50258, 0x2b0003e6 },
66         { 0x5fffc, 0xf64001a6 },
67         { 0x5025c, 0x260003e8 },
68         { 0x5fffc, 0xf6c001b4 },
69         { 0x50260, 0x214003eb },
70         { 0x5fffc, 0xf78001c2 },
71         { 0x50264, 0x1c4003ee },
72         { 0x5fffc, 0xf80001cf },
73         { 0x50268, 0x17c003f1 },
74         { 0x5fffc, 0xf90001db },
75         { 0x5026c, 0x134003f3 },
76         { 0x5fffc, 0xfa0001e5 },
77         { 0x50270, 0xf0003f6 },
78         { 0x5fffc, 0xfb4001ee },
79         { 0x50274, 0xac003f9 },
80         { 0x5fffc, 0xfcc001f5 },
81         { 0x50278, 0x70003fb },
82         { 0x5fffc, 0xfe4001fb },
83         { 0x5027c, 0x34003fe },
84 };
85
86 static struct mdp_table_entry mdp_downscale_x_table_PT2TOPT4[] = {
87         { 0x5fffc, 0x740008c },
88         { 0x50280, 0x33800088 },
89         { 0x5fffc, 0x800008e },
90         { 0x50284, 0x33400084 },
91         { 0x5fffc, 0x8400092 },
92         { 0x50288, 0x33000080 },
93         { 0x5fffc, 0x9000094 },
94         { 0x5028c, 0x3300007b },
95         { 0x5fffc, 0x9c00098 },
96         { 0x50290, 0x32400077 },
97         { 0x5fffc, 0xa40009b },
98         { 0x50294, 0x32000073 },
99         { 0x5fffc, 0xb00009d },
100         { 0x50298,  0x31c0006f },
101         { 0x5fffc,  0xbc000a0 },
102         { 0x5029c,  0x3140006b },
103         { 0x5fffc,  0xc8000a2 },
104         { 0x502a0,  0x31000067 },
105         { 0x5fffc,  0xd8000a5 },
106         { 0x502a4,  0x30800062 },
107         { 0x5fffc,  0xe4000a8 },
108         { 0x502a8,  0x2fc0005f },
109         { 0x5fffc,  0xec000aa },
110         { 0x502ac,  0x2fc0005b },
111         { 0x5fffc,  0xf8000ad },
112         { 0x502b0,  0x2f400057 },
113         { 0x5fffc,  0x108000b0 },
114         { 0x502b4,  0x2e400054 },
115         { 0x5fffc,  0x114000b2 },
116         { 0x502b8,  0x2e000050 },
117         { 0x5fffc,  0x124000b4 },
118         { 0x502bc,  0x2d80004c },
119         { 0x5fffc,  0x130000b6 },
120         { 0x502c0,  0x2d000049 },
121         { 0x5fffc,  0x140000b8 },
122         { 0x502c4,  0x2c800045 },
123         { 0x5fffc,  0x150000b9 },
124         { 0x502c8,  0x2c000042 },
125         { 0x5fffc,  0x15c000bd },
126         { 0x502cc,  0x2b40003e },
127         { 0x5fffc,  0x16c000bf },
128         { 0x502d0,  0x2a80003b },
129         { 0x5fffc,  0x17c000bf },
130         { 0x502d4,  0x2a000039 },
131         { 0x5fffc,  0x188000c2 },
132         { 0x502d8,  0x29400036 },
133         { 0x5fffc,  0x19c000c4 },
134         { 0x502dc,  0x28800032 },
135         { 0x5fffc,  0x1ac000c5 },
136         { 0x502e0,  0x2800002f },
137         { 0x5fffc,  0x1bc000c7 },
138         { 0x502e4,  0x2740002c },
139         { 0x5fffc,  0x1cc000c8 },
140         { 0x502e8,  0x26c00029 },
141         { 0x5fffc,  0x1dc000c9 },
142         { 0x502ec,  0x26000027 },
143         { 0x5fffc,  0x1ec000cc },
144         { 0x502f0,  0x25000024 },
145         { 0x5fffc,  0x200000cc },
146         { 0x502f4,  0x24800021 },
147         { 0x5fffc,  0x210000cd },
148         { 0x502f8,  0x23800020 },
149         { 0x5fffc,  0x220000ce },
150         { 0x502fc,  0x2300001d },
151 };
152
153 static struct mdp_table_entry mdp_downscale_x_table_PT4TOPT6[] = {
154         { 0x5fffc,  0x740008c },
155         { 0x50280,  0x33800088 },
156         { 0x5fffc,  0x800008e },
157         { 0x50284,  0x33400084 },
158         { 0x5fffc,  0x8400092 },
159         { 0x50288,  0x33000080 },
160         { 0x5fffc,  0x9000094 },
161         { 0x5028c,  0x3300007b },
162         { 0x5fffc,  0x9c00098 },
163         { 0x50290,  0x32400077 },
164         { 0x5fffc,  0xa40009b },
165         { 0x50294,  0x32000073 },
166         { 0x5fffc,  0xb00009d },
167         { 0x50298,  0x31c0006f },
168         { 0x5fffc,  0xbc000a0 },
169         { 0x5029c,  0x3140006b },
170         { 0x5fffc,  0xc8000a2 },
171         { 0x502a0,  0x31000067 },
172         { 0x5fffc,  0xd8000a5 },
173         { 0x502a4,  0x30800062 },
174         { 0x5fffc,  0xe4000a8 },
175         { 0x502a8,  0x2fc0005f },
176         { 0x5fffc,  0xec000aa },
177         { 0x502ac,  0x2fc0005b },
178         { 0x5fffc,  0xf8000ad },
179         { 0x502b0,  0x2f400057 },
180         { 0x5fffc,  0x108000b0 },
181         { 0x502b4,  0x2e400054 },
182         { 0x5fffc,  0x114000b2 },
183         { 0x502b8,  0x2e000050 },
184         { 0x5fffc,  0x124000b4 },
185         { 0x502bc,  0x2d80004c },
186         { 0x5fffc,  0x130000b6 },
187         { 0x502c0,  0x2d000049 },
188         { 0x5fffc,  0x140000b8 },
189         { 0x502c4,  0x2c800045 },
190         { 0x5fffc,  0x150000b9 },
191         { 0x502c8,  0x2c000042 },
192         { 0x5fffc,  0x15c000bd },
193         { 0x502cc,  0x2b40003e },
194         { 0x5fffc,  0x16c000bf },
195         { 0x502d0,  0x2a80003b },
196         { 0x5fffc,  0x17c000bf },
197         { 0x502d4,  0x2a000039 },
198         { 0x5fffc,  0x188000c2 },
199         { 0x502d8,  0x29400036 },
200         { 0x5fffc,  0x19c000c4 },
201         { 0x502dc,  0x28800032 },
202         { 0x5fffc,  0x1ac000c5 },
203         { 0x502e0,  0x2800002f },
204         { 0x5fffc,  0x1bc000c7 },
205         { 0x502e4,  0x2740002c },
206         { 0x5fffc,  0x1cc000c8 },
207         { 0x502e8,  0x26c00029 },
208         { 0x5fffc,  0x1dc000c9 },
209         { 0x502ec,  0x26000027 },
210         { 0x5fffc,  0x1ec000cc },
211         { 0x502f0,  0x25000024 },
212         { 0x5fffc,  0x200000cc },
213         { 0x502f4,  0x24800021 },
214         { 0x5fffc,  0x210000cd },
215         { 0x502f8,  0x23800020 },
216         { 0x5fffc,  0x220000ce },
217         { 0x502fc,  0x2300001d },
218 };
219
220 static struct mdp_table_entry mdp_downscale_x_table_PT6TOPT8[] = {
221         { 0x5fffc,  0xfe000070 },
222         { 0x50280,  0x4bc00068 },
223         { 0x5fffc,  0xfe000078 },
224         { 0x50284,  0x4bc00060 },
225         { 0x5fffc,  0xfe000080 },
226         { 0x50288,  0x4b800059 },
227         { 0x5fffc,  0xfe000089 },
228         { 0x5028c,  0x4b000052 },
229         { 0x5fffc,  0xfe400091 },
230         { 0x50290,  0x4a80004b },
231         { 0x5fffc,  0xfe40009a },
232         { 0x50294,  0x4a000044 },
233         { 0x5fffc,  0xfe8000a3 },
234         { 0x50298,  0x4940003d },
235         { 0x5fffc,  0xfec000ac },
236         { 0x5029c,  0x48400037 },
237         { 0x5fffc,  0xff0000b4 },
238         { 0x502a0,  0x47800031 },
239         { 0x5fffc,  0xff8000bd },
240         { 0x502a4,  0x4640002b },
241         { 0x5fffc,  0xc5 },
242         { 0x502a8,  0x45000026 },
243         { 0x5fffc,  0x8000ce },
244         { 0x502ac,  0x43800021 },
245         { 0x5fffc,  0x10000d6 },
246         { 0x502b0,  0x4240001c },
247         { 0x5fffc,  0x18000df },
248         { 0x502b4,  0x40800018 },
249         { 0x5fffc,  0x24000e6 },
250         { 0x502b8,  0x3f000014 },
251         { 0x5fffc,  0x30000ee },
252         { 0x502bc,  0x3d400010 },
253         { 0x5fffc,  0x40000f5 },
254         { 0x502c0,  0x3b80000c },
255         { 0x5fffc,  0x50000fc },
256         { 0x502c4,  0x39800009 },
257         { 0x5fffc,  0x6000102 },
258         { 0x502c8,  0x37c00006 },
259         { 0x5fffc,  0x7000109 },
260         { 0x502cc,  0x35800004 },
261         { 0x5fffc,  0x840010e },
262         { 0x502d0,  0x33800002 },
263         { 0x5fffc,  0x9800114 },
264         { 0x502d4,  0x31400000 },
265         { 0x5fffc,  0xac00119 },
266         { 0x502d8,  0x2f4003fe },
267         { 0x5fffc,  0xc40011e },
268         { 0x502dc,  0x2d0003fc },
269         { 0x5fffc,  0xdc00121 },
270         { 0x502e0,  0x2b0003fb },
271         { 0x5fffc,  0xf400125 },
272         { 0x502e4,  0x28c003fa },
273         { 0x5fffc,  0x11000128 },
274         { 0x502e8,  0x268003f9 },
275         { 0x5fffc,  0x12c0012a },
276         { 0x502ec,  0x244003f9 },
277         { 0x5fffc,  0x1480012c },
278         { 0x502f0,  0x224003f8 },
279         { 0x5fffc,  0x1640012e },
280         { 0x502f4,  0x200003f8 },
281         { 0x5fffc,  0x1800012f },
282         { 0x502f8,  0x1e0003f8 },
283         { 0x5fffc,  0x1a00012f },
284         { 0x502fc,  0x1c0003f8 },
285 };
286
287 static struct mdp_table_entry mdp_downscale_x_table_PT8TO1[] = {
288         { 0x5fffc,  0x0 },
289         { 0x50280,  0x7fc00000 },
290         { 0x5fffc,  0xff80000d },
291         { 0x50284,  0x7ec003f9 },
292         { 0x5fffc,  0xfec0001c },
293         { 0x50288,  0x7d4003f3 },
294         { 0x5fffc,  0xfe40002b },
295         { 0x5028c,  0x7b8003ed },
296         { 0x5fffc,  0xfd80003c },
297         { 0x50290,  0x794003e8 },
298         { 0x5fffc,  0xfcc0004d },
299         { 0x50294,  0x76c003e4 },
300         { 0x5fffc,  0xfc40005f },
301         { 0x50298,  0x73c003e0 },
302         { 0x5fffc,  0xfb800071 },
303         { 0x5029c,  0x708003de },
304         { 0x5fffc,  0xfac00085 },
305         { 0x502a0,  0x6d0003db },
306         { 0x5fffc,  0xfa000098 },
307         { 0x502a4,  0x698003d9 },
308         { 0x5fffc,  0xf98000ac },
309         { 0x502a8,  0x654003d8 },
310         { 0x5fffc,  0xf8c000c1 },
311         { 0x502ac,  0x610003d7 },
312         { 0x5fffc,  0xf84000d5 },
313         { 0x502b0,  0x5c8003d7 },
314         { 0x5fffc,  0xf7c000e9 },
315         { 0x502b4,  0x580003d7 },
316         { 0x5fffc,  0xf74000fd },
317         { 0x502b8,  0x534003d8 },
318         { 0x5fffc,  0xf6c00112 },
319         { 0x502bc,  0x4e8003d8 },
320         { 0x5fffc,  0xf6800126 },
321         { 0x502c0,  0x494003da },
322         { 0x5fffc,  0xf600013a },
323         { 0x502c4,  0x448003db },
324         { 0x5fffc,  0xf600014d },
325         { 0x502c8,  0x3f4003dd },
326         { 0x5fffc,  0xf5c00160 },
327         { 0x502cc,  0x3a4003df },
328         { 0x5fffc,  0xf5c00172 },
329         { 0x502d0,  0x354003e1 },
330         { 0x5fffc,  0xf5c00184 },
331         { 0x502d4,  0x304003e3 },
332         { 0x5fffc,  0xf6000195 },
333         { 0x502d8,  0x2b0003e6 },
334         { 0x5fffc,  0xf64001a6 },
335         { 0x502dc,  0x260003e8 },
336         { 0x5fffc,  0xf6c001b4 },
337         { 0x502e0,  0x214003eb },
338         { 0x5fffc,  0xf78001c2 },
339         { 0x502e4,  0x1c4003ee },
340         { 0x5fffc,  0xf80001cf },
341         { 0x502e8,  0x17c003f1 },
342         { 0x5fffc,  0xf90001db },
343         { 0x502ec,  0x134003f3 },
344         { 0x5fffc,  0xfa0001e5 },
345         { 0x502f0,  0xf0003f6 },
346         { 0x5fffc,  0xfb4001ee },
347         { 0x502f4,  0xac003f9 },
348         { 0x5fffc,  0xfcc001f5 },
349         { 0x502f8,  0x70003fb },
350         { 0x5fffc,  0xfe4001fb },
351         { 0x502fc,  0x34003fe },
352 };
353
354 struct mdp_table_entry *mdp_downscale_x_table[MDP_DOWNSCALE_MAX] = {
355         [MDP_DOWNSCALE_PT2TOPT4] = mdp_downscale_x_table_PT2TOPT4,
356         [MDP_DOWNSCALE_PT4TOPT6] = mdp_downscale_x_table_PT4TOPT6,
357         [MDP_DOWNSCALE_PT6TOPT8] = mdp_downscale_x_table_PT6TOPT8,
358         [MDP_DOWNSCALE_PT8TO1]  = mdp_downscale_x_table_PT8TO1,
359 };
360
361 static struct mdp_table_entry mdp_downscale_y_table_PT2TOPT4[] = {
362         { 0x5fffc,  0x740008c },
363         { 0x50300,  0x33800088 },
364         { 0x5fffc,  0x800008e },
365         { 0x50304,  0x33400084 },
366         { 0x5fffc,  0x8400092 },
367         { 0x50308,  0x33000080 },
368         { 0x5fffc,  0x9000094 },
369         { 0x5030c,  0x3300007b },
370         { 0x5fffc,  0x9c00098 },
371         { 0x50310,  0x32400077 },
372         { 0x5fffc,  0xa40009b },
373         { 0x50314,  0x32000073 },
374         { 0x5fffc,  0xb00009d },
375         { 0x50318,  0x31c0006f },
376         { 0x5fffc,  0xbc000a0 },
377         { 0x5031c,  0x3140006b },
378         { 0x5fffc,  0xc8000a2 },
379         { 0x50320,  0x31000067 },
380         { 0x5fffc,  0xd8000a5 },
381         { 0x50324,  0x30800062 },
382         { 0x5fffc,  0xe4000a8 },
383         { 0x50328,  0x2fc0005f },
384         { 0x5fffc,  0xec000aa },
385         { 0x5032c,  0x2fc0005b },
386         { 0x5fffc,  0xf8000ad },
387         { 0x50330,  0x2f400057 },
388         { 0x5fffc,  0x108000b0 },
389         { 0x50334,  0x2e400054 },
390         { 0x5fffc,  0x114000b2 },
391         { 0x50338,  0x2e000050 },
392         { 0x5fffc,  0x124000b4 },
393         { 0x5033c,  0x2d80004c },
394         { 0x5fffc,  0x130000b6 },
395         { 0x50340,  0x2d000049 },
396         { 0x5fffc,  0x140000b8 },
397         { 0x50344,  0x2c800045 },
398         { 0x5fffc,  0x150000b9 },
399         { 0x50348,  0x2c000042 },
400         { 0x5fffc,  0x15c000bd },
401         { 0x5034c,  0x2b40003e },
402         { 0x5fffc,  0x16c000bf },
403         { 0x50350,  0x2a80003b },
404         { 0x5fffc,  0x17c000bf },
405         { 0x50354,  0x2a000039 },
406         { 0x5fffc,  0x188000c2 },
407         { 0x50358,  0x29400036 },
408         { 0x5fffc,  0x19c000c4 },
409         { 0x5035c,  0x28800032 },
410         { 0x5fffc,  0x1ac000c5 },
411         { 0x50360,  0x2800002f },
412         { 0x5fffc,  0x1bc000c7 },
413         { 0x50364,  0x2740002c },
414         { 0x5fffc,  0x1cc000c8 },
415         { 0x50368,  0x26c00029 },
416         { 0x5fffc,  0x1dc000c9 },
417         { 0x5036c,  0x26000027 },
418         { 0x5fffc,  0x1ec000cc },
419         { 0x50370,  0x25000024 },
420         { 0x5fffc,  0x200000cc },
421         { 0x50374,  0x24800021 },
422         { 0x5fffc,  0x210000cd },
423         { 0x50378,  0x23800020 },
424         { 0x5fffc,  0x220000ce },
425         { 0x5037c,  0x2300001d },
426 };
427
428 static struct mdp_table_entry mdp_downscale_y_table_PT4TOPT6[] = {
429         { 0x5fffc,  0x740008c },
430         { 0x50300,  0x33800088 },
431         { 0x5fffc,  0x800008e },
432         { 0x50304,  0x33400084 },
433         { 0x5fffc,  0x8400092 },
434         { 0x50308,  0x33000080 },
435         { 0x5fffc,  0x9000094 },
436         { 0x5030c,  0x3300007b },
437         { 0x5fffc,  0x9c00098 },
438         { 0x50310,  0x32400077 },
439         { 0x5fffc,  0xa40009b },
440         { 0x50314,  0x32000073 },
441         { 0x5fffc,  0xb00009d },
442         { 0x50318,  0x31c0006f },
443         { 0x5fffc,  0xbc000a0 },
444         { 0x5031c,  0x3140006b },
445         { 0x5fffc,  0xc8000a2 },
446         { 0x50320,  0x31000067 },
447         { 0x5fffc,  0xd8000a5 },
448         { 0x50324,  0x30800062 },
449         { 0x5fffc,  0xe4000a8 },
450         { 0x50328,  0x2fc0005f },
451         { 0x5fffc,  0xec000aa },
452         { 0x5032c,  0x2fc0005b },
453         { 0x5fffc,  0xf8000ad },
454         { 0x50330,  0x2f400057 },
455         { 0x5fffc,  0x108000b0 },
456         { 0x50334,  0x2e400054 },
457         { 0x5fffc,  0x114000b2 },
458         { 0x50338,  0x2e000050 },
459         { 0x5fffc,  0x124000b4 },
460         { 0x5033c,  0x2d80004c },
461         { 0x5fffc,  0x130000b6 },
462         { 0x50340,  0x2d000049 },
463         { 0x5fffc,  0x140000b8 },
464         { 0x50344,  0x2c800045 },
465         { 0x5fffc,  0x150000b9 },
466         { 0x50348,  0x2c000042 },
467         { 0x5fffc,  0x15c000bd },
468         { 0x5034c,  0x2b40003e },
469         { 0x5fffc,  0x16c000bf },
470         { 0x50350,  0x2a80003b },
471         { 0x5fffc,  0x17c000bf },
472         { 0x50354,  0x2a000039 },
473         { 0x5fffc,  0x188000c2 },
474         { 0x50358,  0x29400036 },
475         { 0x5fffc,  0x19c000c4 },
476         { 0x5035c,  0x28800032 },
477         { 0x5fffc,  0x1ac000c5 },
478         { 0x50360,  0x2800002f },
479         { 0x5fffc,  0x1bc000c7 },
480         { 0x50364,  0x2740002c },
481         { 0x5fffc,  0x1cc000c8 },
482         { 0x50368,  0x26c00029 },
483         { 0x5fffc,  0x1dc000c9 },
484         { 0x5036c,  0x26000027 },
485         { 0x5fffc,  0x1ec000cc },
486         { 0x50370,  0x25000024 },
487         { 0x5fffc,  0x200000cc },
488         { 0x50374,  0x24800021 },
489         { 0x5fffc,  0x210000cd },
490         { 0x50378,  0x23800020 },
491         { 0x5fffc,  0x220000ce },
492         { 0x5037c,  0x2300001d },
493 };
494
495 static struct mdp_table_entry mdp_downscale_y_table_PT6TOPT8[] = {
496         { 0x5fffc,  0xfe000070 },
497         { 0x50300,  0x4bc00068 },
498         { 0x5fffc,  0xfe000078 },
499         { 0x50304,  0x4bc00060 },
500         { 0x5fffc,  0xfe000080 },
501         { 0x50308,  0x4b800059 },
502         { 0x5fffc,  0xfe000089 },
503         { 0x5030c,  0x4b000052 },
504         { 0x5fffc,  0xfe400091 },
505         { 0x50310,  0x4a80004b },
506         { 0x5fffc,  0xfe40009a },
507         { 0x50314,  0x4a000044 },
508         { 0x5fffc,  0xfe8000a3 },
509         { 0x50318,  0x4940003d },
510         { 0x5fffc,  0xfec000ac },
511         { 0x5031c,  0x48400037 },
512         { 0x5fffc,  0xff0000b4 },
513         { 0x50320,  0x47800031 },
514         { 0x5fffc,  0xff8000bd },
515         { 0x50324,  0x4640002b },
516         { 0x5fffc,  0xc5 },
517         { 0x50328,  0x45000026 },
518         { 0x5fffc,  0x8000ce },
519         { 0x5032c,  0x43800021 },
520         { 0x5fffc,  0x10000d6 },
521         { 0x50330,  0x4240001c },
522         { 0x5fffc,  0x18000df },
523         { 0x50334,  0x40800018 },
524         { 0x5fffc,  0x24000e6 },
525         { 0x50338,  0x3f000014 },
526         { 0x5fffc,  0x30000ee },
527         { 0x5033c,  0x3d400010 },
528         { 0x5fffc,  0x40000f5 },
529         { 0x50340,  0x3b80000c },
530         { 0x5fffc,  0x50000fc },
531         { 0x50344,  0x39800009 },
532         { 0x5fffc,  0x6000102 },
533         { 0x50348,  0x37c00006 },
534         { 0x5fffc,  0x7000109 },
535         { 0x5034c,  0x35800004 },
536         { 0x5fffc,  0x840010e },
537         { 0x50350,  0x33800002 },
538         { 0x5fffc,  0x9800114 },
539         { 0x50354,  0x31400000 },
540         { 0x5fffc,  0xac00119 },
541         { 0x50358,  0x2f4003fe },
542         { 0x5fffc,  0xc40011e },
543         { 0x5035c,  0x2d0003fc },
544         { 0x5fffc,  0xdc00121 },
545         { 0x50360,  0x2b0003fb },
546         { 0x5fffc,  0xf400125 },
547         { 0x50364,  0x28c003fa },
548         { 0x5fffc,  0x11000128 },
549         { 0x50368,  0x268003f9 },
550         { 0x5fffc,  0x12c0012a },
551         { 0x5036c,  0x244003f9 },
552         { 0x5fffc,  0x1480012c },
553         { 0x50370,  0x224003f8 },
554         { 0x5fffc,  0x1640012e },
555         { 0x50374,  0x200003f8 },
556         { 0x5fffc,  0x1800012f },
557         { 0x50378,  0x1e0003f8 },
558         { 0x5fffc,  0x1a00012f },
559         { 0x5037c,  0x1c0003f8 },
560 };
561
562 static struct mdp_table_entry mdp_downscale_y_table_PT8TO1[] = {
563         { 0x5fffc,  0x0 },
564         { 0x50300,  0x7fc00000 },
565         { 0x5fffc,  0xff80000d },
566         { 0x50304,  0x7ec003f9 },
567         { 0x5fffc,  0xfec0001c },
568         { 0x50308,  0x7d4003f3 },
569         { 0x5fffc,  0xfe40002b },
570         { 0x5030c,  0x7b8003ed },
571         { 0x5fffc,  0xfd80003c },
572         { 0x50310,  0x794003e8 },
573         { 0x5fffc,  0xfcc0004d },
574         { 0x50314,  0x76c003e4 },
575         { 0x5fffc,  0xfc40005f },
576         { 0x50318,  0x73c003e0 },
577         { 0x5fffc,  0xfb800071 },
578         { 0x5031c,  0x708003de },
579         { 0x5fffc,  0xfac00085 },
580         { 0x50320,  0x6d0003db },
581         { 0x5fffc,  0xfa000098 },
582         { 0x50324,  0x698003d9 },
583         { 0x5fffc,  0xf98000ac },
584         { 0x50328,  0x654003d8 },
585         { 0x5fffc,  0xf8c000c1 },
586         { 0x5032c,  0x610003d7 },
587         { 0x5fffc,  0xf84000d5 },
588         { 0x50330,  0x5c8003d7 },
589         { 0x5fffc,  0xf7c000e9 },
590         { 0x50334,  0x580003d7 },
591         { 0x5fffc,  0xf74000fd },
592         { 0x50338,  0x534003d8 },
593         { 0x5fffc,  0xf6c00112 },
594         { 0x5033c,  0x4e8003d8 },
595         { 0x5fffc,  0xf6800126 },
596         { 0x50340,  0x494003da },
597         { 0x5fffc,  0xf600013a },
598         { 0x50344,  0x448003db },
599         { 0x5fffc,  0xf600014d },
600         { 0x50348,  0x3f4003dd },
601         { 0x5fffc,  0xf5c00160 },
602         { 0x5034c,  0x3a4003df },
603         { 0x5fffc,  0xf5c00172 },
604         { 0x50350,  0x354003e1 },
605         { 0x5fffc,  0xf5c00184 },
606         { 0x50354,  0x304003e3 },
607         { 0x5fffc,  0xf6000195 },
608         { 0x50358,  0x2b0003e6 },
609         { 0x5fffc,  0xf64001a6 },
610         { 0x5035c,  0x260003e8 },
611         { 0x5fffc,  0xf6c001b4 },
612         { 0x50360,  0x214003eb },
613         { 0x5fffc,  0xf78001c2 },
614         { 0x50364,  0x1c4003ee },
615         { 0x5fffc,  0xf80001cf },
616         { 0x50368,  0x17c003f1 },
617         { 0x5fffc,  0xf90001db },
618         { 0x5036c,  0x134003f3 },
619         { 0x5fffc,  0xfa0001e5 },
620         { 0x50370,  0xf0003f6 },
621         { 0x5fffc,  0xfb4001ee },
622         { 0x50374,  0xac003f9 },
623         { 0x5fffc,  0xfcc001f5 },
624         { 0x50378,  0x70003fb },
625         { 0x5fffc,  0xfe4001fb },
626         { 0x5037c,  0x34003fe },
627 };
628
629 struct mdp_table_entry *mdp_downscale_y_table[MDP_DOWNSCALE_MAX] = {
630         [MDP_DOWNSCALE_PT2TOPT4] = mdp_downscale_y_table_PT2TOPT4,
631         [MDP_DOWNSCALE_PT4TOPT6] = mdp_downscale_y_table_PT4TOPT6,
632         [MDP_DOWNSCALE_PT6TOPT8] = mdp_downscale_y_table_PT6TOPT8,
633         [MDP_DOWNSCALE_PT8TO1]  = mdp_downscale_y_table_PT8TO1,
634 };
635
636 struct mdp_table_entry mdp_gaussian_blur_table[] = {
637         /* max variance */
638         { 0x5fffc, 0x20000080 },
639         { 0x50280, 0x20000080 },
640         { 0x5fffc, 0x20000080 },
641         { 0x50284, 0x20000080 },
642         { 0x5fffc, 0x20000080 },
643         { 0x50288, 0x20000080 },
644         { 0x5fffc, 0x20000080 },
645         { 0x5028c, 0x20000080 },
646         { 0x5fffc, 0x20000080 },
647         { 0x50290, 0x20000080 },
648         { 0x5fffc, 0x20000080 },
649         { 0x50294, 0x20000080 },
650         { 0x5fffc, 0x20000080 },
651         { 0x50298, 0x20000080 },
652         { 0x5fffc, 0x20000080 },
653         { 0x5029c, 0x20000080 },
654         { 0x5fffc, 0x20000080 },
655         { 0x502a0, 0x20000080 },
656         { 0x5fffc, 0x20000080 },
657         { 0x502a4, 0x20000080 },
658         { 0x5fffc, 0x20000080 },
659         { 0x502a8, 0x20000080 },
660         { 0x5fffc, 0x20000080 },
661         { 0x502ac, 0x20000080 },
662         { 0x5fffc, 0x20000080 },
663         { 0x502b0, 0x20000080 },
664         { 0x5fffc, 0x20000080 },
665         { 0x502b4, 0x20000080 },
666         { 0x5fffc, 0x20000080 },
667         { 0x502b8, 0x20000080 },
668         { 0x5fffc, 0x20000080 },
669         { 0x502bc, 0x20000080 },
670         { 0x5fffc, 0x20000080 },
671         { 0x502c0, 0x20000080 },
672         { 0x5fffc, 0x20000080 },
673         { 0x502c4, 0x20000080 },
674         { 0x5fffc, 0x20000080 },
675         { 0x502c8, 0x20000080 },
676         { 0x5fffc, 0x20000080 },
677         { 0x502cc, 0x20000080 },
678         { 0x5fffc, 0x20000080 },
679         { 0x502d0, 0x20000080 },
680         { 0x5fffc, 0x20000080 },
681         { 0x502d4, 0x20000080 },
682         { 0x5fffc, 0x20000080 },
683         { 0x502d8, 0x20000080 },
684         { 0x5fffc, 0x20000080 },
685         { 0x502dc, 0x20000080 },
686         { 0x5fffc, 0x20000080 },
687         { 0x502e0, 0x20000080 },
688         { 0x5fffc, 0x20000080 },
689         { 0x502e4, 0x20000080 },
690         { 0x5fffc, 0x20000080 },
691         { 0x502e8, 0x20000080 },
692         { 0x5fffc, 0x20000080 },
693         { 0x502ec, 0x20000080 },
694         { 0x5fffc, 0x20000080 },
695         { 0x502f0, 0x20000080 },
696         { 0x5fffc, 0x20000080 },
697         { 0x502f4, 0x20000080 },
698         { 0x5fffc, 0x20000080 },
699         { 0x502f8, 0x20000080 },
700         { 0x5fffc, 0x20000080 },
701         { 0x502fc, 0x20000080 },
702         { 0x5fffc, 0x20000080 },
703         { 0x50300, 0x20000080 },
704         { 0x5fffc, 0x20000080 },
705         { 0x50304, 0x20000080 },
706         { 0x5fffc, 0x20000080 },
707         { 0x50308, 0x20000080 },
708         { 0x5fffc, 0x20000080 },
709         { 0x5030c, 0x20000080 },
710         { 0x5fffc, 0x20000080 },
711         { 0x50310, 0x20000080 },
712         { 0x5fffc, 0x20000080 },
713         { 0x50314, 0x20000080 },
714         { 0x5fffc, 0x20000080 },
715         { 0x50318, 0x20000080 },
716         { 0x5fffc, 0x20000080 },
717         { 0x5031c, 0x20000080 },
718         { 0x5fffc, 0x20000080 },
719         { 0x50320, 0x20000080 },
720         { 0x5fffc, 0x20000080 },
721         { 0x50324, 0x20000080 },
722         { 0x5fffc, 0x20000080 },
723         { 0x50328, 0x20000080 },
724         { 0x5fffc, 0x20000080 },
725         { 0x5032c, 0x20000080 },
726         { 0x5fffc, 0x20000080 },
727         { 0x50330, 0x20000080 },
728         { 0x5fffc, 0x20000080 },
729         { 0x50334, 0x20000080 },
730         { 0x5fffc, 0x20000080 },
731         { 0x50338, 0x20000080 },
732         { 0x5fffc, 0x20000080 },
733         { 0x5033c, 0x20000080 },
734         { 0x5fffc, 0x20000080 },
735         { 0x50340, 0x20000080 },
736         { 0x5fffc, 0x20000080 },
737         { 0x50344, 0x20000080 },
738         { 0x5fffc, 0x20000080 },
739         { 0x50348, 0x20000080 },
740         { 0x5fffc, 0x20000080 },
741         { 0x5034c, 0x20000080 },
742         { 0x5fffc, 0x20000080 },
743         { 0x50350, 0x20000080 },
744         { 0x5fffc, 0x20000080 },
745         { 0x50354, 0x20000080 },
746         { 0x5fffc, 0x20000080 },
747         { 0x50358, 0x20000080 },
748         { 0x5fffc, 0x20000080 },
749         { 0x5035c, 0x20000080 },
750         { 0x5fffc, 0x20000080 },
751         { 0x50360, 0x20000080 },
752         { 0x5fffc, 0x20000080 },
753         { 0x50364, 0x20000080 },
754         { 0x5fffc, 0x20000080 },
755         { 0x50368, 0x20000080 },
756         { 0x5fffc, 0x20000080 },
757         { 0x5036c, 0x20000080 },
758         { 0x5fffc, 0x20000080 },
759         { 0x50370, 0x20000080 },
760         { 0x5fffc, 0x20000080 },
761         { 0x50374, 0x20000080 },
762         { 0x5fffc, 0x20000080 },
763         { 0x50378, 0x20000080 },
764         { 0x5fffc, 0x20000080 },
765         { 0x5037c, 0x20000080 },
766 };