We have a project ,the LCD is 2K (1600x2560), we checked the code in i.mx8M DRM side, in the struct drm_display_mode edid_cea_modes , there only supports output as blews:
static struct drm_display_mode edid_cea_modes[] = {
/* 3 - 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),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
/* 4 - 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),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
/* 16 - 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),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
/* 97 - 3840x2160@60Hz */
{ 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, },
/* 96 - 3840x2160@30Hz */
{ 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, },
};
and we try to add the codes in to the struct :
/* 0x4c - 2560x1600@60Hz RB */
{ DRM_MODE("2560x1600", DRM_MODE_TYPE_DRIVER, 268500, 2560, 2608,
2640, 2720, 0, 1600, 1603, 1609, 1646, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) ,
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9,},
/* xx - 1600x2560@60Hz */
{ DRM_MODE("1600x2560", DRM_MODE_TYPE_DRIVER, 268500, 1600, 1603,
1609, 1646, 0, 2560, 2608, 2640, 2720, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
But it indicats that the clock can't support in the table t28hpc_hdmitx_clock_control_table_pixel_out .
So, how to modify the codes to make the imx8M to support other HDMI display mode?
or who has the code in t28hpc_hdmitx_table.c which has the clock of 2K. many thanks.
I have a similar problem and need to make 137,930 KHz line in t28hpc_hdmitx_clock_control_table_pixel_out[][].
I've added the needed 1080x1920 mode line in edid_cea_modes[] in imx-hdp.c:
{ DRM_MODE("1080x1920", DRM_MODE_TYPE_DRIVER, 137930,
hdmi supports only modes which are found in struct fb_videomode,
so one can add timings for 2K modes based on datasheet
of these monitors. One can use mentioned 1024*768 fb_videomode as example.
Hi jamesbone
The fb_videomode is the frame buffer , the imx 8M is not use this now, it use the DRM. Do you know how to add codes in DRM?