diff options
Diffstat (limited to 'drivers/gpu/drm/drm_edid.c')
| -rw-r--r-- | drivers/gpu/drm/drm_edid.c | 513 | 
1 files changed, 280 insertions, 233 deletions
| diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index fed653f13c26..6840f0530a38 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -720,662 +720,662 @@ static const struct drm_display_mode edid_cea_modes_1[] = {  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 2 - 720x480@60Hz 4:3 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 3 - 720x480@60Hz 16:9 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 4 - 1280x720@60Hz 16:9 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 5 - 1920x1080i@60Hz 16:9 */  	{ DRM_MODE("1920x1080i", 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 6 - 720(1440)x480i@60Hz 4:3 */  	{ DRM_MODE("720x480i", DRM_MODE_TYPE_DRIVER, 13500, 720, 739,  		   801, 858, 0, 480, 488, 494, 525, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 7 - 720(1440)x480i@60Hz 16:9 */  	{ DRM_MODE("720x480i", DRM_MODE_TYPE_DRIVER, 13500, 720, 739,  		   801, 858, 0, 480, 488, 494, 525, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 8 - 720(1440)x240@60Hz 4:3 */  	{ DRM_MODE("720x240", DRM_MODE_TYPE_DRIVER, 13500, 720, 739,  		   801, 858, 0, 240, 244, 247, 262, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 9 - 720(1440)x240@60Hz 16:9 */  	{ DRM_MODE("720x240", DRM_MODE_TYPE_DRIVER, 13500, 720, 739,  		   801, 858, 0, 240, 244, 247, 262, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 10 - 2880x480i@60Hz 4:3 */  	{ DRM_MODE("2880x480i", 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 11 - 2880x480i@60Hz 16:9 */  	{ DRM_MODE("2880x480i", 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 12 - 2880x240@60Hz 4:3 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 13 - 2880x240@60Hz 16:9 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 14 - 1440x480@60Hz 4:3 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 15 - 1440x480@60Hz 16:9 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 16 - 1920x1080@60Hz 16:9 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 17 - 720x576@50Hz 4:3 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 18 - 720x576@50Hz 16:9 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 19 - 1280x720@50Hz 16:9 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 20 - 1920x1080i@50Hz 16:9 */  	{ DRM_MODE("1920x1080i", 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 21 - 720(1440)x576i@50Hz 4:3 */  	{ DRM_MODE("720x576i", DRM_MODE_TYPE_DRIVER, 13500, 720, 732,  		   795, 864, 0, 576, 580, 586, 625, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 22 - 720(1440)x576i@50Hz 16:9 */  	{ DRM_MODE("720x576i", DRM_MODE_TYPE_DRIVER, 13500, 720, 732,  		   795, 864, 0, 576, 580, 586, 625, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 23 - 720(1440)x288@50Hz 4:3 */  	{ DRM_MODE("720x288", DRM_MODE_TYPE_DRIVER, 13500, 720, 732,  		   795, 864, 0, 288, 290, 293, 312, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 24 - 720(1440)x288@50Hz 16:9 */  	{ DRM_MODE("720x288", DRM_MODE_TYPE_DRIVER, 13500, 720, 732,  		   795, 864, 0, 288, 290, 293, 312, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 25 - 2880x576i@50Hz 4:3 */  	{ DRM_MODE("2880x576i", 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 26 - 2880x576i@50Hz 16:9 */  	{ DRM_MODE("2880x576i", 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 27 - 2880x288@50Hz 4:3 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 28 - 2880x288@50Hz 16:9 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 29 - 1440x576@50Hz 4:3 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 30 - 1440x576@50Hz 16:9 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 31 - 1920x1080@50Hz 16:9 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 32 - 1920x1080@24Hz 16:9 */  	{ 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), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 33 - 1920x1080@25Hz 16:9 */  	{ 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), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 34 - 1920x1080@30Hz 16:9 */  	{ 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), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 35 - 2880x480@60Hz 4:3 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 36 - 2880x480@60Hz 16:9 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 37 - 2880x576@50Hz 4:3 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 38 - 2880x576@50Hz 16:9 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 39 - 1920x1080i@50Hz 16:9 */  	{ DRM_MODE("1920x1080i", 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 40 - 1920x1080i@100Hz 16:9 */  	{ DRM_MODE("1920x1080i", 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), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 41 - 1280x720@100Hz 16:9 */  	{ 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), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 42 - 720x576@100Hz 4:3 */  	{ 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), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 43 - 720x576@100Hz 16:9 */  	{ 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), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 44 - 720(1440)x576i@100Hz 4:3 */  	{ DRM_MODE("720x576i", DRM_MODE_TYPE_DRIVER, 27000, 720, 732,  		   795, 864, 0, 576, 580, 586, 625, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 45 - 720(1440)x576i@100Hz 16:9 */  	{ DRM_MODE("720x576i", DRM_MODE_TYPE_DRIVER, 27000, 720, 732,  		   795, 864, 0, 576, 580, 586, 625, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 46 - 1920x1080i@120Hz 16:9 */  	{ DRM_MODE("1920x1080i", 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 47 - 1280x720@120Hz 16:9 */  	{ 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 48 - 720x480@120Hz 4:3 */  	{ 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 49 - 720x480@120Hz 16:9 */  	{ 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 50 - 720(1440)x480i@120Hz 4:3 */  	{ DRM_MODE("720x480i", DRM_MODE_TYPE_DRIVER, 27000, 720, 739,  		   801, 858, 0, 480, 488, 494, 525, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 51 - 720(1440)x480i@120Hz 16:9 */  	{ DRM_MODE("720x480i", DRM_MODE_TYPE_DRIVER, 27000, 720, 739,  		   801, 858, 0, 480, 488, 494, 525, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 52 - 720x576@200Hz 4:3 */  	{ 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), -	  .vrefresh = 200, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 53 - 720x576@200Hz 16:9 */  	{ 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), -	  .vrefresh = 200, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 54 - 720(1440)x576i@200Hz 4:3 */  	{ DRM_MODE("720x576i", DRM_MODE_TYPE_DRIVER, 54000, 720, 732,  		   795, 864, 0, 576, 580, 586, 625, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 200, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 55 - 720(1440)x576i@200Hz 16:9 */  	{ DRM_MODE("720x576i", DRM_MODE_TYPE_DRIVER, 54000, 720, 732,  		   795, 864, 0, 576, 580, 586, 625, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 200, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 56 - 720x480@240Hz 4:3 */  	{ 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), -	  .vrefresh = 240, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 57 - 720x480@240Hz 16:9 */  	{ 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), -	  .vrefresh = 240, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 58 - 720(1440)x480i@240Hz 4:3 */  	{ DRM_MODE("720x480i", DRM_MODE_TYPE_DRIVER, 54000, 720, 739,  		   801, 858, 0, 480, 488, 494, 525, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 240, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },  	/* 59 - 720(1440)x480i@240Hz 16:9 */  	{ DRM_MODE("720x480i", DRM_MODE_TYPE_DRIVER, 54000, 720, 739,  		   801, 858, 0, 480, 488, 494, 525, 0,  		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |  		   DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), -	  .vrefresh = 240, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 60 - 1280x720@24Hz 16:9 */  	{ 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), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 61 - 1280x720@25Hz 16:9 */  	{ 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), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 62 - 1280x720@30Hz 16:9 */  	{ 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), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 63 - 1920x1080@120Hz 16:9 */  	{ 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 64 - 1920x1080@100Hz 16:9 */  	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2448,  		   2492, 2640, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 65 - 1280x720@24Hz 64:27 */  	{ 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), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 66 - 1280x720@25Hz 64:27 */  	{ 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), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 67 - 1280x720@30Hz 64:27 */  	{ 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), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 68 - 1280x720@50Hz 64:27 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 69 - 1280x720@60Hz 64:27 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 70 - 1280x720@100Hz 64:27 */  	{ 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), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 71 - 1280x720@120Hz 64:27 */  	{ 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 72 - 1920x1080@24Hz 64:27 */  	{ 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), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 73 - 1920x1080@25Hz 64:27 */  	{ 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), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 74 - 1920x1080@30Hz 64:27 */  	{ 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), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 75 - 1920x1080@50Hz 64:27 */  	{ 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), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 76 - 1920x1080@60Hz 64:27 */  	{ 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), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 77 - 1920x1080@100Hz 64:27 */  	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2448,  		   2492, 2640, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 78 - 1920x1080@120Hz 64:27 */  	{ 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), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 79 - 1680x720@24Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 59400, 1680, 3040,  		   3080, 3300, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 80 - 1680x720@25Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 59400, 1680, 2908,  		   2948, 3168, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 81 - 1680x720@30Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 59400, 1680, 2380,  		   2420, 2640, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 82 - 1680x720@50Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 82500, 1680, 1940,  		   1980, 2200, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 83 - 1680x720@60Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 99000, 1680, 1940,  		   1980, 2200, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 84 - 1680x720@100Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 165000, 1680, 1740,  		   1780, 2000, 0, 720, 725, 730, 825, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 85 - 1680x720@120Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 198000, 1680, 1740,  		   1780, 2000, 0, 720, 725, 730, 825, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 86 - 2560x1080@24Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 99000, 2560, 3558,  		   3602, 3750, 0, 1080, 1084, 1089, 1100, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 87 - 2560x1080@25Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 90000, 2560, 3008,  		   3052, 3200, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 88 - 2560x1080@30Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 118800, 2560, 3328,  		   3372, 3520, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 89 - 2560x1080@50Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 185625, 2560, 3108,  		   3152, 3300, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 90 - 2560x1080@60Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 198000, 2560, 2808,  		   2852, 3000, 0, 1080, 1084, 1089, 1100, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 91 - 2560x1080@100Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 371250, 2560, 2778,  		   2822, 2970, 0, 1080, 1084, 1089, 1250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 92 - 2560x1080@120Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 495000, 2560, 3108,  		   3152, 3300, 0, 1080, 1084, 1089, 1250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 93 - 3840x2160@24Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 5116,  		   5204, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 94 - 3840x2160@25Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 95 - 3840x2160@30Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 4016,  		   4104, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 96 - 3840x2160@50Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000, 3840, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 97 - 3840x2160@60Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000, 3840, 4016,  		   4104, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 98 - 4096x2160@24Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 297000, 4096, 5116,  		   5204, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 99 - 4096x2160@25Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 297000, 4096, 5064,  		   5152, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 100 - 4096x2160@30Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 297000, 4096, 4184,  		   4272, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 101 - 4096x2160@50Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 594000, 4096, 5064,  		   5152, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 102 - 4096x2160@60Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 594000, 4096, 4184,  		   4272, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 103 - 3840x2160@24Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 5116,  		   5204, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 104 - 3840x2160@25Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 105 - 3840x2160@30Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 4016,  		   4104, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 106 - 3840x2160@50Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000, 3840, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 107 - 3840x2160@60Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000, 3840, 4016,  		   4104, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 108 - 1280x720@48Hz 16:9 */  	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 90000, 1280, 2240,  		   2280, 2500, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 109 - 1280x720@48Hz 64:27 */  	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 90000, 1280, 2240,  		   2280, 2500, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 110 - 1680x720@48Hz 64:27 */  	{ DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 99000, 1680, 2490,  		   2530, 2750, 0, 720, 725, 730, 750, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 111 - 1920x1080@48Hz 16:9 */  	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2558,  		   2602, 2750, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 112 - 1920x1080@48Hz 64:27 */  	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2558,  		   2602, 2750, 0, 1080, 1084, 1089, 1125, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 113 - 2560x1080@48Hz 64:27 */  	{ DRM_MODE("2560x1080", DRM_MODE_TYPE_DRIVER, 198000, 2560, 3558,  		   3602, 3750, 0, 1080, 1084, 1089, 1100, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 114 - 3840x2160@48Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000, 3840, 5116,  		   5204, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 115 - 4096x2160@48Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 594000, 4096, 5116,  		   5204, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 116 - 3840x2160@48Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 594000, 3840, 5116,  		   5204, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 117 - 3840x2160@100Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 1188000, 3840, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 118 - 3840x2160@120Hz 16:9 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 1188000, 3840, 4016,  		   4104, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 119 - 3840x2160@100Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 1188000, 3840, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 120 - 3840x2160@120Hz 64:27 */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 1188000, 3840, 4016,  		   4104, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 121 - 5120x2160@24Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 396000, 5120, 7116,  		   7204, 7500, 0, 2160, 2168, 2178, 2200, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 122 - 5120x2160@25Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 396000, 5120, 6816,  		   6904, 7200, 0, 2160, 2168, 2178, 2200, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 123 - 5120x2160@30Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 396000, 5120, 5784,  		   5872, 6000, 0, 2160, 2168, 2178, 2200, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 124 - 5120x2160@48Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 742500, 5120, 5866,  		   5954, 6250, 0, 2160, 2168, 2178, 2475, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 125 - 5120x2160@50Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 742500, 5120, 6216,  		   6304, 6600, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 126 - 5120x2160@60Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 742500, 5120, 5284,  		   5372, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 127 - 5120x2160@100Hz 64:27 */  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 1485000, 5120, 6216,  		   6304, 6600, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  };  /* @@ -1388,137 +1388,137 @@ static const struct drm_display_mode edid_cea_modes_193[] = {  	{ DRM_MODE("5120x2160", DRM_MODE_TYPE_DRIVER, 1485000, 5120, 5284,  		   5372, 5500, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 194 - 7680x4320@24Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 1188000, 7680, 10232,  		   10408, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 195 - 7680x4320@25Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 1188000, 7680, 10032,  		   10208, 10800, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 196 - 7680x4320@30Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 1188000, 7680, 8232,  		   8408, 9000, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 197 - 7680x4320@48Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 2376000, 7680, 10232,  		   10408, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 198 - 7680x4320@50Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 2376000, 7680, 10032,  		   10208, 10800, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 199 - 7680x4320@60Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 2376000, 7680, 8232,  		   8408, 9000, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 200 - 7680x4320@100Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 4752000, 7680, 9792,  		   9968, 10560, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 201 - 7680x4320@120Hz 16:9 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 4752000, 7680, 8032,  		   8208, 8800, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 202 - 7680x4320@24Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 1188000, 7680, 10232,  		   10408, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 203 - 7680x4320@25Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 1188000, 7680, 10032,  		   10208, 10800, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 204 - 7680x4320@30Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 1188000, 7680, 8232,  		   8408, 9000, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 205 - 7680x4320@48Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 2376000, 7680, 10232,  		   10408, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 206 - 7680x4320@50Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 2376000, 7680, 10032,  		   10208, 10800, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 207 - 7680x4320@60Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 2376000, 7680, 8232,  		   8408, 9000, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 208 - 7680x4320@100Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 4752000, 7680, 9792,  		   9968, 10560, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 209 - 7680x4320@120Hz 64:27 */  	{ DRM_MODE("7680x4320", DRM_MODE_TYPE_DRIVER, 4752000, 7680, 8032,  		   8208, 8800, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 210 - 10240x4320@24Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 1485000, 10240, 11732,  		   11908, 12500, 0, 4320, 4336, 4356, 4950, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 211 - 10240x4320@25Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 1485000, 10240, 12732,  		   12908, 13500, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 212 - 10240x4320@30Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 1485000, 10240, 10528,  		   10704, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 213 - 10240x4320@48Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 2970000, 10240, 11732,  		   11908, 12500, 0, 4320, 4336, 4356, 4950, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 48, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 214 - 10240x4320@50Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 2970000, 10240, 12732,  		   12908, 13500, 0, 4320, 4336, 4356, 4400, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 50, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 215 - 10240x4320@60Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 2970000, 10240, 10528,  		   10704, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 216 - 10240x4320@100Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 5940000, 10240, 12432,  		   12608, 13200, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 217 - 10240x4320@120Hz 64:27 */  	{ DRM_MODE("10240x4320", DRM_MODE_TYPE_DRIVER, 5940000, 10240, 10528,  		   10704, 11000, 0, 4320, 4336, 4356, 4500, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },  	/* 218 - 4096x2160@100Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 1188000, 4096, 4896,  		   4984, 5280, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  	/* 219 - 4096x2160@120Hz 256:135 */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 1188000, 4096, 4184,  		   4272, 4400, 0, 2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 120, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  };  /* @@ -1532,25 +1532,25 @@ static const struct drm_display_mode edid_4k_modes[] = {  		   3840, 4016, 4104, 4400, 0,  		   2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 30, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 2 - 3840x2160@25Hz */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000,  		   3840, 4896, 4984, 5280, 0,  		   2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 3 - 3840x2160@24Hz */  	{ DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000,  		   3840, 5116, 5204, 5500, 0,  		   2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },  	/* 4 - 4096x2160@24Hz (SMPTE) */  	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 297000,  		   4096, 5116, 5204, 5500, 0,  		   2160, 2168, 2178, 2250, 0,  		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), -	  .vrefresh = 24, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, }, +	  .picture_aspect_ratio = HDMI_PICTURE_ASPECT_256_135, },  };  /*** DDC fetch and block validation ***/ @@ -1616,6 +1616,37 @@ static bool drm_edid_is_zero(const u8 *in_edid, int length)  }  /** + * drm_edid_are_equal - compare two edid blobs. + * @edid1: pointer to first blob + * @edid2: pointer to second blob + * This helper can be used during probing to determine if + * edid had changed. + */ +bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2) +{ +	int edid1_len, edid2_len; +	bool edid1_present = edid1 != NULL; +	bool edid2_present = edid2 != NULL; + +	if (edid1_present != edid2_present) +		return false; + +	if (edid1) { +		edid1_len = EDID_LENGTH * (1 + edid1->extensions); +		edid2_len = EDID_LENGTH * (1 + edid2->extensions); + +		if (edid1_len != edid2_len) +			return false; + +		if (memcmp(edid1, edid2, edid1_len)) +			return false; +	} + +	return true; +} +EXPORT_SYMBOL(drm_edid_are_equal); + +/**   * drm_edid_block_valid - Sanity check the EDID block (base or extension)   * @raw_edid: pointer to raw EDID block   * @block: type of block to validate (0 for base, extension otherwise) @@ -1641,6 +1672,7 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,  	if (block == 0) {  		int score = drm_edid_header_is_valid(raw_edid); +  		if (score == 8) {  			if (edid_corrupt)  				*edid_corrupt = false; @@ -1812,9 +1844,7 @@ static void connector_bad_edid(struct drm_connector *connector,  	if (connector->bad_edid_counter++ && !drm_debug_enabled(DRM_UT_KMS))  		return; -	dev_warn(connector->dev->dev, -		 "%s: EDID is invalid:\n", -		 connector->name); +	drm_warn(connector->dev, "%s: EDID is invalid:\n", connector->name);  	for (i = 0; i < num_blocks; i++) {  		u8 *block = edid + i * EDID_LENGTH;  		char prefix[20]; @@ -2017,13 +2047,17 @@ EXPORT_SYMBOL(drm_probe_ddc);  struct edid *drm_get_edid(struct drm_connector *connector,  			  struct i2c_adapter *adapter)  { +	struct edid *edid; +  	if (connector->force == DRM_FORCE_OFF)  		return NULL;  	if (connector->force == DRM_FORCE_UNSPECIFIED && !drm_probe_ddc(adapter))  		return NULL; -	return drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter); +	edid = drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter); +	drm_connector_update_edid_property(connector, edid); +	return edid;  }  EXPORT_SYMBOL(drm_get_edid); @@ -2146,10 +2180,8 @@ static void edid_fixup_preferred(struct drm_connector *connector,  		if (MODE_SIZE(cur_mode) > MODE_SIZE(preferred_mode))  			preferred_mode = cur_mode; -		cur_vrefresh = cur_mode->vrefresh ? -			cur_mode->vrefresh : drm_mode_vrefresh(cur_mode); -		preferred_vrefresh = preferred_mode->vrefresh ? -			preferred_mode->vrefresh : drm_mode_vrefresh(preferred_mode); +		cur_vrefresh = drm_mode_vrefresh(cur_mode); +		preferred_vrefresh = drm_mode_vrefresh(preferred_mode);  		/* At a given size, try to get closest to target refresh */  		if ((MODE_SIZE(cur_mode) == MODE_SIZE(preferred_mode)) &&  		    MODE_REFRESH_DIFF(cur_vrefresh, target_refresh) < @@ -2190,6 +2222,7 @@ struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,  	for (i = 0; i < ARRAY_SIZE(drm_dmt_modes); i++) {  		const struct drm_display_mode *ptr = &drm_dmt_modes[i]; +  		if (hsize != ptr->hdisplay)  			continue;  		if (vsize != ptr->vdisplay) @@ -2261,6 +2294,7 @@ drm_for_each_detailed_block(u8 *raw_edid, detailed_cb *cb, void *closure)  	for (i = 1; i <= raw_edid[0x7e]; i++) {  		u8 *ext = raw_edid + (i * EDID_LENGTH); +  		switch (*ext) {  		case CEA_EXT:  			cea_for_each_detailed_block(ext, cb, closure); @@ -2292,6 +2326,7 @@ drm_monitor_supports_rb(struct edid *edid)  {  	if (edid->revision >= 4) {  		bool ret = false; +  		drm_for_each_detailed_block((u8 *)edid, is_rb, &ret);  		return ret;  	} @@ -2316,6 +2351,7 @@ static int  drm_gtf2_hbreak(struct edid *edid)  {  	u8 *r = NULL; +  	drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);  	return r ? (r[12] * 2) : 0;  } @@ -2324,6 +2360,7 @@ static int  drm_gtf2_2c(struct edid *edid)  {  	u8 *r = NULL; +  	drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);  	return r ? r[13] : 0;  } @@ -2332,6 +2369,7 @@ static int  drm_gtf2_m(struct edid *edid)  {  	u8 *r = NULL; +  	drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);  	return r ? (r[15] << 8) + r[14] : 0;  } @@ -2340,6 +2378,7 @@ static int  drm_gtf2_k(struct edid *edid)  {  	u8 *r = NULL; +  	drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);  	return r ? r[16] : 0;  } @@ -2348,6 +2387,7 @@ static int  drm_gtf2_2j(struct edid *edid)  {  	u8 *r = NULL; +  	drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);  	return r ? r[17] : 0;  } @@ -2654,7 +2694,6 @@ set_size:  	}  	mode->type = DRM_MODE_TYPE_DRIVER; -	mode->vrefresh = drm_mode_vrefresh(mode);  	drm_mode_set_name(mode);  	return mode; @@ -2800,6 +2839,7 @@ drm_gtf_modes_for_range(struct drm_connector *connector, struct edid *edid,  	for (i = 0; i < ARRAY_SIZE(extra_modes); i++) {  		const struct minimode *m = &extra_modes[i]; +  		newmode = drm_gtf_mode(dev, m->w, m->h, m->r, 0, 0);  		if (!newmode)  			return modes; @@ -2829,6 +2869,7 @@ drm_cvt_modes_for_range(struct drm_connector *connector, struct edid *edid,  	for (i = 0; i < ARRAY_SIZE(extra_modes); i++) {  		const struct minimode *m = &extra_modes[i]; +  		newmode = drm_cvt_mode(dev, m->w, m->h, m->r, rb, 0, 0);  		if (!newmode)  			return modes; @@ -2964,6 +3005,7 @@ add_established_modes(struct drm_connector *connector, struct edid *edid)  	for (i = 0; i <= EDID_EST_TIMINGS; i++) {  		if (est_bits & (1<<i)) {  			struct drm_display_mode *newmode; +  			newmode = drm_mode_duplicate(dev, &edid_est_modes[i]);  			if (newmode) {  				drm_mode_probed_add(connector, newmode); @@ -3051,7 +3093,8 @@ static int drm_cvt_modes(struct drm_connector *connector,  	const u8 empty[3] = { 0, 0, 0 };  	for (i = 0; i < 4; i++) { -		int uninitialized_var(width), height; +		int width, height; +  		cvt = &(timing->data.other_data.data.cvt[i]);  		if (!memcmp(cvt->code, empty, 3)) @@ -3191,7 +3234,8 @@ add_detailed_modes(struct drm_connector *connector, struct edid *edid,  /*   * Search EDID for CEA extension block.   */ -static u8 *drm_find_edid_extension(const struct edid *edid, int ext_id) +static u8 *drm_find_edid_extension(const struct edid *edid, +				   int ext_id, int *ext_index)  {  	u8 *edid_ext = NULL;  	int i; @@ -3201,23 +3245,26 @@ static u8 *drm_find_edid_extension(const struct edid *edid, int ext_id)  		return NULL;  	/* Find CEA extension */ -	for (i = 0; i < edid->extensions; i++) { +	for (i = *ext_index; i < edid->extensions; i++) {  		edid_ext = (u8 *)edid + EDID_LENGTH * (i + 1);  		if (edid_ext[0] == ext_id)  			break;  	} -	if (i == edid->extensions) +	if (i >= edid->extensions)  		return NULL; +	*ext_index = i + 1; +  	return edid_ext;  }  static u8 *drm_find_displayid_extension(const struct edid *edid, -					int *length, int *idx) +					int *length, int *idx, +					int *ext_index)  { -	u8 *displayid = drm_find_edid_extension(edid, DISPLAYID_EXT); +	u8 *displayid = drm_find_edid_extension(edid, DISPLAYID_EXT, ext_index);  	struct displayid_hdr *base;  	int ret; @@ -3244,26 +3291,31 @@ static u8 *drm_find_cea_extension(const struct edid *edid)  	struct displayid_block *block;  	u8 *cea;  	u8 *displayid; +	int ext_index;  	/* Look for a top level CEA extension block */ -	cea = drm_find_edid_extension(edid, CEA_EXT); +	/* FIXME: make callers iterate through multiple CEA ext blocks? */ +	ext_index = 0; +	cea = drm_find_edid_extension(edid, CEA_EXT, &ext_index);  	if (cea)  		return cea;  	/* CEA blocks can also be found embedded in a DisplayID block */ -	displayid = drm_find_displayid_extension(edid, &length, &idx); -	if (!displayid) -		return NULL; +	ext_index = 0; +	for (;;) { +		displayid = drm_find_displayid_extension(edid, &length, &idx, +							 &ext_index); +		if (!displayid) +			return NULL; -	idx += sizeof(struct displayid_hdr); -	for_each_displayid_db(displayid, block, idx, length) { -		if (block->tag == DATA_BLOCK_CTA) { -			cea = (u8 *)block; -			break; +		idx += sizeof(struct displayid_hdr); +		for_each_displayid_db(displayid, block, idx, length) { +			if (block->tag == DATA_BLOCK_CTA) +				return (u8 *)block;  		}  	} -	return cea; +	return NULL;  }  static __always_inline const struct drm_display_mode *cea_mode_for_vic(u8 vic) @@ -3299,7 +3351,7 @@ cea_mode_alternate_clock(const struct drm_display_mode *cea_mode)  {  	unsigned int clock = cea_mode->clock; -	if (cea_mode->vrefresh % 6 != 0) +	if (drm_mode_vrefresh(cea_mode) % 6 != 0)  		return clock;  	/* @@ -3626,8 +3678,6 @@ drm_display_mode_from_vic_index(struct drm_connector *connector,  	if (!newmode)  		return NULL; -	newmode->vrefresh = 0; -  	return newmode;  } @@ -3696,6 +3746,7 @@ do_cea_modes(struct drm_connector *connector, const u8 *db, u8 len)  	for (i = 0; i < len; i++) {  		struct drm_display_mode *mode; +  		mode = drm_display_mode_from_vic_index(connector, db, len, i);  		if (mode) {  			/* @@ -4537,6 +4588,7 @@ int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads)  		if (cea_db_tag(db) == AUDIO_BLOCK) {  			int j; +  			dbl = cea_db_payload_len(db);  			count = dbl / 3; /* SAD is 3B */ @@ -5140,6 +5192,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d  	unsigned vsync_width = (timings->vsw[0] | timings->vsw[1] << 8) + 1;  	bool hsync_positive = (timings->hsync[1] >> 7) & 0x1;  	bool vsync_positive = (timings->vsync[1] >> 7) & 0x1; +  	mode = drm_mode_create(dev);  	if (!mode)  		return NULL; @@ -5162,7 +5215,6 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d  	if (timings->flags & 0x80)  		mode->type |= DRM_MODE_TYPE_PREFERRED; -	mode->vrefresh = drm_mode_vrefresh(mode);  	drm_mode_set_name(mode);  	return mode; @@ -5201,19 +5253,24 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,  	int length, idx;  	struct displayid_block *block;  	int num_modes = 0; +	int ext_index = 0; -	displayid = drm_find_displayid_extension(edid, &length, &idx); -	if (!displayid) -		return 0; - -	idx += sizeof(struct displayid_hdr); -	for_each_displayid_db(displayid, block, idx, length) { -		switch (block->tag) { -		case DATA_BLOCK_TYPE_1_DETAILED_TIMING: -			num_modes += add_displayid_detailed_1_modes(connector, block); +	for (;;) { +		displayid = drm_find_displayid_extension(edid, &length, &idx, +							 &ext_index); +		if (!displayid)  			break; + +		idx += sizeof(struct displayid_hdr); +		for_each_displayid_db(displayid, block, idx, length) { +			switch (block->tag) { +			case DATA_BLOCK_TYPE_1_DETAILED_TIMING: +				num_modes += add_displayid_detailed_1_modes(connector, block); +				break; +			}  		}  	} +  	return num_modes;  } @@ -5239,7 +5296,7 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)  	}  	if (!drm_edid_is_valid(edid)) {  		clear_eld(connector); -		dev_warn(connector->dev->dev, "%s: EDID invalid.\n", +		drm_warn(connector->dev, "%s: EDID invalid.\n",  			 connector->name);  		return 0;  	} @@ -5322,6 +5379,7 @@ int drm_add_modes_noedid(struct drm_connector *connector,  	for (i = 0; i < count; i++) {  		const struct drm_display_mode *ptr = &drm_dmt_modes[i]; +  		if (hdisplay && vdisplay) {  			/*  			 * Only when two are valid, they will be used to check @@ -5366,7 +5424,7 @@ void drm_set_preferred_mode(struct drm_connector *connector,  }  EXPORT_SYMBOL(drm_set_preferred_mode); -static bool is_hdmi2_sink(struct drm_connector *connector) +static bool is_hdmi2_sink(const struct drm_connector *connector)  {  	/*  	 * FIXME: sil-sii8620 doesn't have a connector around when @@ -5451,7 +5509,7 @@ drm_hdmi_infoframe_set_hdr_metadata(struct hdmi_drm_infoframe *frame,  }  EXPORT_SYMBOL(drm_hdmi_infoframe_set_hdr_metadata); -static u8 drm_mode_hdmi_vic(struct drm_connector *connector, +static u8 drm_mode_hdmi_vic(const struct drm_connector *connector,  			    const struct drm_display_mode *mode)  {  	bool has_hdmi_infoframe = connector ? @@ -5467,7 +5525,7 @@ static u8 drm_mode_hdmi_vic(struct drm_connector *connector,  	return drm_match_hdmi_mode(mode);  } -static u8 drm_mode_cea_vic(struct drm_connector *connector, +static u8 drm_mode_cea_vic(const struct drm_connector *connector,  			   const struct drm_display_mode *mode)  {  	u8 vic; @@ -5505,7 +5563,7 @@ static u8 drm_mode_cea_vic(struct drm_connector *connector,   */  int  drm_hdmi_avi_infoframe_from_display_mode(struct hdmi_avi_infoframe *frame, -					 struct drm_connector *connector, +					 const struct drm_connector *connector,  					 const struct drm_display_mode *mode)  {  	enum hdmi_picture_aspect picture_aspect; @@ -5652,7 +5710,7 @@ EXPORT_SYMBOL(drm_hdmi_avi_infoframe_colorspace);   */  void  drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame, -				   struct drm_connector *connector, +				   const struct drm_connector *connector,  				   const struct drm_display_mode *mode,  				   enum hdmi_quantization_range rgb_quant_range)  { @@ -5756,7 +5814,7 @@ s3d_structure_from_display_mode(const struct drm_display_mode *mode)   */  int  drm_hdmi_vendor_infoframe_from_display_mode(struct hdmi_vendor_infoframe *frame, -					    struct drm_connector *connector, +					    const struct drm_connector *connector,  					    const struct drm_display_mode *mode)  {  	/* @@ -5793,8 +5851,8 @@ drm_hdmi_vendor_infoframe_from_display_mode(struct hdmi_vendor_infoframe *frame,  }  EXPORT_SYMBOL(drm_hdmi_vendor_infoframe_from_display_mode); -static int drm_parse_tiled_block(struct drm_connector *connector, -				 const struct displayid_block *block) +static void drm_parse_tiled_block(struct drm_connector *connector, +				  const struct displayid_block *block)  {  	const struct displayid_tiled_block *tile = (struct displayid_tiled_block *)block;  	u16 w, h; @@ -5828,30 +5886,27 @@ static int drm_parse_tiled_block(struct drm_connector *connector,  	DRM_DEBUG_KMS("vend %c%c%c\n", tile->topology_id[0], tile->topology_id[1], tile->topology_id[2]);  	tg = drm_mode_get_tile_group(connector->dev, tile->topology_id); -	if (!tg) { +	if (!tg)  		tg = drm_mode_create_tile_group(connector->dev, tile->topology_id); -	}  	if (!tg) -		return -ENOMEM; +		return;  	if (connector->tile_group != tg) {  		/* if we haven't got a pointer,  		   take the reference, drop ref to old tile group */ -		if (connector->tile_group) { +		if (connector->tile_group)  			drm_mode_put_tile_group(connector->dev, connector->tile_group); -		}  		connector->tile_group = tg; -	} else +	} else {  		/* if same tile group, then release the ref we just took. */  		drm_mode_put_tile_group(connector->dev, tg); -	return 0; +	}  } -static int drm_displayid_parse_tiled(struct drm_connector *connector, -				     const u8 *displayid, int length, int idx) +static void drm_displayid_parse_tiled(struct drm_connector *connector, +				      const u8 *displayid, int length, int idx)  {  	const struct displayid_block *block; -	int ret;  	idx += sizeof(struct displayid_hdr);  	for_each_displayid_db(displayid, block, idx, length) { @@ -5860,42 +5915,34 @@ static int drm_displayid_parse_tiled(struct drm_connector *connector,  		switch (block->tag) {  		case DATA_BLOCK_TILED_DISPLAY: -			ret = drm_parse_tiled_block(connector, block); -			if (ret) -				return ret; +			drm_parse_tiled_block(connector, block);  			break;  		default:  			DRM_DEBUG_KMS("found DisplayID tag 0x%x, unhandled\n", block->tag);  			break;  		}  	} -	return 0;  }  void drm_update_tile_info(struct drm_connector *connector,  			  const struct edid *edid)  {  	const void *displayid = NULL; +	int ext_index = 0;  	int length, idx; -	int ret;  	connector->has_tile = false; -	displayid = drm_find_displayid_extension(edid, &length, &idx); -	if (!displayid) { -		/* drop reference to any tile group we had */ -		goto out_drop_ref; +	for (;;) { +		displayid = drm_find_displayid_extension(edid, &length, &idx, +							 &ext_index); +		if (!displayid) +			break; + +		drm_displayid_parse_tiled(connector, displayid, length, idx);  	} -	ret = drm_displayid_parse_tiled(connector, displayid, length, idx); -	if (ret < 0) -		goto out_drop_ref; -	if (!connector->has_tile) -		goto out_drop_ref; -	return; -out_drop_ref: -	if (connector->tile_group) { +	if (!connector->has_tile && connector->tile_group) {  		drm_mode_put_tile_group(connector->dev, connector->tile_group);  		connector->tile_group = NULL;  	} -	return;  } | 
