2010-08-03 14:38:20 -04:00
/*
* Copyright ( c ) 2007 - 2008 Intel Corporation
* Jesse Barnes < jesse . barnes @ intel . com >
* Copyright 2010 Red Hat , Inc .
*
* Permission is hereby granted , free of charge , to any person obtaining a
* copy of this software and associated documentation files ( the " Software " ) ,
* to deal in the Software without restriction , including without limitation
* the rights to use , copy , modify , merge , publish , distribute , sub license ,
* and / or sell copies of the Software , and to permit persons to whom the
* Software is furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice ( including the
* next paragraph ) shall be included in all copies or substantial portions
* of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NON - INFRINGEMENT . IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
* LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING
* FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE .
*/
# include <linux/kernel.h>
# include "drmP.h"
# include "drm_edid.h"
/*
* Autogenerated from the DMT spec .
* This table is copied from xfree86 / modes / xf86EdidModes . c .
* But the mode with Reduced blank feature is deleted .
*/
2011-01-26 09:49:47 +00:00
static const struct drm_display_mode drm_dmt_modes [ ] = {
2010-08-03 14:38:20 -04:00
/* 640x350@85Hz */
{ DRM_MODE ( " 640x350 " , DRM_MODE_TYPE_DRIVER , 31500 , 640 , 672 ,
736 , 832 , 0 , 350 , 382 , 385 , 445 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 640x400@85Hz */
{ DRM_MODE ( " 640x400 " , DRM_MODE_TYPE_DRIVER , 31500 , 640 , 672 ,
736 , 832 , 0 , 400 , 401 , 404 , 445 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 720x400@85Hz */
{ DRM_MODE ( " 720x400 " , DRM_MODE_TYPE_DRIVER , 35500 , 720 , 756 ,
828 , 936 , 0 , 400 , 401 , 404 , 446 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 640x480@60Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 25175 , 640 , 656 ,
752 , 800 , 0 , 480 , 489 , 492 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 640x480@72Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 31500 , 640 , 664 ,
704 , 832 , 0 , 480 , 489 , 492 , 520 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 640x480@75Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 31500 , 640 , 656 ,
720 , 840 , 0 , 480 , 481 , 484 , 500 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 640x480@85Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 36000 , 640 , 696 ,
752 , 832 , 0 , 480 , 481 , 484 , 509 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 800x600@56Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 36000 , 800 , 824 ,
896 , 1024 , 0 , 600 , 601 , 603 , 625 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 800x600@60Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 40000 , 800 , 840 ,
968 , 1056 , 0 , 600 , 601 , 605 , 628 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 800x600@72Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 50000 , 800 , 856 ,
976 , 1040 , 0 , 600 , 637 , 643 , 666 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 800x600@75Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 49500 , 800 , 816 ,
896 , 1056 , 0 , 600 , 601 , 604 , 625 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 800x600@85Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 56250 , 800 , 832 ,
896 , 1048 , 0 , 600 , 601 , 604 , 631 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 848x480@60Hz */
{ DRM_MODE ( " 848x480 " , DRM_MODE_TYPE_DRIVER , 33750 , 848 , 864 ,
976 , 1088 , 0 , 480 , 486 , 494 , 517 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1024x768@43Hz, interlace */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 44900 , 1024 , 1032 ,
1208 , 1264 , 0 , 768 , 768 , 772 , 817 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1024x768@60Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 65000 , 1024 , 1048 ,
1184 , 1344 , 0 , 768 , 771 , 777 , 806 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1024x768@70Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 75000 , 1024 , 1048 ,
1184 , 1328 , 0 , 768 , 771 , 777 , 806 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1024x768@75Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 78750 , 1024 , 1040 ,
1136 , 1312 , 0 , 768 , 769 , 772 , 800 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1024x768@85Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 94500 , 1024 , 1072 ,
1168 , 1376 , 0 , 768 , 769 , 772 , 808 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1152x864@75Hz */
{ DRM_MODE ( " 1152x864 " , DRM_MODE_TYPE_DRIVER , 108000 , 1152 , 1216 ,
1344 , 1600 , 0 , 864 , 865 , 868 , 900 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x768@60Hz */
{ DRM_MODE ( " 1280x768 " , DRM_MODE_TYPE_DRIVER , 79500 , 1280 , 1344 ,
1472 , 1664 , 0 , 768 , 771 , 778 , 798 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x768@75Hz */
{ DRM_MODE ( " 1280x768 " , DRM_MODE_TYPE_DRIVER , 102250 , 1280 , 1360 ,
1488 , 1696 , 0 , 768 , 771 , 778 , 805 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1280x768@85Hz */
{ DRM_MODE ( " 1280x768 " , DRM_MODE_TYPE_DRIVER , 117500 , 1280 , 1360 ,
1496 , 1712 , 0 , 768 , 771 , 778 , 809 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x800@60Hz */
{ DRM_MODE ( " 1280x800 " , DRM_MODE_TYPE_DRIVER , 83500 , 1280 , 1352 ,
1480 , 1680 , 0 , 800 , 803 , 809 , 831 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1280x800@75Hz */
{ DRM_MODE ( " 1280x800 " , DRM_MODE_TYPE_DRIVER , 106500 , 1280 , 1360 ,
1488 , 1696 , 0 , 800 , 803 , 809 , 838 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x800@85Hz */
{ DRM_MODE ( " 1280x800 " , DRM_MODE_TYPE_DRIVER , 122500 , 1280 , 1360 ,
1496 , 1712 , 0 , 800 , 803 , 809 , 843 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x960@60Hz */
{ DRM_MODE ( " 1280x960 " , DRM_MODE_TYPE_DRIVER , 108000 , 1280 , 1376 ,
1488 , 1800 , 0 , 960 , 961 , 964 , 1000 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x960@85Hz */
{ DRM_MODE ( " 1280x960 " , DRM_MODE_TYPE_DRIVER , 148500 , 1280 , 1344 ,
1504 , 1728 , 0 , 960 , 961 , 964 , 1011 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x1024@60Hz */
{ DRM_MODE ( " 1280x1024 " , DRM_MODE_TYPE_DRIVER , 108000 , 1280 , 1328 ,
1440 , 1688 , 0 , 1024 , 1025 , 1028 , 1066 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x1024@75Hz */
{ DRM_MODE ( " 1280x1024 " , DRM_MODE_TYPE_DRIVER , 135000 , 1280 , 1296 ,
1440 , 1688 , 0 , 1024 , 1025 , 1028 , 1066 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x1024@85Hz */
{ DRM_MODE ( " 1280x1024 " , DRM_MODE_TYPE_DRIVER , 157500 , 1280 , 1344 ,
1504 , 1728 , 0 , 1024 , 1025 , 1028 , 1072 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1360x768@60Hz */
{ DRM_MODE ( " 1360x768 " , DRM_MODE_TYPE_DRIVER , 85500 , 1360 , 1424 ,
1536 , 1792 , 0 , 768 , 771 , 777 , 795 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1440x1050@60Hz */
{ DRM_MODE ( " 1400x1050 " , DRM_MODE_TYPE_DRIVER , 121750 , 1400 , 1488 ,
1632 , 1864 , 0 , 1050 , 1053 , 1057 , 1089 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1440x1050@75Hz */
{ DRM_MODE ( " 1400x1050 " , DRM_MODE_TYPE_DRIVER , 156000 , 1400 , 1504 ,
1648 , 1896 , 0 , 1050 , 1053 , 1057 , 1099 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1440x1050@85Hz */
{ DRM_MODE ( " 1400x1050 " , DRM_MODE_TYPE_DRIVER , 179500 , 1400 , 1504 ,
1656 , 1912 , 0 , 1050 , 1053 , 1057 , 1105 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1440x900@60Hz */
{ DRM_MODE ( " 1440x900 " , DRM_MODE_TYPE_DRIVER , 106500 , 1440 , 1520 ,
1672 , 1904 , 0 , 900 , 903 , 909 , 934 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1440x900@75Hz */
{ DRM_MODE ( " 1440x900 " , DRM_MODE_TYPE_DRIVER , 136750 , 1440 , 1536 ,
1688 , 1936 , 0 , 900 , 903 , 909 , 942 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1440x900@85Hz */
{ DRM_MODE ( " 1440x900 " , DRM_MODE_TYPE_DRIVER , 157000 , 1440 , 1544 ,
1696 , 1952 , 0 , 900 , 903 , 909 , 948 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1600x1200@60Hz */
{ DRM_MODE ( " 1600x1200 " , DRM_MODE_TYPE_DRIVER , 162000 , 1600 , 1664 ,
1856 , 2160 , 0 , 1200 , 1201 , 1204 , 1250 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1600x1200@65Hz */
{ DRM_MODE ( " 1600x1200 " , DRM_MODE_TYPE_DRIVER , 175500 , 1600 , 1664 ,
1856 , 2160 , 0 , 1200 , 1201 , 1204 , 1250 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1600x1200@70Hz */
{ DRM_MODE ( " 1600x1200 " , DRM_MODE_TYPE_DRIVER , 189000 , 1600 , 1664 ,
1856 , 2160 , 0 , 1200 , 1201 , 1204 , 1250 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1600x1200@75Hz */
{ DRM_MODE ( " 1600x1200 " , DRM_MODE_TYPE_DRIVER , 202500 , 1600 , 1664 ,
1856 , 2160 , 0 , 1200 , 1201 , 1204 , 1250 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1600x1200@85Hz */
{ DRM_MODE ( " 1600x1200 " , DRM_MODE_TYPE_DRIVER , 229500 , 1600 , 1664 ,
1856 , 2160 , 0 , 1200 , 1201 , 1204 , 1250 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1680x1050@60Hz */
{ DRM_MODE ( " 1680x1050 " , DRM_MODE_TYPE_DRIVER , 146250 , 1680 , 1784 ,
1960 , 2240 , 0 , 1050 , 1053 , 1059 , 1089 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1680x1050@75Hz */
{ DRM_MODE ( " 1680x1050 " , DRM_MODE_TYPE_DRIVER , 187000 , 1680 , 1800 ,
1976 , 2272 , 0 , 1050 , 1053 , 1059 , 1099 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1680x1050@85Hz */
{ DRM_MODE ( " 1680x1050 " , DRM_MODE_TYPE_DRIVER , 214750 , 1680 , 1808 ,
1984 , 2288 , 0 , 1050 , 1053 , 1059 , 1105 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1792x1344@60Hz */
{ DRM_MODE ( " 1792x1344 " , DRM_MODE_TYPE_DRIVER , 204750 , 1792 , 1920 ,
2120 , 2448 , 0 , 1344 , 1345 , 1348 , 1394 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1729x1344@75Hz */
{ DRM_MODE ( " 1792x1344 " , DRM_MODE_TYPE_DRIVER , 261000 , 1792 , 1888 ,
2104 , 2456 , 0 , 1344 , 1345 , 1348 , 1417 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1853x1392@60Hz */
{ DRM_MODE ( " 1856x1392 " , DRM_MODE_TYPE_DRIVER , 218250 , 1856 , 1952 ,
2176 , 2528 , 0 , 1392 , 1393 , 1396 , 1439 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1856x1392@75Hz */
{ DRM_MODE ( " 1856x1392 " , DRM_MODE_TYPE_DRIVER , 288000 , 1856 , 1984 ,
2208 , 2560 , 0 , 1392 , 1395 , 1399 , 1500 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1200@60Hz */
{ DRM_MODE ( " 1920x1200 " , DRM_MODE_TYPE_DRIVER , 193250 , 1920 , 2056 ,
2256 , 2592 , 0 , 1200 , 1203 , 1209 , 1245 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1200@75Hz */
{ DRM_MODE ( " 1920x1200 " , DRM_MODE_TYPE_DRIVER , 245250 , 1920 , 2056 ,
2264 , 2608 , 0 , 1200 , 1203 , 1209 , 1255 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1200@85Hz */
{ DRM_MODE ( " 1920x1200 " , DRM_MODE_TYPE_DRIVER , 281250 , 1920 , 2064 ,
2272 , 2624 , 0 , 1200 , 1203 , 1209 , 1262 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1440@60Hz */
{ DRM_MODE ( " 1920x1440 " , DRM_MODE_TYPE_DRIVER , 234000 , 1920 , 2048 ,
2256 , 2600 , 0 , 1440 , 1441 , 1444 , 1500 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1440@75Hz */
{ DRM_MODE ( " 1920x1440 " , DRM_MODE_TYPE_DRIVER , 297000 , 1920 , 2064 ,
2288 , 2640 , 0 , 1440 , 1441 , 1444 , 1500 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 2560x1600@60Hz */
{ DRM_MODE ( " 2560x1600 " , DRM_MODE_TYPE_DRIVER , 348500 , 2560 , 2752 ,
3032 , 3504 , 0 , 1600 , 1603 , 1609 , 1658 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 2560x1600@75HZ */
{ DRM_MODE ( " 2560x1600 " , DRM_MODE_TYPE_DRIVER , 443250 , 2560 , 2768 ,
3048 , 3536 , 0 , 1600 , 1603 , 1609 , 1672 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 2560x1600@85HZ */
{ DRM_MODE ( " 2560x1600 " , DRM_MODE_TYPE_DRIVER , 505250 , 2560 , 2768 ,
3048 , 3536 , 0 , 1600 , 1603 , 1609 , 1682 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
} ;
static const int drm_num_dmt_modes =
sizeof ( drm_dmt_modes ) / sizeof ( struct drm_display_mode ) ;
2011-01-26 09:49:47 +00:00
static const struct drm_display_mode edid_est_modes [ ] = {
2010-08-03 14:38:20 -04:00
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 40000 , 800 , 840 ,
968 , 1056 , 0 , 600 , 601 , 605 , 628 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 800x600@60Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 36000 , 800 , 824 ,
896 , 1024 , 0 , 600 , 601 , 603 , 625 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 800x600@56Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 31500 , 640 , 656 ,
720 , 840 , 0 , 480 , 481 , 484 , 500 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 640x480@75Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 31500 , 640 , 664 ,
704 , 832 , 0 , 480 , 489 , 491 , 520 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 640x480@72Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 30240 , 640 , 704 ,
768 , 864 , 0 , 480 , 483 , 486 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 640x480@67Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 25200 , 640 , 656 ,
752 , 800 , 0 , 480 , 490 , 492 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 640x480@60Hz */
{ DRM_MODE ( " 720x400 " , DRM_MODE_TYPE_DRIVER , 35500 , 720 , 738 ,
846 , 900 , 0 , 400 , 421 , 423 , 449 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 720x400@88Hz */
{ DRM_MODE ( " 720x400 " , DRM_MODE_TYPE_DRIVER , 28320 , 720 , 738 ,
846 , 900 , 0 , 400 , 412 , 414 , 449 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 720x400@70Hz */
{ DRM_MODE ( " 1280x1024 " , DRM_MODE_TYPE_DRIVER , 135000 , 1280 , 1296 ,
1440 , 1688 , 0 , 1024 , 1025 , 1028 , 1066 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 1280x1024@75Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 78800 , 1024 , 1040 ,
1136 , 1312 , 0 , 768 , 769 , 772 , 800 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 1024x768@75Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 75000 , 1024 , 1048 ,
1184 , 1328 , 0 , 768 , 771 , 777 , 806 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 1024x768@70Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 65000 , 1024 , 1048 ,
1184 , 1344 , 0 , 768 , 771 , 777 , 806 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 1024x768@60Hz */
{ DRM_MODE ( " 1024x768 " , DRM_MODE_TYPE_DRIVER , 44900 , 1024 , 1032 ,
1208 , 1264 , 0 , 768 , 768 , 776 , 817 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_INTERLACE ) } , /* 1024x768@43Hz */
{ DRM_MODE ( " 832x624 " , DRM_MODE_TYPE_DRIVER , 57284 , 832 , 864 ,
928 , 1152 , 0 , 624 , 625 , 628 , 667 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } , /* 832x624@75Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 49500 , 800 , 816 ,
896 , 1056 , 0 , 600 , 601 , 604 , 625 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 800x600@75Hz */
{ DRM_MODE ( " 800x600 " , DRM_MODE_TYPE_DRIVER , 50000 , 800 , 856 ,
976 , 1040 , 0 , 600 , 637 , 643 , 666 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 800x600@72Hz */
{ DRM_MODE ( " 1152x864 " , DRM_MODE_TYPE_DRIVER , 108000 , 1152 , 1216 ,
1344 , 1600 , 0 , 864 , 865 , 868 , 900 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } , /* 1152x864@75Hz */
} ;
static const struct {
short w ;
short h ;
short r ;
short rb ;
} est3_modes [ ] = {
/* byte 6 */
{ 640 , 350 , 85 , 0 } ,
{ 640 , 400 , 85 , 0 } ,
{ 720 , 400 , 85 , 0 } ,
{ 640 , 480 , 85 , 0 } ,
{ 848 , 480 , 60 , 0 } ,
{ 800 , 600 , 85 , 0 } ,
{ 1024 , 768 , 85 , 0 } ,
{ 1152 , 864 , 75 , 0 } ,
/* byte 7 */
{ 1280 , 768 , 60 , 1 } ,
{ 1280 , 768 , 60 , 0 } ,
{ 1280 , 768 , 75 , 0 } ,
{ 1280 , 768 , 85 , 0 } ,
{ 1280 , 960 , 60 , 0 } ,
{ 1280 , 960 , 85 , 0 } ,
{ 1280 , 1024 , 60 , 0 } ,
{ 1280 , 1024 , 85 , 0 } ,
/* byte 8 */
{ 1360 , 768 , 60 , 0 } ,
{ 1440 , 900 , 60 , 1 } ,
{ 1440 , 900 , 60 , 0 } ,
{ 1440 , 900 , 75 , 0 } ,
{ 1440 , 900 , 85 , 0 } ,
{ 1400 , 1050 , 60 , 1 } ,
{ 1400 , 1050 , 60 , 0 } ,
{ 1400 , 1050 , 75 , 0 } ,
/* byte 9 */
{ 1400 , 1050 , 85 , 0 } ,
{ 1680 , 1050 , 60 , 1 } ,
{ 1680 , 1050 , 60 , 0 } ,
{ 1680 , 1050 , 75 , 0 } ,
{ 1680 , 1050 , 85 , 0 } ,
{ 1600 , 1200 , 60 , 0 } ,
{ 1600 , 1200 , 65 , 0 } ,
{ 1600 , 1200 , 70 , 0 } ,
/* byte 10 */
{ 1600 , 1200 , 75 , 0 } ,
{ 1600 , 1200 , 85 , 0 } ,
{ 1792 , 1344 , 60 , 0 } ,
{ 1792 , 1344 , 85 , 0 } ,
{ 1856 , 1392 , 60 , 0 } ,
{ 1856 , 1392 , 75 , 0 } ,
{ 1920 , 1200 , 60 , 1 } ,
{ 1920 , 1200 , 60 , 0 } ,
/* byte 11 */
{ 1920 , 1200 , 75 , 0 } ,
{ 1920 , 1200 , 85 , 0 } ,
{ 1920 , 1440 , 60 , 0 } ,
{ 1920 , 1440 , 75 , 0 } ,
} ;
static const int num_est3_modes = sizeof ( est3_modes ) / sizeof ( est3_modes [ 0 ] ) ;
drm/edid: support CEA video modes.
TFT/plasma televisions and projectors have become commonplace, and so
has the use of PCs to drive them. Add the video modes specified by an
EDID's CEA extension to the mode database for a connector.
Before:
[ 1.158869] [drm:drm_mode_debug_printmodeline], Modeline
19:"1920x1080i" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
[ 1.158875] [drm:drm_mode_debug_printmodeline], Modeline
18:"1920x1080i" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
[ 1.158882] [drm:drm_mode_debug_printmodeline], Modeline
20:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
After:
[ 1.144175] [drm:drm_mode_debug_printmodeline], Modeline
22:"1920x1080" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
[ 1.144179] [drm:drm_mode_debug_printmodeline], Modeline
21:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
[ 1.144187] [drm:drm_mode_debug_printmodeline], Modeline
30:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
[ 1.144190] [drm:drm_mode_debug_printmodeline], Modeline
29:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
[ 1.144192] [drm:drm_mode_debug_printmodeline], Modeline
25:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
[ 1.144195] [drm:drm_mode_debug_printmodeline], Modeline
24:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
[ 1.144198] [drm:drm_mode_debug_printmodeline], Modeline
23:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
[ 1.144201] [drm:drm_mode_debug_printmodeline], Modeline 27:"720x576"
50 27000 720 732 796 864 576 581 586 625 0x40 0xa
[ 1.144203] [drm:drm_mode_debug_printmodeline], Modeline 26:"720x480"
60 27000 720 736 798 858 480 489 495 525 0x40 0xa
[ 1.144206] [drm:drm_mode_debug_printmodeline], Modeline 28:"640x480"
60 25175 640 656 752 800 480 490 492 525 0x40 0xa
Signed-off-by: Christian Schmidt <schmidt@digadd.de>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-12-19 14:53:16 +00:00
/*
* Probably taken from CEA - 861 spec .
* This table is converted from xorg ' s hw / xfree86 / modes / xf86EdidModes . c .
*/
static const struct drm_display_mode edid_cea_modes [ ] = {
/* 640x480@60Hz */
{ DRM_MODE ( " 640x480 " , DRM_MODE_TYPE_DRIVER , 25175 , 640 , 656 ,
752 , 800 , 0 , 480 , 490 , 492 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x480@60Hz */
{ DRM_MODE ( " 720x480 " , DRM_MODE_TYPE_DRIVER , 27000 , 720 , 736 ,
798 , 858 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x480@60Hz */
{ DRM_MODE ( " 720x480 " , DRM_MODE_TYPE_DRIVER , 27000 , 720 , 736 ,
798 , 858 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1280x720@60Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 74250 , 1280 , 1390 ,
1430 , 1650 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080i@60Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 74250 , 1920 , 2008 ,
2052 , 2200 , 0 , 1080 , 1084 , 1094 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x480i@60Hz */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1478 ,
1602 , 1716 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x480i@60Hz */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1478 ,
1602 , 1716 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x240@60Hz */
{ DRM_MODE ( " 1440x240 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1478 ,
1602 , 1716 , 0 , 240 , 244 , 247 , 262 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x240@60Hz */
{ DRM_MODE ( " 1440x240 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1478 ,
1602 , 1716 , 0 , 240 , 244 , 247 , 262 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x480i@60Hz */
{ DRM_MODE ( " 2880x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2956 ,
3204 , 3432 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 2880x480i@60Hz */
{ DRM_MODE ( " 2880x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2956 ,
3204 , 3432 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 2880x240@60Hz */
{ DRM_MODE ( " 2880x240 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2956 ,
3204 , 3432 , 0 , 240 , 244 , 247 , 262 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x240@60Hz */
{ DRM_MODE ( " 2880x240 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2956 ,
3204 , 3432 , 0 , 240 , 244 , 247 , 262 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x480@60Hz */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1472 ,
1596 , 1716 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x480@60Hz */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1472 ,
1596 , 1716 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1920x1080@60Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 148500 , 1920 , 2008 ,
2052 , 2200 , 0 , 1080 , 1084 , 1089 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 720x576@50Hz */
{ DRM_MODE ( " 720x576 " , DRM_MODE_TYPE_DRIVER , 27000 , 720 , 732 ,
796 , 864 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x576@50Hz */
{ DRM_MODE ( " 720x576 " , DRM_MODE_TYPE_DRIVER , 27000 , 720 , 732 ,
796 , 864 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1280x720@50Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 74250 , 1280 , 1720 ,
1760 , 1980 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080i@50Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 74250 , 1920 , 2448 ,
2492 , 2640 , 0 , 1080 , 1084 , 1094 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x576i@50Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1464 ,
1590 , 1728 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x576i@50Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1464 ,
1590 , 1728 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x288@50Hz */
{ DRM_MODE ( " 1440x288 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1464 ,
1590 , 1728 , 0 , 288 , 290 , 293 , 312 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x288@50Hz */
{ DRM_MODE ( " 1440x288 " , DRM_MODE_TYPE_DRIVER , 27000 , 1440 , 1464 ,
1590 , 1728 , 0 , 288 , 290 , 293 , 312 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x576i@50Hz */
{ DRM_MODE ( " 2880x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2928 ,
3180 , 3456 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 2880x576i@50Hz */
{ DRM_MODE ( " 2880x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2928 ,
3180 , 3456 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 2880x288@50Hz */
{ DRM_MODE ( " 2880x288 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2928 ,
3180 , 3456 , 0 , 288 , 290 , 293 , 312 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x288@50Hz */
{ DRM_MODE ( " 2880x288 " , DRM_MODE_TYPE_DRIVER , 54000 , 2880 , 2928 ,
3180 , 3456 , 0 , 288 , 290 , 293 , 312 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x576@50Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1464 ,
1592 , 1728 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x576@50Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1464 ,
1592 , 1728 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1920x1080@50Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 148500 , 1920 , 2448 ,
2492 , 2640 , 0 , 1080 , 1084 , 1089 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080@24Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 74250 , 1920 , 2558 ,
2602 , 2750 , 0 , 1080 , 1084 , 1089 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080@25Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 74250 , 1920 , 2448 ,
2492 , 2640 , 0 , 1080 , 1084 , 1089 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080@30Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 74250 , 1920 , 2008 ,
2052 , 2200 , 0 , 1080 , 1084 , 1089 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 2880x480@60Hz */
{ DRM_MODE ( " 2880x480 " , DRM_MODE_TYPE_DRIVER , 108000 , 2880 , 2944 ,
3192 , 3432 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x480@60Hz */
{ DRM_MODE ( " 2880x480 " , DRM_MODE_TYPE_DRIVER , 108000 , 2880 , 2944 ,
3192 , 3432 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x576@50Hz */
{ DRM_MODE ( " 2880x576 " , DRM_MODE_TYPE_DRIVER , 108000 , 2880 , 2928 ,
3184 , 3456 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 2880x576@50Hz */
{ DRM_MODE ( " 2880x576 " , DRM_MODE_TYPE_DRIVER , 108000 , 2880 , 2928 ,
3184 , 3456 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1920x1080i@50Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 72000 , 1920 , 1952 ,
2120 , 2304 , 0 , 1080 , 1126 , 1136 , 1250 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1920x1080i@100Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 148500 , 1920 , 2448 ,
2492 , 2640 , 0 , 1080 , 1084 , 1094 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1280x720@100Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 148500 , 1280 , 1720 ,
1760 , 1980 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 720x576@100Hz */
{ DRM_MODE ( " 720x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 720 , 732 ,
796 , 864 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x576@100Hz */
{ DRM_MODE ( " 720x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 720 , 732 ,
796 , 864 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x576i@100Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1464 ,
1590 , 1728 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x576i@100Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1464 ,
1590 , 1728 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1920x1080i@120Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 148500 , 1920 , 2008 ,
2052 , 2200 , 0 , 1080 , 1084 , 1094 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1280x720@120Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 148500 , 1280 , 1390 ,
1430 , 1650 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 720x480@120Hz */
{ DRM_MODE ( " 720x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 720 , 736 ,
798 , 858 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x480@120Hz */
{ DRM_MODE ( " 720x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 720 , 736 ,
798 , 858 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x480i@120Hz */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1478 ,
1602 , 1716 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x480i@120Hz */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 54000 , 1440 , 1478 ,
1602 , 1716 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 720x576@200Hz */
{ DRM_MODE ( " 720x576 " , DRM_MODE_TYPE_DRIVER , 108000 , 720 , 732 ,
796 , 864 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x576@200Hz */
{ DRM_MODE ( " 720x576 " , DRM_MODE_TYPE_DRIVER , 108000 , 720 , 732 ,
796 , 864 , 0 , 576 , 581 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x576i@200Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 108000 , 1440 , 1464 ,
1590 , 1728 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x576i@200Hz */
{ DRM_MODE ( " 1440x576 " , DRM_MODE_TYPE_DRIVER , 108000 , 1440 , 1464 ,
1590 , 1728 , 0 , 576 , 580 , 586 , 625 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 720x480@240Hz */
{ DRM_MODE ( " 720x480 " , DRM_MODE_TYPE_DRIVER , 108000 , 720 , 736 ,
798 , 858 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 720x480@240Hz */
{ DRM_MODE ( " 720x480 " , DRM_MODE_TYPE_DRIVER , 108000 , 720 , 736 ,
798 , 858 , 0 , 480 , 489 , 495 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC ) } ,
/* 1440x480i@240 */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 108000 , 1440 , 1478 ,
1602 , 1716 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1440x480i@240 */
{ DRM_MODE ( " 1440x480 " , DRM_MODE_TYPE_DRIVER , 108000 , 1440 , 1478 ,
1602 , 1716 , 0 , 480 , 488 , 494 , 525 , 0 ,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_INTERLACE ) } ,
/* 1280x720@24Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 59400 , 1280 , 3040 ,
3080 , 3300 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x720@25Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 74250 , 1280 , 3700 ,
3740 , 3960 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1280x720@30Hz */
{ DRM_MODE ( " 1280x720 " , DRM_MODE_TYPE_DRIVER , 74250 , 1280 , 3040 ,
3080 , 3300 , 0 , 720 , 725 , 730 , 750 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080@120Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 297000 , 1920 , 2008 ,
2052 , 2200 , 0 , 1080 , 1084 , 1089 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
/* 1920x1080@100Hz */
{ DRM_MODE ( " 1920x1080 " , DRM_MODE_TYPE_DRIVER , 297000 , 1920 , 2448 ,
2492 , 2640 , 0 , 1080 , 1084 , 1094 , 1125 , 0 ,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC ) } ,
} ;
static const int drm_num_cea_modes =
sizeof ( edid_cea_modes ) / sizeof ( edid_cea_modes [ 0 ] ) ;