aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/modedb.c')
-rw-r--r--drivers/video/modedb.c572
1 files changed, 516 insertions, 56 deletions
diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
index a9a907c440d..86431ef4937 100644
--- a/drivers/video/modedb.c
+++ b/drivers/video/modedb.c
@@ -292,64 +292,524 @@ static const struct fb_videomode modedb[] = {
292}; 292};
293 293
294#ifdef CONFIG_FB_MODE_HELPERS 294#ifdef CONFIG_FB_MODE_HELPERS
295const struct fb_videomode cea_modes[64] = { 295const struct fb_videomode cea_modes[CEA_MODEDB_SIZE] = {
296 /* #1: 640x480p@59.94/60Hz */ 296 {},
297 [1] = { 297 /* 1: 640x480p @ 59.94Hz/60Hz */
298 NULL, 60, 640, 480, 39722, 48, 16, 33, 10, 96, 2, 0, 298 {.refresh = 59, .xres = 640, .yres = 480, .pixclock = 39721,
299 FB_VMODE_NONINTERLACED, 0, 299 .left_margin = 48, .right_margin = 16,
300 }, 300 .upper_margin = 33, .lower_margin = 10,
301 /* #3: 720x480p@59.94/60Hz */ 301 .hsync_len = 96, .vsync_len = 2,
302 [3] = { 302 .sync = 0,
303 NULL, 60, 720, 480, 37037, 60, 16, 30, 9, 62, 6, 0, 303 .flag = FB_FLAG_RATIO_4_3,
304 FB_VMODE_NONINTERLACED, 0, 304 .vmode = FB_VMODE_NONINTERLACED},
305 }, 305 /* 2: 720x480p @ 59.94Hz/60Hz */
306 /* #5: 1920x1080i@59.94/60Hz */ 306 {.refresh = 59, .xres = 720, .yres = 480, .pixclock = 37037,
307 [5] = { 307 .left_margin = 60, .right_margin = 16,
308 NULL, 60, 1920, 1080, 13763, 148, 88, 15, 2, 44, 5, 308 .upper_margin = 30, .lower_margin = 9,
309 FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, 309 .hsync_len = 62, .vsync_len = 6,
310 FB_VMODE_INTERLACED, 0, 310 .sync = 0,
311 }, 311 .flag = FB_FLAG_RATIO_4_3,
312 /* #7: 720(1440)x480iH@59.94/60Hz */ 312 .vmode = FB_VMODE_NONINTERLACED},
313 [7] = { 313 /* 3: 720x480p @ 59.94Hz/60Hz */
314 NULL, 60, 1440, 480, 18554/*37108*/, 114, 38, 15, 4, 124, 3, 0, 314 {.refresh = 59, .xres = 720, .yres = 480, .pixclock = 37037,
315 FB_VMODE_INTERLACED, 0, 315 .left_margin = 60, .right_margin = 16,
316 }, 316 .upper_margin = 30, .lower_margin = 9,
317 /* #9: 720(1440)x240pH@59.94/60Hz */ 317 .hsync_len = 62, .vsync_len = 6,
318 [9] = { 318 .sync = 0,
319 NULL, 60, 1440, 240, 18554, 114, 38, 16, 4, 124, 3, 0, 319 .flag = FB_FLAG_RATIO_16_9,
320 FB_VMODE_NONINTERLACED, 0, 320 .vmode = FB_VMODE_NONINTERLACED},
321 }, 321 /* 4: 1280x720p @ 59.94Hz/60Hz */
322 /* #18: 720x576pH@50Hz */ 322 {.refresh = 60, .xres = 1280, .yres = 720, .pixclock = 13468,
323 [18] = { 323 .left_margin = 220, .right_margin = 110,
324 NULL, 50, 720, 576, 37037, 68, 12, 39, 5, 64, 5, 0, 324 .upper_margin = 20, .lower_margin = 5,
325 FB_VMODE_NONINTERLACED, 0, 325 .hsync_len = 40, .vsync_len = 5,
326 }, 326 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
327 /* #19: 1280x720p@50Hz */ 327 .flag = FB_FLAG_RATIO_16_9,
328 [19] = { 328 .vmode = FB_VMODE_NONINTERLACED},
329 NULL, 50, 1280, 720, 13468, 220, 440, 20, 5, 40, 5, 329 /* 5: 1920x1080i @ 59.94Hz/60Hz */
330 FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, 330 {.refresh = 60, .xres = 1920, .yres = 1080, .pixclock = 13468,
331 FB_VMODE_NONINTERLACED, 0, 331 .left_margin = 148, .right_margin = 88,
332 }, 332 .upper_margin = 15, .lower_margin = 2,
333 /* #20: 1920x1080i@50Hz */ 333 .hsync_len = 44, .vsync_len = 5,
334 [20] = { 334 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
335 NULL, 50, 1920, 1080, 13480, 148, 528, 15, 5, 528, 5, 335 .flag = FB_FLAG_RATIO_16_9,
336 FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, 336 .vmode = FB_VMODE_INTERLACED},
337 FB_VMODE_INTERLACED, 0, 337 /* 6: 720(1440)x480i @ 59.94Hz/60Hz */
338 }, 338 {.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 37037,
339 /* #32: 1920x1080p@23.98/24Hz */ 339 .left_margin = 114, .right_margin = 38,
340 [32] = { 340 .upper_margin = 15, .lower_margin = 4,
341 NULL, 24, 1920, 1080, 13468, 148, 638, 36, 4, 44, 5, 341 .hsync_len = 124, .vsync_len = 3,
342 FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, 342 .sync = 0,
343 FB_VMODE_NONINTERLACED, 0, 343 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
344 }, 344 .vmode = FB_VMODE_INTERLACED},
345 /* #35: (2880)x480p4x@59.94/60Hz */ 345 /* 7: 720(1440)x480i @ 59.94Hz/60Hz */
346 [35] = { 346 {.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 37037,
347 NULL, 60, 2880, 480, 9250, 240, 64, 30, 9, 248, 6, 0, 347 .left_margin = 114, .right_margin = 38,
348 FB_VMODE_NONINTERLACED, 0, 348 .upper_margin = 15, .lower_margin = 4,
349 }, 349 .hsync_len = 124, .vsync_len = 3,
350 .sync = 0,
351 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
352 .vmode = FB_VMODE_INTERLACED},
353 /* 8: 720(1440)x240p @ 59.94Hz/60Hz */
354 {.refresh = 59, .xres = 1440, .yres = 240, .pixclock = 37037,
355 .left_margin = 114, .right_margin = 38,
356 .upper_margin = 15, .lower_margin = 5,
357 .hsync_len = 124, .vsync_len = 3,
358 .sync = 0,
359 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
360 .vmode = FB_VMODE_NONINTERLACED},
361 /* 9: 720(1440)x240p @ 59.94Hz/60Hz */
362 {.refresh = 59, .xres = 1440, .yres = 240, .pixclock = 37037,
363 .left_margin = 114, .right_margin = 38,
364 .upper_margin = 15, .lower_margin = 5,
365 .hsync_len = 124, .vsync_len = 3,
366 .sync = 0,
367 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
368 .vmode = FB_VMODE_NONINTERLACED},
369 /* 10: 2880x480i @ 59.94Hz/60Hz */
370 {.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 18518,
371 .left_margin = 228, .right_margin = 76,
372 .upper_margin = 15, .lower_margin = 4,
373 .hsync_len = 248, .vsync_len = 3,
374 .sync = 0,
375 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
376 .vmode = FB_VMODE_INTERLACED},
377 /* 11: 2880x480i @ 59.94Hz/60Hz */
378 {.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 18518,
379 .left_margin = 228, .right_margin = 76,
380 .upper_margin = 15, .lower_margin = 4,
381 .hsync_len = 248, .vsync_len = 3,
382 .sync = 0,
383 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
384 .vmode = FB_VMODE_INTERLACED},
385 /* 12: 2880x240p @ 59.94Hz/60Hz */
386 {.refresh = 59, .xres = 2880, .yres = 240, .pixclock = 18518,
387 .left_margin = 228, .right_margin = 76,
388 .upper_margin = 15, .lower_margin = 5,
389 .hsync_len = 248, .vsync_len = 3,
390 .sync = 0,
391 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
392 .vmode = FB_VMODE_NONINTERLACED},
393 /* 13: 2880x240p @ 59.94Hz/60Hz */
394 {.refresh = 59, .xres = 2880, .yres = 240, .pixclock = 18518,
395 .left_margin = 228, .right_margin = 76,
396 .upper_margin = 15, .lower_margin = 5,
397 .hsync_len = 248, .vsync_len = 3,
398 .sync = 0,
399 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
400 .vmode = FB_VMODE_NONINTERLACED},
401 /* 14: 1440x480p @ 59.94Hz/60Hz */
402 {.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 18518,
403 .left_margin = 120, .right_margin = 32,
404 .upper_margin = 30, .lower_margin = 9,
405 .hsync_len = 124, .vsync_len = 6,
406 .sync = 0,
407 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
408 .vmode = FB_VMODE_NONINTERLACED},
409 /* 15: 1440x480p @ 59.94Hz/60Hz */
410 {.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 18518,
411 .left_margin = 120, .right_margin = 32,
412 .upper_margin = 30, .lower_margin = 9,
413 .hsync_len = 124, .vsync_len = 6,
414 .sync = 0,
415 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
416 .vmode = FB_VMODE_NONINTERLACED},
417 /* 16: 1920x1080p @ 59.94Hz/60Hz */
418 {.refresh = 60, .xres = 1920, .yres = 1080, .pixclock = 6734,
419 .left_margin = 148, .right_margin = 88,
420 .upper_margin = 36, .lower_margin = 4,
421 .hsync_len = 44, .vsync_len = 5,
422 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
423 .flag = FB_FLAG_RATIO_16_9,
424 .vmode = FB_VMODE_NONINTERLACED},
425 /* 17: 720x576p @ 50Hz */
426 {.refresh = 50, .xres = 720, .yres = 576, .pixclock = 37037,
427 .left_margin = 68, .right_margin = 12,
428 .upper_margin = 39, .lower_margin = 5,
429 .hsync_len = 64, .vsync_len = 5,
430 .sync = 0,
431 .flag = FB_FLAG_RATIO_4_3,
432 .vmode = FB_VMODE_NONINTERLACED},
433 /* 18: 720x576p @ 50Hz */
434 {.refresh = 50, .xres = 720, .yres = 576, .pixclock = 37037,
435 .left_margin = 68, .right_margin = 12,
436 .upper_margin = 39, .lower_margin = 5,
437 .hsync_len = 64, .vsync_len = 5,
438 .sync = 0,
439 .flag = FB_FLAG_RATIO_16_9,
440 .vmode = FB_VMODE_NONINTERLACED},
441 /* 19: 1280x720p @ 50Hz */
442 {.refresh = 50, .xres = 1280, .yres = 720, .pixclock = 13468,
443 .left_margin = 220, .right_margin = 440,
444 .upper_margin = 20, .lower_margin = 5,
445 .hsync_len = 40, .vsync_len = 5,
446 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
447 .flag = FB_FLAG_RATIO_16_9,
448 .vmode = FB_VMODE_NONINTERLACED},
449 /* 20: 1920x1080i @ 50Hz */
450 {.refresh = 50, .xres = 1920, .yres = 1080, .pixclock = 13468,
451 .left_margin = 148, .right_margin = 528,
452 .upper_margin = 15, .lower_margin = 2,
453 .hsync_len = 44, .vsync_len = 5,
454 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
455 .flag = FB_FLAG_RATIO_16_9,
456 .vmode = FB_VMODE_INTERLACED},
457 /* 21: 720(1440)x576i @ 50Hz */
458 {.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 37037,
459 .left_margin = 138, .right_margin = 24,
460 .upper_margin = 19, .lower_margin = 2,
461 .hsync_len = 126, .vsync_len = 3,
462 .sync = 0,
463 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
464 .vmode = FB_VMODE_INTERLACED},
465 /* 22: 720(1440)x576i @ 50Hz */
466 {.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 37037,
467 .left_margin = 138, .right_margin = 24,
468 .upper_margin = 19, .lower_margin = 2,
469 .hsync_len = 126, .vsync_len = 3,
470 .sync = 0,
471 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
472 .vmode = FB_VMODE_INTERLACED},
473 /* 23: 720(1440)x288p @ 50Hz */
474 {.refresh = 49, .xres = 1440, .yres = 288, .pixclock = 37037,
475 .left_margin = 138, .right_margin = 24,
476 .upper_margin = 19, .lower_margin = 4,
477 .hsync_len = 126, .vsync_len = 3,
478 .sync = 0,
479 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
480 .vmode = FB_VMODE_NONINTERLACED},
481 /* 24: 720(1440)x288p @ 50Hz */
482 {.refresh = 49, .xres = 1440, .yres = 288, .pixclock = 37037,
483 .left_margin = 138, .right_margin = 24,
484 .upper_margin = 19, .lower_margin = 4,
485 .hsync_len = 126, .vsync_len = 3,
486 .sync = 0,
487 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
488 .vmode = FB_VMODE_NONINTERLACED},
489 /* 25: 2880x576i @ 50Hz */
490 {.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 18518,
491 .left_margin = 276, .right_margin = 48,
492 .upper_margin = 19, .lower_margin = 2,
493 .hsync_len = 252, .vsync_len = 3,
494 .sync = 0,
495 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
496 .vmode = FB_VMODE_INTERLACED},
497 /* 26: 2880x576i @ 50Hz */
498 {.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 18518,
499 .left_margin = 276, .right_margin = 48,
500 .upper_margin = 19, .lower_margin = 2,
501 .hsync_len = 252, .vsync_len = 3,
502 .sync = 0,
503 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
504 .vmode = FB_VMODE_INTERLACED},
505 /* 27: 2880x288p @ 50Hz */
506 {.refresh = 49, .xres = 2880, .yres = 288, .pixclock = 18518,
507 .left_margin = 276, .right_margin = 48,
508 .upper_margin = 19, .lower_margin = 4,
509 .hsync_len = 252, .vsync_len = 3,
510 .sync = 0,
511 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
512 .vmode = FB_VMODE_NONINTERLACED},
513 /* 28: 2880x288p @ 50Hz */
514 {.refresh = 49, .xres = 2880, .yres = 288, .pixclock = 18518,
515 .left_margin = 276, .right_margin = 48,
516 .upper_margin = 19, .lower_margin = 4,
517 .hsync_len = 252, .vsync_len = 3,
518 .sync = 0,
519 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
520 .vmode = FB_VMODE_NONINTERLACED},
521 /* 29: 1440x576p @ 50Hz */
522 {.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 18518,
523 .left_margin = 136, .right_margin = 24,
524 .upper_margin = 39, .lower_margin = 5,
525 .hsync_len = 128, .vsync_len = 5,
526 .sync = 0,
527 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
528 .vmode = FB_VMODE_NONINTERLACED},
529 /* 30: 1440x576p @ 50Hz */
530 {.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 18518,
531 .left_margin = 136, .right_margin = 24,
532 .upper_margin = 39, .lower_margin = 5,
533 .hsync_len = 128, .vsync_len = 5,
534 .sync = 0,
535 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
536 .vmode = FB_VMODE_NONINTERLACED},
537 /* 31: 1920x1080p @ 50Hz */
538 {.refresh = 50, .xres = 1920, .yres = 1080, .pixclock = 6734,
539 .left_margin = 148, .right_margin = 528,
540 .upper_margin = 36, .lower_margin = 4,
541 .hsync_len = 44, .vsync_len = 5,
542 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
543 .flag = FB_FLAG_RATIO_16_9,
544 .vmode = FB_VMODE_NONINTERLACED},
545 /* 32: 1920x1080p @ 23.97Hz/24Hz */
546 {.refresh = 24, .xres = 1920, .yres = 1080, .pixclock = 13468,
547 .left_margin = 148, .right_margin = 638,
548 .upper_margin = 36, .lower_margin = 4,
549 .hsync_len = 44, .vsync_len = 5,
550 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
551 .flag = FB_FLAG_RATIO_16_9,
552 .vmode = FB_VMODE_NONINTERLACED},
553 /* 33: 1920x1080p @ 25Hz */
554 {.refresh = 25, .xres = 1920, .yres = 1080, .pixclock = 13468,
555 .left_margin = 148, .right_margin = 528,
556 .upper_margin = 36, .lower_margin = 4,
557 .hsync_len = 44, .vsync_len = 5,
558 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
559 .flag = FB_FLAG_RATIO_16_9,
560 .vmode = FB_VMODE_NONINTERLACED},
561 /* 34: 1920x1080p @ 29.97Hz/30Hz */
562 {.refresh = 30, .xres = 1920, .yres = 1080, .pixclock = 13468,
563 .left_margin = 148, .right_margin = 88,
564 .upper_margin = 36, .lower_margin = 4,
565 .hsync_len = 44, .vsync_len = 5,
566 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
567 .flag = FB_FLAG_RATIO_16_9,
568 .vmode = FB_VMODE_NONINTERLACED},
569 /* 35: 2880x480p @ 59.94Hz/60Hz */
570 {.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 9259,
571 .left_margin = 240, .right_margin = 64,
572 .upper_margin = 30, .lower_margin = 9,
573 .hsync_len = 248, .vsync_len = 6,
574 .sync = 0,
575 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
576 .vmode = FB_VMODE_NONINTERLACED},
577 /* 36: 2880x480p @ 59.94Hz/60Hz */
578 {.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 9259,
579 .left_margin = 240, .right_margin = 64,
580 .upper_margin = 30, .lower_margin = 9,
581 .hsync_len = 248, .vsync_len = 6,
582 .sync = 0,
583 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
584 .vmode = FB_VMODE_NONINTERLACED},
585 /* 37: 2880x576p @ 50Hz */
586 {.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 9259,
587 .left_margin = 272, .right_margin = 48,
588 .upper_margin = 39, .lower_margin = 5,
589 .hsync_len = 256, .vsync_len = 5,
590 .sync = 0,
591 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
592 .vmode = FB_VMODE_NONINTERLACED},
593 /* 38: 2880x576p @ 50Hz */
594 {.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 9259,
595 .left_margin = 272, .right_margin = 48,
596 .upper_margin = 39, .lower_margin = 5,
597 .hsync_len = 256, .vsync_len = 5,
598 .sync = 0,
599 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
600 .vmode = FB_VMODE_NONINTERLACED},
601 /* 39: 1920x1080i @ 50Hz */
602 {.refresh = 50, .xres = 1920, .yres = 1080, .pixclock = 13888,
603 .left_margin = 184, .right_margin = 32,
604 .upper_margin = 57, .lower_margin = 23,
605 .hsync_len = 168, .vsync_len = 5,
606 .sync = FB_SYNC_HOR_HIGH_ACT,
607 .flag = FB_FLAG_RATIO_16_9,
608 .vmode = FB_VMODE_INTERLACED},
609 /* 40: 1920x1080i @ 100Hz */
610 {.refresh = 100, .xres = 1920, .yres = 1080, .pixclock = 6734,
611 .left_margin = 148, .right_margin = 528,
612 .upper_margin = 15, .lower_margin = 2,
613 .hsync_len = 44, .vsync_len = 5,
614 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
615 .flag = FB_FLAG_RATIO_16_9,
616 .vmode = FB_VMODE_INTERLACED},
617 /* 41: 1280x720p @ 100Hz */
618 {.refresh = 100, .xres = 1280, .yres = 720, .pixclock = 6734,
619 .left_margin = 220, .right_margin = 440,
620 .upper_margin = 20, .lower_margin = 5,
621 .hsync_len = 40, .vsync_len = 5,
622 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
623 .flag = FB_FLAG_RATIO_16_9,
624 .vmode = FB_VMODE_NONINTERLACED},
625 /* 42: 720x576p @ 100Hz */
626 {.refresh = 100, .xres = 720, .yres = 576, .pixclock = 18518,
627 .left_margin = 68, .right_margin = 12,
628 .upper_margin = 39, .lower_margin = 5,
629 .hsync_len = 64, .vsync_len = 5,
630 .sync = 0,
631 .flag = FB_FLAG_RATIO_4_3,
632 .vmode = FB_VMODE_NONINTERLACED},
633 /* 43: 720x576p @ 100Hz */
634 {.refresh = 100, .xres = 720, .yres = 576, .pixclock = 18518,
635 .left_margin = 68, .right_margin = 12,
636 .upper_margin = 39, .lower_margin = 5,
637 .hsync_len = 64, .vsync_len = 5,
638 .sync = 0,
639 .flag = FB_FLAG_RATIO_16_9,
640 .vmode = FB_VMODE_NONINTERLACED},
641 /* 44: 720(1440)x576i @ 100Hz */
642 {.refresh = 100, .xres = 1440, .yres = 576, .pixclock = 18518,
643 .left_margin = 138, .right_margin = 24,
644 .upper_margin = 19, .lower_margin = 2,
645 .hsync_len = 126, .vsync_len = 3,
646 .sync = 0,
647 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
648 .vmode = FB_VMODE_INTERLACED},
649 /* 45: 720(1440)x576i @ 100Hz */
650 {.refresh = 100, .xres = 1440, .yres = 576, .pixclock = 18518,
651 .left_margin = 138, .right_margin = 24,
652 .upper_margin = 19, .lower_margin = 2,
653 .hsync_len = 126, .vsync_len = 3,
654 .sync = 0,
655 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
656 .vmode = FB_VMODE_INTERLACED},
657 /* 46: 1920x1080i @ 119.88/120Hz */
658 {.refresh = 120, .xres = 1920, .yres = 1080, .pixclock = 6734,
659 .left_margin = 148, .right_margin = 88,
660 .upper_margin = 15, .lower_margin = 2,
661 .hsync_len = 44, .vsync_len = 5,
662 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
663 .flag = FB_FLAG_RATIO_16_9,
664 .vmode = FB_VMODE_INTERLACED},
665 /* 47: 1280x720p @ 119.88/120Hz */
666 {.refresh = 120, .xres = 1280, .yres = 720, .pixclock = 6734,
667 .left_margin = 220, .right_margin = 110,
668 .upper_margin = 20, .lower_margin = 5,
669 .hsync_len = 40, .vsync_len = 5,
670 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
671 .flag = FB_FLAG_RATIO_16_9,
672 .vmode = FB_VMODE_NONINTERLACED},
673 /* 48: 720x480p @ 119.88/120Hz */
674 {.refresh = 119, .xres = 720, .yres = 480, .pixclock = 18518,
675 .left_margin = 60, .right_margin = 16,
676 .upper_margin = 30, .lower_margin = 9,
677 .hsync_len = 62, .vsync_len = 6,
678 .sync = 0,
679 .flag = FB_FLAG_RATIO_4_3,
680 .vmode = FB_VMODE_NONINTERLACED},
681 /* 49: 720x480p @ 119.88/120Hz */
682 {.refresh = 119, .xres = 720, .yres = 480, .pixclock = 18518,
683 .left_margin = 60, .right_margin = 16,
684 .upper_margin = 30, .lower_margin = 9,
685 .hsync_len = 62, .vsync_len = 6,
686 .sync = 0,
687 .flag = FB_FLAG_RATIO_16_9,
688 .vmode = FB_VMODE_NONINTERLACED},
689 /* 50: 720(1440)x480i @ 119.88/120Hz */
690 {.refresh = 119, .xres = 1440, .yres = 480, .pixclock = 18518,
691 .left_margin = 114, .right_margin = 38,
692 .upper_margin = 15, .lower_margin = 4,
693 .hsync_len = 124, .vsync_len = 3,
694 .sync = 0,
695 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
696 .vmode = FB_VMODE_INTERLACED},
697 /* 51: 720(1440)x480i @ 119.88/120Hz */
698 {.refresh = 119, .xres = 1440, .yres = 480, .pixclock = 18518,
699 .left_margin = 114, .right_margin = 38,
700 .upper_margin = 15, .lower_margin = 4,
701 .hsync_len = 124, .vsync_len = 3,
702 .sync = 0,
703 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
704 .vmode = FB_VMODE_INTERLACED},
705 /* 52: 720x576p @ 200Hz */
706 {.refresh = 200, .xres = 720, .yres = 576, .pixclock = 9259,
707 .left_margin = 68, .right_margin = 12,
708 .upper_margin = 39, .lower_margin = 5,
709 .hsync_len = 64, .vsync_len = 5,
710 .sync = 0,
711 .flag = FB_FLAG_RATIO_4_3,
712 .vmode = FB_VMODE_NONINTERLACED},
713 /* 53: 720x576p @ 200Hz */
714 {.refresh = 200, .xres = 720, .yres = 576, .pixclock = 9259,
715 .left_margin = 68, .right_margin = 12,
716 .upper_margin = 39, .lower_margin = 5,
717 .hsync_len = 64, .vsync_len = 5,
718 .sync = 0,
719 .flag = FB_FLAG_RATIO_16_9,
720 .vmode = FB_VMODE_NONINTERLACED},
721 /* 54: 720(1440)x576i @ 200Hz */
722 {.refresh = 200, .xres = 1440, .yres = 576, .pixclock = 9259,
723 .left_margin = 138, .right_margin = 24,
724 .upper_margin = 19, .lower_margin = 2,
725 .hsync_len = 126, .vsync_len = 3,
726 .sync = 0,
727 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
728 .vmode = FB_VMODE_INTERLACED},
729 /* 55: 720(1440)x576i @ 200Hz */
730 {.refresh = 200, .xres = 1440, .yres = 576, .pixclock = 9259,
731 .left_margin = 138, .right_margin = 24,
732 .upper_margin = 19, .lower_margin = 2,
733 .hsync_len = 126, .vsync_len = 3,
734 .sync = 0,
735 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
736 .vmode = FB_VMODE_INTERLACED},
737 /* 56: 720x480p @ 239.76/240Hz */
738 {.refresh = 239, .xres = 720, .yres = 480, .pixclock = 9259,
739 .left_margin = 60, .right_margin = 16,
740 .upper_margin = 30, .lower_margin = 9,
741 .hsync_len = 62, .vsync_len = 6,
742 .sync = 0,
743 .flag = FB_FLAG_RATIO_4_3,
744 .vmode = FB_VMODE_NONINTERLACED},
745 /* 57: 720x480p @ 239.76/240Hz */
746 {.refresh = 239, .xres = 720, .yres = 480, .pixclock = 9259,
747 .left_margin = 60, .right_margin = 16,
748 .upper_margin = 30, .lower_margin = 9,
749 .hsync_len = 62, .vsync_len = 6,
750 .sync = 0,
751 .flag = FB_FLAG_RATIO_16_9,
752 .vmode = FB_VMODE_NONINTERLACED},
753 /* 58: 720(1440)x480i @ 239.76/240Hz */
754 {.refresh = 239, .xres = 1440, .yres = 480, .pixclock = 9259,
755 .left_margin = 114, .right_margin = 38,
756 .upper_margin = 15, .lower_margin = 4,
757 .hsync_len = 124, .vsync_len = 3,
758 .sync = 0,
759 .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
760 .vmode = FB_VMODE_INTERLACED},
761 /* 59: 720(1440)x480i @ 239.76/240Hz */
762 {.refresh = 239, .xres = 1440, .yres = 480, .pixclock = 9259,
763 .left_margin = 114, .right_margin = 38,
764 .upper_margin = 15, .lower_margin = 4,
765 .hsync_len = 124, .vsync_len = 3,
766 .sync = 0,
767 .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
768 .vmode = FB_VMODE_INTERLACED},
769 /* 60: 1280x720p @ 23.97Hz/24Hz */
770 {.refresh = 24, .xres = 1280, .yres = 720, .pixclock = 16835,
771 .left_margin = 220, .right_margin = 1760,
772 .upper_margin = 20, .lower_margin = 5,
773 .hsync_len = 40, .vsync_len = 5,
774 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
775 .flag = FB_FLAG_RATIO_16_9,
776 .vmode = FB_VMODE_NONINTERLACED},
777 /* 61: 1280x720p @ 25Hz */
778 {.refresh = 25, .xres = 1280, .yres = 720, .pixclock = 13468,
779 .left_margin = 220, .right_margin = 2420,
780 .upper_margin = 20, .lower_margin = 5,
781 .hsync_len = 40, .vsync_len = 5,
782 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
783 .flag = FB_FLAG_RATIO_16_9,
784 .vmode = FB_VMODE_NONINTERLACED},
785 /* 62: 1280x720p @ 29.97Hz/30Hz */
786 {.refresh = 30, .xres = 1280, .yres = 720, .pixclock = 13468,
787 .left_margin = 220, .right_margin = 1760,
788 .upper_margin = 20, .lower_margin = 5,
789 .hsync_len = 40, .vsync_len = 5,
790 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
791 .flag = FB_FLAG_RATIO_16_9,
792 .vmode = FB_VMODE_NONINTERLACED},
793 /* 63: 1920x1080p @ 119.88/120Hz */
794 {.refresh = 120, .xres = 1920, .yres = 1080, .pixclock = 3367,
795 .left_margin = 148, .right_margin = 88,
796 .upper_margin = 36, .lower_margin = 4,
797 .hsync_len = 44, .vsync_len = 5,
798 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
799 .flag = FB_FLAG_RATIO_16_9,
800 .vmode = FB_VMODE_NONINTERLACED},
801 /* 64: 1920x1080p @ 100Hz */
802 {.refresh = 100, .xres = 1920, .yres = 1080, .pixclock = 3367,
803 .left_margin = 148, .right_margin = 528,
804 .upper_margin = 36, .lower_margin = 4,
805 .hsync_len = 44, .vsync_len = 5,
806 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
807 .flag = FB_FLAG_RATIO_16_9,
808 .vmode = FB_VMODE_NONINTERLACED},
350}; 809};
810EXPORT_SYMBOL(cea_modes);
351 811
352const struct fb_videomode vesa_modes[] = { 812const struct fb_videomode vesa_modes[VESA_MODEDB_SIZE] = {
353 /* 0 640x350-85 VESA */ 813 /* 0 640x350-85 VESA */
354 { NULL, 85, 640, 350, 31746, 96, 32, 60, 32, 64, 3, 814 { NULL, 85, 640, 350, 31746, 96, 32, 60, 32, 64, 3,
355 FB_SYNC_HOR_HIGH_ACT, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA}, 815 FB_SYNC_HOR_HIGH_ACT, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA},