[igt-dev] [PATCH i-g-t] tests/kms_fbcon_fbt: When restoring fbcon always set mode to text mode

Shankar, Uma uma.shankar at intel.com
Fri May 29 15:49:55 UTC 2020



> -----Original Message-----
> From: igt-dev <igt-dev-bounces at lists.freedesktop.org> On Behalf Of José Roberto
> de Souza
> Sent: Friday, May 29, 2020 6:22 AM
> To: igt-dev at lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t] tests/kms_fbcon_fbt: When restoring fbcon always
> set mode to text mode
> 
> If by some reason or tests, this tests is executed and VT mode is already in
> KD_GRAPHICS the call to kmstest_set_vt_graphics_mode() will set orig_vt_mode
> as KD_GRAPHICS and when it was calling
> kmstest_restore_vt_mode() it would set KD_GRAPHICS again not returning to
> fbcon and causing the test to fail.
> 
> As it can be seen here:
> (kms_fbcon_fbt:11004) igt_kms-DEBUG: VT: graphics mode set (mode was 0x1)"
> https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_499/fi-ehl-
> 1/igt at kms_fbcon_fbt@fbc.html
> 
> So here adding a new function to alaways set mode the KD_TEXT when we want
> to restore to fbcon.
> 
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> ---
>  lib/igt_kms.c         | 11 +++++++++++
>  lib/igt_kms.h         |  1 +
>  tests/kms_fbcon_fbt.c |  2 +-
>  3 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c index d4cbc1c53..afef59396 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -968,6 +968,17 @@ void kmstest_set_vt_graphics_mode(void)
>  	igt_debug("VT: graphics mode set (mode was 0x%lx)\n", ret);  }
> 
> +/**
> + * kmstest_set_vt_text_mode:
> + *
> + * Sets the controlling VT (if available) into text mode.
> + * Unlikely kmstest_set_vt_graphics_mode() it do not install an igt
> +exit
> + * handler to set the VT back to the previous mode.
> + */
> +void kmstest_set_vt_text_mode(void)
> +{
> +	igt_assert(set_vt_mode(KD_TEXT) >= 0); }
> 
>  static void reset_connectors_at_exit(int sig)  { diff --git a/lib/igt_kms.h
> b/lib/igt_kms.h index adca59ac6..32a0e4cc6 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -93,6 +93,7 @@ void kmstest_dump_mode(drmModeModeInfo *mode);  int
> kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);  void
> kmstest_set_vt_graphics_mode(void);
>  void kmstest_restore_vt_mode(void);
> +void kmstest_set_vt_text_mode(void);
> 
>  enum igt_atomic_crtc_properties {
>         IGT_CRTC_BACKGROUND = 0,
> diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c index
> e6dd4353b..e99a1f2f2 100644
> --- a/tests/kms_fbcon_fbt.c
> +++ b/tests/kms_fbcon_fbt.c
> @@ -283,7 +283,7 @@ static void restore_fbcon(struct drm_info *drm)
>  	kmstest_unset_all_crtcs(drm->fd, drm->res);
>  	igt_remove_fb(drm->fd, &drm->fb);
>  	igt_device_drop_master(drm->fd);
> -	kmstest_restore_vt_mode();
> +	kmstest_set_vt_text_mode();


Can we level set the state to KD_TEXT in beginning only before we begin our test.
This way test will start with the expected state, and we can then set KD_GRAPHICS,
restore will ensure previous state is set again as KD_TEXT, and we can just continue with the
existing restore logic. Will that cause any issue ?

Regards,
Uma Shankar

>  }
> 
>  static void subtest(struct drm_info *drm, struct feature *feature, bool suspend)
> --
> 2.26.2
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list