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