i++;
        }
 
-       switch (XGI_TVDataTable[i].DATAPTR) {
-       case 0:
-               return &XGI_ExtPALData[tempal];
-               break;
-       case 1:
-               return &XGI_ExtNTSCData[tempal];
-               break;
-       case 2:
-               return &XGI_StPALData[tempal];
-               break;
-       case 3:
-               return &XGI_StNTSCData[tempal];
-               break;
-       case 4:
-               return &XGI_ExtHiTVData[tempal];
-               break;
-       case 5:
-               return &XGI_St2HiTVData[tempal];
-               break;
-       case 6:
-               return &XGI_ExtYPbPr525iData[tempal];
-               break;
-       case 7:
-               return &XGI_ExtYPbPr525pData[tempal];
-               break;
-       case 8:
-               return &XGI_ExtYPbPr750pData[tempal];
-               break;
-       case 9:
-               return &XGI_StYPbPr525iData[tempal];
-               break;
-       case 10:
-               return &XGI_StYPbPr525pData[tempal];
-               break;
-       case 11:
-               return &XGI_StYPbPr750pData[tempal];
-               break;
-       case 12: /* avoid system hang */
-               return &XGI_ExtNTSCData[tempal];
-               break;
-       case 13:
-               return &XGI_St1HiTVData[tempal];
-               break;
-       default:
-               break;
-       }
-       return NULL;
+       return &XGI_TVDataTable[i].DATAPTR[tempal];
 }
 
 static void XGI_GetLVDSData(unsigned short ModeNo, unsigned short ModeIdIndex,
 
        {0xFF, 0x0000, 0x0000, 0}
 };
 
-static struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
-       {0x09E1, 0x0001, 0}, /* XGI_ExtPALData */
-       {0x09E1, 0x0000, 1}, /* XGI_ExtNTSCData */
-       {0x09E1, 0x0801, 2}, /* XGI_StPALData */
-       {0x09E1, 0x0800, 3}, /* XGI_StNTSCData */
-       {0x49E0, 0x0100, 4}, /* XGI_ExtHiTVData */
-       {0x49E0, 0x4100, 5}, /* XGI_St2HiTVData */
-       {0x49E0, 0x4900, 13}, /* XGI_St1HiTVData */
-       {0x09E0, 0x0020, 6}, /* XGI_ExtYPbPr525iData */
-       {0x09E0, 0x0040, 7}, /* XGI_ExtYPbPr525pData */
-       {0x09E0, 0x0080, 8}, /* XGI_ExtYPbPr750pData */
-       {0x09E0, 0x0820, 9}, /* XGI_StYPbPr525iData */
-       {0x09E0, 0x0840, 10}, /* XGI_StYPbPr525pData */
-       {0x09E0, 0x0880, 11}, /* XGI_StYPbPr750pData */
-       {0xffff, 0x0000, 12}  /* END */
+static const struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
+       {0x09E1, 0x0001, XGI_ExtPALData},
+       {0x09E1, 0x0000, XGI_ExtNTSCData},
+       {0x09E1, 0x0801, XGI_StPALData},
+       {0x09E1, 0x0800, XGI_StNTSCData},
+       {0x49E0, 0x0100, XGI_ExtHiTVData},
+       {0x49E0, 0x4100, XGI_St2HiTVData},
+       {0x49E0, 0x4900, XGI_St1HiTVData},
+       {0x09E0, 0x0020, XGI_ExtYPbPr525iData},
+       {0x09E0, 0x0040, XGI_ExtYPbPr525pData},
+       {0x09E0, 0x0080, XGI_ExtYPbPr750pData},
+       {0x09E0, 0x0820, XGI_StYPbPr525iData},
+       {0x09E0, 0x0840, XGI_StYPbPr525pData},
+       {0x09E0, 0x0880, XGI_StYPbPr750pData},
+       {0xffff, 0x0000, XGI_ExtNTSCData},
 };
 
 static unsigned short LCDLenList[] = {