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