diff mbox series

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

Message ID 20220916085058.3386-1-jammy_huang@aspeedtech.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/ast: Add resolution support for 1152x864@75 | expand

Commit Message

Jammy Huang Sept. 16, 2022, 8:50 a.m. UTC
Add 1152x864 into support list.

Signed-off-by: Jammy Huang <jammy_huang@aspeedtech.com>
---
v2 changes:
 - add check in mode_valid
---
 drivers/gpu/drm/ast/ast_mode.c   | 9 +++++++++
 drivers/gpu/drm/ast/ast_tables.h | 7 +++++++
 2 files changed, 16 insertions(+)

Comments

Thomas Zimmermann Sept. 20, 2022, 8:42 a.m. UTC | #1
Hi

Am 16.09.22 um 10:50 schrieb Jammy Huang:
> Add 1152x864 into support list.
> 
> Signed-off-by: Jammy Huang <jammy_huang@aspeedtech.com>

Applied to drm-misc-next. Thanks!

Best regards
Thomas

> ---
> v2 changes:
>   - add check in mode_valid
> ---
>   drivers/gpu/drm/ast/ast_mode.c   | 9 +++++++++
>   drivers/gpu/drm/ast/ast_tables.h | 7 +++++++
>   2 files changed, 16 insertions(+)
> 
> diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
> index 214b10178454..d327dcbaf032 100644
> --- a/drivers/gpu/drm/ast/ast_mode.c
> +++ b/drivers/gpu/drm/ast/ast_mode.c
> @@ -114,6 +114,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];
> @@ -1058,6 +1061,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) ||
> @@ -1090,6 +1095,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;
> diff --git a/drivers/gpu/drm/ast/ast_tables.h b/drivers/gpu/drm/ast/ast_tables.h
> index dbe1cc620f6e..0378c9bc079b 100644
> --- a/drivers/gpu/drm/ast/ast_tables.h
> +++ b/drivers/gpu/drm/ast/ast_tables.h
> @@ -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 */
diff mbox series

Patch

diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index 214b10178454..d327dcbaf032 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -114,6 +114,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];
@@ -1058,6 +1061,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) ||
@@ -1090,6 +1095,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;
diff --git a/drivers/gpu/drm/ast/ast_tables.h b/drivers/gpu/drm/ast/ast_tables.h
index dbe1cc620f6e..0378c9bc079b 100644
--- a/drivers/gpu/drm/ast/ast_tables.h
+++ b/drivers/gpu/drm/ast/ast_tables.h
@@ -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 */