2 *-----------------------------------------------------------------------------
3 * Filename: mode_table.c
5 *-----------------------------------------------------------------------------
6 * Copyright (c) 2002-2010, Intel Corporation.
8 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * of this software and associated documentation files (the "Software"), to deal
10 * in the Software without restriction, including without limitation the rights
11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 * copies of the Software, and to permit persons to whom the Software is
13 * furnished to do so, subject to the following conditions:
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26 *-----------------------------------------------------------------------------
28 * This file contains the mode resolution parameters.
29 *-----------------------------------------------------------------------------
39 * If CONFIG_LIMIT_MODES is not defined then ALL modes should be included.
40 * Keep the defines here so that when adding new modes it is apparent that
41 * you should add it to the list below.
43 #ifndef CONFIG_LIMIT_MODES
44 #define CONFIG_MODE_640x480x60
45 #define CONFIG_MODE_640x480x70
46 #define CONFIG_MODE_640x480x72
47 #define CONFIG_MODE_640x480x75
48 #define CONFIG_MODE_640x480x85
49 #define CONFIG_MODE_640x480x100
50 #define CONFIG_MODE_640x480x120
51 #define CONFIG_MODE_720x480x60
52 #define CONFIG_MODE_720x576x50
53 #define CONFIG_MODE_800x480x60
54 #define CONFIG_MODE_800x600x60
55 #define CONFIG_MODE_800x600x70
56 #define CONFIG_MODE_800x600x72
57 #define CONFIG_MODE_800x600x75
58 #define CONFIG_MODE_800x600x85
59 #define CONFIG_MODE_800x600x100
60 #define CONFIG_MODE_800x600x120
61 #define CONFIG_MODE_960x540x60
62 #define CONFIG_MODE_1024x768x60
63 #define CONFIG_MODE_1024x768x70
64 #define CONFIG_MODE_1024x768x75
65 #define CONFIG_MODE_1024x768x85
66 #define CONFIG_MODE_1024x768x100
67 #define CONFIG_MODE_1024x768x120
68 #define CONFIG_MODE_1152x864x60
69 #define CONFIG_MODE_1152x864x70
70 #define CONFIG_MODE_1152x864x72
71 #define CONFIG_MODE_1152x864x75
72 #define CONFIG_MODE_1152x864x85
73 #define CONFIG_MODE_1152x864x100
74 #define CONFIG_MODE_1280x720x60
75 #define CONFIG_MODE_1280x720x75
76 #define CONFIG_MODE_1280x720x85
77 #define CONFIG_MODE_1280x720x100
78 #define CONFIG_MODE_1280x768x60
79 #define CONFIG_MODE_1280x768x75
80 #define CONFIG_MODE_1280x768x85
81 #define CONFIG_MODE_1280x960x60
82 #define CONFIG_MODE_1280x960x75
83 #define CONFIG_MODE_1280x960x85
84 #define CONFIG_MODE_1280x1024x60
85 #define CONFIG_MODE_1280x1024x70
86 #define CONFIG_MODE_1280x1024x72
87 #define CONFIG_MODE_1280x1024x75
88 #define CONFIG_MODE_1280x1024x85
89 #define CONFIG_MODE_1280x1024x100
90 #define CONFIG_MODE_1280x1024x120
91 #define CONFIG_MODE_1366x768x60
92 #define CONFIG_MODE_1400x1050x60
93 #define CONFIG_MODE_1400x1050x75
94 #define CONFIG_MODE_1400x1050x85
95 #define CONFIG_MODE_1600x900x60
96 #define CONFIG_MODE_1600x900x75
97 #define CONFIG_MODE_1600x900x85
98 #define CONFIG_MODE_1600x900x100
99 #define CONFIG_MODE_1600x900x120
100 #define CONFIG_MODE_1600x1200x60
101 #define CONFIG_MODE_1600x1200x65
102 #define CONFIG_MODE_1600x1200x70
103 #define CONFIG_MODE_1600x1200x72
104 #define CONFIG_MODE_1600x1200x75
105 #define CONFIG_MODE_1600x1200x85
106 #define CONFIG_MODE_1600x1200x100
107 #define CONFIG_MODE_1600x1200x120
108 #define CONFIG_MODE_1856x1392x60
109 #define CONFIG_MODE_1856x1392x75
110 #define CONFIG_MODE_1920x1080x50
111 #define CONFIG_MODE_1920x1080x60
112 #define CONFIG_MODE_1920x1080x75
113 #define CONFIG_MODE_1920x1080x85
114 #define CONFIG_MODE_1920x1080x100
115 #define CONFIG_MODE_1920x1200x60
116 #define CONFIG_MODE_1920x1200x75
117 #define CONFIG_MODE_1920x1440x60
118 #define CONFIG_MODE_1920x1440x75
119 #define CONFIG_MODE_1920x1440x85
120 #define CONFIG_MODE_2048x1536x60
121 #define CONFIG_MODE_2048x1536x75
123 #define CONFIG_CEA_MODE_640x480px60
125 /* These are timings that has duplicate except the difference in aspect
126 ratio. Since IEGD does not support diffrent aspect ratio removing
127 these CEA timings for now */
129 #define CONFIG_CEA_MODE_720x480px60
130 #define CONFIG_CEA_MODE_720x576px50*/
131 #define CONFIG_CEA_MODE_720x480p_ax60
132 #define CONFIG_CEA_MODE_720x576p_ax50
133 #define CONFIG_CEA_MODE_1280x720p_ax50
134 #define CONFIG_CEA_MODE_1280x720p_ax60
135 #define CONFIG_CEA_MODE_1920x1080p_ax50
136 #define CONFIG_CEA_MODE_1920x1080p_ax60
137 #define CONFIG_CEA_MODE_1920x1080i_ax50
138 #define CONFIG_CEA_MODE_1920x1080i_ax60
139 #endif /* CONFIG_MICRO */
143 /*---------------------------------------------------------------------------
144 * Timing tables for CRT modes.
145 *---------------------------------------------------------------------------
148 igd_timing_info_t crt_timing_table[] =
150 /* TODO: Add VESA standard REDUCED BLANKING (RB) timings to the table */
151 #ifdef CONFIG_MODE_640x480x60
153 640, 480, /* width, height */
154 60, 25175, /* refresh, dot clock */
156 647, 791, /* hblank_start, hblank_end */
157 655, 751, /* hsync_start, hsync_end */
159 487, 516, /* vblank_start, vblank_end */
160 489, 491, /* vsync_start, vsync_end */
161 0x101, /* mode number */
162 PD_MODE_SUPPORTED | /* enable the mode */
163 IGD_MODE_VESA | /* VESA/VGA mode */
164 IGD_SCAN_PROGRESSIVE, /* mode info flags */
165 0, 0, /* x, y offset */
166 NULL, /* mode extension pointer */
167 0, /* device dependant */
168 0 /* device dependant */
171 #ifdef CONFIG_MODE_640x480x70
173 640, 480, /* width, height */
174 70, 28560, /* refresh, dot clock */
176 639, 815, /* hblank_start, hblank_end */
177 663, 727, /* hsync_start, hsync_end */
179 479, 499, /* vblank_start, vblank_end */
180 480, 483, /* vsync_start, vsync_end */
181 0x101, /* mode number */
182 PD_MODE_SUPPORTED | /* enable the mode */
183 IGD_MODE_VESA | /* VESA/VGA mode */
184 IGD_SCAN_PROGRESSIVE| /* mode info flags */
185 IGD_VSYNC_HIGH, /* polarity V+ */
186 0, 0, /* x, y offset */
187 NULL, /* mode extension pointer */
188 0, /* device dependant */
189 0 /* device dependant */
192 #ifdef CONFIG_MODE_640x480x72
194 640, 480, /* width, height */
195 72, 31500, /* refresh, dot clock */
197 647, 823, /* hblank_start, hblank_end */
198 663, 703, /* hsync_start, hsync_end */
200 487, 511, /* vblank_start, vblank_end */
201 488, 491, /* vsync_start, vsync_end */
202 0x101, /* mode number */
203 PD_MODE_SUPPORTED | /* enable the mode */
204 IGD_MODE_VESA | /* VESA/VGA mode */
205 IGD_SCAN_PROGRESSIVE, /* mode info flags */
206 0, 0, /* x, y offset */
207 NULL, /* mode extension pointer */
208 0, /* device dependant */
209 0 /* device dependant */
212 #ifdef CONFIG_MODE_640x480x75
214 640, 480, /* width, height */
215 75, 31500, /* refresh, dot clock */
217 639, 839, /* hblank_start, hblank_end */
218 655, 719, /* hsync_start, hsync_end */
220 479, 499, /* vblank_start, vblank_end */
221 480, 483, /* vsync_start, vsync_end */
222 0x101, /* mode number */
223 PD_MODE_SUPPORTED | /* enable the mode */
224 IGD_MODE_VESA | /* VESA/VGA mode */
225 IGD_SCAN_PROGRESSIVE, /* mode info flags */
226 0, 0, /* x, y offset */
227 NULL, /* mode extension pointer */
228 0, /* device dependant */
229 0 /* device dependant */
232 #ifdef CONFIG_MODE_640x480x85
234 640, 480, /* width, height */
235 85, 36000, /* refresh, dot clock */
237 639, 831, /* hblank_start, hblank_end */
238 695, 751, /* hsync_start, hsync_end */
240 479, 508, /* vblank_start, vblank_end */
241 480, 483, /* vsync_start, vsync_end */
242 0x101, /* mode number */
243 PD_MODE_SUPPORTED | /* enable the mode */
244 IGD_MODE_VESA | /* VESA/VGA mode */
245 IGD_SCAN_PROGRESSIVE, /* mode info flags */
246 0, 0, /* x, y offset */
247 NULL, /* mode extension pointer */
248 0, /* device dependant */
249 0 /* device dependant */
252 #ifdef CONFIG_MODE_640x480x100
254 640, 480, /* width, height */
255 100, 43163, /* refresh, dot clock */
257 639, 847, /* hblank_start, hblank_end */
258 679, 743, /* hsync_start, hsync_end */
260 479, 508, /* vblank_start, vblank_end */
261 480, 483, /* vsync_start, vsync_end */
262 0x00, /* mode number */
263 PD_MODE_SUPPORTED | /* enable the mode */
264 IGD_SCAN_PROGRESSIVE| /* mode info flags */
265 IGD_VSYNC_HIGH, /* polarity V+ */
266 0, 0, /* x, y offset */
267 NULL, /* mode extension pointer */
268 0, /* device dependant */
269 0 /* device dependant */
272 #ifdef CONFIG_MODE_640x480x120
274 640, 480, /* width, height */
275 120, 52406, /* refresh, dot clock */
277 639, 847, /* hblank_start, hblank_end */
278 679, 743, /* hsync_start, hsync_end */
280 479, 514, /* vblank_start, vblank_end */
281 480, 483, /* vsync_start, vsync_end */
282 0x00, /* mode number */
283 PD_MODE_SUPPORTED | /* enable the mode */
284 IGD_SCAN_PROGRESSIVE| /* mode info flags */
285 IGD_VSYNC_HIGH, /* polarity V+ */
286 0, 0, /* x, y offset */
287 NULL, /* mode extension pointer */
288 0, /* device dependant */
289 0 /* device dependant */
292 #ifdef CONFIG_MODE_720x400x70
293 /* NOTE: The above define is not auto-enabled. This is the VGA magic mode */
294 { /* VGA Mode 2+,3+ */
295 720, 400, /* width, height */
296 70, 28322, /* refresh, dot clock */
298 719, 899, /* hblank_start, hblank_end */
299 773, 881, /* hsync_start, hsync_end */
301 399, 448, /* vblank_start, vblank_end */
302 412, 414, /* vsync_start, vsync_end */
303 0x00, /* mode number */
304 PD_MODE_SUPPORTED | /* enable the mode */
306 IGD_SCAN_PROGRESSIVE, /* mode info flags */
307 0, 0, /* x, y offset */
308 NULL, /* mode extension pointer */
309 0, /* device dependant */
310 0 /* device dependant */
313 #ifdef CONFIG_MODE_720x480x60
315 720, 480, /* width, height */
316 60, 27000, /* refresh, dot clock */
318 719, 857, /* hblank_start, hblank_end */
319 735, 797, /* hsync_start, hsync_end */
321 479, 524, /* vblank_start, vblank_end */
322 488, 494, /* vsync_start, vsync_end */
323 0x00, /* mode number */
324 PD_MODE_SUPPORTED | /* enable the mode */
325 IGD_SCAN_PROGRESSIVE| /* mode info flags */
326 IGD_VSYNC_HIGH, /* polarity V+ */
327 0, 0, /* x, y offset */
328 NULL, /* mode extension pointer */
329 0, /* device dependant */
330 0 /* device dependant */
333 #ifdef CONFIG_MODE_720x576x50
335 720, 576, /* width, height */
336 50, 27500, /* refresh, dot clock */
338 719, 864, /* hblank_start, hblank_end */
339 732, 795, /* hsync_start, hsync_end */
341 575, 625, /* vblank_start, vblank_end */
342 581, 587, /* vsync_start, vsync_end */
343 0x00, /* mode number */
344 PD_MODE_SUPPORTED | /* enable the mode */
345 IGD_SCAN_PROGRESSIVE| /* mode info flags */
346 IGD_VSYNC_HIGH, /* polarity V+ */
347 0, 0, /* x, y offset */
348 NULL, /* mode extension pointer */
349 0, /* device dependant */
350 0 /* device dependant */
353 /* OFF BY Default, enable when PLB is merged */
354 #ifdef CONFIG_MODE_800x480x60
356 800, 480, /* width, height */
357 60, 33231, /* refresh, dot clock */
359 799, 1055, /* hblank_start, hblank_end */
360 863, 991, /* hsync_start, hsync_end */
362 479, 524, /* vblank_start, vblank_end */
363 500, 502, /* vsync_start, vsync_end */
364 0x00, /* mode number */
365 PD_MODE_SUPPORTED | /* enable the mode */
366 IGD_SCAN_PROGRESSIVE| /* mode info flags */
367 IGD_VSYNC_HIGH, /* polarity V+ */
368 0, 0, /* x, y offset */
369 NULL, /* mode extension pointer */
370 0, /* device dependant */
371 0 /* device dependant */
374 #ifdef CONFIG_MODE_800x600x60
376 800, 600, /* width, height */
377 60, 40000, /* refresh, dot clock */
379 799, 1055, /* hblank_start, hblank_end */
380 839, 967, /* hsync_start, hsync_end */
382 599, 627, /* vblank_start, vblank_end */
383 600, 604, /* vsync_start, vsync_end */
384 0x103, /* mode number */
385 PD_MODE_SUPPORTED | /* enable the mode */
386 IGD_MODE_VESA | /* VESA/VGA mode */
387 IGD_SCAN_PROGRESSIVE| /* mode info flags */
388 IGD_HSYNC_HIGH| /* polarity H+ */
389 IGD_VSYNC_HIGH, /* polarity V+ */
390 0, 0, /* x, y offset */
391 NULL, /* mode extension pointer */
392 0, /* device dependant */
393 0 /* device dependant */
396 #ifdef CONFIG_MODE_800x600x70
398 800, 600, /* width, height */
399 70, 45500, /* refresh, dot clock */
401 799, 1039, /* hblank_start, hblank_end */
402 839, 919, /* hsync_start, hsync_end */
404 599, 624, /* vblank_start, vblank_end */
405 600, 603, /* vsync_start, vsync_end */
406 0x103, /* mode number */
407 PD_MODE_SUPPORTED | /* enable the mode */
408 IGD_MODE_VESA | /* VESA/VGA mode */
409 IGD_SCAN_PROGRESSIVE| /* mode info flags */
410 IGD_VSYNC_HIGH, /* polarity V+ */
411 0, 0, /* x, y offset */
412 NULL, /* mode extension pointer */
413 0, /* device dependant */
414 0 /* device dependant */
417 #ifdef CONFIG_MODE_800x600x72
419 800, 600, /* width, height */
420 72, 50000, /* refresh, dot clock */
422 799, 1039, /* hblank_start, hblank_end */
423 855, 975, /* hsync_start, hsync_end */
425 599, 665, /* vblank_start, vblank_end */
426 636, 642, /* vsync_start, vsync_end */
427 0x103, /* mode number */
428 PD_MODE_SUPPORTED | /* enable the mode */
429 IGD_MODE_VESA | /* VESA/VGA mode */
430 IGD_SCAN_PROGRESSIVE| /* mode info flags */
431 IGD_HSYNC_HIGH| /* polarity H+ */
432 IGD_VSYNC_HIGH, /* polarity V+ */
433 0, 0, /* x, y offset */
434 NULL, /* mode extension pointer */
435 0, /* device dependant */
436 0 /* device dependant */
439 #ifdef CONFIG_MODE_800x600x75
441 800, 600, /* width, height */
442 75, 49500, /* refresh, dot clock */
444 799, 1055, /* hblank_start, hblank_end */
445 815, 895, /* hsync_start, hsync_end */
447 599, 624, /* vblank_start, vblank_end */
448 600, 603, /* vsync_start, vsync_end */
449 0x103, /* mode number */
450 PD_MODE_SUPPORTED | /* enable the mode */
451 IGD_MODE_VESA | /* VESA/VGA mode */
452 IGD_SCAN_PROGRESSIVE| /* mode info flags */
453 IGD_HSYNC_HIGH| /* polarity H+ */
454 IGD_VSYNC_HIGH, /* polarity V+ */
455 0, 0, /* x, y offset */
456 NULL, /* mode extension pointer */
457 0, /* device dependant */
458 0 /* device dependant */
461 #ifdef CONFIG_MODE_800x600x85
463 800, 600, /* width, height */
464 85, 56250, /* refresh, dot clock */
466 799, 1047, /* hblank_start, hblank_end */
467 831, 895, /* hsync_start, hsync_end */
469 599, 630, /* vblank_start, vblank_end */
470 600, 603, /* vsync_start, vsync_end */
471 0x103, /* mode number */
472 PD_MODE_SUPPORTED | /* enable the mode */
473 IGD_MODE_VESA | /* VESA/VGA mode */
474 IGD_SCAN_PROGRESSIVE| /* mode info flags */
475 IGD_HSYNC_HIGH| /* polarity H+ */
476 IGD_VSYNC_HIGH, /* polarity V+ */
477 0, 0, /* x, y offset */
478 NULL, /* mode extension pointer */
479 0, /* device dependant */
480 0 /* device dependant */
483 #ifdef CONFIG_MODE_800x600x100
485 800, 600, /* width, height */
486 100, 68179, /* refresh, dot clock */
488 799, 1071, /* hblank_start, hblank_end */
489 847, 935, /* hsync_start, hsync_end */
491 599, 635, /* vblank_start, vblank_end */
492 600, 603, /* vsync_start, vsync_end */
493 0x00, /* mode number */
494 PD_MODE_SUPPORTED | /* enable the mode */
495 IGD_SCAN_PROGRESSIVE| /* mode info flags */
496 IGD_VSYNC_HIGH, /* polarity V+ */
497 0, 0, /* x, y offset */
498 NULL, /* mode extension pointer */
499 0, /* device dependant */
500 0 /* device dependant */
503 #ifdef CONFIG_MODE_800x600x120
505 800, 600, /* width, height */
506 120, 83950, /* refresh, dot clock */
508 799, 1087, /* hblank_start, hblank_end */
509 855, 943, /* hsync_start, hsync_end */
511 599, 642, /* vblank_start, vblank_end */
512 600, 603, /* vsync_start, vsync_end */
513 0x00, /* mode number */
514 PD_MODE_SUPPORTED | /* enable the mode */
515 IGD_SCAN_PROGRESSIVE| /* mode info flags */
516 IGD_VSYNC_HIGH, /* polarity V+ */
517 0, 0, /* x, y offset */
518 NULL, /* mode extension pointer */
519 0, /* device dependant */
520 0 /* device dependant */
523 #ifdef CONFIG_MODE_960x540x60
525 960, 540, /* width, height */
526 60, 40785, /* refresh, dot clock */
528 959, 1215, /* hblank_start, hblank_end */
529 991, 1087, /* hsync_start, hsync_end */
531 539, 558, /* vblank_start, vblank_end */
532 540, 543, /* vsync_start, vsync_end */
533 0x00, /* mode number */
534 PD_MODE_SUPPORTED | /* enable the mode */
535 IGD_SCAN_PROGRESSIVE| /* mode info flags */
536 IGD_VSYNC_HIGH, /* polarity V+ */
537 0, 0, /* x, y offset */
538 NULL, /* mode extension pointer */
539 0, /* device dependant */
540 0 /* device dependant */
543 #ifdef CONFIG_MODE_1024x768x60
545 1024, 768, /* width, height */
546 60, 65000, /* refresh, dot clock */
548 1023, 1343, /* hblank_start, hblank_end */
549 1047, 1183, /* hsync_start, hsync_end */
551 767, 805, /* vblank_start, vblank_end */
552 770, 776, /* vsync_start, vsync_end */
553 0x105, /* mode number */
554 PD_MODE_SUPPORTED | /* enable the mode */
555 IGD_MODE_VESA | /* VESA/VGA mode */
556 IGD_SCAN_PROGRESSIVE, /* mode info flags */
557 0, 0, /* x, y offset */
558 NULL, /* mode extension pointer */
559 0, /* device dependant */
560 0 /* device dependant */
563 #ifdef CONFIG_MODE_1024x768x70
565 1024, 768, /* width, height */
566 70, 75000, /* refresh, dot clock */
568 1023, 1327, /* hblank_start, hblank_end */
569 1047, 1183, /* hsync_start, hsync_end */
571 767, 805, /* vblank_start, vblank_end */
572 770, 776, /* vsync_start, vsync_end */
573 0x105, /* mode number */
574 PD_MODE_SUPPORTED | /* enable the mode */
575 IGD_MODE_VESA | /* VESA/VGA mode */
576 IGD_SCAN_PROGRESSIVE, /* mode info flags */
577 0, 0, /* x, y offset */
578 NULL, /* mode extension pointer */
579 0, /* device dependant */
580 0 /* device dependant */
583 #ifdef CONFIG_MODE_1024x768x75
585 1024, 768, /* width, height */
586 75, 78750, /* refresh, dot clock */
588 1023, 1311, /* hblank_start, hblank_end */
589 1039, 1135, /* hsync_start, hsync_end */
591 767, 799, /* vblank_start, vblank_end */
592 768, 771, /* vsync_start, vsync_end */
593 0x105, /* mode number */
594 PD_MODE_SUPPORTED | /* enable the mode */
595 IGD_MODE_VESA | /* VESA/VGA mode */
596 IGD_SCAN_PROGRESSIVE| /* mode info flags */
597 IGD_HSYNC_HIGH| /* polarity H+ */
598 IGD_VSYNC_HIGH, /* polarity V+ */
599 0, 0, /* x, y offset */
600 NULL, /* mode extension pointer */
601 0, /* device dependant */
602 0 /* device dependant */
605 #ifdef CONFIG_MODE_1024x768x85
607 1024, 768, /* width, height */
608 85, 94500, /* refresh, dot clock */
610 1023, 1375, /* hblank_start, hblank_end */
611 1071, 1167, /* hsync_start, hsync_end */
613 767, 807, /* vblank_start, vblank_end */
614 768, 771, /* vsync_start, vsync_end */
615 0x105, /* mode number */
616 PD_MODE_SUPPORTED | /* enable the mode */
617 IGD_MODE_VESA | /* VESA/VGA mode */
618 IGD_SCAN_PROGRESSIVE| /* mode info flags */
619 IGD_HSYNC_HIGH| /* polarity H+ */
620 IGD_VSYNC_HIGH, /* polarity V+ */
621 0, 0, /* x, y offset */
622 NULL, /* mode extension pointer */
623 0, /* device dependant */
624 0 /* device dependant */
627 #ifdef CONFIG_MODE_1024x768x100
629 1024, 768, /* width, height */
630 100, 113310, /* refresh, dot clock */
632 1023, 1391, /* hblank_start, hblank_end */
633 1095, 1207, /* hsync_start, hsync_end */
635 767, 813, /* vblank_start, vblank_end */
636 768, 771, /* vsync_start, vsync_end */
637 0x00, /* mode number */
638 PD_MODE_SUPPORTED | /* enable the mode */
639 IGD_SCAN_PROGRESSIVE| /* mode info flags */
640 IGD_VSYNC_HIGH, /* polarity V+ */
641 0, 0, /* x, y offset */
642 NULL, /* mode extension pointer */
643 0, /* device dependant */
644 0 /* device dependant */
647 #ifdef CONFIG_MODE_1024x768x120
649 1024, 768, /* width, height */
650 120, 139050, /* refresh, dot clock */
652 1023, 1407, /* hblank_start, hblank_end */
653 1103, 1215, /* hsync_start, hsync_end */
655 767, 822, /* vblank_start, vblank_end */
656 768, 771, /* vsync_start, vsync_end */
657 0x00, /* mode number */
658 PD_MODE_SUPPORTED | /* enable the mode */
659 IGD_SCAN_PROGRESSIVE| /* mode info flags */
660 IGD_VSYNC_HIGH, /* polarity H+ */
661 0, 0, /* x, y offset */
662 NULL, /* mode extension pointer */
663 0, /* device dependant */
664 0 /* device dependant */
667 #ifdef CONFIG_MODE_1152x864x60
669 1152, 864, /* width, height */
670 60, 81624, /* refresh, dot clock */
672 1151, 1519, /* hblank_start, hblank_end */
673 1215, 1335, /* hsync_start, hsync_end */
675 863, 894, /* vblank_start, vblank_end */
676 864, 867, /* vsync_start, vsync_end */
677 0x00, /* mode number */
678 PD_MODE_SUPPORTED | /* enable the mode */
679 IGD_SCAN_PROGRESSIVE| /* mode info flags */
680 IGD_VSYNC_HIGH, /* polarity V+ */
681 0, 0, /* x, y offset */
682 NULL, /* mode extension pointer */
683 0, /* device dependant */
684 0 /* device dependant */
687 #ifdef CONFIG_MODE_1152x864x70
689 1152, 864, /* width, height */
690 70, 97000, /* refresh, dot clock */
692 1151, 1535, /* hblank_start, hblank_end */
693 1223, 1343, /* hsync_start, hsync_end */
695 863, 899, /* vblank_start, vblank_end */
696 864, 867, /* vsync_start, vsync_end */
697 0x00, /* mode number */
698 PD_MODE_SUPPORTED | /* enable the mode */
699 IGD_SCAN_PROGRESSIVE| /* mode info flags */
700 IGD_VSYNC_HIGH, /* polarity V+ */
701 0, 0, /* x, y offset */
702 NULL, /* mode extension pointer */
703 0, /* device dependant */
704 0 /* device dependant */
707 #ifdef CONFIG_MODE_1152x864x72
709 1152, 864, /* width, height */
710 72, 100000, /* refresh, dot clock */
712 1151, 1535, /* hblank_start, hblank_end */
713 1223, 1343, /* hsync_start, hsync_end */
715 863, 900, /* vblank_start, vblank_end */
716 864, 867, /* vsync_start, vsync_end */
717 0x00, /* mode number */
718 PD_MODE_SUPPORTED | /* enable the mode */
719 IGD_SCAN_PROGRESSIVE| /* mode info flags */
720 IGD_VSYNC_HIGH, /* polarity V+ */
721 0, 0, /* x, y offset */
722 NULL, /* mode extension pointer */
723 0, /* device dependant */
724 0 /* device dependant */
727 #ifdef CONFIG_MODE_1152x864x75
729 1152, 864, /* width, height */
730 75, 108000, /* refresh, dot clock */
732 1151, 1599, /* hblank_start, hblank_end */
733 1215, 1343, /* hsync_start, hsync_end */
735 863, 899, /* vblank_start, vblank_end */
736 864, 867, /* vsync_start, vsync_end */
737 0x00, /* mode number */
738 PD_MODE_SUPPORTED | /* enable the mode */
739 IGD_SCAN_PROGRESSIVE| /* mode info flags */
740 IGD_HSYNC_HIGH| /* polarity H+ */
741 IGD_VSYNC_HIGH, /* polarity V+ */
742 0, 0, /* x, y offset */
743 NULL, /* mode extension pointer */
744 0, /* device dependant */
745 0 /* device dependant */
748 #ifdef CONFIG_MODE_1152x864x85
750 1152, 864, /* width, height */
751 85, 120000, /* refresh, dot clock */
753 1151, 1551, /* hblank_start, hblank_end */
754 1223, 1351, /* hsync_start, hsync_end */
756 863, 906, /* vblank_start, vblank_end */
757 864, 867, /* vsync_start, vsync_end */
758 0x00, /* mode number */
759 PD_MODE_SUPPORTED | /* enable the mode */
760 IGD_SCAN_PROGRESSIVE| /* mode info flags */
761 IGD_VSYNC_HIGH, /* polarity V+ */
762 0, 0, /* x, y offset */
763 NULL, /* mode extension pointer */
764 0, /* device dependant */
765 0 /* device dependant */
768 #ifdef CONFIG_MODE_1152x864x100
770 1152, 864, /* width, height */
771 100, 144000, /* refresh, dot clock */
773 1151, 1567, /* hblank_start, hblank_end */
774 1231, 1359, /* hsync_start, hsync_end */
776 863, 914, /* vblank_start, vblank_end */
777 864, 867, /* vsync_start, vsync_end */
778 0x00, /* mode number */
779 PD_MODE_SUPPORTED | /* enable the mode */
780 IGD_SCAN_PROGRESSIVE| /* mode info flags */
781 IGD_VSYNC_HIGH, /* polarity V+ */
782 0, 0, /* x, y offset */
783 NULL, /* mode extension pointer */
784 0, /* device dependant */
785 0 /* device dependant */
788 #ifdef CONFIG_MODE_1280x720x60
790 1280, 720, /* width, height */
791 60, 74481, /* refresh, dot clock */
793 1279, 1663, /* hblank_start, hblank_end */
794 1335, 1471, /* hsync_start, hsync_end */
796 719, 745, /* vblank_start, vblank_end */
797 720, 723, /* vsync_start, vsync_end */
798 0x00, /* mode number */
799 PD_MODE_SUPPORTED | /* enable the mode */
800 IGD_SCAN_PROGRESSIVE| /* mode info flags */
801 IGD_VSYNC_HIGH, /* polarity V+ */
802 0, 0, /* x, y offset */
803 NULL, /* mode extension pointer */
804 0, /* device dependant */
805 0 /* device dependant */
808 #ifdef CONFIG_MODE_1280x720x75
810 1280, 720, /* width, height */
811 75, 96000, /* refresh, dot clock */
813 1279, 1695, /* hblank_start, hblank_end */
814 1351, 1487, /* hsync_start, hsync_end */
816 719, 751, /* vblank_start, vblank_end */
817 720, 723, /* vsync_start, vsync_end */
818 0x00, /* mode number */
819 PD_MODE_SUPPORTED | /* enable the mode */
820 IGD_SCAN_PROGRESSIVE| /* mode info flags */
821 IGD_VSYNC_HIGH, /* polarity V+ */
822 0, 0, /* x, y offset */
823 NULL, /* mode extension pointer */
824 0, /* device dependant */
825 0 /* device dependant */
828 #ifdef CONFIG_MODE_1280x720x85
830 1280, 720, /* width, height */
831 85, 110000, /* refresh, dot clock */
833 1279, 1711, /* hblank_start, hblank_end */
834 1359, 1495, /* hsync_start, hsync_end */
836 719, 755, /* vblank_start, vblank_end */
837 720, 723, /* vsync_start, vsync_end */
838 0x00, /* mode number */
839 PD_MODE_SUPPORTED | /* enable the mode */
840 IGD_SCAN_PROGRESSIVE| /* mode info flags */
841 IGD_VSYNC_HIGH, /* polarity V+ */
842 0, 0, /* x, y offset */
843 NULL, /* mode extension pointer */
844 0, /* device dependant */
845 0 /* device dependant */
848 #ifdef CONFIG_MODE_1280x720x100
850 1280, 720, /* width, height */
851 100, 131850, /* refresh, dot clock */
853 1279, 1727, /* hblank_start, hblank_end */
854 1367, 1503, /* hsync_start, hsync_end */
856 719, 762, /* vblank_start, vblank_end */
857 720, 723, /* vsync_start, vsync_end */
858 0x00, /* mode number */
859 PD_MODE_SUPPORTED | /* enable the mode */
860 IGD_SCAN_PROGRESSIVE| /* mode info flags */
861 IGD_VSYNC_HIGH, /* polarity V+ */
862 0, 0, /* x, y offset */
863 NULL, /* mode extension pointer */
864 0, /* device dependant */
865 0 /* device dependant */
868 #ifdef CONFIG_MODE_1280x768x60
870 1280, 768, /* width, height */
871 60, 80136, /* refresh, dot clock */
873 1279, 1679, /* hblank_start, hblank_end */
874 1343, 1479, /* hsync_start, hsync_end */
876 767, 794, /* vblank_start, vblank_end */
877 768, 771, /* vsync_start, vsync_end */
878 0x00, /* mode number */
879 PD_MODE_SUPPORTED | /* enable the mode */
880 IGD_SCAN_PROGRESSIVE| /* mode info flags */
881 IGD_VSYNC_HIGH, /* polarity V+ */
882 0, 0, /* x, y offset */
883 NULL, /* mode extension pointer */
884 0, /* device dependant */
885 0 /* device dependant */
888 #ifdef CONFIG_MODE_1280x768x75
890 1280, 768, /* width, height */
891 75, 102977, /* refresh, dot clock */
893 1279, 1711, /* hblank_start, hblank_end */
894 1359, 1495, /* hsync_start, hsync_end */
896 767, 801, /* vblank_start, vblank_end */
897 768, 771, /* vsync_start, vsync_end */
898 0x00, /* mode number */
899 PD_MODE_SUPPORTED | /* enable the mode */
900 IGD_SCAN_PROGRESSIVE| /* mode info flags */
901 IGD_VSYNC_HIGH, /* polarity V+ */
902 0, 0, /* x, y offset */
903 NULL, /* mode extension pointer */
904 0, /* device dependant */
905 0 /* device dependant */
908 #ifdef CONFIG_MODE_1280x768x85
910 1280, 768, /* width, height */
911 85, 118532, /* refresh, dot clock */
913 1279, 1727, /* hblank_start, hblank_end */
914 1367, 1503, /* hsync_start, hsync_end */
916 767, 806, /* vblank_start, vblank_end */
917 768, 771, /* vsync_start, vsync_end */
918 0x00, /* mode number */
919 PD_MODE_SUPPORTED | /* enable the mode */
920 IGD_SCAN_PROGRESSIVE| /* mode info flags */
921 IGD_VSYNC_HIGH, /* polarity V+ */
922 0, 0, /* x, y offset */
923 NULL, /* mode extension pointer */
924 0, /* device dependant */
925 0 /* device dependant */
928 #ifdef CONFIG_MODE_1280x960x60
930 1280, 960, /* width, height */
931 60, 108000, /* refresh, dot clock */
933 1279, 1799, /* hblank_start, hblank_end */
934 1375, 1487, /* hsync_start, hsync_end */
936 959, 999, /* vblank_start, vblank_end */
937 960, 963, /* vsync_start, vsync_end */
938 0x00, /* mode number */
939 PD_MODE_SUPPORTED | /* enable the mode */
940 IGD_SCAN_PROGRESSIVE| /* mode info flags */
941 IGD_HSYNC_HIGH| /* polarity H+ */
942 IGD_VSYNC_HIGH, /* polarity V+ */
943 0, 0, /* x, y offset */
944 NULL, /* mode extension pointer */
945 0, /* device dependant */
946 0 /* device dependant */
949 #ifdef CONFIG_MODE_1280x960x75
951 1280, 960, /* width, height */
952 75, 129859, /* refresh, dot clock */
954 1279, 1727, /* hblank_start, hblank_end */
955 1367, 1503, /* hsync_start, hsync_end */
957 959, 1001, /* vblank_start, vblank_end */
958 960, 963, /* vsync_start, vsync_end */
959 0x00, /* mode number */
960 PD_MODE_SUPPORTED | /* enable the mode */
961 IGD_SCAN_PROGRESSIVE| /* mode info flags */
962 IGD_VSYNC_HIGH, /* polarity V+ */
963 0, 0, /* x, y offset */
964 NULL, /* mode extension pointer */
965 0, /* device dependant */
966 0 /* device dependant */
969 #ifdef CONFIG_MODE_1280x960x85
971 1280, 960, /* width, height */
972 85, 148500, /* refresh, dot clock */
974 1279, 1727, /* hblank_start, hblank_end */
975 1343, 1503, /* hsync_start, hsync_end */
977 959, 1010, /* vblank_start, vblank_end */
978 960, 963, /* vsync_start, vsync_end */
979 0x00, /* mode number */
980 PD_MODE_SUPPORTED | /* enable the mode */
981 IGD_SCAN_PROGRESSIVE| /* mode info flags */
982 IGD_HSYNC_HIGH| /* polarity H+ */
983 IGD_VSYNC_HIGH, /* polarity V+ */
984 0, 0, /* x, y offset */
985 NULL, /* mode extension pointer */
986 0, /* device dependant */
987 0 /* device dependant */
990 #ifdef CONFIG_MODE_1280x1024x60
992 1280, 1024, /* width, height */
993 60, 108000, /* refresh, dot clock */
995 1279, 1687, /* hblank_start, hblank_end */
996 1327, 1439, /* hsync_start, hsync_end */
998 1023, 1065, /* vblank_start, vblank_end */
999 1024, 1027, /* vsync_start, vsync_end */
1000 0x107, /* mode number */
1001 PD_MODE_SUPPORTED | /* enable the mode */
1002 IGD_MODE_VESA | /* VESA/VGA mode */
1003 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1004 IGD_HSYNC_HIGH| /* polarity H+ */
1005 IGD_VSYNC_HIGH, /* polarity V+ */
1006 0, 0, /* x, y offset */
1007 NULL, /* mode extension pointer */
1008 0, /* device dependant */
1009 0 /* device dependant */
1012 #ifdef CONFIG_MODE_1280x1024x70
1014 1280, 1024, /* width, height */
1015 70, 129000, /* refresh, dot clock */
1017 1279, 1727, /* hblank_start, hblank_end */
1018 1367, 1503, /* hsync_start, hsync_end */
1020 1023, 1065, /* vblank_start, vblank_end */
1021 1024, 1027, /* vsync_start, vsync_end */
1022 0x107, /* mode number */
1023 PD_MODE_SUPPORTED | /* enable the mode */
1024 IGD_MODE_VESA | /* VESA/VGA mode */
1025 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1026 IGD_VSYNC_HIGH, /* polarity V+ */
1027 0, 0, /* x, y offset */
1028 NULL, /* mode extension pointer */
1029 0, /* device dependant */
1030 0 /* device dependant */
1033 #ifdef CONFIG_MODE_1280x1024x72
1035 1280, 1024, /* width, height */
1036 72, 133000, /* refresh, dot clock */
1038 1279, 1727, /* hblank_start, hblank_end */
1039 1367, 1503, /* hsync_start, hsync_end */
1041 1023, 1066, /* vblank_start, vblank_end */
1042 1024, 1027, /* vsync_start, vsync_end */
1043 0x107, /* mode number */
1044 PD_MODE_SUPPORTED | /* enable the mode */
1045 IGD_MODE_VESA | /* VESA/VGA mode */
1046 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1047 IGD_HSYNC_HIGH| /* polarity H+ */
1048 IGD_VSYNC_HIGH, /* polarity V+ */
1049 0, 0, /* x, y offset */
1050 NULL, /* mode extension pointer */
1051 0, /* device dependant */
1052 0 /* device dependant */
1055 #ifdef CONFIG_MODE_1280x1024x75
1057 1280, 1024, /* width, height */
1058 75, 135000, /* refresh, dot clock */
1060 1279, 1687, /* hblank_start, hblank_end */
1061 1295, 1439, /* hsync_start, hsync_end */
1063 1023, 1065, /* vblank_start, vblank_end */
1064 1024, 1027, /* vsync_start, vsync_end */
1065 0x107, /* mode number */
1066 PD_MODE_SUPPORTED | /* enable the mode */
1067 IGD_MODE_VESA | /* VESA/VGA mode */
1068 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1069 IGD_HSYNC_HIGH| /* polarity H+ */
1070 IGD_VSYNC_HIGH, /* polarity V+ */
1071 0, 0, /* x, y offset */
1072 NULL, /* mode extension pointer */
1073 0, /* device dependant */
1074 0 /* device dependant */
1077 #ifdef CONFIG_MODE_1280x1024x85
1079 1280, 1024, /* width, height */
1080 85, 157500, /* refresh, dot clock */
1082 1279, 1727, /* hblank_start, hblank_end */
1083 1343, 1503, /* hsync_start, hsync_end */
1085 1023, 1071, /* vblank_start, vblank_end */
1086 1024, 1027, /* vsync_start, vsync_end */
1087 0x107, /* mode number */
1088 PD_MODE_SUPPORTED | /* enable the mode */
1089 IGD_MODE_VESA | /* VESA/VGA mode */
1090 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1091 IGD_HSYNC_HIGH| /* polarity H+ */
1092 IGD_VSYNC_HIGH, /* polarity V+ */
1093 0, 0, /* x, y offset */
1094 NULL, /* mode extension pointer */
1095 0, /* device dependant */
1096 0 /* device dependant */
1099 #ifdef CONFIG_MODE_1280x1024x100
1101 1280, 1024, /* width, height */
1102 100, 190960, /* refresh, dot clock */
1104 1279, 1759, /* hblank_start, hblank_end */
1105 1375, 1519, /* hsync_start, hsync_end */
1107 1023, 1084, /* vblank_start, vblank_end */
1108 1024, 1027, /* vsync_start, vsync_end */
1109 0x00, /* mode number */
1110 PD_MODE_SUPPORTED | /* enable the mode */
1111 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1112 IGD_VSYNC_HIGH, /* polarity V+ */
1113 0, 0, /* x, y offset */
1114 NULL, /* mode extension pointer */
1115 0, /* device dependant */
1116 0 /* device dependant */
1119 #ifdef CONFIG_MODE_1280x1024x120
1121 1280, 1024, /* width, height */
1122 120, 233790, /* refresh, dot clock */
1124 1279, 1775, /* hblank_start, hblank_end */
1125 1383, 1527, /* hsync_start, hsync_end */
1127 1023, 1096, /* vblank_start, vblank_end */
1128 1024, 1027, /* vsync_start, vsync_end */
1129 0x00, /* mode number */
1130 PD_MODE_SUPPORTED | /* enable the mode */
1131 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1132 IGD_VSYNC_HIGH, /* polarity V+ */
1133 0, 0, /* x, y offset */
1134 NULL, /* mode extension pointer */
1135 0, /* device dependant */
1136 0 /* device dependant */
1139 #ifdef CONFIG_MODE_1366x768x60
1141 1366, 768, /* width, height */
1142 60, 74057, /* refresh, dot clock */
1144 1365, 1663, /* hblank_start, hblank_end */
1145 1429, 1557, /* hsync_start, hsync_end */
1147 767, 775, /* vblank_start, vblank_end */
1148 768, 769, /* vsync_start, vsync_end */
1149 0x00, /* mode number */
1150 PD_MODE_SUPPORTED | /* enable the mode */
1151 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1152 IGD_VSYNC_HIGH | /* polarity V+ */
1153 IGD_HSYNC_HIGH, /* polarity H+ */
1154 0, 0, /* x, y offset */
1155 NULL, /* mode extension pointer */
1156 0, /* device dependant */
1157 0 /* device dependant */
1161 #ifdef CONFIG_MODE_1400x1050x60
1163 1400, 1050, /* width, height */
1164 60, 122000, /* refresh, dot clock */
1166 1399, 1879, /* hblank_start, hblank_end */
1167 1487, 1639, /* hsync_start, hsync_end */
1169 1049, 1086, /* vblank_start, vblank_end */
1170 1050, 1053, /* vsync_start, vsync_end */
1171 0x00, /* mode number */
1172 PD_MODE_SUPPORTED | /* enable the mode */
1173 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1174 IGD_VSYNC_HIGH, /* polarity V+ */
1175 0, 0, /* x, y offset */
1176 NULL, /* mode extension pointer */
1177 0, /* device dependant */
1178 0 /* device dependant */
1181 #ifdef CONFIG_MODE_1400x1050x75
1183 1400, 1050, /* width, height */
1184 75, 155851, /* refresh, dot clock */
1186 1399, 1895, /* hblank_start, hblank_end */
1187 1495, 1647, /* hsync_start, hsync_end */
1189 1049, 1095, /* vblank_start, vblank_end */
1190 1050, 1053, /* vsync_start, vsync_end */
1191 0x00, /* mode number */
1192 PD_MODE_SUPPORTED | /* enable the mode */
1193 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1194 IGD_VSYNC_HIGH, /* polarity V+ */
1195 0, 0, /* x, y offset */
1196 NULL, /* mode extension pointer */
1197 0, /* device dependant */
1198 0 /* device dependant */
1201 #ifdef CONFIG_MODE_1400x1050x85
1203 1400, 1050, /* width, height */
1204 85, 179260, /* refresh, dot clock */
1206 1399, 1911, /* hblank_start, hblank_end */
1207 1503, 1655, /* hsync_start, hsync_end */
1209 1049, 1102, /* vblank_start, vblank_end */
1210 1050, 1053, /* vsync_start, vsync_end */
1211 0x00, /* mode number */
1212 PD_MODE_SUPPORTED | /* enable the mode */
1213 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1214 IGD_VSYNC_HIGH, /* polarity V+ */
1215 0, 0, /* x, y offset */
1216 NULL, /* mode extension pointer */
1217 0, /* device dependant */
1218 0 /* device dependant */
1221 #ifdef CONFIG_MODE_1600x900x60
1223 1600, 900, /* width, height */
1224 60, 119000, /* refresh, dot clock */
1226 1599, 2127, /* hblank_start, hblank_end */
1227 1695, 1863, /* hsync_start, hsync_end */
1229 899, 931, /* vblank_start, vblank_end */
1230 900, 903, /* vsync_start, vsync_end */
1231 0x00, /* mode number */
1232 PD_MODE_SUPPORTED | /* enable the mode */
1233 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1234 IGD_VSYNC_HIGH, /* polarity V+ */
1235 0, 0, /* x, y offset */
1236 NULL, /* mode extension pointer */
1237 0, /* device dependant */
1238 0 /* device dependant */
1241 #ifdef CONFIG_MODE_1600x900x75
1243 1600, 900, /* width, height */
1244 75, 152000, /* refresh, dot clock */
1246 1599, 2159, /* hblank_start, hblank_end */
1247 1703, 1879, /* hsync_start, hsync_end */
1249 899, 939, /* vblank_start, vblank_end */
1250 900, 903, /* vsync_start, vsync_end */
1251 0x00, /* mode number */
1252 PD_MODE_SUPPORTED | /* enable the mode */
1253 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1254 IGD_VSYNC_HIGH, /* polarity V+ */
1255 0, 0, /* x, y offset */
1256 NULL, /* mode extension pointer */
1257 0, /* device dependant */
1258 0 /* device dependant */
1261 #ifdef CONFIG_MODE_1600x900x85
1263 1600, 900, /* width, height */
1264 85, 175000, /* refresh, dot clock */
1266 1599, 2175, /* hblank_start, hblank_end */
1267 1711, 1887, /* hsync_start, hsync_end */
1269 899, 944, /* vblank_start, vblank_end */
1270 900, 903, /* vsync_start, vsync_end */
1271 0x00, /* mode number */
1272 PD_MODE_SUPPORTED | /* enable the mode */
1273 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1274 IGD_VSYNC_HIGH, /* polarity V+ */
1275 0, 0, /* x, y offset */
1276 NULL, /* mode extension pointer */
1277 0, /* device dependant */
1278 0 /* device dependant */
1281 #ifdef CONFIG_MODE_1600x900x100
1283 1600, 900, /* width, height */
1284 100, 208900, /* refresh, dot clock */
1286 1599, 2191, /* hblank_start, hblank_end */
1287 1719, 1895, /* hsync_start, hsync_end */
1289 899, 952, /* vblank_start, vblank_end */
1290 900, 903, /* vsync_start, vsync_end */
1291 0x00, /* mode number */
1292 PD_MODE_SUPPORTED | /* enable the mode */
1293 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1294 IGD_VSYNC_HIGH, /* polarity V+ */
1295 0, 0, /* x, y offset */
1296 NULL, /* mode extension pointer */
1297 0, /* device dependant */
1298 0 /* device dependant */
1301 #ifdef CONFIG_MODE_1600x900x120
1303 1600, 900, /* width, height */
1304 120, 255686, /* refresh, dot clock */
1306 1599, 2207, /* hblank_start, hblank_end */
1307 1727, 1903, /* hsync_start, hsync_end */
1309 899, 964, /* vblank_start, vblank_end */
1310 900, 903, /* vsync_start, vsync_end */
1311 0x00, /* mode number */
1312 PD_MODE_SUPPORTED | /* enable the mode */
1313 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1314 IGD_VSYNC_HIGH, /* polarity V+ */
1315 0, 0, /* x, y offset */
1316 NULL, /* mode extension pointer */
1317 0, /* device dependant */
1318 0 /* device dependant */
1321 #ifdef CONFIG_MODE_1600x1200x60
1323 1600, 1200, /* width, height */
1324 60, 162000, /* refresh, dot clock */
1326 1599, 2159, /* hblank_start, hblank_end */
1327 1663, 1855, /* hsync_start, hsync_end */
1329 1199, 1249, /* vblank_start, vblank_end */
1330 1200, 1203, /* vsync_start, vsync_end */
1331 0x00, /* mode number */
1332 PD_MODE_SUPPORTED | /* enable the mode */
1333 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1334 IGD_HSYNC_HIGH| /* polarity H+ */
1335 IGD_VSYNC_HIGH, /* polarity V+ */
1336 0, 0, /* x, y offset */
1337 NULL, /* mode extension pointer */
1338 0, /* device dependant */
1339 0 /* device dependant */
1342 #ifdef CONFIG_MODE_1600x1200x65
1344 1600, 1200, /* width, height */
1345 65, 175500, /* refresh, dot clock */
1347 1599, 2159, /* hblank_start, hblank_end */
1348 1663, 1855, /* hsync_start, hsync_end */
1350 1199, 1249, /* vblank_start, vblank_end */
1351 1200, 1203, /* vsync_start, vsync_end */
1352 0x00, /* mode number */
1353 PD_MODE_SUPPORTED | /* enable the mode */
1354 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1355 IGD_HSYNC_HIGH| /* polarity H+ */
1356 IGD_VSYNC_HIGH, /* polarity V+ */
1357 0, 0, /* x, y offset */
1358 NULL, /* mode extension pointer */
1359 0, /* device dependant */
1360 0 /* device dependant */
1363 #ifdef CONFIG_MODE_1600x1200x70
1365 1600, 1200, /* width, height */
1366 70, 189000, /* refresh, dot clock */
1368 1599, 2159, /* hblank_start, hblank_end */
1369 1663, 1855, /* hsync_start, hsync_end */
1371 1199, 1249, /* vblank_start, vblank_end */
1372 1200, 1203, /* vsync_start, vsync_end */
1373 0x00, /* mode number */
1374 PD_MODE_SUPPORTED | /* enable the mode */
1375 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1376 IGD_HSYNC_HIGH| /* polarity H+ */
1377 IGD_VSYNC_HIGH, /* polarity V+ */
1378 0, 0, /* x, y offset */
1379 NULL, /* mode extension pointer */
1380 0, /* device dependant */
1381 0 /* device dependant */
1384 #ifdef CONFIG_MODE_1600x1200x72
1386 1600, 1200, /* width, height */
1387 72, 195000, /* refresh, dot clock */
1389 1599, 2175, /* hblank_start, hblank_end */
1390 1711, 1887, /* hsync_start, hsync_end */
1392 1199, 1250, /* vblank_start, vblank_end */
1393 1200, 1203, /* vsync_start, vsync_end */
1394 0x00, /* mode number */
1395 PD_MODE_SUPPORTED | /* enable the mode */
1396 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1397 IGD_VSYNC_HIGH, /* polarity V+ */
1398 0, 0, /* x, y offset */
1399 NULL, /* mode extension pointer */
1400 0, /* device dependant */
1401 0 /* device dependant */
1404 #ifdef CONFIG_MODE_1600x1200x75
1406 1600, 1200, /* width, height */
1407 75, 202500, /* refresh, dot clock */
1409 1599, 2159, /* hblank_start, hblank_end */
1410 1663, 1855, /* hsync_start, hsync_end */
1412 1199, 1249, /* vblank_start, vblank_end */
1413 1200, 1203, /* vsync_start, vsync_end */
1414 0x00, /* mode number */
1415 PD_MODE_SUPPORTED | /* enable the mode */
1416 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1417 IGD_HSYNC_HIGH| /* polarity H+ */
1418 IGD_VSYNC_HIGH, /* polarity V+ */
1419 0, 0, /* x, y offset */
1420 NULL, /* mode extension pointer */
1421 0, /* device dependant */
1422 0 /* device dependant */
1425 #ifdef CONFIG_MODE_1600x1200x85
1427 1600, 1200, /* width, height */
1428 85, 229500, /* refresh, dot clock */
1430 1599, 2159, /* hblank_start, hblank_end */
1431 1663, 1855, /* hsync_start, hsync_end */
1433 1199, 1249, /* vblank_start, vblank_end */
1434 1200, 1203, /* vsync_start, vsync_end */
1435 0x00, /* mode number */
1436 PD_MODE_SUPPORTED | /* enable the mode */
1437 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1438 IGD_HSYNC_HIGH| /* polarity H+ */
1439 IGD_VSYNC_HIGH, /* polarity V+ */
1440 0, 0, /* x, y offset */
1441 NULL, /* mode extension pointer */
1442 0, /* device dependant */
1443 0 /* device dependant */
1446 #ifdef CONFIG_MODE_1600x1200x100
1448 1600, 1200, /* width, height */
1449 100, 280640, /* refresh, dot clock */
1451 1599, 2207, /* hblank_start, hblank_end */
1452 1727, 1903, /* hsync_start, hsync_end */
1454 1199, 1270, /* vblank_start, vblank_end */
1455 1200, 1203, /* vsync_start, vsync_end */
1456 0x00, /* mode number */
1457 PD_MODE_SUPPORTED | /* enable the mode */
1458 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1459 IGD_VSYNC_HIGH, /* polarity V+ */
1460 0, 0, /* x, y offset */
1461 NULL, /* mode extension pointer */
1462 0, /* device dependant */
1463 0 /* device dependant */
1466 #ifdef CONFIG_MODE_1600x1200x120
1468 1600, 1200, /* width, height */
1469 120, 343210, /* refresh, dot clock */
1471 1599, 2223, /* hblank_start, hblank_end */
1472 1735, 1911, /* hsync_start, hsync_end */
1474 1199, 1285, /* vblank_start, vblank_end */
1475 1200, 1203, /* vsync_start, vsync_end */
1476 0x00, /* mode number */
1477 PD_MODE_SUPPORTED | /* enable the mode */
1478 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1479 IGD_VSYNC_HIGH, /* polarity V+ */
1480 0, 0, /* x, y offset */
1481 NULL, /* mode extension pointer */
1482 0, /* device dependant */
1483 0 /* device dependant */
1486 #ifdef CONFIG_MODE_1856x1392x60
1488 1856, 1392, /* width, height */
1489 60, 218250, /* refresh, dot clock */
1491 1855, 2527, /* hblank_start, hblank_end */
1492 1951, 2175, /* hsync_start, hsync_end */
1494 1391, 1438, /* vblank_start, vblank_end */
1495 1392, 1395, /* vsync_start, vsync_end */
1496 0x00, /* mode number */
1497 PD_MODE_SUPPORTED | /* enable the mode */
1498 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1499 IGD_VSYNC_HIGH, /* polarity V+ */
1500 0, 0, /* x, y offset */
1501 NULL, /* mode extension pointer */
1502 0, /* device dependant */
1503 0 /* device dependant */
1506 #ifdef CONFIG_MODE_1856x1392x75
1508 1856, 1392, /* width, height */
1509 75, 288000, /* refresh, dot clock */
1511 1855, 2559, /* hblank_start, hblank_end */
1512 1983, 2207, /* hsync_start, hsync_end */
1514 1391, 1499, /* vblank_start, vblank_end */
1515 1392, 1395, /* vsync_start, vsync_end */
1516 0x00, /* mode number */
1517 PD_MODE_SUPPORTED | /* enable the mode */
1518 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1519 IGD_VSYNC_HIGH, /* polarity V+ */
1520 0, 0, /* x, y offset */
1521 NULL, /* mode extension pointer */
1522 0, /* device dependant */
1523 0 /* device dependant */
1526 #ifdef CONFIG_MODE_1920x1080x50
1528 1920, 1080, /* width, height */
1529 50, 141446, /* refresh, dot clock */
1531 1919, 2543, /* hblank_start, hblank_end */
1532 2031, 2231, /* hsync_start, hsync_end */
1534 1079, 1111, /* vblank_start, vblank_end */
1535 1080, 1083, /* vsync_start, vsync_end */
1536 0x00, /* mode number */
1537 PD_MODE_SUPPORTED | /* enable the mode */
1538 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1539 IGD_VSYNC_HIGH, /* polarity V+ */
1540 0, 0, /* x, y offset */
1541 NULL, /* mode extension pointer */
1542 0, /* device dependant */
1543 0 /* device dependant */
1546 #ifdef CONFIG_MODE_1920x1080x60
1548 1920, 1080, /* width, height */
1549 60, 172800, /* refresh, dot clock */
1551 1919, 2575, /* hblank_start, hblank_end */
1552 2039, 2247, /* hsync_start, hsync_end */
1554 1079, 1117, /* vblank_start, vblank_end */
1555 1080, 1083, /* vsync_start, vsync_end */
1556 0x00, /* mode number */
1557 PD_MODE_SUPPORTED | /* enable the mode */
1558 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1559 IGD_VSYNC_HIGH, /* polarity V+ */
1560 0, 0, /* x, y offset */
1561 NULL, /* mode extension pointer */
1562 0, /* device dependant */
1563 0 /* device dependant */
1566 #ifdef CONFIG_MODE_1920x1080x75
1568 1920, 1080, /* width, height */
1569 75, 220640, /* refresh, dot clock */
1571 1919, 2607, /* hblank_start, hblank_end */
1572 2055, 2263, /* hsync_start, hsync_end */
1574 1079, 1127, /* vblank_start, vblank_end */
1575 1080, 1083, /* vsync_start, vsync_end */
1576 0x00, /* mode number */
1577 PD_MODE_SUPPORTED | /* enable the mode */
1578 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1579 IGD_VSYNC_HIGH, /* polarity V+ */
1580 0, 0, /* x, y offset */
1581 NULL, /* mode extension pointer */
1582 0, /* device dependant */
1583 0 /* device dependant */
1586 #ifdef CONFIG_MODE_1920x1080x85
1588 1920, 1080, /* width, height */
1589 85, 252930, /* refresh, dot clock */
1591 1919, 2623, /* hblank_start, hblank_end */
1592 2063, 2271, /* hsync_start, hsync_end */
1594 1079, 1133, /* vblank_start, vblank_end */
1595 1080, 1083, /* vsync_start, vsync_end */
1596 0x00, /* mode number */
1597 PD_MODE_SUPPORTED | /* enable the mode */
1598 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1599 IGD_VSYNC_HIGH, /* polarity V+ */
1600 0, 0, /* x, y offset */
1601 NULL, /* mode extension pointer */
1602 0, /* device dependant */
1603 0 /* device dependant */
1606 #ifdef CONFIG_MODE_1920x1080x100
1608 1920, 1080, /* width, height */
1609 100, 302020, /* refresh, dot clock */
1611 1919, 2639, /* hblank_start, hblank_end */
1612 2071, 2279, /* hsync_start, hsync_end */
1614 1079, 1143, /* vblank_start, vblank_end */
1615 1080, 1083, /* vsync_start, vsync_end */
1616 0x00, /* mode number */
1617 PD_MODE_SUPPORTED | /* enable the mode */
1618 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1619 IGD_VSYNC_HIGH, /* polarity V+ */
1620 0, 0, /* x, y offset */
1621 NULL, /* mode extension pointer */
1622 0, /* device dependant */
1623 0 /* device dependant */
1626 #ifdef CONFIG_MODE_1920x1200x60
1628 1920, 1200, /* width, height */
1629 60, 193156, /* refresh, dot clock */
1631 1919, 2591, /* hblank_start, hblank_end */
1632 2047, 2255, /* hsync_start, hsync_end */
1634 1199, 1241, /* vblank_start, vblank_end */
1635 1200, 1203, /* vsync_start, vsync_end */
1636 0x00, /* mode number */
1637 PD_MODE_SUPPORTED | /* enable the mode */
1638 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1639 IGD_VSYNC_HIGH, /* polarity V+ */
1640 0, 0, /* x, y offset */
1641 NULL, /* mode extension pointer */
1642 0, /* device dependant */
1643 0 /* device dependant */
1646 #ifdef CONFIG_MODE_1920x1200x75
1648 1920, 1200, /* width, height */
1649 75, 246590, /* refresh, dot clock */
1651 1919, 2623, /* hblank_start, hblank_end */
1652 2063, 2271, /* hsync_start, hsync_end */
1654 1199, 1252, /* vblank_start, vblank_end */
1655 1200, 1203, /* vsync_start, vsync_end */
1656 0x00, /* mode number */
1657 PD_MODE_SUPPORTED | /* enable the mode */
1658 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1659 IGD_VSYNC_HIGH, /* polarity V+ */
1660 0, 0, /* x, y offset */
1661 NULL, /* mode extension pointer */
1662 0, /* device dependant */
1663 0 /* device dependant */
1666 #ifdef CONFIG_MODE_1920x1440x60
1668 1920, 1440, /* width, height */
1669 60, 234000, /* refresh, dot clock */
1671 1919, 2599, /* hblank_start, hblank_end */
1672 2047, 2255, /* hsync_start, hsync_end */
1674 1439, 1499, /* vblank_start, vblank_end */
1675 1440, 1443, /* vsync_start, vsync_end */
1676 0x00, /* mode number */
1677 PD_MODE_SUPPORTED | /* enable the mode */
1678 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1679 IGD_VSYNC_HIGH, /* polarity V+ */
1680 0, 0, /* x, y offset */
1681 NULL, /* mode extension pointer */
1682 0, /* device dependant */
1683 0 /* device dependant */
1686 #ifdef CONFIG_MODE_1920x1440x75
1688 1920, 1440, /* width, height */
1689 75, 297000, /* refresh, dot clock */
1691 1919, 2639, /* hblank_start, hblank_end */
1692 2063, 2287, /* hsync_start, hsync_end */
1694 1439, 1499, /* vblank_start, vblank_end */
1695 1440, 1443, /* vsync_start, vsync_end */
1696 0x00, /* mode number */
1697 PD_MODE_SUPPORTED | /* enable the mode */
1698 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1699 IGD_VSYNC_HIGH, /* polarity V+ */
1700 0, 0, /* x, y offset */
1701 NULL, /* mode extension pointer */
1702 0, /* device dependant */
1703 0 /* device dependant */
1706 #ifdef CONFIG_MODE_1920x1440x85
1708 1920, 1440, /* width, height */
1709 85, 341350, /* refresh, dot clock */
1711 1919, 2655, /* hblank_start, hblank_end */
1712 2071, 2287, /* hsync_start, hsync_end */
1714 1439, 1511, /* vblank_start, vblank_end */
1715 1440, 1443, /* vsync_start, vsync_end */
1716 0x00, /* mode number */
1717 PD_MODE_SUPPORTED | /* enable the mode */
1718 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1719 IGD_VSYNC_HIGH, /* polarity V+ */
1720 0, 0, /* x, y offset */
1721 NULL, /* mode extension pointer */
1722 0, /* device dependant */
1723 0 /* device dependant */
1726 #ifdef CONFIG_MODE_2048x1536x60
1728 2048, 1536, /* width, height */
1729 60, 266950, /* refresh, dot clock */
1731 2047, 2799, /* hblank_start, hblank_end */
1732 2199, 2423, /* hsync_start, hsync_end */
1734 1535, 1588, /* vblank_start, vblank_end */
1735 1536, 1539, /* vsync_start, vsync_end */
1736 0x00, /* mode number */
1737 PD_MODE_SUPPORTED | /* enable the mode */
1738 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1739 IGD_VSYNC_HIGH, /* polarity V+ */
1740 0, 0, /* x, y offset */
1741 NULL, /* mode extension pointer */
1742 0, /* device dependant */
1743 0 /* device dependant */
1746 #ifdef CONFIG_MODE_2048x1536x75
1748 2048, 1536, /* width, height */
1749 75, 340480, /* refresh, dot clock */
1751 2047, 2831, /* hblank_start, hblank_end */
1752 2215, 2439, /* hsync_start, hsync_end */
1754 1535, 1602, /* vblank_start, vblank_end */
1755 1536, 1539, /* vsync_start, vsync_end */
1756 0x00, /* mode number */
1757 PD_MODE_SUPPORTED | /* enable the mode */
1758 IGD_SCAN_PROGRESSIVE| /* mode info flags */
1759 IGD_VSYNC_HIGH, /* polarity V+ */
1760 0, 0, /* x, y offset */
1761 NULL, /* mode extension pointer */
1762 0, /* device dependant */
1763 0 /* device dependant */
1769 int crt_timing_table_size = sizeof(crt_timing_table);
1771 /*---------------------------------------------------------------------------
1772 * Timing tables for VGA modes
1773 *---------------------------------------------------------------------------
1775 igd_timing_info_t vga_timing_table[] =
1778 320, 200, /* width, height */
1779 60, 25175, /* refresh, dot clock */
1781 319, 383, /* hblank_start, hblank_end */
1782 343, 383, /* hsync_start, hsync_end */
1784 405, 440, /* vblank_start, vblank_end */
1785 411, 413, /* vsync_start, vsync_end */
1786 0x00, /* mode number */
1787 IGD_MODE_VESA | /* VESA/VGA mode */
1792 IGD_MODE_SUPPORTED |
1793 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1794 0, 0, /* x, y offset */
1795 NULL, /* mode extension pointer */
1796 0, /* device dependant */
1797 0 /* device dependant */
1800 320, 200, /* width, height */
1801 60, 25175, /* refresh, dot clock */
1803 319, 383, /* hblank_start, hblank_end */
1804 343, 383, /* hsync_start, hsync_end */
1806 405, 440, /* vblank_start, vblank_end */
1807 411, 413, /* vsync_start, vsync_end */
1808 0x01, /* mode number */
1809 IGD_MODE_VESA | /* VESA/VGA mode */
1814 IGD_MODE_SUPPORTED |
1815 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1816 0, 0, /* x, y offset */
1817 NULL, /* mode extension pointer */
1818 0, /* device dependant */
1819 0 /* device dependant */
1822 640, 200, /* width, height */
1823 70, 25175, /* refresh, dot clock */
1825 639, 783, /* hblank_start, hblank_end */
1826 679, 775, /* hsync_start, hsync_end */
1828 405, 440, /* vblank_start, vblank_end */
1829 411, 413, /* vsync_start, vsync_end */
1830 0x02, /* mode number */
1831 IGD_MODE_VESA | /* VESA/VGA mode */
1835 IGD_MODE_SUPPORTED |
1836 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1837 0, 0, /* x, y offset */
1838 NULL, /* mode extension pointer */
1839 0, /* device dependant */
1840 0 /* device dependant */
1843 640, 200, /* width, height */
1844 70, 25175, /* refresh, dot clock */
1846 639, 783, /* hblank_start, hblank_end */
1847 679, 775, /* hsync_start, hsync_end */
1849 405, 440, /* vblank_start, vblank_end */
1850 411, 413, /* vsync_start, vsync_end */
1851 0x03, /* mode number */
1852 IGD_MODE_VESA | /* VESA/VGA mode */
1856 IGD_MODE_SUPPORTED |
1857 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1858 0, 0, /* x, y offset */
1859 NULL, /* mode extension pointer */
1860 0, /* device dependant */
1861 0 /* device dependant */
1864 320, 200, /* width, height */
1865 60, 25175, /* refresh, dot clock */
1867 319, 383, /* hblank_start, hblank_end */
1868 343, 383, /* hsync_start, hsync_end */
1870 405, 440, /* vblank_start, vblank_end */
1871 411, 413, /* vsync_start, vsync_end */
1872 0x04, /* mode number */
1873 IGD_MODE_VESA | /* VESA/VGA mode */
1876 IGD_MODE_SUPPORTED |
1877 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1878 0, 0, /* x, y offset */
1879 NULL, /* mode extension pointer */
1880 0, /* device dependant */
1881 0 /* device dependant */
1884 320, 200, /* width, height */
1885 60, 25175, /* refresh, dot clock */
1887 319, 383, /* hblank_start, hblank_end */
1888 343, 383, /* hsync_start, hsync_end */
1890 405, 440, /* vblank_start, vblank_end */
1891 411, 413, /* vsync_start, vsync_end */
1892 0x05, /* mode number */
1893 IGD_MODE_VESA | /* VESA/VGA mode */
1896 IGD_MODE_SUPPORTED |
1897 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1898 0, 0, /* x, y offset */
1899 NULL, /* mode extension pointer */
1900 0, /* device dependant */
1901 0 /* device dependant */
1904 640, 200, /* width, height */
1905 60, 25175, /* refresh, dot clock */
1907 639, 784, /* hblank_start, hblank_end */
1908 671, 767, /* hsync_start, hsync_end */
1910 405, 440, /* vblank_start, vblank_end */
1911 411, 413, /* vsync_start, vsync_end */
1912 0x06, /* mode number */
1913 IGD_MODE_VESA | /* VESA/VGA mode */
1916 IGD_MODE_SUPPORTED |
1917 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1918 0, 0, /* x, y offset */
1919 NULL, /* mode extension pointer */
1920 0, /* device dependant */
1921 0 /* device dependant */
1924 720, 350, /* width, height */
1925 60, 28322, /* refresh, dot clock */
1927 719, 881, /* hblank_start, hblank_end */
1928 764, 872, /* hsync_start, hsync_end */
1930 354, 441, /* vblank_start, vblank_end */
1931 386, 388, /* vsync_start, vsync_end */
1932 0x07, /* mode number */
1933 IGD_MODE_VESA | /* VESA/VGA mode */
1936 IGD_MODE_SUPPORTED |
1937 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1938 0, 0, /* x, y offset */
1939 NULL, /* mode extension pointer */
1940 0, /* device dependant */
1941 0 /* device dependant */
1944 320, 200, /* width, height */
1945 60, 25175, /* refresh, dot clock */
1947 319, 383, /* hblank_start, hblank_end */
1948 343, 383, /* hsync_start, hsync_end */
1950 405, 440, /* vblank_start, vblank_end */
1951 411, 413, /* vsync_start, vsync_end */
1952 0x0d, /* mode number */
1953 IGD_MODE_VESA | /* VESA/VGA mode */
1957 IGD_MODE_SUPPORTED |
1958 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1959 0, 0, /* x, y offset */
1960 NULL, /* mode extension pointer */
1961 0, /* device dependant */
1962 0 /* device dependant */
1965 640, 200, /* width, height */
1966 60, 25175, /* refresh, dot clock */
1968 639, 783, /* hblank_start, hblank_end */
1969 671, 767, /* hsync_start, hsync_end */
1971 405, 440, /* vblank_start, vblank_end */
1972 411, 413, /* vsync_start, vsync_end */
1973 0x0e, /* mode number */
1974 IGD_MODE_VESA | /* VESA/VGA mode */
1977 IGD_MODE_SUPPORTED |
1978 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1979 0, 0, /* x, y offset */
1980 NULL, /* mode extension pointer */
1981 0, /* device dependant */
1982 0 /* device dependant */
1985 640, 350, /* width, height */
1986 60, 25175, /* refresh, dot clock */
1988 639, 783, /* hblank_start, hblank_end */
1989 671, 767, /* hsync_start, hsync_end */
1991 354, 441, /* vblank_start, vblank_end */
1992 386, 388, /* vsync_start, vsync_end */
1993 0x11, /* mode number */
1994 IGD_MODE_VESA | /* VESA/VGA mode */
1996 IGD_MODE_SUPPORTED |
1997 IGD_SCAN_PROGRESSIVE, /* mode info flags */
1998 0, 0, /* x, y offset */
1999 NULL, /* mode extension pointer */
2000 0, /* device dependant */
2001 0 /* device dependant */
2004 640, 350, /* width, height */
2005 60, 25175, /* refresh, dot clock */
2007 639, 783, /* hblank_start, hblank_end */
2008 671, 767, /* hsync_start, hsync_end */
2010 354, 441, /* vblank_start, vblank_end */
2011 386, 388, /* vsync_start, vsync_end */
2012 0x12, /* mode number */
2013 IGD_MODE_VESA | /* VESA/VGA mode */
2015 IGD_MODE_SUPPORTED |
2016 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2017 0, 0, /* x, y offset */
2018 NULL, /* mode extension pointer */
2019 0, /* device dependant */
2020 0 /* device dependant */
2023 320, 350, /* width, height */
2024 60, 25175, /* refresh, dot clock */
2026 319, 383, /* hblank_start, hblank_end */
2027 343, 383, /* hsync_start, hsync_end */
2029 354, 441, /* vblank_start, vblank_end */
2030 386, 388, /* vsync_start, vsync_end */
2031 0x13, /* mode number */
2032 IGD_MODE_VESA | /* VESA/VGA mode */
2036 IGD_MODE_SUPPORTED |
2037 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2038 0, 0, /* x, y offset */
2039 NULL, /* mode extension pointer */
2040 0, /* device dependant */
2041 0 /* device dependant */
2044 320, 350, /* width, height */
2045 60, 25175, /* refresh, dot clock */
2047 319, 383, /* hblank_start, hblank_end */
2048 343, 383, /* hsync_start, hsync_end */
2050 354, 441, /* vblank_start, vblank_end */
2051 386, 388, /* vsync_start, vsync_end */
2052 0x14, /* mode number */
2053 IGD_MODE_VESA | /* VESA/VGA mode */
2057 IGD_MODE_SUPPORTED |
2058 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2059 0, 0, /* x, y offset */
2060 NULL, /* mode extension pointer */
2061 0, /* device dependant */
2062 0 /* device dependant */
2065 640, 350, /* width, height */
2066 70, 25175, /* refresh, dot clock */
2068 639, 783, /* hblank_start, hblank_end */
2069 679, 775, /* hsync_start, hsync_end */
2071 354, 441, /* vblank_start, vblank_end */
2072 386, 388, /* vsync_start, vsync_end */
2073 0x15, /* mode number */
2074 IGD_MODE_VESA | /* VESA/VGA mode */
2077 IGD_MODE_SUPPORTED |
2078 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2079 0, 0, /* x, y offset */
2080 NULL, /* mode extension pointer */
2081 0, /* device dependant */
2082 0 /* device dependant */
2085 640, 350, /* width, height */
2086 70, 25175, /* refresh, dot clock */
2088 639, 783, /* hblank_start, hblank_end */
2089 679, 775, /* hsync_start, hsync_end */
2091 354, 441, /* vblank_start, vblank_end */
2092 386, 388, /* vsync_start, vsync_end */
2093 0x16, /* mode number */
2094 IGD_MODE_VESA | /* VESA/VGA mode */
2097 IGD_MODE_SUPPORTED |
2098 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2099 0, 0, /* x, y offset */
2100 NULL, /* mode extension pointer */
2101 0, /* device dependant */
2102 0 /* device dependant */
2104 { /* VGA Mode 0+,1+ */
2105 360, 400, /* width, height */
2106 60, 28322, /* refresh, dot clock */
2108 359, 431, /* hblank_start, hblank_end */
2109 386, 431, /* hsync_start, hsync_end */
2111 405, 440, /* vblank_start, vblank_end */
2112 411, 413, /* vsync_start, vsync_end */
2113 0x17, /* mode number */
2114 IGD_MODE_VESA | /* VESA/VGA mode */
2118 IGD_MODE_SUPPORTED |
2119 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2120 0, 0, /* x, y offset */
2121 NULL, /* mode extension pointer */
2122 0, /* device dependant */
2123 0 /* device dependant */
2125 { /* VGA Mode 2+,3+ */
2126 720, 400, /* width, height */
2127 70, 28322, /* refresh, dot clock */
2129 719, 881, /* hblank_start, hblank_end */
2130 764, 872, /* hsync_start, hsync_end */
2132 405, 440, /* vblank_start, vblank_end */
2133 411, 413, /* vsync_start, vsync_end */
2134 0x18, /* mode number */
2135 IGD_MODE_VESA | /* VESA/VGA mode */
2138 IGD_MODE_SUPPORTED |
2139 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2140 0, 0, /* x, y offset */
2141 NULL, /* mode extension pointer */
2142 0, /* device dependant */
2143 0 /* device dependant */
2146 720, 400, /* width, height */
2147 60, 28322, /* refresh, dot clock */
2149 719, 881, /* hblank_start, hblank_end */
2150 764, 872, /* hsync_start, hsync_end */
2152 405, 440, /* vblank_start, vblank_end */
2153 411, 413, /* vsync_start, vsync_end */
2154 0x19, /* mode number */
2155 IGD_MODE_VESA | /* VESA/VGA mode */
2158 IGD_MODE_SUPPORTED |
2159 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2160 0, 0, /* x, y offset */
2161 NULL, /* mode extension pointer */
2162 0, /* device dependant */
2163 0 /* device dependant */
2166 640, 480, /* width, height */
2167 60, 25175, /* refresh, dot clock */
2169 639, 783, /* hblank_start, hblank_end */
2170 671, 767, /* hsync_start, hsync_end */
2172 486, 515, /* vblank_start, vblank_end */
2173 489, 491, /* vsync_start, vsync_end */
2174 0x1A, /* mode number */
2175 IGD_MODE_VESA | /* VESA/VGA mode */
2176 IGD_MODE_SUPPORTED |
2177 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2178 0, 0, /* x, y offset */
2179 NULL, /* mode extension pointer */
2180 0, /* device dependant */
2181 0 /* device dependant */
2184 640, 480, /* width, height */
2185 60, 25175, /* refresh, dot clock */
2187 639, 783, /* hblank_start, hblank_end */
2188 671, 767, /* hsync_start, hsync_end */
2190 486, 515, /* vblank_start, vblank_end */
2191 489, 491, /* vsync_start, vsync_end */
2192 0x1B, /* mode number */
2193 IGD_MODE_VESA | /* VESA/VGA mode */
2194 IGD_MODE_SUPPORTED |
2195 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2196 0, 0, /* x, y offset */
2197 NULL, /* mode extension pointer */
2198 0, /* device dependant */
2199 0 /* device dependant */
2202 320, 200, /* width, height */
2203 60, 25175, /* refresh, dot clock */
2205 639, 783, /* hblank_start, hblank_end */
2206 671, 767, /* hsync_start, hsync_end */
2208 405, 440, /* vblank_start, vblank_end */
2209 411, 413, /* vsync_start, vsync_end */
2210 0x1C, /* mode number */
2211 IGD_MODE_VESA | /* VESA/VGA mode */
2214 IGD_MODE_SUPPORTED |
2215 IGD_SCAN_PROGRESSIVE, /* mode info flags */
2216 0, 0, /* x, y offset */
2217 NULL, /* mode extension pointer */
2218 0, /* device dependant */
2219 0 /* device dependant */
2225 /* CEA standard timings: Get them from CEA-861. This is following DPG.
2226 We will replace the mode number to CEA*/
2227 igd_timing_info_t cea_timing_table[] =
2229 #ifdef CONFIG_CEA_MODE_640x480px60
2231 640, 480, /* width, height */
2232 60, 25200, /* refresh, dot clock */
2234 640, 799, /* hblank_start, hblank_end */
2235 656, 751, /* hsync_start, hsync_end */
2237 480, 524, /* vblank_start, vblank_end */
2238 490, 491, /* vsync_start, vsync_end */
2239 1, /* mode number */
2240 PD_MODE_SUPPORTED | /* enable the mode */
2241 IGD_SCAN_PROGRESSIVE |
2242 PD_MODE_CEA, /* mode info flags */
2243 0, 0, /* x, y offset */
2244 0, /* device dependant */
2245 0, /* device dependant */
2246 0 /* device dependant */
2249 #ifdef CONFIG_CEA_MODE_720x480px60
2251 720, 480, /* width, height */
2252 60, 27000, /* refresh, dot clock */
2254 720, 857, /* hblank_start, hblank_end */
2255 736, 797, /* hsync_start, hsync_end */
2257 480, 524, /* vblank_start, vblank_end */
2258 489, 494, /* vsync_start, vsync_end */
2259 2, /* mode number */
2260 PD_MODE_SUPPORTED | /* enable the mode */
2261 IGD_SCAN_PROGRESSIVE |
2262 PD_MODE_CEA, /* mode info flags */
2263 0, 0, /* x, y offset */
2264 NULL, /* mode extension pointer */
2265 0, /* device dependant */
2266 0 /* device dependant */
2269 #ifdef CONFIG_CEA_MODE_720x480p_ax60
2271 720, 480, /* width, height */
2272 60, 27000, /* refresh, dot clock */
2274 720, 857, /* hblank_start, hblank_end */
2275 736, 797, /* hsync_start, hsync_end */
2277 480, 524, /* vblank_start, vblank_end */
2278 489, 494, /* vsync_start, vsync_end */
2279 3, /* mode number */
2280 PD_MODE_SUPPORTED | /* enable the mode */
2281 IGD_SCAN_PROGRESSIVE |
2282 PD_MODE_CEA | /* mode info flags */
2283 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2284 0, 0, /* x, y offset */
2285 NULL, /* mode extension pointer */
2286 0, /* device dependant */
2287 0 /* device dependant */
2290 #ifdef CONFIG_CEA_MODE_720x576px50
2292 720, 576, /* width, height */
2293 50, 27000, /* refresh, dot clock */
2295 720, 863, /* hblank_start, hblank_end */
2296 732, 795, /* hsync_start, hsync_end */
2298 575, 624, /* vblank_start, vblank_end */
2299 581, 585, /* vsync_start, vsync_end */
2300 17, /* mode number */
2301 PD_MODE_SUPPORTED | /* enable the mode */
2302 IGD_SCAN_PROGRESSIVE |
2303 PD_MODE_CEA, /* mode info flags */
2304 0, 0, /* x, y offset */
2305 NULL, /* mode extension pointer */
2306 0, /* device dependant */
2307 0 /* device dependant */
2310 #ifdef CONFIG_CEA_MODE_720x576p_ax50
2312 720, 576, /* width, height */
2313 50, 27000, /* refresh, dot clock */
2315 720, 863, /* hblank_start, hblank_end */
2316 732, 795, /* hsync_start, hsync_end */
2318 575, 624, /* vblank_start, vblank_end */
2319 581, 585, /* vsync_start, vsync_end */
2320 18, /* mode number */
2321 PD_MODE_SUPPORTED | /* enable the mode */
2322 IGD_SCAN_PROGRESSIVE |
2323 PD_MODE_CEA | /* mode info flags */
2324 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2325 0, 0, /* x, y offset */
2326 NULL, /* mode extension pointer */
2327 0, /* device dependant */
2328 0 /* device dependant */
2331 #ifdef CONFIG_CEA_MODE_1280x720p_ax50
2333 1280, 720, /* width, height */
2334 50, 74250, /* refresh, dot clock */
2336 1280, 1979, /* hblank_start, hblank_end */
2337 1720, 1759, /* hsync_start, hsync_end */
2339 720, 749, /* vblank_start, vblank_end */
2340 725, 729, /* vsync_start, vsync_end */
2341 19, /* mode number */
2342 PD_MODE_SUPPORTED | /* enable the mode */
2343 IGD_SCAN_PROGRESSIVE |
2344 PD_MODE_CEA | /* mode info flags */
2345 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2346 0, 0, /* x, y offset */
2347 NULL, /* mode extension pointer */
2348 0, /* device dependant */
2349 0 /* device dependant */
2352 #ifdef CONFIG_CEA_MODE_1280x720p_ax60
2354 1280, 720, /* width, height */
2355 60, 74250, /* refresh, dot clock */
2357 1280, 1649, /* hblank_start, hblank_end */
2358 1390, 1429, /* hsync_start, hsync_end */
2360 720, 749, /* vblank_start, vblank_end */
2361 725, 729, /* vsync_start, vsync_end */
2362 4, /* mode number */
2363 PD_MODE_SUPPORTED | /* enable the mode */
2364 IGD_SCAN_PROGRESSIVE | /* mode info flags */
2366 PD_MODE_CEA | /* polarity V+ */
2367 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2368 0, 0, /* x, y offset */
2369 NULL, /* mode extension pointer */
2370 0, /* device dependant */
2371 0 /* device dependant */
2374 /* KIV. Not proper timimgs, rerefer to DPG updates */
2375 #ifdef CONFIG_CEA_MODE_1920x1080p_ax50
2377 1920, 1080, /* width, height */
2378 50, 148500, /* refresh, dot clock */
2380 1920, 2639, /* hblank_start, hblank_end */
2381 2448, 2491, /* hsync_start, hsync_end */
2383 1080, 1124, /* vblank_start, vblank_end */
2384 1084, 1088, /* vsync_start, vsync_end */
2385 31, /* mode number */
2386 PD_MODE_SUPPORTED | /* enable the mode */
2387 IGD_SCAN_PROGRESSIVE | /* mode info flags */
2389 PD_MODE_CEA | /* polarity V+ */
2390 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2391 0, 0, /* x, y offset */
2392 NULL, /* mode extension pointer */
2393 0, /* device dependant */
2394 0 /* device dependant */
2397 #ifdef CONFIG_CEA_MODE_1920x1080p_ax60
2399 1920, 1080, /* width, height */
2400 60, 148500, /* refresh, dot clock */
2402 1920, 2199, /* hblank_start, hblank_end */
2403 2008, 2051, /* hsync_start, hsync_end */
2405 1080, 1124, /* vblank_start, vblank_end */
2406 1084, 1088, /* vsync_start, vsync_end */
2407 16, /* mode number */
2408 PD_MODE_SUPPORTED | /* enable the mode */
2409 IGD_SCAN_PROGRESSIVE | /* mode info flags */
2411 PD_MODE_CEA | /* polarity V+ */
2412 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2413 0, 0, /* x, y offset */
2414 NULL, /* mode extension pointer */
2415 0, /* device dependant */
2416 0 /* device dependant */
2419 #ifdef CONFIG_CEA_MODE_1920x1080i_ax50
2421 1920, 1080, /* width, height */
2422 25, 74250, /* refresh, dot clock */
2424 1920, 2639, /* hblank_start, hblank_end */
2425 2448, 2491, /* hsync_start, hsync_end */
2427 1080, 1123, /* vblank_start, vblank_end */
2428 1084, 1093, /* vsync_start, vsync_end */
2429 20, /* mode number */
2430 PD_MODE_SUPPORTED | /* enable the mode */
2431 IGD_SCAN_INTERLACE | /* mode info flags */
2433 PD_MODE_CEA | /* polarity V+ */
2434 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2435 0, 0, /* x, y offset */
2436 NULL, /* mode extension pointer */
2437 0, /* device dependant */
2438 0 /* device dependant */
2441 #ifdef CONFIG_CEA_MODE_1920x1080i_ax60
2443 1920, 1080, /* width, height */
2444 30, 74250, /* refresh, dot clock */
2446 1920, 2199, /* hblank_start, hblank_end */
2447 2008, 2051, /* hsync_start, hsync_end */
2449 1080, 1123, /* vblank_start, vblank_end */
2450 1084, 1093, /* vsync_start, vsync_end */
2451 5, /* mode number */
2452 PD_MODE_SUPPORTED | /* enable the mode */
2453 IGD_SCAN_INTERLACE | /* mode info flags */
2455 PD_MODE_CEA | /* polarity V+ */
2456 PD_ASPECT_16_9, /* Aspect ratio 16:9 */
2457 0, 0, /* x, y offset */
2458 NULL, /* mode extension pointer */
2459 0, /* device dependant */
2460 0 /* device dependant */
2466 #ifndef CONFIG_MICRO
2467 int cea_timing_table_size = sizeof(cea_timing_table);
2469 /* CEA timings for parsing purpose */
2470 type_std_t cea_std_lookup[] =
2472 { 640, 400, 60, 0 },
2473 { 720, 480, 60, 0 },
2474 { 720, 480, 60, PD_ASPECT_16_9 },
2475 { 1280, 720, 60, PD_ASPECT_16_9 },
2476 { 1920, 1080, 60, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2477 { 720, 480, 60, PD_SCAN_INTERLACE },
2478 { 720, 480, 60, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2479 { 720, 240, 60, 0 },
2481 { 720, 240, 60, PD_ASPECT_16_9 },
2482 { 2880, 480, 60, PD_SCAN_INTERLACE },
2483 { 2880, 480, 60, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2484 { 2880, 240, 60, 0 },
2485 { 2880, 240, 60, PD_ASPECT_16_9 },
2486 { 1440, 480, 60, 0 },
2487 { 1440, 480, 60, PD_ASPECT_16_9 },
2488 { 1920, 1080, 60, PD_ASPECT_16_9 },
2490 { 720, 576, 50, 0 },
2491 { 720, 576, 50, PD_ASPECT_16_9 },
2492 { 1280, 720, 50, PD_ASPECT_16_9 },
2493 { 1920, 1080, 50, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2494 { 720, 576, 50, PD_SCAN_INTERLACE },
2495 { 720, 576, 50, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2496 { 720, 288, 50, 0 },
2497 { 720, 288, 50, PD_ASPECT_16_9 },
2499 { 2880, 576, 50, PD_SCAN_INTERLACE },
2500 { 2880, 576, 50, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2501 { 2880, 288, 50, 0 },
2502 { 2880, 288, 50, PD_ASPECT_16_9 },
2503 { 1440, 576, 50, 0 },
2504 { 1440, 576, 50, PD_ASPECT_16_9 },
2505 { 1920, 1080, 50, PD_ASPECT_16_9 },
2506 { 1920, 1080, 24, PD_ASPECT_16_9 },
2508 { 1920, 1080, 25, PD_ASPECT_16_9 },
2509 { 1920, 1080, 30, PD_ASPECT_16_9 },
2510 { 2880, 480, 60, 0 },
2511 { 2880, 480, 60, PD_ASPECT_16_9 },
2512 { 2880, 576, 50, 0 },
2513 { 2880, 576, 50, PD_ASPECT_16_9 },
2514 { 1920, 1080, 50, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2515 { 1920, 1080, 100, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2517 { 1280, 720, 100, PD_ASPECT_16_9 },
2518 { 720, 576, 100, 0 },
2519 { 720, 576, 100, PD_ASPECT_16_9 },
2520 { 720, 576, 100, PD_SCAN_INTERLACE },
2521 { 720, 576, 100, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2522 { 1920, 1080, 120, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2523 { 1280, 720, 120, PD_ASPECT_16_9 },
2524 { 720, 480, 120, 0 },
2526 { 720, 480, 120, PD_ASPECT_16_9 },
2527 { 720, 480, 120, PD_SCAN_INTERLACE },
2528 { 720, 480, 120, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2529 { 720, 576, 200, 0 },
2530 { 720, 576, 200, PD_ASPECT_16_9 },
2531 { 720, 576, 200, PD_SCAN_INTERLACE },
2532 { 720, 576, 200, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2533 { 720, 480, 240, 0 },
2535 { 720, 480, 240, PD_ASPECT_16_9 },
2536 { 720, 480, 240, PD_SCAN_INTERLACE },
2537 { 720, 480, 240, PD_SCAN_INTERLACE | PD_ASPECT_16_9 },
2538 { 1280, 720, 24, PD_ASPECT_16_9 },
2539 { 1280, 720, 25, PD_ASPECT_16_9 },
2540 { 1280, 720, 30, PD_ASPECT_16_9 },
2543 int cea_std_lookup_size = sizeof(cea_std_lookup)/sizeof(type_std_t);