staging: xgifb: XGI_GetLcdPtr: use real pointers for data tables
authorAaro Koskinen <aaro.koskinen@iki.fi>
Sun, 4 Nov 2012 19:14:44 +0000 (21:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2012 20:54:18 +0000 (12:54 -0800)
Use real pointers for LCD data tables to simplify the code.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/xgifb/vb_setmode.c
drivers/staging/xgifb/vb_struct.h
drivers/staging/xgifb/vb_table.h

index bc341946788e3e24617f906d4d841c244b0f3001..276cd1537e078ded001fc177359d8cfd54cc9b26 100644 (file)
@@ -1310,7 +1310,7 @@ static void *XGI_GetLcdPtr(unsigned short BX, unsigned short ModeNo,
                unsigned short RefreshRateTableIndex,
                struct vb_device_info *pVBInfo)
 {
-       unsigned short i, tempdx, tempbx, tempal, modeflag, table;
+       unsigned short i, tempdx, tempbx, tempal, modeflag;
 
        struct XGI330_LCDDataTablStruct *tempdi = NULL;
 
@@ -1365,7 +1365,6 @@ static void *XGI_GetLcdPtr(unsigned short BX, unsigned short ModeNo,
        if (tempdi == NULL) /* OEMUtil */
                return NULL;
 
-       table = tempbx;
        i = 0;
 
        while (tempdi[i].PANELID != 0xff) {
@@ -1392,319 +1391,7 @@ static void *XGI_GetLcdPtr(unsigned short BX, unsigned short ModeNo,
                i++;
        }
 
-       if (table == 0) {
-               switch (tempdi[i].DATAPTR) {
-               case 0:
-                       return &XGI_LVDSCRT11024x768_1_H[tempal];
-                       break;
-               case 1:
-                       return &XGI_LVDSCRT11024x768_2_H[tempal];
-                       break;
-               case 2:
-                       return &XGI_LVDSCRT11280x1024_1_H[tempal];
-                       break;
-               case 3:
-                       return &XGI_LVDSCRT11280x1024_2_H[tempal];
-                       break;
-               case 4:
-                       return &XGI_LVDSCRT11400x1050_1_H[tempal];
-                       break;
-               case 5:
-                       return &XGI_LVDSCRT11400x1050_2_H[tempal];
-                       break;
-               case 6:
-                       return &XGI_LVDSCRT11600x1200_1_H[tempal];
-                       break;
-               case 7:
-                       return &XGI_LVDSCRT11024x768_1_Hx75[tempal];
-                       break;
-               case 8:
-                       return &XGI_LVDSCRT11024x768_2_Hx75[tempal];
-                       break;
-               case 9:
-                       return &XGI_LVDSCRT11280x1024_1_Hx75[tempal];
-                       break;
-               case 10:
-                       return &XGI_LVDSCRT11280x1024_2_Hx75[tempal];
-                       break;
-               default:
-                       break;
-               }
-       } else if (table == 1) {
-               switch (tempdi[i].DATAPTR) {
-               case 0:
-                       return &XGI_LVDSCRT11024x768_1_V[tempal];
-                       break;
-               case 1:
-                       return &XGI_LVDSCRT11024x768_2_V[tempal];
-                       break;
-               case 2:
-                       return &XGI_LVDSCRT11280x1024_1_V[tempal];
-                       break;
-               case 3:
-                       return &XGI_LVDSCRT11280x1024_2_V[tempal];
-                       break;
-               case 4:
-                       return &XGI_LVDSCRT11400x1050_1_V[tempal];
-                       break;
-               case 5:
-                       return &XGI_LVDSCRT11400x1050_2_V[tempal];
-                       break;
-               case 6:
-                       return &XGI_LVDSCRT11600x1200_1_V[tempal];
-                       break;
-               case 7:
-                       return &XGI_LVDSCRT11024x768_1_Vx75[tempal];
-                       break;
-               case 8:
-                       return &XGI_LVDSCRT11024x768_2_Vx75[tempal];
-                       break;
-               case 9:
-                       return &XGI_LVDSCRT11280x1024_1_Vx75[tempal];
-                       break;
-               case 10:
-                       return &XGI_LVDSCRT11280x1024_2_Vx75[tempal];
-                       break;
-               default:
-                       break;
-               }
-       } else if (table == 2) {
-               switch (tempdi[i].DATAPTR) {
-               case 0:
-                       return &XGI_LVDS1024x768Data_1[tempal];
-                       break;
-               case 1:
-                       return &XGI_LVDS1024x768Data_2[tempal];
-                       break;
-               case 2:
-                       return &XGI_LVDS1280x1024Data_1[tempal];
-                       break;
-               case 3:
-                       return &XGI_LVDS1280x1024Data_2[tempal];
-                       break;
-               case 4:
-                       return &XGI_LVDS1400x1050Data_1[tempal];
-                       break;
-               case 5:
-                       return &XGI_LVDS1400x1050Data_2[tempal];
-                       break;
-               case 6:
-                       return &XGI_LVDS1600x1200Data_1[tempal];
-                       break;
-               case 7:
-                       return &XGI_LVDSNoScalingData[tempal];
-                       break;
-               case 8:
-                       return &XGI_LVDS1024x768Data_1x75[tempal];
-                       break;
-               case 9:
-                       return &XGI_LVDS1024x768Data_2x75[tempal];
-                       break;
-               case 10:
-                       return &XGI_LVDS1280x1024Data_1x75[tempal];
-                       break;
-               case 11:
-                       return &XGI_LVDS1280x1024Data_2x75[tempal];
-                       break;
-               case 12:
-                       return &XGI_LVDSNoScalingDatax75[tempal];
-                       break;
-               default:
-                       break;
-               }
-       } else if (table == 3) {
-               switch (tempdi[i].DATAPTR) {
-               case 0:
-                       return &XGI_LVDS1024x768Des_1[tempal];
-                       break;
-               case 1:
-                       return &XGI_LVDS1024x768Des_3[tempal];
-                       break;
-               case 2:
-                       return &XGI_LVDS1024x768Des_2[tempal];
-                       break;
-               case 3:
-                       return &XGI_LVDS1280x1024Des_1[tempal];
-                       break;
-               case 4:
-                       return &XGI_LVDS1280x1024Des_2[tempal];
-                       break;
-               case 5:
-                       return &XGI_LVDS1400x1050Des_1[tempal];
-                       break;
-               case 6:
-                       return &XGI_LVDS1400x1050Des_2[tempal];
-                       break;
-               case 7:
-                       return &XGI_LVDS1600x1200Des_1[tempal];
-                       break;
-               case 8:
-                       return &XGI_LVDSNoScalingDesData[tempal];
-                       break;
-               case 9:
-                       return &XGI_LVDS1024x768Des_1x75[tempal];
-                       break;
-               case 10:
-                       return &XGI_LVDS1024x768Des_3x75[tempal];
-                       break;
-               case 11:
-                       return &XGI_LVDS1024x768Des_2x75[tempal];
-                       break;
-               case 12:
-                       return &XGI_LVDS1280x1024Des_1x75[tempal];
-                       break;
-               case 13:
-                       return &XGI_LVDS1280x1024Des_2x75[tempal];
-                       break;
-               case 14:
-                       return &XGI_LVDSNoScalingDesDatax75[tempal];
-                       break;
-               default:
-                       break;
-               }
-       } else if (table == 4) {
-               switch (tempdi[i].DATAPTR) {
-               case 0:
-                       return &XGI_ExtLCD1024x768Data[tempal];
-                       break;
-               case 1:
-                       return &XGI_StLCD1024x768Data[tempal];
-                       break;
-               case 2:
-                       return &XGI_CetLCD1024x768Data[tempal];
-                       break;
-               case 3:
-                       return &XGI_ExtLCD1280x1024Data[tempal];
-                       break;
-               case 4:
-                       return &XGI_StLCD1280x1024Data[tempal];
-                       break;
-               case 5:
-                       return &XGI_CetLCD1280x1024Data[tempal];
-                       break;
-               case 6:
-               case 7:
-                       return &xgifb_lcd_1400x1050[tempal];
-                       break;
-               case 8:
-                       return &XGI_CetLCD1400x1050Data[tempal];
-                       break;
-               case 9:
-                       return &XGI_ExtLCD1600x1200Data[tempal];
-                       break;
-               case 10:
-                       return &XGI_StLCD1600x1200Data[tempal];
-                       break;
-               case 11:
-                       return &XGI_NoScalingData[tempal];
-                       break;
-               case 12:
-                       return &XGI_ExtLCD1024x768x75Data[tempal];
-                       break;
-               case 13:
-                       return &XGI_ExtLCD1024x768x75Data[tempal];
-                       break;
-               case 14:
-                       return &XGI_CetLCD1024x768x75Data[tempal];
-                       break;
-               case 15:
-               case 16:
-                       return &xgifb_lcd_1280x1024x75[tempal];
-                       break;
-               case 17:
-                       return &XGI_CetLCD1280x1024x75Data[tempal];
-                       break;
-               case 18:
-                       return &XGI_NoScalingDatax75[tempal];
-                       break;
-               default:
-                       break;
-               }
-       } else if (table == 5 && ((pVBInfo->VBType & VB_SIS301LV) ||
-                                 (pVBInfo->VBType & VB_SIS302LV))) {
-               switch (tempdi[i].DATAPTR) {
-               case 0: return &XGI_ExtLCDDes1024x768Data[tempal];
-               case 1: return &XGI_StLCDDes1024x768Data[tempal];
-               case 2: return &XGI_CetLCDDes1024x768Data[tempal];
-               case 3: return &XGI_ExtLCDDLDes1280x1024Data[tempal];
-               case 4: return &XGI_StLCDDLDes1280x1024Data[tempal];
-               case 5: return &XGI_CetLCDDLDes1280x1024Data[tempal];
-               case 6:
-               case 7: return &xgifb_lcddldes_1400x1050[tempal];
-               case 8: return &XGI_CetLCDDes1400x1050Data[tempal];
-               case 9: return &XGI_CetLCDDes1400x1050Data2[tempal];
-               case 10: return &XGI_ExtLCDDLDes1600x1200Data[tempal];
-               case 11: return &XGI_StLCDDLDes1600x1200Data[tempal];
-               case 12: return &XGI_NoScalingDesData[tempal];
-               case 13:
-               case 14: return &xgifb_lcddes_1024x768x75[tempal];
-               case 15: return &XGI_CetLCDDes1024x768x75Data[tempal];
-               case 16:
-               case 17: return &xgifb_lcddldes_1280x1024x75[tempal];
-               case 18: return &XGI_CetLCDDLDes1280x1024x75Data[tempal];
-               case 19: return &XGI_NoScalingDesDatax75[tempal];
-               }
-       } else if (table == 5) {
-               switch (tempdi[i].DATAPTR) {
-               case 0:
-                       return &XGI_ExtLCDDes1024x768Data[tempal];
-                       break;
-               case 1:
-                       return &XGI_StLCDDes1024x768Data[tempal];
-                       break;
-               case 2:
-                       return &XGI_CetLCDDes1024x768Data[tempal];
-                       break;
-               case 3:
-                       return &XGI_ExtLCDDes1280x1024Data[tempal];
-                       break;
-               case 4:
-                       return &XGI_StLCDDes1280x1024Data[tempal];
-                       break;
-               case 5:
-                       return &XGI_CetLCDDes1280x1024Data[tempal];
-                       break;
-               case 6:
-               case 7:
-                       return &xgifb_lcddes_1400x1050[tempal];
-                       break;
-               case 8:
-                       return &XGI_CetLCDDes1400x1050Data[tempal];
-                       break;
-               case 9:
-                       return &XGI_CetLCDDes1400x1050Data2[tempal];
-                       break;
-               case 10:
-                       return &XGI_ExtLCDDes1600x1200Data[tempal];
-                       break;
-               case 11:
-                       return &XGI_StLCDDes1600x1200Data[tempal];
-                       break;
-               case 12:
-                       return &XGI_NoScalingDesData[tempal];
-                       break;
-               case 13:
-               case 14:
-                       return &xgifb_lcddes_1024x768x75[tempal];
-                       break;
-               case 15:
-                       return &XGI_CetLCDDes1024x768x75Data[tempal];
-                       break;
-               case 16:
-               case 17:
-                       return &xgifb_lcddes_1280x1024x75[tempal];
-                       break;
-               case 18:
-                       return &XGI_CetLCDDes1280x1024x75Data[tempal];
-                       break;
-               case 19:
-                       return &XGI_NoScalingDesDatax75[tempal];
-                       break;
-               default:
-                       break;
-               }
-       }
-       return NULL;
+       return tempdi[i].DATAPTR;
 }
 
 static struct SiS_TVData const *XGI_GetTVPtr(unsigned short ModeNo,
index 70158c2c68af4b0125bd9e87c0e57037ca744b1b..c6f032bc662950be5f04fd0ba5a110d551740aa6 100644 (file)
@@ -56,7 +56,7 @@ struct XGI330_LCDDataTablStruct {
        unsigned char  PANELID;
        unsigned short MASK;
        unsigned short CAP;
-       unsigned short DATAPTR;
+       void *DATAPTR;
 };
 
 struct XGI330_TVDataTablStruct {
index 419288e1f640c565deec835cd89c3cf1ea3c4bdd..d3fadf7f551de898a8cf972a9ef554128cf6dafb 100644 (file)
@@ -1749,153 +1749,140 @@ static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
 
 /*add for new UNIVGABIOS*/
 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
-       {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
-       {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
-       {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
-       {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
-       {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
-       {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
-       {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
-       {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
-       {Panel_1400x1050, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
-       {Panel_1600x1200, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
-       {Panel_1600x1200, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
-       {PanelRef60Hz, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
-       {Panel_1024x768x75, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
-       {Panel_1024x768x75, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
-       {Panel_1024x768x75, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
-       /* XGI_ExtLCD1280x1024x75Data */
-       {Panel_1280x1024x75, 0x0019, 0x0001, 15},
-       /* XGI_StLCD1280x1024x75Data */
-       {Panel_1280x1024x75, 0x0019, 0x0000, 16},
-       /* XGI_CetLCD1280x1024x75Data */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 17},
-       {PanelRef75Hz, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
-       {0xFF, 0x0000, 0x0000, 0} /* End of table */
+       {Panel_1024x768, 0x0019, 0x0001, XGI_ExtLCD1024x768Data },
+       {Panel_1024x768, 0x0019, 0x0000, XGI_StLCD1024x768Data },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_CetLCD1024x768Data },
+       {Panel_1280x1024, 0x0019, 0x0001, XGI_ExtLCD1280x1024Data },
+       {Panel_1280x1024, 0x0019, 0x0000, XGI_StLCD1280x1024Data },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_CetLCD1280x1024Data },
+       {Panel_1400x1050, 0x0019, 0x0001, xgifb_lcd_1400x1050 },
+       {Panel_1400x1050, 0x0019, 0x0000, xgifb_lcd_1400x1050 },
+       {Panel_1400x1050, 0x0018, 0x0010, XGI_CetLCD1400x1050Data },
+       {Panel_1600x1200, 0x0019, 0x0001, XGI_ExtLCD1600x1200Data },
+       {Panel_1600x1200, 0x0019, 0x0000, XGI_StLCD1600x1200Data },
+       {PanelRef60Hz, 0x0008, 0x0008, XGI_NoScalingData },
+       {Panel_1024x768x75, 0x0019, 0x0001, XGI_ExtLCD1024x768x75Data },
+       {Panel_1024x768x75, 0x0019, 0x0000, XGI_ExtLCD1024x768x75Data },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_CetLCD1024x768x75Data },
+       {Panel_1280x1024x75, 0x0019, 0x0001, xgifb_lcd_1280x1024x75 },
+       {Panel_1280x1024x75, 0x0019, 0x0000, xgifb_lcd_1280x1024x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_CetLCD1280x1024x75Data },
+       {PanelRef75Hz, 0x0008, 0x0008, XGI_NoScalingDatax75 },
+       {0xFF, 0x0000, 0x0000, NULL } /* End of table */
 };
 
 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
-       {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
-       {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
-       {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
-       {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
-       {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
-       {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
-       {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
-       {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
-       {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
-       {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
-       {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
-       {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
-       {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
-       /* XGI_ExtLCDDes1024x768x75Data */
-       {Panel_1024x768x75, 0x0019, 0x0001, 13},
-       /* XGI_StLCDDes1024x768x75Data */
-       {Panel_1024x768x75, 0x0019, 0x0000, 14},
-       /* XGI_CetLCDDes1024x768x75Data */
-       {Panel_1024x768x75, 0x0018, 0x0010, 15},
-       /* XGI_ExtLCDDes1280x1024x75Data */
-       {Panel_1280x1024x75, 0x0019, 0x0001, 16},
-       /* XGI_StLCDDes1280x1024x75Data */
-       {Panel_1280x1024x75, 0x0019, 0x0000, 17},
-       /* XGI_CetLCDDes1280x1024x75Data */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 18},
-       {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
-       {0xFF, 0x0000, 0x0000, 0}
+       {Panel_1024x768, 0x0019, 0x0001, XGI_ExtLCDDes1024x768Data },
+       {Panel_1024x768, 0x0019, 0x0000, XGI_StLCDDes1024x768Data },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_CetLCDDes1024x768Data },
+       {Panel_1280x1024, 0x0019, 0x0001, XGI_ExtLCDDes1280x1024Data },
+       {Panel_1280x1024, 0x0019, 0x0000, XGI_StLCDDes1280x1024Data },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_CetLCDDes1280x1024Data },
+       {Panel_1400x1050, 0x0019, 0x0001, xgifb_lcddes_1400x1050 },
+       {Panel_1400x1050, 0x0019, 0x0000, xgifb_lcddes_1400x1050 },
+       {Panel_1400x1050, 0x0418, 0x0010, XGI_CetLCDDes1400x1050Data },
+       {Panel_1400x1050, 0x0418, 0x0410, XGI_CetLCDDes1400x1050Data2 },
+       {Panel_1600x1200, 0x0019, 0x0001, XGI_ExtLCDDes1600x1200Data },
+       {Panel_1600x1200, 0x0019, 0x0000, XGI_StLCDDes1600x1200Data },
+       {PanelRef60Hz, 0x0008, 0x0008, XGI_NoScalingDesData },
+       {Panel_1024x768x75, 0x0019, 0x0001, xgifb_lcddes_1024x768x75 },
+       {Panel_1024x768x75, 0x0019, 0x0000, xgifb_lcddes_1024x768x75 },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_CetLCDDes1024x768x75Data },
+       {Panel_1280x1024x75, 0x0019, 0x0001, xgifb_lcddes_1280x1024x75 },
+       {Panel_1280x1024x75, 0x0019, 0x0000, xgifb_lcddes_1280x1024x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_CetLCDDes1280x1024x75Data },
+       {PanelRef75Hz, 0x0008, 0x0008, XGI_NoScalingDesDatax75 },
+       {0xFF, 0x0000, 0x0000, NULL }
 };
 
 static struct XGI330_LCDDataTablStruct xgifb_lcddldes[] = {
-       {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
-       {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
-       {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
-       {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDLDes1280x1024Data */
-       {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDLDes1280x1024Data */
-       {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDLDes1280x1024Data */
-       {Panel_1400x1050, 0x0019, 0x0001, 6}, /* xgifb_lcddldes_1400x1050 */
-       {Panel_1400x1050, 0x0019, 0x0000, 7}, /* xgifb_lcddldes_1400x1050 */
-       {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
-       {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
-       {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDLDes1600x1200Data */
-       {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
-       {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
-       {Panel_1024x768x75, 0x0019, 0x0001, 13}, /* xgifb_lcddes_1024x768x75 */
-       {Panel_1024x768x75, 0x0019, 0x0000, 14}, /* xgifb_lcddes_1024x768x75 */
-       {Panel_1024x768x75, 0x0018, 0x0010, 15}, /* XGI_CetLCDDes1024x768x75Data */
-       {Panel_1280x1024x75, 0x0019, 0x0001, 16}, /* xgifb_lcddldes_1280x1024x75 */
-       {Panel_1280x1024x75, 0x0019, 0x0000, 17}, /* xgifb_lcddldes_1280x1024x75 */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 18}, /* XGI_CetLCDDes1280x1024x75Data */
-       {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
-       {0xFF, 0x0000, 0x0000, 0}
+       {Panel_1024x768, 0x0019, 0x0001, XGI_ExtLCDDes1024x768Data },
+       {Panel_1024x768, 0x0019, 0x0000, XGI_StLCDDes1024x768Data },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_CetLCDDes1024x768Data },
+       {Panel_1280x1024, 0x0019, 0x0001, XGI_ExtLCDDLDes1280x1024Data },
+       {Panel_1280x1024, 0x0019, 0x0000, XGI_StLCDDLDes1280x1024Data },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_CetLCDDLDes1280x1024Data },
+       {Panel_1400x1050, 0x0019, 0x0001, xgifb_lcddldes_1400x1050 },
+       {Panel_1400x1050, 0x0019, 0x0000, xgifb_lcddldes_1400x1050 },
+       {Panel_1400x1050, 0x0418, 0x0010, XGI_CetLCDDes1400x1050Data },
+       {Panel_1400x1050, 0x0418, 0x0410, XGI_CetLCDDes1400x1050Data2 },
+       {Panel_1600x1200, 0x0019, 0x0001, XGI_ExtLCDDLDes1600x1200Data },
+       {Panel_1600x1200, 0x0019, 0x0000, XGI_StLCDDLDes1600x1200Data },
+       {PanelRef60Hz, 0x0008, 0x0008, XGI_NoScalingDesData },
+       {Panel_1024x768x75, 0x0019, 0x0001, xgifb_lcddes_1024x768x75 },
+       {Panel_1024x768x75, 0x0019, 0x0000, xgifb_lcddes_1024x768x75 },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_CetLCDDes1024x768x75Data },
+       {Panel_1280x1024x75, 0x0019, 0x0001, xgifb_lcddldes_1280x1024x75 },
+       {Panel_1280x1024x75, 0x0019, 0x0000, xgifb_lcddldes_1280x1024x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_CetLCDDLDes1280x1024x75Data },
+       {PanelRef75Hz, 0x0008, 0x0008, XGI_NoScalingDesDatax75 },
+       {0xFF, 0x0000, 0x0000, NULL }
 };
 
 static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1_h[] = {
-       {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1_H */
-       {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2_H */
-       {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1_H */
-       {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2_H */
-       {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1_H */
-       {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2_H */
-       {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1_H */
-       {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1_Hx75 */
-       {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2_Hx75 */
-       {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1_Hx75 */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2_Hx75 */
-       {0xFF, 0x0000, 0x0000, 0}
+       {Panel_1024x768, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_H },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_H },
+       {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_H },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_H },
+       {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDSCRT11400x1050_1_H },
+       {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDSCRT11400x1050_2_H },
+       {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDSCRT11600x1200_1_H },
+       {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_Hx75 },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_Hx75 },
+       {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_Hx75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_Hx75 },
+       {0xFF, 0x0000, 0x0000, NULL }
 };
 
 static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1_v[] = {
-       {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1_V */
-       {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2_V */
-       {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1_V */
-       {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2_V */
-       {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1_V */
-       {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2_V */
-       {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1_V */
-       {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1_Vx75 */
-       {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2_Vx75 */
-       {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1_Vx75 */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2_Vx75 */
-       {0xFF, 0x0000, 0x0000, 0}
+       {Panel_1024x768, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_V },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_V },
+       {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_V },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_V },
+       {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDSCRT11400x1050_1_V },
+       {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDSCRT11400x1050_2_V },
+       {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDSCRT11600x1200_1_V },
+       {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDSCRT11024x768_1_Vx75 },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDSCRT11024x768_2_Vx75 },
+       {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDSCRT11280x1024_1_Vx75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDSCRT11280x1024_2_Vx75 },
+       {0xFF, 0x0000, 0x0000, NULL }
 };
 
 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
-       {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
-       {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
-       {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
-       {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
-       {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
-       {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
-       {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
-       {PanelRef60Hz, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
-       {Panel_1024x768x75, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
-       {Panel_1024x768x75, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
-       /* XGI_LVDS1280x1024Data_1x75 */
-       {Panel_1280x1024x75, 0x0018, 0x0000, 10},
-       /* XGI_LVDS1280x1024Data_2x75 */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 11},
-       {PanelRef75Hz, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
-       {0xFF, 0x0000, 0x0000, 0}
+       {Panel_1024x768, 0x0018, 0x0000, XGI_LVDS1024x768Data_1 },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_LVDS1024x768Data_2 },
+       {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDS1280x1024Data_1 },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDS1280x1024Data_2 },
+       {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDS1400x1050Data_1 },
+       {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDS1400x1050Data_2 },
+       {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDS1600x1200Data_1 },
+       {PanelRef60Hz, 0x0008, 0x0008, XGI_LVDSNoScalingData },
+       {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDS1024x768Data_1x75 },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDS1024x768Data_2x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDS1280x1024Data_1x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDS1280x1024Data_2x75 },
+       {PanelRef75Hz, 0x0008, 0x0008, XGI_LVDSNoScalingDatax75 },
+       {0xFF, 0x0000, 0x0000, NULL }
 };
 
 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
-       {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
-       {Panel_1024x768, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
-       {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
-       {Panel_1280x1024, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
-       {Panel_1280x1024, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
-       {Panel_1400x1050, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
-       {Panel_1400x1050, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
-       {Panel_1600x1200, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
-       {PanelRef60Hz, 0x0008, 0x0008, 8},  /* XGI_LVDSNoScalingDesData */
-       {Panel_1024x768x75, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
-       {Panel_1024x768x75, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
-       {Panel_1024x768x75, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
-       /* XGI_LVDS1280x1024Des_1x75 */
-       {Panel_1280x1024x75, 0x0018, 0x0000, 12},
-       /* XGI_LVDS1280x1024Des_2x75 */
-       {Panel_1280x1024x75, 0x0018, 0x0010, 13},
-       {PanelRef75Hz, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
-       {0xFF, 0x0000, 0x0000, 0}
+       {Panel_1024x768, 0x0018, 0x0000, XGI_LVDS1024x768Des_1 },
+       {Panel_1024x768, 0x0618, 0x0410, XGI_LVDS1024x768Des_3 },
+       {Panel_1024x768, 0x0018, 0x0010, XGI_LVDS1024x768Des_2 },
+       {Panel_1280x1024, 0x0018, 0x0000, XGI_LVDS1280x1024Des_1 },
+       {Panel_1280x1024, 0x0018, 0x0010, XGI_LVDS1280x1024Des_2 },
+       {Panel_1400x1050, 0x0018, 0x0000, XGI_LVDS1400x1050Des_1 },
+       {Panel_1400x1050, 0x0018, 0x0010, XGI_LVDS1400x1050Des_2 },
+       {Panel_1600x1200, 0x0018, 0x0000, XGI_LVDS1600x1200Des_1 },
+       {PanelRef60Hz, 0x0008, 0x0008, XGI_LVDSNoScalingDesData },
+       {Panel_1024x768x75, 0x0018, 0x0000, XGI_LVDS1024x768Des_1x75 },
+       {Panel_1024x768x75, 0x0618, 0x0410, XGI_LVDS1024x768Des_3x75 },
+       {Panel_1024x768x75, 0x0018, 0x0010, XGI_LVDS1024x768Des_2x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0000, XGI_LVDS1280x1024Des_1x75 },
+       {Panel_1280x1024x75, 0x0018, 0x0010, XGI_LVDS1280x1024Des_2x75 },
+       {PanelRef75Hz, 0x0008, 0x0008, XGI_LVDSNoScalingDesDatax75 },
+       {0xFF, 0x0000, 0x0000, NULL }
 };
 
 static const struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {