diff mbox series

[i-g-t] tests/kms_cursor_crc: Open DRM device with DRIVER_ANY

Message ID 20180812200341.GA17162@haneenDRM (mailing list archive)
State New, archived
Headers show
Series [i-g-t] tests/kms_cursor_crc: Open DRM device with DRIVER_ANY | expand

Commit Message

Haneen Mohammed Aug. 12, 2018, 8:03 p.m. UTC
So that this test can be run in drivers other than i915.
Remove devid and only check it if the driver is i915.

Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
---
 tests/kms_cursor_crc.c | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

Comments

Daniel Vetter Aug. 14, 2018, 9:24 a.m. UTC | #1
On Sun, Aug 12, 2018 at 11:03:41PM +0300, Haneen Mohammed wrote:
> So that this test can be run in drivers other than i915.
> Remove devid and only check it if the driver is i915.
> 
> Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
> ---
>  tests/kms_cursor_crc.c | 31 +++++++++++++++++++++----------
>  1 file changed, 21 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index a164839e..870d7fec 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -59,7 +59,6 @@ typedef struct {
>  	int curw, curh; /* cursor size */
>  	int cursor_max_w, cursor_max_h;
>  	igt_pipe_crc_t *pipe_crc;
> -	uint32_t devid;
>  	unsigned flags;
>  } data_t;
>  
> @@ -108,6 +107,13 @@ static void cursor_disable(data_t *data)
>  
>  static bool chv_cursor_broken(data_t *data, int x)
>  {
> +	uint32_t devid;
> +
> +	if (!is_i915_device(data->drm_fd))
> +		return false;
> +
> +	devid = intel_get_drm_devid(data->drm_fd);
> +
>  	/*
>  	 * CHV gets a FIFO underrun on pipe C when cursor x coordinate
>  	 * is negative and the cursor visible.
> @@ -121,7 +127,7 @@ static bool chv_cursor_broken(data_t *data, int x)
>  	if (x >= 0)
>  		return false;
>  
> -	return IS_CHERRYVIEW(data->devid) && data->pipe == PIPE_C;
> +	return IS_CHERRYVIEW(devid) && data->pipe == PIPE_C;
>  }
>  
>  static bool cursor_visible(data_t *data, int x, int y)
> @@ -459,8 +465,15 @@ static void create_cursor_fb(data_t *data, int cur_w, int cur_h)
>  	igt_put_cairo_ctx(data->drm_fd, &data->fb, cr);
>  }
>  
> -static bool has_nonsquare_cursors(uint32_t devid)
> +static bool has_nonsquare_cursors(data_t *data)
>  {
> +	uint32_t devid;
> +
> +	if (!is_i915_device(data->drm_fd))
> +		return true;

Shouldn't this be return false; here? I think assuming that all kms
drivers support non-square cursors by default is a bit much ...
-Daniel

> +
> +	devid = intel_get_drm_devid(data->drm_fd);
> +
>  	/*
>  	 * Test non-square cursors a bit on the platforms
>  	 * that support such things.
> @@ -616,19 +629,19 @@ static void run_test_generic(data_t *data)
>  
>  		/* Using created cursor FBs to test cursor support */
>  		igt_subtest_f("cursor-%dx%d-onscreen", w, h) {
> -			igt_require(has_nonsquare_cursors(data->devid));
> +			igt_require(has_nonsquare_cursors(data));
>  			run_test(data, test_crc_onscreen, w, h);
>  		}
>  		igt_subtest_f("cursor-%dx%d-offscreen", w, h) {
> -			igt_require(has_nonsquare_cursors(data->devid));
> +			igt_require(has_nonsquare_cursors(data));
>  			run_test(data, test_crc_offscreen, w, h);
>  		}
>  		igt_subtest_f("cursor-%dx%d-sliding", w, h) {
> -			igt_require(has_nonsquare_cursors(data->devid));
> +			igt_require(has_nonsquare_cursors(data));
>  			run_test(data, test_crc_sliding, w, h);
>  		}
>  		igt_subtest_f("cursor-%dx%d-random", w, h) {
> -			igt_require(has_nonsquare_cursors(data->devid));
> +			igt_require(has_nonsquare_cursors(data));
>  			run_test(data, test_crc_random, w, h);
>  		}
>  
> @@ -647,9 +660,7 @@ igt_main
>  	igt_skip_on_simulation();
>  
>  	igt_fixture {
> -		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> -
> -		data.devid = intel_get_drm_devid(data.drm_fd);
> +		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
>  
>  		ret = drmGetCap(data.drm_fd, DRM_CAP_CURSOR_WIDTH, &cursor_width);
>  		igt_assert(ret == 0 || errno == EINVAL);
> -- 
> 2.17.1
>
diff mbox series

Patch

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index a164839e..870d7fec 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -59,7 +59,6 @@  typedef struct {
 	int curw, curh; /* cursor size */
 	int cursor_max_w, cursor_max_h;
 	igt_pipe_crc_t *pipe_crc;
-	uint32_t devid;
 	unsigned flags;
 } data_t;
 
@@ -108,6 +107,13 @@  static void cursor_disable(data_t *data)
 
 static bool chv_cursor_broken(data_t *data, int x)
 {
+	uint32_t devid;
+
+	if (!is_i915_device(data->drm_fd))
+		return false;
+
+	devid = intel_get_drm_devid(data->drm_fd);
+
 	/*
 	 * CHV gets a FIFO underrun on pipe C when cursor x coordinate
 	 * is negative and the cursor visible.
@@ -121,7 +127,7 @@  static bool chv_cursor_broken(data_t *data, int x)
 	if (x >= 0)
 		return false;
 
-	return IS_CHERRYVIEW(data->devid) && data->pipe == PIPE_C;
+	return IS_CHERRYVIEW(devid) && data->pipe == PIPE_C;
 }
 
 static bool cursor_visible(data_t *data, int x, int y)
@@ -459,8 +465,15 @@  static void create_cursor_fb(data_t *data, int cur_w, int cur_h)
 	igt_put_cairo_ctx(data->drm_fd, &data->fb, cr);
 }
 
-static bool has_nonsquare_cursors(uint32_t devid)
+static bool has_nonsquare_cursors(data_t *data)
 {
+	uint32_t devid;
+
+	if (!is_i915_device(data->drm_fd))
+		return true;
+
+	devid = intel_get_drm_devid(data->drm_fd);
+
 	/*
 	 * Test non-square cursors a bit on the platforms
 	 * that support such things.
@@ -616,19 +629,19 @@  static void run_test_generic(data_t *data)
 
 		/* Using created cursor FBs to test cursor support */
 		igt_subtest_f("cursor-%dx%d-onscreen", w, h) {
-			igt_require(has_nonsquare_cursors(data->devid));
+			igt_require(has_nonsquare_cursors(data));
 			run_test(data, test_crc_onscreen, w, h);
 		}
 		igt_subtest_f("cursor-%dx%d-offscreen", w, h) {
-			igt_require(has_nonsquare_cursors(data->devid));
+			igt_require(has_nonsquare_cursors(data));
 			run_test(data, test_crc_offscreen, w, h);
 		}
 		igt_subtest_f("cursor-%dx%d-sliding", w, h) {
-			igt_require(has_nonsquare_cursors(data->devid));
+			igt_require(has_nonsquare_cursors(data));
 			run_test(data, test_crc_sliding, w, h);
 		}
 		igt_subtest_f("cursor-%dx%d-random", w, h) {
-			igt_require(has_nonsquare_cursors(data->devid));
+			igt_require(has_nonsquare_cursors(data));
 			run_test(data, test_crc_random, w, h);
 		}
 
@@ -647,9 +660,7 @@  igt_main
 	igt_skip_on_simulation();
 
 	igt_fixture {
-		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
-
-		data.devid = intel_get_drm_devid(data.drm_fd);
+		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 
 		ret = drmGetCap(data.drm_fd, DRM_CAP_CURSOR_WIDTH, &cursor_width);
 		igt_assert(ret == 0 || errno == EINVAL);