Home | History | Annotate | Line # | Download | only in pci
      1  1.2    andvar /* $NetBSD: unichromemode.h,v 1.2 2024/02/02 22:33:42 andvar Exp $ */
      2  1.1  jmcneill 
      3  1.1  jmcneill /*
      4  1.1  jmcneill  * Copyright 1998-2006 VIA Technologies, Inc. All Rights Reserved.
      5  1.1  jmcneill  * Copyright 2001-2006 S3 Graphics, Inc. All Rights Reserved.
      6  1.1  jmcneill  *
      7  1.1  jmcneill  * Permission is hereby granted, free of charge, to any person obtaining a
      8  1.1  jmcneill  * copy of this software and associated documentation files (the "Software"),
      9  1.1  jmcneill  * to deal in the Software without restriction, including without limitation
     10  1.1  jmcneill  * the rights to use, copy, modify, merge, publish, distribute, sub license,
     11  1.1  jmcneill  * and/or sell copies of the Software, and to permit persons to whom the
     12  1.1  jmcneill  * Software is furnished to do so, subject to the following conditions:
     13  1.1  jmcneill  *
     14  1.1  jmcneill  * The above copyright notice and this permission notice (including the
     15  1.1  jmcneill  * next paragraph) shall be included in all copies or substantial portions
     16  1.1  jmcneill  * of the Software.
     17  1.1  jmcneill  *
     18  1.1  jmcneill  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19  1.1  jmcneill  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20  1.1  jmcneill  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
     21  1.1  jmcneill  * THE AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     22  1.1  jmcneill  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     23  1.1  jmcneill  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     24  1.1  jmcneill  * DEALINGS IN THE SOFTWARE.
     25  1.1  jmcneill  */
     26  1.1  jmcneill 
     27  1.1  jmcneill #ifndef _DEV_PCI_UNICHROMEMODE_H
     28  1.1  jmcneill #define _DEV_PCI_UNICHROMEMODE_H
     29  1.1  jmcneill 
     30  1.1  jmcneill #define	ARRAY_SIZE(x)	(sizeof((x)) / sizeof((x)[0]))
     31  1.1  jmcneill 
     32  1.1  jmcneill struct VPITTable {
     33  1.1  jmcneill   unsigned char  Misc;
     34  1.1  jmcneill   unsigned char  SR[StdSR];
     35  1.1  jmcneill   unsigned char  GR[StdGR];
     36  1.1  jmcneill   unsigned char  AR[StdAR];
     37  1.1  jmcneill };
     38  1.1  jmcneill 
     39  1.1  jmcneill struct VideoModeTable {
     40  1.1  jmcneill   int                               ModeIndex;
     41  1.1  jmcneill   struct crt_mode_table             *crtc;
     42  1.1  jmcneill   int                               mode_array;
     43  1.1  jmcneill };
     44  1.1  jmcneill 
     45  1.1  jmcneill struct patch_table {
     46  1.1  jmcneill   int           mode_index;
     47  1.1  jmcneill   int           table_length;
     48  1.1  jmcneill   struct io_reg *io_reg_table;
     49  1.1  jmcneill };
     50  1.1  jmcneill 
     51  1.1  jmcneill struct res_map_refresh {
     52  1.1  jmcneill   int       hres;
     53  1.1  jmcneill   int       vres;
     54  1.1  jmcneill   int       pixclock;
     55  1.1  jmcneill   int       vmode_refresh;
     56  1.1  jmcneill };
     57  1.1  jmcneill 
     58  1.1  jmcneill struct res_map_refresh res_map_refresh_tbl[] = {
     59  1.1  jmcneill //hres, vres, vclock, vmode_refresh
     60  1.1  jmcneill   {640, 480, RES_640X480_60HZ_PIXCLOCK,   60},
     61  1.1  jmcneill   {640, 480, RES_640X480_75HZ_PIXCLOCK,   75},
     62  1.1  jmcneill   {640, 480, RES_640X480_85HZ_PIXCLOCK,   85},
     63  1.1  jmcneill   {640, 480, RES_640X480_100HZ_PIXCLOCK,  100},
     64  1.1  jmcneill   {640, 480, RES_640X480_120HZ_PIXCLOCK,  120},
     65  1.1  jmcneill   {720, 480, RES_720X480_60HZ_PIXCLOCK,   60},
     66  1.1  jmcneill   {720, 576, RES_720X576_60HZ_PIXCLOCK,   60},
     67  1.1  jmcneill   {800, 480, RES_800X480_60HZ_PIXCLOCK,   60},
     68  1.1  jmcneill   {800, 600, RES_800X600_60HZ_PIXCLOCK,   60},
     69  1.1  jmcneill   {800, 600, RES_800X600_75HZ_PIXCLOCK,   75},
     70  1.1  jmcneill   {800, 600, RES_800X600_85HZ_PIXCLOCK,   85},
     71  1.1  jmcneill   {800, 600, RES_800X600_100HZ_PIXCLOCK,  100},
     72  1.1  jmcneill   {800, 600, RES_800X600_120HZ_PIXCLOCK,  120},
     73  1.1  jmcneill   {848, 480, RES_848X480_60HZ_PIXCLOCK,   60},
     74  1.1  jmcneill   {856, 480, RES_856X480_60HZ_PIXCLOCK,   60},
     75  1.1  jmcneill   {1024,512, RES_1024X512_60HZ_PIXCLOCK,  60},
     76  1.1  jmcneill   {1024,768, RES_1024X768_60HZ_PIXCLOCK,  60},
     77  1.1  jmcneill   {1024,768, RES_1024X768_75HZ_PIXCLOCK,  75},
     78  1.1  jmcneill   {1024,768, RES_1024X768_85HZ_PIXCLOCK,  85},
     79  1.1  jmcneill   {1024,768, RES_1024X768_100HZ_PIXCLOCK, 100},
     80  1.1  jmcneill   {1152,864, RES_1152X864_70HZ_PIXCLOCK,  70},
     81  1.1  jmcneill   {1152,864, RES_1152X864_75HZ_PIXCLOCK,  75},
     82  1.1  jmcneill   {1280,768, RES_1280X768_60HZ_PIXCLOCK,  60},
     83  1.1  jmcneill   {1280,960, RES_1280X960_60HZ_PIXCLOCK,  60},
     84  1.1  jmcneill   {1280,1024,RES_1280X1024_60HZ_PIXCLOCK, 60},
     85  1.1  jmcneill   {1280,1024,RES_1280X1024_75HZ_PIXCLOCK, 75},
     86  1.1  jmcneill   {1280,1024,RES_1280X768_85HZ_PIXCLOCK,  85},
     87  1.1  jmcneill   {1440,1050,RES_1440X1050_60HZ_PIXCLOCK, 60},
     88  1.1  jmcneill   {1600,1200,RES_1600X1200_60HZ_PIXCLOCK, 60},
     89  1.1  jmcneill   {1600,1200,RES_1600X1200_75HZ_PIXCLOCK, 75},
     90  1.1  jmcneill   {1280,720, RES_1280X720_60HZ_PIXCLOCK,  60},
     91  1.1  jmcneill   {1920,1080,RES_1920X1080_60HZ_PIXCLOCK, 60},
     92  1.1  jmcneill   {1400,1050,RES_1400X1050_60HZ_PIXCLOCK, 60},
     93  1.1  jmcneill   {1366,768, RES_1366X768_60HZ_PIXCLOCK,60}
     94  1.1  jmcneill };
     95  1.1  jmcneill #define NUM_TOTAL_RES_MAP_REFRESH ARRAY_SIZE(res_map_refresh_tbl)
     96  1.1  jmcneill 
     97  1.1  jmcneill struct io_reg CN400_ModeXregs[] = {
     98  1.1  jmcneill     {VIASR, SR10, 0xFF, 0x01},
     99  1.1  jmcneill     {VIASR, SR15, 0x02, 0x02},
    100  1.1  jmcneill     {VIASR, SR16, 0xBF, 0x08},
    101  1.1  jmcneill     {VIASR, SR17, 0xFF, 0x1F},
    102  1.1  jmcneill     {VIASR, SR18, 0xFF, 0x4E},
    103  1.1  jmcneill     {VIASR, SR1A, 0xFB, 0x08},
    104  1.1  jmcneill     {VIASR, SR1E, 0x0F, 0x01},
    105  1.1  jmcneill     {VIASR, SR2A, 0xF0, 0x00},
    106  1.1  jmcneill     {VIACR, CR0A, 0xFF, 0x1E},          /* Cursor Start                        */
    107  1.1  jmcneill     {VIACR, CR0B, 0xFF, 0x00},          /* Cursor End                          */
    108  1.1  jmcneill     {VIACR, CR0E, 0xFF, 0x00},          /* Cursor Location High                */
    109  1.1  jmcneill     {VIACR, CR0F, 0xFF, 0x00},          /* Cursor Localtion Low                */
    110  1.1  jmcneill     {VIACR, CR32, 0xFF, 0x00},
    111  1.1  jmcneill     {VIACR, CR33, 0xFF, 0x00},
    112  1.1  jmcneill     {VIACR, CR34, 0xFF, 0x00},
    113  1.1  jmcneill     {VIACR, CR35, 0xFF, 0x00},
    114  1.1  jmcneill     {VIACR, CR36, 0x08, 0x00},
    115  1.1  jmcneill     {VIACR, CR62, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    116  1.1  jmcneill     {VIACR, CR63, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    117  1.1  jmcneill     {VIACR, CR64, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    118  1.1  jmcneill     {VIACR, CR69, 0xFF, 0x00},
    119  1.1  jmcneill     {VIACR, CR6A, 0xFF, 0x40},
    120  1.1  jmcneill     {VIACR, CR6B, 0xFF, 0x00},
    121  1.1  jmcneill     {VIACR, CR6C, 0xFF, 0x00},
    122  1.1  jmcneill     {VIACR, CR7A, 0xFF, 0x01},          /* LCD Scaling Parameter 1             */
    123  1.1  jmcneill     {VIACR, CR7B, 0xFF, 0x02},          /* LCD Scaling Parameter 2             */
    124  1.1  jmcneill     {VIACR, CR7C, 0xFF, 0x03},          /* LCD Scaling Parameter 3             */
    125  1.1  jmcneill     {VIACR, CR7D, 0xFF, 0x04},          /* LCD Scaling Parameter 4             */
    126  1.1  jmcneill     {VIACR, CR7E, 0xFF, 0x07},          /* LCD Scaling Parameter 5             */
    127  1.1  jmcneill     {VIACR, CR7F, 0xFF, 0x0A},          /* LCD Scaling Parameter 6             */
    128  1.1  jmcneill     {VIACR, CR80, 0xFF, 0x0D},          /* LCD Scaling Parameter 7             */
    129  1.1  jmcneill     {VIACR, CR81, 0xFF, 0x13},          /* LCD Scaling Parameter 8             */
    130  1.1  jmcneill     {VIACR, CR82, 0xFF, 0x16},          /* LCD Scaling Parameter 9             */
    131  1.1  jmcneill     {VIACR, CR83, 0xFF, 0x19},          /* LCD Scaling Parameter 10            */
    132  1.1  jmcneill     {VIACR, CR84, 0xFF, 0x1C},          /* LCD Scaling Parameter 11            */
    133  1.1  jmcneill     {VIACR, CR85, 0xFF, 0x1D},          /* LCD Scaling Parameter 12            */
    134  1.1  jmcneill     {VIACR, CR86, 0xFF, 0x1E},          /* LCD Scaling Parameter 13            */
    135  1.1  jmcneill     {VIACR, CR87, 0xFF, 0x1F},          /* LCD Scaling Parameter 14            */
    136  1.1  jmcneill     {VIACR, CR88, 0xFF, 0x40},          /* LCD Panel Type                      */
    137  1.1  jmcneill     {VIACR, CR89, 0xFF, 0x00},          /* LCD Timing Control 0                */
    138  1.1  jmcneill     {VIACR, CR8A, 0xFF, 0x88},          /* LCD Timing Control 1                */
    139  1.1  jmcneill     {VIACR, CR8B, 0xFF, 0x69},          /* LCD Power Sequence Control 0        */
    140  1.1  jmcneill     {VIACR, CR8C, 0xFF, 0x57},          /* LCD Power Sequence Control 1        */
    141  1.1  jmcneill     {VIACR, CR8D, 0xFF, 0x00},          /* LCD Power Sequence Control 2        */
    142  1.1  jmcneill     {VIACR, CR8E, 0xFF, 0x7B},          /* LCD Power Sequence Control 3        */
    143  1.1  jmcneill     {VIACR, CR8F, 0xFF, 0x03},          /* LCD Power Sequence Control 4        */
    144  1.1  jmcneill     {VIACR, CR90, 0xFF, 0x30},          /* LCD Power Sequence Control 5        */
    145  1.1  jmcneill     {VIACR, CR91, 0xFF, 0xA0},          /* 24/12 bit LVDS Data off             */
    146  1.1  jmcneill     {VIACR, CR96, 0xFF, 0x00},
    147  1.1  jmcneill     {VIACR, CR97, 0xFF, 0x00},
    148  1.1  jmcneill     {VIACR, CR99, 0xFF, 0x00},
    149  1.1  jmcneill     {VIACR, CR9B, 0xFF, 0x00}
    150  1.1  jmcneill };
    151  1.1  jmcneill #define NUM_TOTAL_CN400_ModeXregs ARRAY_SIZE(CN400_ModeXregs)
    152  1.1  jmcneill 
    153  1.1  jmcneill /* Video Mode Table for VT3314 chipset*/
    154  1.1  jmcneill /* Common Setting for Video Mode */
    155  1.1  jmcneill struct io_reg CN900_ModeXregs[] = {
    156  1.1  jmcneill   {VIASR,SR10,0xFF,0x01},
    157  1.1  jmcneill   {VIASR,SR15,0x02,0x02},
    158  1.1  jmcneill   {VIASR,SR16,0xBF,0x08},
    159  1.1  jmcneill   {VIASR,SR17,0xFF,0x1F},
    160  1.1  jmcneill   {VIASR,SR18,0xFF,0x4E},
    161  1.1  jmcneill   {VIASR,SR1A,0xFB,0x82},
    162  1.1  jmcneill   {VIASR,SR1B,0xFF,0xF0},
    163  1.1  jmcneill   {VIASR,SR1F,0xFF,0x00},
    164  1.1  jmcneill   {VIASR,SR1E,0xFF,0xF1},
    165  1.1  jmcneill   {VIASR,SR22,0xFF,0x1F},
    166  1.1  jmcneill   {VIASR,SR2A,0x0F,0x0F},
    167  1.1  jmcneill   {VIASR,SR2E,0xFF,0xFF},
    168  1.1  jmcneill   {VIASR,SR3F,0xFF,0xFF},
    169  1.1  jmcneill   {VIASR,SR40,0xFF,0x00},
    170  1.1  jmcneill   {VIASR,CR30,0xFF,0x04},
    171  1.1  jmcneill   {VIACR,CR32,0xFF,0x00},
    172  1.1  jmcneill   {VIACR,CR33,0xFF,0x00},
    173  1.1  jmcneill   {VIACR,CR34,0xFF,0x00},
    174  1.1  jmcneill   {VIACR,CR35,0xFF,0x00},
    175  1.1  jmcneill   {VIACR,CR36,0xFF,0x31},
    176  1.1  jmcneill   {VIACR,CR41,0xFF,0x80},
    177  1.1  jmcneill   {VIACR,CR42,0xFF,0x00},
    178  1.1  jmcneill   {VIACR,CR5D,0x80,0x00},                                      /* Horizontal Retrace Start bit [11] should be 0*/
    179  1.1  jmcneill   {VIACR,CR62,0xFF,0x00},                                      /* Secondary Display Starting Address*/
    180  1.1  jmcneill   {VIACR,CR63,0xFF,0x00},                                      /* Secondary Display Starting Address*/
    181  1.1  jmcneill   {VIACR,CR64,0xFF,0x00},                                      /* Secondary Display Starting Address*/
    182  1.1  jmcneill   {VIACR,CR68,0xFF,0x67},                                      /* Default FIFO For IGA2 */
    183  1.1  jmcneill   {VIACR,CR69,0xFF,0x00},
    184  1.1  jmcneill   {VIACR,CR6A,0xFF,0x40},
    185  1.1  jmcneill   {VIACR,CR6B,0xFF,0x00},
    186  1.1  jmcneill   {VIACR,CR6C,0xFF,0x00},
    187  1.1  jmcneill   {VIACR,CR77,0xFF,0x00},                                      /* LCD scaling Factor*/
    188  1.1  jmcneill   {VIACR,CR78,0xFF,0x00},                                      /* LCD scaling Factor */
    189  1.1  jmcneill   {VIACR,CR79,0xFF,0x00},                                      /* LCD scaling Factor*/
    190  1.1  jmcneill   {VIACR,CR9F,0x03,0x00},                                      /* LCD scaling Factor */
    191  1.1  jmcneill   {VIACR,CR7A,0xFF,0x01},                                      /* LCD Scaling Parameter 1*/
    192  1.1  jmcneill   {VIACR,CR7B,0xFF,0x02},                                      /* LCD Scaling Parameter 2*/
    193  1.1  jmcneill   {VIACR,CR7C,0xFF,0x03},                                      /* LCD Scaling Parameter 3 */
    194  1.1  jmcneill   {VIACR,CR7D,0xFF,0x04},                                      /* LCD Scaling Parameter 4*/
    195  1.1  jmcneill   {VIACR,CR7E,0xFF,0x07},                                      /* LCD Scaling Parameter 5*/
    196  1.1  jmcneill   {VIACR,CR7F,0xFF,0x0A},                                      /* LCD Scaling Parameter 6*/
    197  1.1  jmcneill   {VIACR,CR80,0xFF,0x0D},                                      /* LCD Scaling Parameter 7*/
    198  1.1  jmcneill   {VIACR,CR81,0xFF,0x13},                                      /* LCD Scaling Parameter 8*/
    199  1.1  jmcneill   {VIACR,CR82,0xFF,0x16},                                      /* LCD Scaling Parameter 9*/
    200  1.1  jmcneill   {VIACR,CR83,0xFF,0x19},                                      /* LCD Scaling Parameter 10*/
    201  1.1  jmcneill   {VIACR,CR84,0xFF,0x1C},                                      /* LCD Scaling Parameter 11*/
    202  1.1  jmcneill   {VIACR,CR85,0xFF,0x1D},                                      /* LCD Scaling Parameter 12*/
    203  1.1  jmcneill   {VIACR,CR86,0xFF,0x1E},                                      /* LCD Scaling Parameter 13*/
    204  1.1  jmcneill   {VIACR,CR87,0xFF,0x1F},                                      /* LCD Scaling Parameter 14*/
    205  1.1  jmcneill   {VIACR,CR88,0xFF,0x40},                                      /* LCD Panel Type */
    206  1.1  jmcneill   {VIACR,CR89,0xFF,0x00},                                      /* LCD Timing Control 0 */
    207  1.1  jmcneill   {VIACR,CR8A,0xFF,0x88},                                      /* LCD Timing Control 1*/
    208  1.1  jmcneill   {VIACR,CR8B,0xFF,0x69},                                      /* LCD Power Sequence Control 0*/
    209  1.1  jmcneill   {VIACR,CR8C,0xFF,0x57},                                      /* LCD Power Sequence Control 1*/
    210  1.1  jmcneill   {VIACR,CR8D,0xFF,0x00},                                      /* LCD Power Sequence Control 2*/
    211  1.1  jmcneill   {VIACR,CR8E,0xFF,0x7B},                                      /* LCD Power Sequence Control 3*/
    212  1.1  jmcneill   {VIACR,CR8F,0xFF,0x03},                                      /* LCD Power Sequence Control 4*/
    213  1.1  jmcneill   {VIACR,CR90,0xFF,0x30},                                      /* LCD Power Sequence Control 5*/
    214  1.1  jmcneill   {VIACR,CR91,0xFF,0xA0},                                      /* 24/12 bit LVDS Data off*/
    215  1.1  jmcneill   {VIACR,CR96,0xFF,0x00},
    216  1.1  jmcneill   {VIACR,CR97,0xFF,0x00},
    217  1.1  jmcneill   {VIACR,CR99,0xFF,0x00},
    218  1.1  jmcneill   {VIACR,CR9B,0xFF,0x00},
    219  1.1  jmcneill   {VIACR,CR9D,0xFF,0x80},
    220  1.1  jmcneill   {VIACR,CR9E,0xFF,0x80}
    221  1.1  jmcneill };
    222  1.1  jmcneill #define NUM_TOTAL_CN900_ModeXregs ARRAY_SIZE(CN900_ModeXregs)
    223  1.1  jmcneill 
    224  1.1  jmcneill struct io_reg KM400_ModeXregs[] = {
    225  1.1  jmcneill     {VIASR, SR10, 0xFF, 0x01},          /* Unlock Register                     */
    226  1.1  jmcneill     {VIASR, SR16, 0xFF, 0x08},          /* Display FIFO threshold Control      */
    227  1.1  jmcneill     {VIASR, SR17, 0xFF, 0x1F},          /* Display FIFO Control                */
    228  1.1  jmcneill     {VIASR, SR18, 0xFF, 0x4E},          /* GFX PREQ threshold                  */
    229  1.1  jmcneill     {VIASR, SR1A, 0xFF, 0x0a},          /* GFX PREQ threshold                  */
    230  1.1  jmcneill     {VIASR, SR1F, 0xFF, 0x00},          /* Memory Control 0                    */
    231  1.1  jmcneill     {VIASR, SR1B, 0xFF, 0xF0},          /* Power Management Control 0          */
    232  1.1  jmcneill     {VIASR, SR1E, 0x0F, 0x01},          /* Power Management Control            */
    233  1.1  jmcneill     {VIASR, SR20, 0xFF, 0x00},          /* Sequencer Arbiter Control 0         */
    234  1.1  jmcneill     {VIASR, SR21, 0xFF, 0x00},          /* Sequencer Arbiter Control 1         */
    235  1.1  jmcneill     {VIASR, SR22, 0xFF, 0x1F},          /* Display Arbiter Control 1           */
    236  1.1  jmcneill     {VIASR, SR2A, 0xF0, 0x00},          /* Power Management Control 5          */
    237  1.1  jmcneill     {VIASR, SR2D, 0xFF, 0xFF},          /* Power Management Control 1          */
    238  1.1  jmcneill     {VIASR, SR2E, 0xFF, 0xFF},          /* Power Management Control 2          */
    239  1.1  jmcneill     {VIACR, CR0A, 0xFF, 0x1E},          /* Cursor Start                        */
    240  1.1  jmcneill     {VIACR, CR0B, 0xFF, 0x00},          /* Cursor End                          */
    241  1.1  jmcneill     {VIACR, CR0E, 0xFF, 0x00},          /* Cursor Location High                */
    242  1.1  jmcneill     {VIACR, CR0F, 0xFF, 0x00},          /* Cursor Localtion Low                */
    243  1.1  jmcneill     {VIACR, CR33, 0xFF, 0x00},
    244  1.1  jmcneill     {VIACR, CR55, 0x80, 0x00},
    245  1.1  jmcneill     {VIACR, CR5D, 0x80, 0x00},
    246  1.2    andvar     {VIACR, CR36, 0xFF, 0x01},          /* Power Management 3                   */
    247  1.1  jmcneill     {VIACR, CR62, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    248  1.1  jmcneill     {VIACR, CR63, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    249  1.1  jmcneill     {VIACR, CR64, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    250  1.1  jmcneill     {VIACR, CR68, 0xFF, 0x67},          /* Default FIFO For IGA2               */
    251  1.1  jmcneill     {VIACR, CR6A, 0x20, 0x20},          /* Extended FIFO On                    */
    252  1.1  jmcneill     {VIACR, CR7A, 0xFF, 0x01},          /* LCD Scaling Parameter 1             */
    253  1.1  jmcneill     {VIACR, CR7B, 0xFF, 0x02},          /* LCD Scaling Parameter 2             */
    254  1.1  jmcneill     {VIACR, CR7C, 0xFF, 0x03},          /* LCD Scaling Parameter 3             */
    255  1.1  jmcneill     {VIACR, CR7D, 0xFF, 0x04},          /* LCD Scaling Parameter 4             */
    256  1.1  jmcneill     {VIACR, CR7E, 0xFF, 0x07},          /* LCD Scaling Parameter 5             */
    257  1.1  jmcneill     {VIACR, CR7F, 0xFF, 0x0A},          /* LCD Scaling Parameter 6             */
    258  1.1  jmcneill     {VIACR, CR80, 0xFF, 0x0D},          /* LCD Scaling Parameter 7             */
    259  1.1  jmcneill     {VIACR, CR81, 0xFF, 0x13},          /* LCD Scaling Parameter 8             */
    260  1.1  jmcneill     {VIACR, CR82, 0xFF, 0x16},          /* LCD Scaling Parameter 9             */
    261  1.1  jmcneill     {VIACR, CR83, 0xFF, 0x19},          /* LCD Scaling Parameter 10            */
    262  1.1  jmcneill     {VIACR, CR84, 0xFF, 0x1C},          /* LCD Scaling Parameter 11            */
    263  1.1  jmcneill     {VIACR, CR85, 0xFF, 0x1D},          /* LCD Scaling Parameter 12            */
    264  1.1  jmcneill     {VIACR, CR86, 0xFF, 0x1E},          /* LCD Scaling Parameter 13            */
    265  1.1  jmcneill     {VIACR, CR87, 0xFF, 0x1F},          /* LCD Scaling Parameter 14            */
    266  1.1  jmcneill     {VIACR, CR88, 0xFF, 0x40},          /* LCD Panel Type                      */
    267  1.1  jmcneill     {VIACR, CR89, 0xFF, 0x00},          /* LCD Timing Control 0                */
    268  1.1  jmcneill     {VIACR, CR8A, 0xFF, 0x88},          /* LCD Timing Control 1                */
    269  1.1  jmcneill     {VIACR, CR8B, 0xFF, 0x2D},          /* LCD Power Sequence Control 0        */
    270  1.1  jmcneill     {VIACR, CR8C, 0xFF, 0x2D},          /* LCD Power Sequence Control 1        */
    271  1.1  jmcneill     {VIACR, CR8D, 0xFF, 0xC8},          /* LCD Power Sequence Control 2        */
    272  1.1  jmcneill     {VIACR, CR8E, 0xFF, 0x36},          /* LCD Power Sequence Control 3        */
    273  1.1  jmcneill     {VIACR, CR8F, 0xFF, 0x00},          /* LCD Power Sequence Control 4        */
    274  1.1  jmcneill     {VIACR, CR90, 0xFF, 0x10},          /* LCD Power Sequence Control 5        */
    275  1.1  jmcneill     {VIACR, CR91, 0xFF, 0xA0},          /* 24/12 bit LVDS Data off             */
    276  1.1  jmcneill     {VIACR, CR96, 0xFF, 0x03},          /* TV on DVP0        ; DVP0 Clock Skew */
    277  1.1  jmcneill     {VIACR, CR97, 0xFF, 0x03},          /* TV on DFP high    ; DFPH Clock Skew */
    278  1.1  jmcneill     {VIACR, CR99, 0xFF, 0x03},          /* DFP low           ; DFPL Clock Skew */
    279  1.1  jmcneill     {VIACR, CR9B, 0xFF, 0x07}           /* DVI on DVP1       ; DVP1 Clock Skew */
    280  1.1  jmcneill };
    281  1.1  jmcneill #define NUM_TOTAL_KM400_ModeXregs ARRAY_SIZE(KM400_ModeXregs)
    282  1.1  jmcneill 
    283  1.1  jmcneill /* For VT3324: Common Setting for Video Mode */
    284  1.1  jmcneill struct io_reg CX700_ModeXregs[] = {
    285  1.1  jmcneill     {VIASR, SR10, 0xFF, 0x01},
    286  1.1  jmcneill     {VIASR, SR15, 0x02, 0x02},
    287  1.1  jmcneill     {VIASR, SR16, 0xBF, 0x08},
    288  1.1  jmcneill     {VIASR, SR17, 0xFF, 0x1F},
    289  1.1  jmcneill     {VIASR, SR18, 0xFF, 0x4E},
    290  1.1  jmcneill     {VIASR, SR1A, 0xFB, 0x08},
    291  1.1  jmcneill     {VIASR, SR1B, 0xFF, 0xF0},
    292  1.1  jmcneill     {VIASR, SR1E, 0x0F, 0x01},
    293  1.1  jmcneill     {VIASR, SR2A, 0xF0, 0x00},
    294  1.1  jmcneill     {VIACR, CR0A, 0xFF, 0x1E},          /* Cursor Start                        */
    295  1.1  jmcneill     {VIACR, CR0B, 0xFF, 0x00},          /* Cursor End                          */
    296  1.1  jmcneill     {VIACR, CR0E, 0xFF, 0x00},          /* Cursor Location High                */
    297  1.1  jmcneill     {VIACR, CR0F, 0xFF, 0x00},          /* Cursor Localtion Low                */
    298  1.1  jmcneill     {VIACR, CR32, 0xFF, 0x00},
    299  1.1  jmcneill     {VIACR, CR33, 0xFF, 0x00},
    300  1.1  jmcneill     {VIACR, CR34, 0xFF, 0x00},
    301  1.1  jmcneill     {VIACR, CR35, 0xFF, 0x00},
    302  1.1  jmcneill     {VIACR, CR36, 0x08, 0x00},
    303  1.1  jmcneill     {VIACR, CR47, 0xC8, 0x00},          /* Clear VCK Plus. */
    304  1.1  jmcneill     {VIACR, CR62, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    305  1.1  jmcneill     {VIACR, CR63, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    306  1.1  jmcneill     {VIACR, CR64, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    307  1.1  jmcneill     {VIACR, CRA3, 0xFF, 0x00},          /* Secondary Display Starting Address  */
    308  1.1  jmcneill     {VIACR, CR69, 0xFF, 0x00},
    309  1.1  jmcneill     {VIACR, CR6A, 0xFF, 0x40},
    310  1.1  jmcneill     {VIACR, CR6B, 0xFF, 0x00},
    311  1.1  jmcneill     {VIACR, CR6C, 0xFF, 0x00},
    312  1.1  jmcneill     {VIACR, CR7A, 0xFF, 0x01},          /* LCD Scaling Parameter 1             */
    313  1.1  jmcneill     {VIACR, CR7B, 0xFF, 0x02},          /* LCD Scaling Parameter 2             */
    314  1.1  jmcneill     {VIACR, CR7C, 0xFF, 0x03},          /* LCD Scaling Parameter 3             */
    315  1.1  jmcneill     {VIACR, CR7D, 0xFF, 0x04},          /* LCD Scaling Parameter 4             */
    316  1.1  jmcneill     {VIACR, CR7E, 0xFF, 0x07},          /* LCD Scaling Parameter 5             */
    317  1.1  jmcneill     {VIACR, CR7F, 0xFF, 0x0A},          /* LCD Scaling Parameter 6             */
    318  1.1  jmcneill     {VIACR, CR80, 0xFF, 0x0D},          /* LCD Scaling Parameter 7             */
    319  1.1  jmcneill     {VIACR, CR81, 0xFF, 0x13},          /* LCD Scaling Parameter 8             */
    320  1.1  jmcneill     {VIACR, CR82, 0xFF, 0x16},          /* LCD Scaling Parameter 9             */
    321  1.1  jmcneill     {VIACR, CR83, 0xFF, 0x19},          /* LCD Scaling Parameter 10            */
    322  1.1  jmcneill     {VIACR, CR84, 0xFF, 0x1C},          /* LCD Scaling Parameter 11            */
    323  1.1  jmcneill     {VIACR, CR85, 0xFF, 0x1D},          /* LCD Scaling Parameter 12            */
    324  1.1  jmcneill     {VIACR, CR86, 0xFF, 0x1E},          /* LCD Scaling Parameter 13            */
    325  1.1  jmcneill     {VIACR, CR87, 0xFF, 0x1F},          /* LCD Scaling Parameter 14            */
    326  1.1  jmcneill     {VIACR, CR88, 0xFF, 0x40},          /* LCD Panel Type                      */
    327  1.1  jmcneill     {VIACR, CR89, 0xFF, 0x00},          /* LCD Timing Control 0                */
    328  1.1  jmcneill     {VIACR, CR8A, 0xFF, 0x88},          /* LCD Timing Control 1                */
    329  1.1  jmcneill     {VIACR, CRD4, 0xFF, 0x81},          /* Second power sequence control       */
    330  1.1  jmcneill     {VIACR, CR8B, 0xFF, 0x5D},          /* LCD Power Sequence Control 0        */
    331  1.1  jmcneill     {VIACR, CR8C, 0xFF, 0x2B},          /* LCD Power Sequence Control 1        */
    332  1.1  jmcneill     {VIACR, CR8D, 0xFF, 0x6F},          /* LCD Power Sequence Control 2        */
    333  1.1  jmcneill     {VIACR, CR8E, 0xFF, 0x2B},          /* LCD Power Sequence Control 3        */
    334  1.1  jmcneill     {VIACR, CR8F, 0xFF, 0x01},          /* LCD Power Sequence Control 4        */
    335  1.1  jmcneill     {VIACR, CR90, 0xFF, 0x01},          /* LCD Power Sequence Control 5        */
    336  1.1  jmcneill     {VIACR, CR91, 0xFF, 0x80},          /* 24/12 bit LVDS Data off             */
    337  1.1  jmcneill     {VIACR, CR96, 0xFF, 0x00},
    338  1.1  jmcneill     {VIACR, CR97, 0xFF, 0x00},
    339  1.1  jmcneill     {VIACR, CR99, 0xFF, 0x00},
    340  1.1  jmcneill     {VIACR, CR9B, 0xFF, 0x00},
    341  1.1  jmcneill     {VIACR, CRD2, 0xFF, 0x03}           /* LVDS0/LVDS1 Channel format.         */
    342  1.1  jmcneill };
    343  1.1  jmcneill 
    344  1.1  jmcneill #define NUM_TOTAL_CX700_ModeXregs ARRAY_SIZE(CX700_ModeXregs)
    345  1.1  jmcneill 
    346  1.1  jmcneill /* Video Mode Table */
    347  1.1  jmcneill /* Common Setting for Video Mode */
    348  1.1  jmcneill struct io_reg CLE266_ModeXregs[] = {
    349  1.1  jmcneill   {VIASR,SR1E,0xF0,0xF0},
    350  1.1  jmcneill   {VIASR,SR2A,0x0F,0x0F},
    351  1.1  jmcneill   {VIASR,SR15,0x02,0x02},
    352  1.1  jmcneill   {VIASR,SR16,0xBF,0x08},
    353  1.1  jmcneill   {VIASR,SR17,0xFF,0x1F},
    354  1.1  jmcneill   {VIASR,SR18,0xFF,0x4E},
    355  1.1  jmcneill   {VIASR,SR1A,0xFB,0x08},
    356  1.1  jmcneill 
    357  1.1  jmcneill   {VIACR,CR32,0xFF,0x00},
    358  1.1  jmcneill //  {VIACR,CR33,0xFF,0x08}, // for K800 prefetch mode
    359  1.1  jmcneill   {VIACR,CR34,0xFF,0x00},
    360  1.1  jmcneill   {VIACR,CR35,0xFF,0x00},
    361  1.1  jmcneill   {VIACR,CR36,0x08,0x00},
    362  1.1  jmcneill   {VIACR,CR6A,0xFF,0x80},
    363  1.1  jmcneill   {VIACR,CR6A,0xFF,0xC0},
    364  1.1  jmcneill 
    365  1.1  jmcneill   {VIACR,CR55,0x80,0x00},
    366  1.1  jmcneill   {VIACR,CR5D,0x80,0x00},
    367  1.1  jmcneill 
    368  1.1  jmcneill   {VIAGR,GR20,0xFF,0x00},
    369  1.1  jmcneill   {VIAGR,GR21,0xFF,0x00},
    370  1.1  jmcneill   {VIAGR,GR22,0xFF,0x00},
    371  1.1  jmcneill                             // LCD Parameters
    372  1.1  jmcneill   {VIACR,CR7A,0xFF,0x01},   // LCD Parameter 1
    373  1.1  jmcneill   {VIACR,CR7B,0xFF,0x02},   // LCD Parameter 2
    374  1.1  jmcneill   {VIACR,CR7C,0xFF,0x03},   // LCD Parameter 3
    375  1.1  jmcneill   {VIACR,CR7D,0xFF,0x04},   // LCD Parameter 4
    376  1.1  jmcneill   {VIACR,CR7E,0xFF,0x07},   // LCD Parameter 5
    377  1.1  jmcneill   {VIACR,CR7F,0xFF,0x0A},   // LCD Parameter 6
    378  1.1  jmcneill   {VIACR,CR80,0xFF,0x0D},   // LCD Parameter 7
    379  1.1  jmcneill   {VIACR,CR81,0xFF,0x13},   // LCD Parameter 8
    380  1.1  jmcneill   {VIACR,CR82,0xFF,0x16},   // LCD Parameter 9
    381  1.1  jmcneill   {VIACR,CR83,0xFF,0x19},   // LCD Parameter 10
    382  1.1  jmcneill   {VIACR,CR84,0xFF,0x1C},   // LCD Parameter 11
    383  1.1  jmcneill   {VIACR,CR85,0xFF,0x1D},   // LCD Parameter 12
    384  1.1  jmcneill   {VIACR,CR86,0xFF,0x1E},   // LCD Parameter 13
    385  1.1  jmcneill   {VIACR,CR87,0xFF,0x1F},   // LCD Parameter 14
    386  1.1  jmcneill 
    387  1.1  jmcneill };
    388  1.1  jmcneill 
    389  1.1  jmcneill #define NUM_TOTAL_CLE266_ModeXregs ARRAY_SIZE(CLE266_ModeXregs)
    390  1.1  jmcneill 
    391  1.1  jmcneill /* Mode:1024X768 */
    392  1.1  jmcneill struct io_reg PM1024x768[] = {
    393  1.1  jmcneill   {VIASR,0x16,0xBF,0x0C},
    394  1.1  jmcneill   {VIASR,0x18,0xFF,0x4C}
    395  1.1  jmcneill };
    396  1.1  jmcneill 
    397  1.1  jmcneill struct patch_table res_patch_table[]= {
    398  1.1  jmcneill   {VIA_RES_1024X768, ARRAY_SIZE(PM1024x768), PM1024x768}
    399  1.1  jmcneill };
    400  1.1  jmcneill #define NUM_TOTAL_PATCH_MODE ARRAY_SIZE(res_patch_table)
    401  1.1  jmcneill 
    402  1.1  jmcneill // struct VPITTable {
    403  1.1  jmcneill //  unsigned char  Misc;
    404  1.1  jmcneill //  unsigned char  SR[StdSR];
    405  1.1  jmcneill //  unsigned char  CR[StdCR];
    406  1.1  jmcneill //  unsigned char  GR[StdGR];
    407  1.1  jmcneill //  unsigned char  AR[StdAR];
    408  1.1  jmcneill // };
    409  1.1  jmcneill 
    410  1.1  jmcneill struct VPITTable VPIT = {
    411  1.1  jmcneill     // Msic
    412  1.1  jmcneill     0xC7,
    413  1.1  jmcneill     // Sequencer
    414  1.1  jmcneill     {0x01,0x0F,0x00,0x0E },
    415  1.1  jmcneill     // Graphic Controller
    416  1.1  jmcneill     {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0xFF},
    417  1.1  jmcneill     // Attribute Controller
    418  1.1  jmcneill     {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
    419  1.1  jmcneill      0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
    420  1.1  jmcneill      0x01,0x00,0x0F,0x00}
    421  1.1  jmcneill };
    422  1.1  jmcneill 
    423  1.1  jmcneill /********************/
    424  1.1  jmcneill /* Mode Table       */
    425  1.1  jmcneill /********************/
    426  1.1  jmcneill 
    427  1.1  jmcneill // 640x480
    428  1.1  jmcneill struct crt_mode_table CRTM640x480[] = {
    429  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    430  1.1  jmcneill   //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    431  1.1  jmcneill   {REFRESH_60, CLK_25_175M ,M640X480_R60_HSP, M640X480_R60_VSP,\
    432  1.1  jmcneill   {800, 640, 648, 144, 656, 96,  525, 480, 480, 45,  490, 2}},
    433  1.1  jmcneill   {REFRESH_75, CLK_31_500M ,M640X480_R75_HSP, M640X480_R75_VSP,\
    434  1.1  jmcneill   {840, 640, 640, 200, 656, 64,  500, 480, 480, 20,  481, 3}},
    435  1.1  jmcneill   {REFRESH_85, CLK_36_000M ,M640X480_R85_HSP, M640X480_R85_VSP,\
    436  1.1  jmcneill   {832, 640, 640, 192, 696, 56,  509, 480, 480, 29,  481, 3}},
    437  1.1  jmcneill   {REFRESH_100,CLK_43_163M ,M640X480_R100_HSP, M640X480_R100_VSP,\
    438  1.1  jmcneill   {848, 640, 640, 208, 680, 64,  509, 480, 480, 29,  481, 3}}, //GTF
    439  1.1  jmcneill   {REFRESH_120,CLK_52_406M ,M640X480_R120_HSP, M640X480_R120_VSP,\
    440  1.1  jmcneill   {848, 640, 640, 208, 680, 64,  515, 480, 480, 35,  481, 3}}  //GTF
    441  1.1  jmcneill };
    442  1.1  jmcneill 
    443  1.1  jmcneill //720x480 (GTF)
    444  1.1  jmcneill struct crt_mode_table CRTM720x480[] = {
    445  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    446  1.1  jmcneill   //HT, HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    447  1.1  jmcneill   {REFRESH_60,CLK_26_880M ,M720X480_R60_HSP, M720X480_R60_VSP,\
    448  1.1  jmcneill   {896, 720, 720, 176, 736, 72,  497, 480, 480, 17,  481, 3}}
    449  1.1  jmcneill 
    450  1.1  jmcneill };
    451  1.1  jmcneill 
    452  1.1  jmcneill //720x576 (GTF)
    453  1.1  jmcneill struct crt_mode_table CRTM720x576[] = {
    454  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    455  1.1  jmcneill   //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    456  1.1  jmcneill   {REFRESH_60,CLK_32_668M ,M720X576_R60_HSP, M720X576_R60_VSP,\
    457  1.1  jmcneill   {912, 720, 720, 192, 744, 72,  597, 576, 576, 21,  577, 3}}
    458  1.1  jmcneill };
    459  1.1  jmcneill 
    460  1.1  jmcneill //800x480 (GTF)
    461  1.1  jmcneill struct crt_mode_table CRTM800x480[] = {
    462  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    463  1.1  jmcneill   //HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    464  1.1  jmcneill   {REFRESH_60,CLK_29_581M ,M800X480_R60_HSP,M800X480_R60_VSP,\
    465  1.1  jmcneill   {992, 800, 800, 192, 816, 80,  497, 480, 480, 17,  481, 3}}
    466  1.1  jmcneill };
    467  1.1  jmcneill // 800x600
    468  1.1  jmcneill struct crt_mode_table CRTM800x600[] = {
    469  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    470  1.1  jmcneill   //HT,   HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    471  1.1  jmcneill   {REFRESH_60, CLK_40_000M ,M800X600_R60_HSP, M800X600_R60_VSP,\
    472  1.1  jmcneill   {1056, 800, 800, 256, 840, 128, 628, 600, 600, 28,  601, 4}},
    473  1.1  jmcneill   {REFRESH_75, CLK_49_500M ,M800X600_R75_HSP, M800X600_R75_VSP,\
    474  1.1  jmcneill   {1056, 800, 800, 256, 816, 80,  625, 600, 600, 25,  601, 3}},
    475  1.1  jmcneill   {REFRESH_85, CLK_56_250M ,M800X600_R85_HSP, M800X600_R85_VSP,\
    476  1.1  jmcneill   {1048, 800, 800, 248, 832, 64,  631, 600, 600, 31,  601, 3}},
    477  1.1  jmcneill   {REFRESH_100,CLK_68_179M ,M800X600_R100_HSP, M800X600_R100_VSP,\
    478  1.1  jmcneill   {1072, 800, 800, 272, 848, 88,  636, 600, 600, 36,  601, 3}}, //GTF
    479  1.1  jmcneill   {REFRESH_120,CLK_83_950M ,M800X600_R120_HSP, M800X600_R120_VSP,\
    480  1.1  jmcneill   {1088, 800, 800, 288, 856, 88,  643, 600, 600, 43,  601, 3}}  //GTF
    481  1.1  jmcneill };
    482  1.1  jmcneill //848x480 (GTF)
    483  1.1  jmcneill struct crt_mode_table CRTM848x480[] = {
    484  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    485  1.1  jmcneill   //HT,   HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    486  1.1  jmcneill   {REFRESH_60,CLK_31_490M ,M848X480_R60_HSP, M848X480_R60_VSP,\
    487  1.1  jmcneill   {1056, 848, 848, 208, 864, 88,  497, 480, 480, 17,  481, 3}}
    488  1.1  jmcneill };
    489  1.1  jmcneill 
    490  1.1  jmcneill //856x480 (GTF) convert to 852x480
    491  1.1  jmcneill struct crt_mode_table CRTM852x480[] = {
    492  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    493  1.1  jmcneill   //HT,   HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    494  1.1  jmcneill   {REFRESH_60,CLK_31_728M ,M852X480_R60_HSP, M852X480_R60_VSP,\
    495  1.1  jmcneill   {1064, 856, 856, 208, 872, 88,  497, 480, 480, 17,  481, 3}}
    496  1.1  jmcneill 
    497  1.1  jmcneill };
    498  1.1  jmcneill 
    499  1.1  jmcneill //1024x512 (GTF)
    500  1.1  jmcneill struct crt_mode_table CRTM1024x512[] = {
    501  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    502  1.1  jmcneill   //HT,   HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    503  1.1  jmcneill   {REFRESH_60,CLK_41_291M ,M1024X512_R60_HSP, M1024X512_R60_VSP,\
    504  1.1  jmcneill   {1296, 1024,1024,272, 1056,104, 531, 512, 512, 19,  513, 3}}
    505  1.1  jmcneill 
    506  1.1  jmcneill };
    507  1.1  jmcneill 
    508  1.1  jmcneill //1024x576 (GTF)
    509  1.1  jmcneill /*static struct crt_mode_table CRTM1024x576[] = {
    510  1.1  jmcneill   //r_rate,vclk,     HT,   HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    511  1.1  jmcneill   { 60,CLK_46_996M ,{1312, 1024,1024,288, 1064,104, 597, 576, 576, 21,  577, 3}}
    512  1.1  jmcneill 
    513  1.1  jmcneill };*/
    514  1.1  jmcneill 
    515  1.1  jmcneill // 1024x768
    516  1.1  jmcneill struct crt_mode_table CRTM1024x768[] = {
    517  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    518  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    519  1.1  jmcneill   {REFRESH_60,CLK_65_000M ,M1024X768_R60_HSP, M1024X768_R60_VSP,\
    520  1.1  jmcneill   {1344, 1024, 1024, 320, 1048, 136, 806, 768, 768, 38,  771, 6}},
    521  1.1  jmcneill   {REFRESH_75,CLK_78_750M ,M1024X768_R75_HSP, M1024X768_R75_VSP,\
    522  1.1  jmcneill   {1312, 1024, 1024, 288, 1040, 96,  800, 768, 768, 32,  769, 3}},
    523  1.1  jmcneill   {REFRESH_85,CLK_94_500M ,M1024X768_R85_HSP, M1024X768_R85_VSP,\
    524  1.1  jmcneill   {1376, 1024, 1024, 352, 1072, 96,  808, 768, 768, 40,  769, 3}},
    525  1.1  jmcneill   {REFRESH_100,CLK_133_308M,M1024X768_R100_HSP, M1024X768_R100_VSP,\
    526  1.1  jmcneill   {1392, 1024, 1024, 368, 1096, 112, 814, 768, 768, 46,  769, 3}} //GTF
    527  1.1  jmcneill };
    528  1.1  jmcneill 
    529  1.1  jmcneill // 1152x864
    530  1.1  jmcneill struct crt_mode_table CRTM1152x864[] = {
    531  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    532  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    533  1.1  jmcneill   {REFRESH_75,CLK_108_000M ,M1152X864_R75_HSP, M1152X864_R75_VSP,\
    534  1.1  jmcneill   {1600, 1152,1152, 448, 1216, 128, 900, 864, 864, 36,  865, 3}}
    535  1.1  jmcneill 
    536  1.1  jmcneill };
    537  1.1  jmcneill 
    538  1.1  jmcneill // 1280x720 (GTF)
    539  1.1  jmcneill struct crt_mode_table CRTM1280x720[] = {
    540  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    541  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    542  1.1  jmcneill   {REFRESH_60,CLK_74_481M ,M1280X720_R60_HSP, M1280X720_R60_VSP,\
    543  1.1  jmcneill   {1664,1280, 1280, 384, 1336, 136, 746, 720, 720, 26,  721, 3}}
    544  1.1  jmcneill };
    545  1.1  jmcneill 
    546  1.1  jmcneill //1280x768 (GTF)
    547  1.1  jmcneill struct crt_mode_table CRTM1280x768[] = {
    548  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    549  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    550  1.1  jmcneill   {REFRESH_60,CLK_80_136M ,M1280X768_R60_HSP, M1280X768_R60_VSP,\
    551  1.1  jmcneill   {1680,1280, 1280, 400, 1344, 136, 795, 768, 768, 27,  769, 3}}
    552  1.1  jmcneill };
    553  1.1  jmcneill 
    554  1.1  jmcneill //1280x960
    555  1.1  jmcneill struct crt_mode_table CRTM1280x960[] = {
    556  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    557  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    558  1.1  jmcneill   {REFRESH_60,CLK_108_000M ,M1280X960_R60_HSP, M1280X960_R60_VSP,\
    559  1.1  jmcneill   {1800,1280, 1280, 520, 1376, 112, 1000,960, 960, 40,  961, 3}}
    560  1.1  jmcneill };
    561  1.1  jmcneill 
    562  1.1  jmcneill // 1280x1024
    563  1.1  jmcneill struct crt_mode_table CRTM1280x1024[] = {
    564  1.1  jmcneill   //r_rate,vclk,,hsp,vsp
    565  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    566  1.1  jmcneill   {REFRESH_60,CLK_108_000M ,M1280X1024_R60_HSP, M1280X1024_R60_VSP,\
    567  1.1  jmcneill   {1688,1280, 1280, 408, 1328, 112, 1066,1024,1024,42,  1025,3}},
    568  1.1  jmcneill   {REFRESH_75,CLK_135_000M ,M1280X1024_R75_HSP, M1280X1024_R75_VSP,\
    569  1.1  jmcneill   {1688,1280, 1280, 408, 1296, 144, 1066,1024,1024,42,  1025,3}},
    570  1.1  jmcneill   {REFRESH_85,CLK_157_500M ,M1280X1024_R85_HSP, M1280X1024_R85_VSP,\
    571  1.1  jmcneill   {1728,1280, 1280, 448, 1344, 160, 1072,1024,1024,48,  1025,3}}
    572  1.1  jmcneill };
    573  1.1  jmcneill 
    574  1.1  jmcneill /* 1366x768 (GTF) */
    575  1.1  jmcneill struct crt_mode_table CRTM1366x768[] = {
    576  1.1  jmcneill   // r_rate,  vclk, hsp, vsp
    577  1.1  jmcneill   // HT,  HA,  HBS, HBE, HSS, HSE, VT,  VA,  VBS, VBE, VSS, VSE
    578  1.1  jmcneill   {REFRESH_60, CLK_85_860M, M1368X768_R60_HSP, M1368X768_R60_VSP,\
    579  1.1  jmcneill   {1800,1366, 1366, 432, 1440, 144, 795, 768, 768, 27,  769, 3}}
    580  1.1  jmcneill };
    581  1.1  jmcneill 
    582  1.1  jmcneill //1368x768 (GTF)
    583  1.1  jmcneill /*static struct crt_mode_table CRTM1368x768[] = {
    584  1.1  jmcneill   //r_rate,vclk,     HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    585  1.1  jmcneill   { 60,CLK_85_860M ,{1800,1368, 1368, 432, 1440, 144, 795, 768, 768, 27,  769, 3}}
    586  1.1  jmcneill };*/
    587  1.1  jmcneill 
    588  1.1  jmcneill //1440x1050 (GTF)
    589  1.1  jmcneill struct crt_mode_table CRTM1440x1050[] = {
    590  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    591  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    592  1.1  jmcneill   {REFRESH_60 ,CLK_125_104M ,M1440X1050_R60_HSP, M1440X1050_R60_VSP,\
    593  1.1  jmcneill   {1936,1440, 1440, 496, 1536, 152, 1077,1040,1040,37,  1041,3}}
    594  1.1  jmcneill };
    595  1.1  jmcneill 
    596  1.1  jmcneill // 1600x1200
    597  1.1  jmcneill struct crt_mode_table CRTM1600x1200[] = {
    598  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    599  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    600  1.1  jmcneill   {REFRESH_60 ,CLK_162_000M ,M1600X1200_R60_HSP, M1600X1200_R60_VSP,\
    601  1.1  jmcneill   {2160,1600, 1600, 560, 1664, 192, 1250,1200,1200,50,  1201,3}},
    602  1.1  jmcneill   {REFRESH_75 ,CLK_202_500M ,M1600X1200_R75_HSP, M1600X1200_R75_VSP,\
    603  1.1  jmcneill   {2160,1600, 1600, 560, 1664, 192, 1250,1200,1200,50,  1201,3}}
    604  1.1  jmcneill 
    605  1.1  jmcneill };
    606  1.1  jmcneill 
    607  1.1  jmcneill // 1920x1080 (GTF)
    608  1.1  jmcneill struct crt_mode_table CRTM1920x1080[] = {
    609  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    610  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    611  1.1  jmcneill   {REFRESH_60,CLK_172_798M ,M1920X1080_R60_HSP, M1920X1080_R60_VSP,\
    612  1.1  jmcneill   {2576,1920, 1920, 656, 2040, 208, 1118,1080,1080,38, 1081, 3}}
    613  1.1  jmcneill };
    614  1.1  jmcneill 
    615  1.1  jmcneill // 1920x1440
    616  1.1  jmcneill struct crt_mode_table CRTM1920x1440[] = {
    617  1.1  jmcneill   //r_rate,vclk,hsp,vsp
    618  1.1  jmcneill   //HT,  HA,   HBS,  HBE, HSS,  HSE, VT,  VA,  VBS, VBE, VSS, VSE
    619  1.1  jmcneill   {REFRESH_60,CLK_234_000M ,M1920X1440_R60_HSP, M1920X1440_R60_VSP,\
    620  1.1  jmcneill   {2600,1920, 1920, 680, 2048, 208, 1500,1440,1440,60,  1441,3}},
    621  1.1  jmcneill   {REFRESH_75,CLK_297_500M ,M1920X1440_R75_HSP, M1920X1440_R75_VSP,\
    622  1.1  jmcneill   {2640,1920, 1920, 720, 2064, 224, 1500,1440,1440,60,  1441,3}}
    623  1.1  jmcneill };
    624  1.1  jmcneill 
    625  1.1  jmcneill /* 1400x1050 (VESA) */
    626  1.1  jmcneill struct crt_mode_table CRTM1400x1050[] = {
    627  1.1  jmcneill   /* r_rate,          vclk,              hsp,             vsp   */
    628  1.1  jmcneill   /* HT,  HA,  HBS, HBE, HSS, HSE,    VT,  VA,  VBS, VBE,  VSS, VSE */
    629  1.1  jmcneill   {REFRESH_60,CLK_108_000M, M1400X1050_R60_HSP, M1400X1050_R60_VSP,
    630  1.1  jmcneill   {1688,1400, 1400, 288, 1448, 112, 1066,1050, 1050,  16, 1051, 3}}
    631  1.1  jmcneill };
    632  1.1  jmcneill 
    633  1.1  jmcneill /* Video Mode Table */
    634  1.1  jmcneill // struct VideoModeTable {
    635  1.1  jmcneill //  int                               ModeIndex;
    636  1.1  jmcneill //  struct crt_mode_table             *crtc;
    637  1.1  jmcneill //  int                               mode_array;
    638  1.1  jmcneill // };
    639  1.1  jmcneill struct VideoModeTable CLE266Modes[] = {
    640  1.1  jmcneill    /* Display : 640x480 */
    641  1.1  jmcneill    { VIA_RES_640X480,  CRTM640x480, ARRAY_SIZE(CRTM640x480)},
    642  1.1  jmcneill 
    643  1.1  jmcneill    /* Display : 720x480 (GTF)*/
    644  1.1  jmcneill    { VIA_RES_720X480,  CRTM720x480, ARRAY_SIZE(CRTM720x480)},
    645  1.1  jmcneill 
    646  1.1  jmcneill    /* Display : 720x576 (GTF)*/
    647  1.1  jmcneill    { VIA_RES_720X576,  CRTM720x576, ARRAY_SIZE(CRTM720x576)},
    648  1.1  jmcneill 
    649  1.1  jmcneill    /* Display : 800x600 */
    650  1.1  jmcneill    { VIA_RES_800X600,  CRTM800x600, ARRAY_SIZE(CRTM800x600)},
    651  1.1  jmcneill 
    652  1.1  jmcneill    /* Display : 800x480 (GTF)*/
    653  1.1  jmcneill    { VIA_RES_800X480,  CRTM800x480, ARRAY_SIZE(CRTM800x480)},
    654  1.1  jmcneill 
    655  1.1  jmcneill    /* Display : 848x480 (GTF)*/
    656  1.1  jmcneill    { VIA_RES_848X480,  CRTM848x480, ARRAY_SIZE(CRTM848x480)},
    657  1.1  jmcneill 
    658  1.1  jmcneill    /* Display : 852x480 (GTF)*/
    659  1.1  jmcneill    { VIA_RES_856X480,  CRTM852x480, ARRAY_SIZE(CRTM852x480)},
    660  1.1  jmcneill 
    661  1.1  jmcneill    /* Display : 1024x512 (GTF)*/
    662  1.1  jmcneill    { VIA_RES_1024X512, CRTM1024x512, ARRAY_SIZE(CRTM1024x512)},
    663  1.1  jmcneill 
    664  1.1  jmcneill     /* Display : 1024x576 (GTF)*/
    665  1.1  jmcneill    //{ VIA_RES_1024X576, CRTM1024x576, ARRAY_SIZE(CRTM1024x576)},
    666  1.1  jmcneill 
    667  1.1  jmcneill    /* Display : 1024x768 */
    668  1.1  jmcneill    { VIA_RES_1024X768, CRTM1024x768, ARRAY_SIZE(CRTM1024x768)},
    669  1.1  jmcneill 
    670  1.1  jmcneill    /* Display : 1152x864 */
    671  1.1  jmcneill    { VIA_RES_1152X864, CRTM1152x864, ARRAY_SIZE(CRTM1152x864)},
    672  1.1  jmcneill 
    673  1.1  jmcneill    /* Display : 1280x768 (GTF)*/
    674  1.1  jmcneill    { VIA_RES_1280X768, CRTM1280x768, ARRAY_SIZE(CRTM1280x768)},
    675  1.1  jmcneill 
    676  1.1  jmcneill    /* Display : 1280x800 (GTF)*/
    677  1.1  jmcneill    //{ M1280x800, CRTM1280x800, ARRAY_SIZE(CRTM1280x800)},
    678  1.1  jmcneill 
    679  1.1  jmcneill    /* Display : 1280x960 */
    680  1.1  jmcneill    { VIA_RES_1280X960, CRTM1280x960, ARRAY_SIZE(CRTM1280x960)},
    681  1.1  jmcneill 
    682  1.1  jmcneill    /* Display : 1280x1024 */
    683  1.1  jmcneill    { VIA_RES_1280X1024, CRTM1280x1024,ARRAY_SIZE(CRTM1280x1024)},
    684  1.1  jmcneill 
    685  1.1  jmcneill    /* Display : 1368x768 (GTF)*/
    686  1.1  jmcneill    //{ M1368x768,CRTM1368x768,ARRAY_SIZE(CRTM1368x768)},
    687  1.1  jmcneill /* Display : 1366x768 (GTF)*/
    688  1.1  jmcneill    { VIA_RES_1366X768,CRTM1366x768,ARRAY_SIZE(CRTM1366x768)},
    689  1.1  jmcneill 
    690  1.1  jmcneill    /* Display : 1440x1050 (GTF)*/
    691  1.1  jmcneill    { VIA_RES_1440X1050, CRTM1440x1050, ARRAY_SIZE(CRTM1440x1050)},
    692  1.1  jmcneill 
    693  1.1  jmcneill    /* Display : 1600x1200 */
    694  1.1  jmcneill    { VIA_RES_1600X1200, CRTM1600x1200, ARRAY_SIZE(CRTM1600x1200)},
    695  1.1  jmcneill 
    696  1.1  jmcneill    /* Display : 1920x1440 */
    697  1.1  jmcneill    { VIA_RES_1920X1440, CRTM1920x1440, ARRAY_SIZE(CRTM1920x1440)},
    698  1.1  jmcneill 
    699  1.1  jmcneill    /* Display : 1280x720 */
    700  1.1  jmcneill    { VIA_RES_1280X720, CRTM1280x720, ARRAY_SIZE(CRTM1280x720)},
    701  1.1  jmcneill 
    702  1.1  jmcneill    /* Display : 1920x1080 */
    703  1.1  jmcneill    { VIA_RES_1920X1080, CRTM1920x1080, ARRAY_SIZE(CRTM1920x1080)},
    704  1.1  jmcneill 
    705  1.1  jmcneill    /* Display : 1400x1050 */
    706  1.1  jmcneill    { VIA_RES_1400X1050, CRTM1400x1050, ARRAY_SIZE(CRTM1400x1050)}
    707  1.1  jmcneill };
    708  1.1  jmcneill 
    709  1.1  jmcneill #define NUM_TOTAL_MODETABLE ARRAY_SIZE(CLE266Modes)
    710  1.1  jmcneill 
    711  1.1  jmcneill 
    712  1.1  jmcneill #endif /* _DEV_PCI_UNICHROMEMODE_H */
    713