drm/ast: Add resolution support for 1152x864@75
authorJammy Huang <jammy_huang@aspeedtech.com>
Fri, 16 Sep 2022 08:50:58 +0000 (16:50 +0800)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 20 Sep 2022 08:19:32 +0000 (10:19 +0200)
Add 1152x864 into support list.

Signed-off-by: Jammy Huang <jammy_huang@aspeedtech.com>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220916085058.3386-1-jammy_huang@aspeedtech.com
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/ast/ast_tables.h

index 103bd4f..b613344 100644 (file)
@@ -113,6 +113,9 @@ static bool ast_get_vbios_mode_info(const struct drm_format_info *format,
        case 1024:
                vbios_mode->enh_table = &res_1024x768[refresh_rate_index];
                break;
+       case 1152:
+               vbios_mode->enh_table = &res_1152x864[refresh_rate_index];
+               break;
        case 1280:
                if (mode->crtc_vdisplay == 800)
                        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
                        return MODE_OK;
                if ((mode->hdisplay == 1600) && (mode->vdisplay == 900))
                        return MODE_OK;
+               if ((mode->hdisplay == 1152) && (mode->vdisplay == 864))
+                       return MODE_OK;
 
                if ((ast->chip == AST2100) || (ast->chip == AST2200) ||
                    (ast->chip == AST2300) || (ast->chip == AST2400) ||
@@ -1089,6 +1094,10 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode
                if (mode->vdisplay == 768)
                        status = MODE_OK;
                break;
+       case 1152:
+               if (mode->vdisplay == 864)
+                       status = MODE_OK;
+               break;
        case 1280:
                if (mode->vdisplay == 1024)
                        status = MODE_OK;
index dbe1cc6..0378c9b 100644 (file)
@@ -272,6 +272,13 @@ static const struct ast_vbios_enhtable res_1600x1200[] = {
         (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 */
 static const struct ast_vbios_enhtable res_1360x768[] = {
        {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5,         /* 60Hz */