]> Pileus Git - ~andy/linux/blob - drivers/staging/sm7xx/smtcfb.h
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / drivers / staging / sm7xx / smtcfb.h
1 /*
2  * Silicon Motion SM712 frame buffer device
3  *
4  * Copyright (C) 2006 Silicon Motion Technology Corp.
5  * Authors:     Ge Wang, gewang@siliconmotion.com
6  *              Boyod boyod.yang@siliconmotion.com.cn
7  *
8  * Copyright (C) 2009 Lemote, Inc.
9  * Author: Wu Zhangjin, wuzhangjin@gmail.com
10  *
11  *  This file is subject to the terms and conditions of the GNU General Public
12  *  License. See the file COPYING in the main directory of this archive for
13  *  more details.
14  */
15
16 #define NR_PALETTE        256
17 #define NR_RGB            2
18
19 #define FB_ACCEL_SMI_LYNX 88
20
21 #define SCREEN_X_RES      1024
22 #define SCREEN_Y_RES      600
23 #define SCREEN_BPP        16
24
25 /*Assume SM712 graphics chip has 4MB VRAM */
26 #define SM712_VIDEOMEMORYSIZE     0x00400000
27 /*Assume SM722 graphics chip has 8MB VRAM */
28 #define SM722_VIDEOMEMORYSIZE     0x00800000
29
30 #define dac_reg (0x3c8)
31 #define dac_val (0x3c9)
32
33 extern char __iomem *smtc_RegBaseAddress;
34 #define smtc_mmiowb(dat, reg)   writeb(dat, smtc_RegBaseAddress + reg)
35 #define smtc_mmioww(dat, reg)   writew(dat, smtc_RegBaseAddress + reg)
36 #define smtc_mmiowl(dat, reg)   writel(dat, smtc_RegBaseAddress + reg)
37
38 #define smtc_mmiorb(reg)        readb(smtc_RegBaseAddress + reg)
39 #define smtc_mmiorw(reg)        readw(smtc_RegBaseAddress + reg)
40 #define smtc_mmiorl(reg)        readl(smtc_RegBaseAddress + reg)
41
42 #define SIZE_SR00_SR04      (0x04 - 0x00 + 1)
43 #define SIZE_SR10_SR24      (0x24 - 0x10 + 1)
44 #define SIZE_SR30_SR75      (0x75 - 0x30 + 1)
45 #define SIZE_SR80_SR93      (0x93 - 0x80 + 1)
46 #define SIZE_SRA0_SRAF      (0xAF - 0xA0 + 1)
47 #define SIZE_GR00_GR08      (0x08 - 0x00 + 1)
48 #define SIZE_AR00_AR14      (0x14 - 0x00 + 1)
49 #define SIZE_CR00_CR18      (0x18 - 0x00 + 1)
50 #define SIZE_CR30_CR4D      (0x4D - 0x30 + 1)
51 #define SIZE_CR90_CRA7      (0xA7 - 0x90 + 1)
52 #define SIZE_VPR                (0x6C + 1)
53 #define SIZE_DPR                (0x44 + 1)
54
55 static inline void smtc_crtcw(int reg, int val)
56 {
57         smtc_mmiowb(reg, 0x3d4);
58         smtc_mmiowb(val, 0x3d5);
59 }
60
61 static inline unsigned int smtc_crtcr(int reg)
62 {
63         smtc_mmiowb(reg, 0x3d4);
64         return smtc_mmiorb(0x3d5);
65 }
66
67 static inline void smtc_grphw(int reg, int val)
68 {
69         smtc_mmiowb(reg, 0x3ce);
70         smtc_mmiowb(val, 0x3cf);
71 }
72
73 static inline unsigned int smtc_grphr(int reg)
74 {
75         smtc_mmiowb(reg, 0x3ce);
76         return smtc_mmiorb(0x3cf);
77 }
78
79 static inline void smtc_attrw(int reg, int val)
80 {
81         smtc_mmiorb(0x3da);
82         smtc_mmiowb(reg, 0x3c0);
83         smtc_mmiorb(0x3c1);
84         smtc_mmiowb(val, 0x3c0);
85 }
86
87 static inline void smtc_seqw(int reg, int val)
88 {
89         smtc_mmiowb(reg, 0x3c4);
90         smtc_mmiowb(val, 0x3c5);
91 }
92
93 static inline unsigned int smtc_seqr(int reg)
94 {
95         smtc_mmiowb(reg, 0x3c4);
96         return smtc_mmiorb(0x3c5);
97 }
98
99 /* The next structure holds all information relevant for a specific video mode.
100  */
101
102 struct ModeInit {
103         int mmSizeX;
104         int mmSizeY;
105         int bpp;
106         int hz;
107         unsigned char Init_MISC;
108         unsigned char Init_SR00_SR04[SIZE_SR00_SR04];
109         unsigned char Init_SR10_SR24[SIZE_SR10_SR24];
110         unsigned char Init_SR30_SR75[SIZE_SR30_SR75];
111         unsigned char Init_SR80_SR93[SIZE_SR80_SR93];
112         unsigned char Init_SRA0_SRAF[SIZE_SRA0_SRAF];
113         unsigned char Init_GR00_GR08[SIZE_GR00_GR08];
114         unsigned char Init_AR00_AR14[SIZE_AR00_AR14];
115         unsigned char Init_CR00_CR18[SIZE_CR00_CR18];
116         unsigned char Init_CR30_CR4D[SIZE_CR30_CR4D];
117         unsigned char Init_CR90_CRA7[SIZE_CR90_CRA7];
118 };
119
120 /**********************************************************************
121                          SM712 Mode table.
122  **********************************************************************/
123 struct ModeInit VGAMode[] = {
124         {
125          /*  mode#0: 640 x 480  16Bpp  60Hz */
126          640, 480, 16, 60,
127          /*  Init_MISC */
128          0xE3,
129          {                      /*  Init_SR0_SR4 */
130           0x03, 0x01, 0x0F, 0x00, 0x0E,
131           },
132          {                      /*  Init_SR10_SR24 */
133           0xFF, 0xBE, 0xEF, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
134           0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
135           0xC4, 0x30, 0x02, 0x01, 0x01,
136           },
137          {                      /*  Init_SR30_SR75 */
138           0x32, 0x03, 0xA0, 0x09, 0xC0, 0x32, 0x32, 0x32,
139           0x32, 0x32, 0x32, 0x32, 0x00, 0x00, 0x03, 0xFF,
140           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
141           0x20, 0x0C, 0x44, 0x20, 0x00, 0x32, 0x32, 0x32,
142           0x04, 0x24, 0x63, 0x4F, 0x52, 0x0B, 0xDF, 0xEA,
143           0x04, 0x50, 0x19, 0x32, 0x32, 0x00, 0x00, 0x32,
144           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
145           0x50, 0x03, 0x74, 0x14, 0x07, 0x82, 0x07, 0x04,
146           0x00, 0x45, 0x30, 0x30, 0x40, 0x30,
147           },
148          {                      /*  Init_SR80_SR93 */
149           0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x32,
150           0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x32, 0x32,
151           0x00, 0x00, 0x00, 0x00,
152           },
153          {                      /*  Init_SRA0_SRAF */
154           0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
155           0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xFF, 0xDF,
156           },
157          {                      /*  Init_GR00_GR08 */
158           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
159           0xFF,
160           },
161          {                      /*  Init_AR00_AR14 */
162           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
163           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
164           0x41, 0x00, 0x0F, 0x00, 0x00,
165           },
166          {                      /*  Init_CR00_CR18 */
167           0x5F, 0x4F, 0x4F, 0x00, 0x53, 0x1F, 0x0B, 0x3E,
168           0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169           0xEA, 0x0C, 0xDF, 0x50, 0x40, 0xDF, 0x00, 0xE3,
170           0xFF,
171           },
172          {                      /*  Init_CR30_CR4D */
173           0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x20,
174           0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xFF, 0xFD,
175           0x5F, 0x4F, 0x00, 0x54, 0x00, 0x0B, 0xDF, 0x00,
176           0xEA, 0x0C, 0x2E, 0x00, 0x4F, 0xDF,
177           },
178          {                      /*  Init_CR90_CRA7 */
179           0x56, 0xDD, 0x5E, 0xEA, 0x87, 0x44, 0x8F, 0x55,
180           0x0A, 0x8F, 0x55, 0x0A, 0x00, 0x00, 0x18, 0x00,
181           0x11, 0x10, 0x0B, 0x0A, 0x0A, 0x0A, 0x0A, 0x00,
182           },
183          },
184         {
185          /*  mode#1: 640 x 480  24Bpp  60Hz */
186          640, 480, 24, 60,
187          /*  Init_MISC */
188          0xE3,
189          {                      /*  Init_SR0_SR4 */
190           0x03, 0x01, 0x0F, 0x00, 0x0E,
191           },
192          {                      /*  Init_SR10_SR24 */
193           0xFF, 0xBE, 0xEF, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
194           0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195           0xC4, 0x30, 0x02, 0x01, 0x01,
196           },
197          {                      /*  Init_SR30_SR75 */
198           0x32, 0x03, 0xA0, 0x09, 0xC0, 0x32, 0x32, 0x32,
199           0x32, 0x32, 0x32, 0x32, 0x00, 0x00, 0x03, 0xFF,
200           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
201           0x20, 0x0C, 0x44, 0x20, 0x00, 0x32, 0x32, 0x32,
202           0x04, 0x24, 0x63, 0x4F, 0x52, 0x0B, 0xDF, 0xEA,
203           0x04, 0x50, 0x19, 0x32, 0x32, 0x00, 0x00, 0x32,
204           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
205           0x50, 0x03, 0x74, 0x14, 0x07, 0x82, 0x07, 0x04,
206           0x00, 0x45, 0x30, 0x30, 0x40, 0x30,
207           },
208          {                      /*  Init_SR80_SR93 */
209           0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x32,
210           0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x32, 0x32,
211           0x00, 0x00, 0x00, 0x00,
212           },
213          {                      /*  Init_SRA0_SRAF */
214           0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
215           0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xFF, 0xDF,
216           },
217          {                      /*  Init_GR00_GR08 */
218           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
219           0xFF,
220           },
221          {                      /*  Init_AR00_AR14 */
222           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
223           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
224           0x41, 0x00, 0x0F, 0x00, 0x00,
225           },
226          {                      /*  Init_CR00_CR18 */
227           0x5F, 0x4F, 0x4F, 0x00, 0x53, 0x1F, 0x0B, 0x3E,
228           0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229           0xEA, 0x0C, 0xDF, 0x50, 0x40, 0xDF, 0x00, 0xE3,
230           0xFF,
231           },
232          {                      /*  Init_CR30_CR4D */
233           0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x20,
234           0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xFF, 0xFD,
235           0x5F, 0x4F, 0x00, 0x54, 0x00, 0x0B, 0xDF, 0x00,
236           0xEA, 0x0C, 0x2E, 0x00, 0x4F, 0xDF,
237           },
238          {                      /*  Init_CR90_CRA7 */
239           0x56, 0xDD, 0x5E, 0xEA, 0x87, 0x44, 0x8F, 0x55,
240           0x0A, 0x8F, 0x55, 0x0A, 0x00, 0x00, 0x18, 0x00,
241           0x11, 0x10, 0x0B, 0x0A, 0x0A, 0x0A, 0x0A, 0x00,
242           },
243          },
244         {
245          /*  mode#0: 640 x 480  32Bpp  60Hz */
246          640, 480, 32, 60,
247          /*  Init_MISC */
248          0xE3,
249          {                      /*  Init_SR0_SR4 */
250           0x03, 0x01, 0x0F, 0x00, 0x0E,
251           },
252          {                      /*  Init_SR10_SR24 */
253           0xFF, 0xBE, 0xEF, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
254           0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255           0xC4, 0x30, 0x02, 0x01, 0x01,
256           },
257          {                      /*  Init_SR30_SR75 */
258           0x32, 0x03, 0xA0, 0x09, 0xC0, 0x32, 0x32, 0x32,
259           0x32, 0x32, 0x32, 0x32, 0x00, 0x00, 0x03, 0xFF,
260           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
261           0x20, 0x0C, 0x44, 0x20, 0x00, 0x32, 0x32, 0x32,
262           0x04, 0x24, 0x63, 0x4F, 0x52, 0x0B, 0xDF, 0xEA,
263           0x04, 0x50, 0x19, 0x32, 0x32, 0x00, 0x00, 0x32,
264           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
265           0x50, 0x03, 0x74, 0x14, 0x07, 0x82, 0x07, 0x04,
266           0x00, 0x45, 0x30, 0x30, 0x40, 0x30,
267           },
268          {                      /*  Init_SR80_SR93 */
269           0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x32,
270           0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x32, 0x32,
271           0x00, 0x00, 0x00, 0x00,
272           },
273          {                      /*  Init_SRA0_SRAF */
274           0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
275           0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xFF, 0xDF,
276           },
277          {                      /*  Init_GR00_GR08 */
278           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
279           0xFF,
280           },
281          {                      /*  Init_AR00_AR14 */
282           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
283           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
284           0x41, 0x00, 0x0F, 0x00, 0x00,
285           },
286          {                      /*  Init_CR00_CR18 */
287           0x5F, 0x4F, 0x4F, 0x00, 0x53, 0x1F, 0x0B, 0x3E,
288           0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
289           0xEA, 0x0C, 0xDF, 0x50, 0x40, 0xDF, 0x00, 0xE3,
290           0xFF,
291           },
292          {                      /*  Init_CR30_CR4D */
293           0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x20,
294           0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xFF, 0xFD,
295           0x5F, 0x4F, 0x00, 0x54, 0x00, 0x0B, 0xDF, 0x00,
296           0xEA, 0x0C, 0x2E, 0x00, 0x4F, 0xDF,
297           },
298          {                      /*  Init_CR90_CRA7 */
299           0x56, 0xDD, 0x5E, 0xEA, 0x87, 0x44, 0x8F, 0x55,
300           0x0A, 0x8F, 0x55, 0x0A, 0x00, 0x00, 0x18, 0x00,
301           0x11, 0x10, 0x0B, 0x0A, 0x0A, 0x0A, 0x0A, 0x00,
302           },
303          },
304
305         {                       /*  mode#2: 800 x 600  16Bpp  60Hz */
306          800, 600, 16, 60,
307          /*  Init_MISC */
308          0x2B,
309          {                      /*  Init_SR0_SR4 */
310           0x03, 0x01, 0x0F, 0x03, 0x0E,
311           },
312          {                      /*  Init_SR10_SR24 */
313           0xFF, 0xBE, 0xEE, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
314           0x99, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
315           0xC4, 0x30, 0x02, 0x01, 0x01,
316           },
317          {                      /*  Init_SR30_SR75 */
318           0x34, 0x03, 0x20, 0x09, 0xC0, 0x24, 0x24, 0x24,
319           0x24, 0x24, 0x24, 0x24, 0x00, 0x00, 0x03, 0xFF,
320           0x00, 0xFC, 0x00, 0x00, 0x20, 0x38, 0x00, 0xFC,
321           0x20, 0x0C, 0x44, 0x20, 0x00, 0x24, 0x24, 0x24,
322           0x04, 0x48, 0x83, 0x63, 0x68, 0x72, 0x57, 0x58,
323           0x04, 0x55, 0x59, 0x24, 0x24, 0x00, 0x00, 0x24,
324           0x01, 0x80, 0x7A, 0x1A, 0x1A, 0x00, 0x00, 0x00,
325           0x50, 0x03, 0x74, 0x14, 0x1C, 0x85, 0x35, 0x13,
326           0x02, 0x45, 0x30, 0x35, 0x40, 0x20,
327           },
328          {                      /*  Init_SR80_SR93 */
329           0x00, 0x00, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x24,
330           0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0x24,
331           0x00, 0x00, 0x00, 0x00,
332           },
333          {                      /*  Init_SRA0_SRAF */
334           0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
335           0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xBF, 0xDF,
336           },
337          {                      /*  Init_GR00_GR08 */
338           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
339           0xFF,
340           },
341          {                      /*  Init_AR00_AR14 */
342           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
343           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
344           0x41, 0x00, 0x0F, 0x00, 0x00,
345           },
346          {                      /*  Init_CR00_CR18 */
347           0x7F, 0x63, 0x63, 0x00, 0x68, 0x18, 0x72, 0xF0,
348           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
349           0x58, 0x0C, 0x57, 0x64, 0x40, 0x57, 0x00, 0xE3,
350           0xFF,
351           },
352          {                      /*  Init_CR30_CR4D */
353           0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x03, 0x20,
354           0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xBF, 0xFD,
355           0x7F, 0x63, 0x00, 0x69, 0x18, 0x72, 0x57, 0x00,
356           0x58, 0x0C, 0xE0, 0x20, 0x63, 0x57,
357           },
358          {                      /*  Init_CR90_CRA7 */
359           0x56, 0x4B, 0x5E, 0x55, 0x86, 0x9D, 0x8E, 0xAA,
360           0xDB, 0x2A, 0xDF, 0x33, 0x00, 0x00, 0x18, 0x00,
361           0x20, 0x1F, 0x1A, 0x19, 0x0F, 0x0F, 0x0F, 0x00,
362           },
363          },
364         {                       /*  mode#3: 800 x 600  24Bpp  60Hz */
365          800, 600, 24, 60,
366          0x2B,
367          {                      /*  Init_SR0_SR4 */
368           0x03, 0x01, 0x0F, 0x03, 0x0E,
369           },
370          {                      /*  Init_SR10_SR24 */
371           0xFF, 0xBE, 0xEE, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
372           0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
373           0xC4, 0x30, 0x02, 0x01, 0x01,
374           },
375          {                      /*  Init_SR30_SR75 */
376           0x36, 0x03, 0x20, 0x09, 0xC0, 0x36, 0x36, 0x36,
377           0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x03, 0xFF,
378           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
379           0x20, 0x0C, 0x44, 0x20, 0x00, 0x36, 0x36, 0x36,
380           0x04, 0x48, 0x83, 0x63, 0x68, 0x72, 0x57, 0x58,
381           0x04, 0x55, 0x59, 0x36, 0x36, 0x00, 0x00, 0x36,
382           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
383           0x50, 0x03, 0x74, 0x14, 0x1C, 0x85, 0x35, 0x13,
384           0x02, 0x45, 0x30, 0x30, 0x40, 0x20,
385           },
386          {                      /*  Init_SR80_SR93 */
387           0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x36,
388           0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x36, 0x36,
389           0x00, 0x00, 0x00, 0x00,
390           },
391          {                      /*  Init_SRA0_SRAF */
392           0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
393           0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xBF, 0xDF,
394           },
395          {                      /*  Init_GR00_GR08 */
396           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
397           0xFF,
398           },
399          {                      /*  Init_AR00_AR14 */
400           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
401           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
402           0x41, 0x00, 0x0F, 0x00, 0x00,
403           },
404          {                      /*  Init_CR00_CR18 */
405           0x7F, 0x63, 0x63, 0x00, 0x68, 0x18, 0x72, 0xF0,
406           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
407           0x58, 0x0C, 0x57, 0x64, 0x40, 0x57, 0x00, 0xE3,
408           0xFF,
409           },
410          {                      /*  Init_CR30_CR4D */
411           0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x03, 0x20,
412           0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xBF, 0xFD,
413           0x7F, 0x63, 0x00, 0x69, 0x18, 0x72, 0x57, 0x00,
414           0x58, 0x0C, 0xE0, 0x20, 0x63, 0x57,
415           },
416          {                      /*  Init_CR90_CRA7 */
417           0x56, 0x4B, 0x5E, 0x55, 0x86, 0x9D, 0x8E, 0xAA,
418           0xDB, 0x2A, 0xDF, 0x33, 0x00, 0x00, 0x18, 0x00,
419           0x20, 0x1F, 0x1A, 0x19, 0x0F, 0x0F, 0x0F, 0x00,
420           },
421          },
422         {                       /*  mode#7: 800 x 600  32Bpp  60Hz */
423          800, 600, 32, 60,
424          /*  Init_MISC */
425          0x2B,
426          {                      /*  Init_SR0_SR4 */
427           0x03, 0x01, 0x0F, 0x03, 0x0E,
428           },
429          {                      /*  Init_SR10_SR24 */
430           0xFF, 0xBE, 0xEE, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
431           0x99, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
432           0xC4, 0x30, 0x02, 0x01, 0x01,
433           },
434          {                      /*  Init_SR30_SR75 */
435           0x34, 0x03, 0x20, 0x09, 0xC0, 0x24, 0x24, 0x24,
436           0x24, 0x24, 0x24, 0x24, 0x00, 0x00, 0x03, 0xFF,
437           0x00, 0xFC, 0x00, 0x00, 0x20, 0x38, 0x00, 0xFC,
438           0x20, 0x0C, 0x44, 0x20, 0x00, 0x24, 0x24, 0x24,
439           0x04, 0x48, 0x83, 0x63, 0x68, 0x72, 0x57, 0x58,
440           0x04, 0x55, 0x59, 0x24, 0x24, 0x00, 0x00, 0x24,
441           0x01, 0x80, 0x7A, 0x1A, 0x1A, 0x00, 0x00, 0x00,
442           0x50, 0x03, 0x74, 0x14, 0x1C, 0x85, 0x35, 0x13,
443           0x02, 0x45, 0x30, 0x35, 0x40, 0x20,
444           },
445          {                      /*  Init_SR80_SR93 */
446           0x00, 0x00, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x24,
447           0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0x24,
448           0x00, 0x00, 0x00, 0x00,
449           },
450          {                      /*  Init_SRA0_SRAF */
451           0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
452           0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xBF, 0xDF,
453           },
454          {                      /*  Init_GR00_GR08 */
455           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
456           0xFF,
457           },
458          {                      /*  Init_AR00_AR14 */
459           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
460           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
461           0x41, 0x00, 0x0F, 0x00, 0x00,
462           },
463          {                      /*  Init_CR00_CR18 */
464           0x7F, 0x63, 0x63, 0x00, 0x68, 0x18, 0x72, 0xF0,
465           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
466           0x58, 0x0C, 0x57, 0x64, 0x40, 0x57, 0x00, 0xE3,
467           0xFF,
468           },
469          {                      /*  Init_CR30_CR4D */
470           0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x03, 0x20,
471           0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xBF, 0xFD,
472           0x7F, 0x63, 0x00, 0x69, 0x18, 0x72, 0x57, 0x00,
473           0x58, 0x0C, 0xE0, 0x20, 0x63, 0x57,
474           },
475          {                      /*  Init_CR90_CRA7 */
476           0x56, 0x4B, 0x5E, 0x55, 0x86, 0x9D, 0x8E, 0xAA,
477           0xDB, 0x2A, 0xDF, 0x33, 0x00, 0x00, 0x18, 0x00,
478           0x20, 0x1F, 0x1A, 0x19, 0x0F, 0x0F, 0x0F, 0x00,
479           },
480          },
481         /* We use 1024x768 table to light 1024x600 panel for lemote */
482         {                       /*  mode#4: 1024 x 600  16Bpp  60Hz  */
483          1024, 600, 16, 60,
484          /*  Init_MISC */
485          0xEB,
486          {                      /*  Init_SR0_SR4 */
487           0x03, 0x01, 0x0F, 0x00, 0x0E,
488           },
489          {                      /*  Init_SR10_SR24 */
490           0xC8, 0x40, 0x14, 0x60, 0x00, 0x0A, 0x17, 0x20,
491           0x51, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
492           0xC4, 0x30, 0x02, 0x00, 0x01,
493           },
494          {                      /*  Init_SR30_SR75 */
495           0x22, 0x03, 0x24, 0x09, 0xC0, 0x22, 0x22, 0x22,
496           0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x03, 0xFF,
497           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
498           0x20, 0x0C, 0x44, 0x20, 0x00, 0x22, 0x22, 0x22,
499           0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
500           0x00, 0x60, 0x59, 0x22, 0x22, 0x00, 0x00, 0x22,
501           0x01, 0x80, 0x7A, 0x1A, 0x1A, 0x00, 0x00, 0x00,
502           0x50, 0x03, 0x16, 0x02, 0x0D, 0x82, 0x09, 0x02,
503           0x04, 0x45, 0x3F, 0x30, 0x40, 0x20,
504           },
505          {                      /*  Init_SR80_SR93 */
506           0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
507           0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
508           0x00, 0x00, 0x00, 0x00,
509           },
510          {                      /*  Init_SRA0_SRAF */
511           0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
512           0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
513           },
514          {                      /*  Init_GR00_GR08 */
515           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
516           0xFF,
517           },
518          {                      /*  Init_AR00_AR14 */
519           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
520           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
521           0x41, 0x00, 0x0F, 0x00, 0x00,
522           },
523          {                      /*  Init_CR00_CR18 */
524           0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
525           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
526           0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
527           0xFF,
528           },
529          {                      /*  Init_CR30_CR4D */
530           0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
531           0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
532           0xA3, 0x7F, 0x00, 0x82, 0x0b, 0x6f, 0x57, 0x00,
533           0x5c, 0x0f, 0xE0, 0xe0, 0x7F, 0x57,
534           },
535          {                      /*  Init_CR90_CRA7 */
536           0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
537           0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
538           0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
539           },
540          },
541         {                       /*  mode#5: 1024 x 768  24Bpp  60Hz */
542          1024, 768, 24, 60,
543          /*  Init_MISC */
544          0xEB,
545          {                      /*  Init_SR0_SR4 */
546           0x03, 0x01, 0x0F, 0x03, 0x0E,
547           },
548          {                      /*  Init_SR10_SR24 */
549           0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
550           0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
551           0xC4, 0x30, 0x02, 0x01, 0x01,
552           },
553          {                      /*  Init_SR30_SR75 */
554           0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
555           0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
556           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
557           0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
558           0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
559           0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
560           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
561           0x50, 0x03, 0x74, 0x14, 0x3B, 0x0D, 0x09, 0x02,
562           0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
563           },
564          {                      /*  Init_SR80_SR93 */
565           0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
566           0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
567           0x00, 0x00, 0x00, 0x00,
568           },
569          {                      /*  Init_SRA0_SRAF */
570           0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
571           0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
572           },
573          {                      /*  Init_GR00_GR08 */
574           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
575           0xFF,
576           },
577          {                      /*  Init_AR00_AR14 */
578           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
579           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
580           0x41, 0x00, 0x0F, 0x00, 0x00,
581           },
582          {                      /*  Init_CR00_CR18 */
583           0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
584           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
585           0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
586           0xFF,
587           },
588          {                      /*  Init_CR30_CR4D */
589           0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
590           0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
591           0xA3, 0x7F, 0x00, 0x86, 0x15, 0x24, 0xFF, 0x00,
592           0x01, 0x07, 0xE5, 0x20, 0x7F, 0xFF,
593           },
594          {                      /*  Init_CR90_CRA7 */
595           0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
596           0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
597           0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
598           },
599          },
600         {                       /*  mode#4: 1024 x 768  32Bpp  60Hz */
601          1024, 768, 32, 60,
602          /*  Init_MISC */
603          0xEB,
604          {                      /*  Init_SR0_SR4 */
605           0x03, 0x01, 0x0F, 0x03, 0x0E,
606           },
607          {                      /*  Init_SR10_SR24 */
608           0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
609           0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
610           0xC4, 0x32, 0x02, 0x01, 0x01,
611           },
612          {                      /*  Init_SR30_SR75 */
613           0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
614           0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
615           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
616           0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
617           0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
618           0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
619           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
620           0x50, 0x03, 0x74, 0x14, 0x3B, 0x0D, 0x09, 0x02,
621           0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
622           },
623          {                      /*  Init_SR80_SR93 */
624           0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
625           0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
626           0x00, 0x00, 0x00, 0x00,
627           },
628          {                      /*  Init_SRA0_SRAF */
629           0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
630           0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
631           },
632          {                      /*  Init_GR00_GR08 */
633           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
634           0xFF,
635           },
636          {                      /*  Init_AR00_AR14 */
637           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
638           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
639           0x41, 0x00, 0x0F, 0x00, 0x00,
640           },
641          {                      /*  Init_CR00_CR18 */
642           0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
643           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
644           0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
645           0xFF,
646           },
647          {                      /*  Init_CR30_CR4D */
648           0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
649           0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
650           0xA3, 0x7F, 0x00, 0x86, 0x15, 0x24, 0xFF, 0x00,
651           0x01, 0x07, 0xE5, 0x20, 0x7F, 0xFF,
652           },
653          {                      /*  Init_CR90_CRA7 */
654           0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
655           0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
656           0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
657           },
658          },
659         {                       /*  mode#6: 320 x 240  16Bpp  60Hz */
660          320, 240, 16, 60,
661          /*  Init_MISC */
662          0xEB,
663          {                      /*  Init_SR0_SR4 */
664           0x03, 0x01, 0x0F, 0x03, 0x0E,
665           },
666          {                      /*  Init_SR10_SR24 */
667           0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
668           0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
669           0xC4, 0x32, 0x02, 0x01, 0x01,
670           },
671          {                      /*  Init_SR30_SR75 */
672           0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
673           0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
674           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
675           0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
676           0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
677           0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
678           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
679           0x50, 0x03, 0x74, 0x14, 0x08, 0x43, 0x08, 0x43,
680           0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
681           },
682          {                      /*  Init_SR80_SR93 */
683           0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
684           0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
685           0x00, 0x00, 0x00, 0x00,
686           },
687          {                      /*  Init_SRA0_SRAF */
688           0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
689           0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
690           },
691          {                      /*  Init_GR00_GR08 */
692           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
693           0xFF,
694           },
695          {                      /*  Init_AR00_AR14 */
696           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
697           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
698           0x41, 0x00, 0x0F, 0x00, 0x00,
699           },
700          {                      /*  Init_CR00_CR18 */
701           0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
702           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
703           0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
704           0xFF,
705           },
706          {                      /*  Init_CR30_CR4D */
707           0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
708           0x00, 0x00, 0x30, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
709           0x2E, 0x27, 0x00, 0x2b, 0x0c, 0x0F, 0xEF, 0x00,
710           0xFe, 0x0f, 0x01, 0xC0, 0x27, 0xEF,
711           },
712          {                      /*  Init_CR90_CRA7 */
713           0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
714           0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
715           0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
716           },
717          },
718
719         {                       /*  mode#8: 320 x 240  32Bpp  60Hz */
720          320, 240, 32, 60,
721          /*  Init_MISC */
722          0xEB,
723          {                      /*  Init_SR0_SR4 */
724           0x03, 0x01, 0x0F, 0x03, 0x0E,
725           },
726          {                      /*  Init_SR10_SR24 */
727           0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
728           0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
729           0xC4, 0x32, 0x02, 0x01, 0x01,
730           },
731          {                      /*  Init_SR30_SR75 */
732           0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
733           0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
734           0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
735           0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
736           0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
737           0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
738           0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
739           0x50, 0x03, 0x74, 0x14, 0x08, 0x43, 0x08, 0x43,
740           0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
741           },
742          {                      /*  Init_SR80_SR93 */
743           0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
744           0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
745           0x00, 0x00, 0x00, 0x00,
746           },
747          {                      /*  Init_SRA0_SRAF */
748           0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
749           0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
750           },
751          {                      /*  Init_GR00_GR08 */
752           0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
753           0xFF,
754           },
755          {                      /*  Init_AR00_AR14 */
756           0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
757           0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
758           0x41, 0x00, 0x0F, 0x00, 0x00,
759           },
760          {                      /*  Init_CR00_CR18 */
761           0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
762           0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
763           0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
764           0xFF,
765           },
766          {                      /*  Init_CR30_CR4D */
767           0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
768           0x00, 0x00, 0x30, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
769           0x2E, 0x27, 0x00, 0x2b, 0x0c, 0x0F, 0xEF, 0x00,
770           0xFe, 0x0f, 0x01, 0xC0, 0x27, 0xEF,
771           },
772          {                      /*  Init_CR90_CRA7 */
773           0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
774           0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
775           0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
776           },
777          },
778 };
779
780 #define numVGAModes             ARRAY_SIZE(VGAMode)