[igt-dev] [PATCH i-g-t] lib/kms: Handle no connectors for igt_enable_connectors()

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Wed Oct 3 08:12:02 UTC 2018


Op 02-10-18 om 17:29 schreef Chris Wilson:
> Take the device fd from the caller as to which card we should try and
> enable connectors for (or else we may not enable the right connectors
> for the test!) and fail gracefully if there is no kms support on the
> device.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  lib/igt_kms.c                | 10 +++-------
>  lib/igt_kms.h                |  2 +-
>  tests/kms_flip.c             |  2 +-
>  tests/kms_invalid_dotclock.c |  2 +-
>  tests/kms_pipe_crc_basic.c   |  2 +-
>  5 files changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 3894eeaff..b2cbaa114 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3905,15 +3905,13 @@ void igt_wait_for_vblank(int drm_fd, enum pipe pipe)
>   * An exit handler is installed to ensure connectors are reset when the test
>   * exits.
>   */
> -void igt_enable_connectors(void)
> +void igt_enable_connectors(int drm_fd)
>  {
>  	drmModeRes *res;
> -	int drm_fd;
> -
> -	drm_fd = drm_open_driver(DRIVER_ANY);
>  
>  	res = drmModeGetResources(drm_fd);
> -	igt_assert(res != NULL);
> +	if (!res)
> +		return;
>  
>  	for (int i = 0; i < res->count_connectors; i++) {
>  		drmModeConnector *c;
> @@ -3940,8 +3938,6 @@ void igt_enable_connectors(void)
>  
>  		drmModeFreeConnector(c);
>  	}
> -
> -	close(drm_fd);
>  }
>  
>  /**
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 2d862665e..38fa944ef 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -734,7 +734,7 @@ extern void igt_pipe_obj_replace_prop_blob(igt_pipe_t *pipe,
>  
>  void igt_pipe_refresh(igt_display_t *display, enum pipe pipe, bool force);
>  
> -void igt_enable_connectors(void);
> +void igt_enable_connectors(int drm_fd);
>  void igt_reset_connectors(void);
>  
>  uint32_t kmstest_get_vbl_flag(uint32_t pipe_id);
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index f7d08a60a..44a820538 100644
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -1575,7 +1575,7 @@ int main(int argc, char **argv)
>  	igt_fixture {
>  		drm_fd = drm_open_driver_master(DRIVER_ANY);
>  
> -		igt_enable_connectors();
> +		igt_enable_connectors(drm_fd);
>  
>  		kmstest_set_vt_graphics_mode();
>  		igt_install_exit_handler(kms_flip_exit_handler);
> diff --git a/tests/kms_invalid_dotclock.c b/tests/kms_invalid_dotclock.c
> index e7a80d884..568889a98 100644
> --- a/tests/kms_invalid_dotclock.c
> +++ b/tests/kms_invalid_dotclock.c
> @@ -131,7 +131,7 @@ igt_simple_main
>  	data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>  	igt_require_intel(data.drm_fd);
>  
> -	igt_enable_connectors();
> +	igt_enable_connectors(data.drm_fd);
>  	kmstest_set_vt_graphics_mode();
>  	igt_display_require(&data.display, data.drm_fd);
>  	data.res = drmModeGetResources(data.drm_fd);
> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
> index 9c9078e9b..5bc0952fc 100644
> --- a/tests/kms_pipe_crc_basic.c
> +++ b/tests/kms_pipe_crc_basic.c
> @@ -181,7 +181,7 @@ igt_main
>  	igt_fixture {
>  		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
>  
> -		igt_enable_connectors();
> +		igt_enable_connectors(data.drm_fd);
>  
>  		kmstest_set_vt_graphics_mode();
>  

Reviewed-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>



More information about the igt-dev mailing list