viafb: remove duplicated mode information
[cascardo/linux.git] / drivers / video / via / viafbdev.c
index 72759b6..50e9300 100644 (file)
@@ -53,51 +53,6 @@ static void retrieve_device_setting(struct viafb_ioctl_setting
 static void viafb_set_video_device(u32 video_dev_info);
 static void viafb_get_video_device(u32 *video_dev_info);
 
-/* Mode information */
-static const struct viafb_modeinfo viafb_modentry[] = {
-       {480, 640, VIA_RES_480X640},
-       {640, 480, VIA_RES_640X480},
-       {800, 480, VIA_RES_800X480},
-       {800, 600, VIA_RES_800X600},
-       {1024, 768, VIA_RES_1024X768},
-       {1152, 864, VIA_RES_1152X864},
-       {1280, 1024, VIA_RES_1280X1024},
-       {1600, 1200, VIA_RES_1600X1200},
-       {1440, 1050, VIA_RES_1440X1050},
-       {1280, 768, VIA_RES_1280X768,},
-       {1280, 800, VIA_RES_1280X800},
-       {1280, 960, VIA_RES_1280X960},
-       {1920, 1440, VIA_RES_1920X1440},
-       {848, 480, VIA_RES_848X480},
-       {1400, 1050, VIA_RES_1400X1050},
-       {720, 480, VIA_RES_720X480},
-       {720, 576, VIA_RES_720X576},
-       {1024, 512, VIA_RES_1024X512},
-       {1024, 576, VIA_RES_1024X576},
-       {1024, 600, VIA_RES_1024X600},
-       {1280, 720, VIA_RES_1280X720},
-       {1920, 1080, VIA_RES_1920X1080},
-       {1366, 768, VIA_RES_1368X768},
-       {1680, 1050, VIA_RES_1680X1050},
-       {960, 600, VIA_RES_960X600},
-       {1000, 600, VIA_RES_1000X600},
-       {1024, 576, VIA_RES_1024X576},
-       {1024, 600, VIA_RES_1024X600},
-       {1088, 612, VIA_RES_1088X612},
-       {1152, 720, VIA_RES_1152X720},
-       {1200, 720, VIA_RES_1200X720},
-       {1280, 600, VIA_RES_1280X600},
-       {1360, 768, VIA_RES_1360X768},
-       {1440, 900, VIA_RES_1440X900},
-       {1600, 900, VIA_RES_1600X900},
-       {1600, 1024, VIA_RES_1600X1024},
-       {1792, 1344, VIA_RES_1792X1344},
-       {1856, 1392, VIA_RES_1856X1392},
-       {1920, 1200, VIA_RES_1920X1200},
-       {2048, 1536, VIA_RES_2048X1536},
-       {0, 0, VIA_RES_INVALID}
-};
-
 static struct fb_ops viafb_ops;
 
 
@@ -1239,12 +1194,16 @@ int viafb_get_mode_index(int hres, int vres)
        u32 i;
        DEBUG_MSG(KERN_INFO "viafb_get_mode_index!\n");
 
-       for (i = 0; viafb_modentry[i].mode_index != VIA_RES_INVALID; i++)
-               if (viafb_modentry[i].xres == hres &&
-                       viafb_modentry[i].yres == vres)
+       for (i = 0; i < NUM_TOTAL_MODETABLE; i++)
+               if (CLE266Modes[i].mode_array &&
+                       CLE266Modes[i].crtc[0].crtc.hor_addr == hres &&
+                       CLE266Modes[i].crtc[0].crtc.ver_addr == vres)
                        break;
 
-       return viafb_modentry[i].mode_index;
+       if (i == NUM_TOTAL_MODETABLE)
+               return VIA_RES_INVALID;
+
+       return CLE266Modes[i].ModeIndex;
 }
 
 static void check_available_device_to_enable(int device_id)