[v2,05/11] drm/mediatek: Adjust DRM mode configs for IGT

Message ID 20230918084207.23604-6-shawn.sung@mediatek.com
State New
Headers
Series Support IGT in display driver |

Commit Message

Shawn Sung (宋孝謙) Sept. 18, 2023, 8:42 a.m. UTC
  IGT (Intel GPU Tool) could commit the following planes
during the test:

kms_plane:

The sub-tests pixel-format-* will create planes with
size of 1 or 4512 pixels, these size will be rejected
by the original mode configs.
Adjust minimum and maximum value of both plane width
and height.

kms_cursor_crc:

If cursor_width and cursor_height is not defined,
IGT uses min_width and min_height as the limitation
when creating cursor plane so sub-tests like
cursor-rapid-movement will be skipped.
Set cursor_width and cursor_height to 512 pixel can
solve the problem.

Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com>
---
 drivers/gpu/drm/mediatek/mtk_drm_drv.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Comments

CK Hu (胡俊光) Sept. 18, 2023, 9:05 a.m. UTC | #1
Hi, Hsiao-chien:

On Mon, 2023-09-18 at 16:42 +0800, Hsiao Chien Sung wrote:
> IGT (Intel GPU Tool) could commit the following planes
> during the test:
> 
> kms_plane:
> 
> The sub-tests pixel-format-* will create planes with
> size of 1 or 4512 pixels, these size will be rejected
> by the original mode configs.
> Adjust minimum and maximum value of both plane width
> and height.
> 
> kms_cursor_crc:
> 
> If cursor_width and cursor_height is not defined,
> IGT uses min_width and min_height as the limitation
> when creating cursor plane so sub-tests like
> cursor-rapid-movement will be skipped.
> Set cursor_width and cursor_height to 512 pixel can
> solve the problem.
> 
> Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 7759a06e5c0e..62581b2a470b 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -429,16 +429,18 @@ static int mtk_drm_kms_init(struct drm_device
> *drm)
>  	if (ret)
>  		goto put_mutex_dev;
>  
> -	drm->mode_config.min_width = 64;
> -	drm->mode_config.min_height = 64;
> +	drm->mode_config.min_width = 1;
> +	drm->mode_config.min_height = 1;
>  
>  	/*
>  	 * set max width and height as default value(4096x4096).
>  	 * this value would be used to check framebuffer size
> limitation
>  	 * at drm_mode_addfb().
>  	 */
> -	drm->mode_config.max_width = 4096;
> -	drm->mode_config.max_height = 4096;
> +	drm->mode_config.max_width = 8191;
> +	drm->mode_config.max_height = 8191;
> +	drm->mode_config.cursor_width = 512;
> +	drm->mode_config.cursor_height = 512;

All the setting depend on the hardware limitation. This driver support
mt8173, mt8183, .... Please make sure all SoC support this
modification. Or you just modify this for the SoC you have test.

I do not like the title mention about IGT. I think this title should be
"align mode_config to hardware limitation".

Regards,
CK

>  	drm->mode_config.funcs = &mtk_drm_mode_config_funcs;
>  	drm->mode_config.helper_private = &mtk_drm_mode_config_helpers;
>
  

Patch

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 7759a06e5c0e..62581b2a470b 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -429,16 +429,18 @@  static int mtk_drm_kms_init(struct drm_device *drm)
 	if (ret)
 		goto put_mutex_dev;
 
-	drm->mode_config.min_width = 64;
-	drm->mode_config.min_height = 64;
+	drm->mode_config.min_width = 1;
+	drm->mode_config.min_height = 1;
 
 	/*
 	 * set max width and height as default value(4096x4096).
 	 * this value would be used to check framebuffer size limitation
 	 * at drm_mode_addfb().
 	 */
-	drm->mode_config.max_width = 4096;
-	drm->mode_config.max_height = 4096;
+	drm->mode_config.max_width = 8191;
+	drm->mode_config.max_height = 8191;
+	drm->mode_config.cursor_width = 512;
+	drm->mode_config.cursor_height = 512;
 	drm->mode_config.funcs = &mtk_drm_mode_config_funcs;
 	drm->mode_config.helper_private = &mtk_drm_mode_config_helpers;