Commit 71dee036 authored by Jammy Huang's avatar Jammy Huang Committed by Thomas Zimmermann

drm/ast: Add resolution support for 1152x864@75

Add 1152x864 into support list.
Signed-off-by: default avatarJammy Huang <jammy_huang@aspeedtech.com>
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220916085058.3386-1-jammy_huang@aspeedtech.com
parent 02d6f9a1
...@@ -113,6 +113,9 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format, ...@@ -113,6 +113,9 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format,
case 1024: case 1024:
vbios_mode->enh_table = &res_1024x768[refresh_rate_index]; vbios_mode->enh_table = &res_1024x768[refresh_rate_index];
break; break;
case 1152:
vbios_mode->enh_table = &res_1152x864[refresh_rate_index];
break;
case 1280: case 1280:
if (mode->crtc_vdisplay == 800) if (mode->crtc_vdisplay == 800)
vbios_mode->enh_table = &res_1280x800[refresh_rate_index]; vbios_mode->enh_table = &res_1280x800[refresh_rate_index];
...@@ -1057,6 +1060,8 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode ...@@ -1057,6 +1060,8 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode
return MODE_OK; return MODE_OK;
if ((mode->hdisplay == 1600) && (mode->vdisplay == 900)) if ((mode->hdisplay == 1600) && (mode->vdisplay == 900))
return MODE_OK; return MODE_OK;
if ((mode->hdisplay == 1152) && (mode->vdisplay == 864))
return MODE_OK;
if ((ast->chip == AST2100) || (ast->chip == AST2200) || if ((ast->chip == AST2100) || (ast->chip == AST2200) ||
(ast->chip == AST2300) || (ast->chip == AST2400) || (ast->chip == AST2300) || (ast->chip == AST2400) ||
...@@ -1089,6 +1094,10 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode ...@@ -1089,6 +1094,10 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode
if (mode->vdisplay == 768) if (mode->vdisplay == 768)
status = MODE_OK; status = MODE_OK;
break; break;
case 1152:
if (mode->vdisplay == 864)
status = MODE_OK;
break;
case 1280: case 1280:
if (mode->vdisplay == 1024) if (mode->vdisplay == 1024)
status = MODE_OK; status = MODE_OK;
......
...@@ -272,6 +272,13 @@ static const struct ast_vbios_enhtable res_1600x1200[] = { ...@@ -272,6 +272,13 @@ static const struct ast_vbios_enhtable res_1600x1200[] = {
(SyncPP | Charx8Dot), 0xFF, 1, 0x33 }, (SyncPP | Charx8Dot), 0xFF, 1, 0x33 },
}; };
static const struct ast_vbios_enhtable res_1152x864[] = {
{1600, 1152, 64, 128, 900, 864, 1, 3, VCLK108, /* 75Hz */
(SyncPP | Charx8Dot | NewModeInfo), 75, 1, 0x3B },
{1600, 1152, 64, 128, 900, 864, 1, 3, VCLK108, /* end */
(SyncPP | Charx8Dot | NewModeInfo), 0xFF, 1, 0x3B },
};
/* 16:9 */ /* 16:9 */
static const struct ast_vbios_enhtable res_1360x768[] = { static const struct ast_vbios_enhtable res_1360x768[] = {
{1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5, /* 60Hz */ {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5, /* 60Hz */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment