summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLyude <lyude@redhat.com>2016-12-07 19:02:04 -0500
committerLyude <lyude@redhat.com>2016-12-08 11:26:26 -0500
commit80baeb023223e7948ebfa22ebb4d3b706b4bc550 (patch)
tree5aae4d51683c3a1bb64388afb53bc595cbd0538e
parent4f0866610a4300d2d740b75122ea3b92e0134c08 (diff)
igt_kms: Remove support for drivers with <1 drm_plane
We've had support for universal planes since kernel version 3.15, so there's not really a good reason to try supporting drivers that lack plane support now. As well, the current has_universal_planes logic is broken anyway as it makes the assumption that having display planes always means we have both a primary plane and a cursor plane (this isn't true on radeon/amdgpu and nouveau). So, remove this, and just check for whether or not we have a cursor plane. Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--lib/igt_kms.c29
-rw-r--r--lib/igt_kms.h2
-rw-r--r--tests/kms_crtc_background_color.c2
-rw-r--r--tests/kms_plane_scaling.c1
-rw-r--r--tests/kms_rotation_crc.c25
-rw-r--r--tests/kms_universal_plane.c5
6 files changed, 25 insertions, 39 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 82bb41d3..0e7b8e88 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1407,7 +1407,6 @@ void igt_display_init(igt_display_t *display, int drm_fd)
plane = &pipe->planes[IGT_PLANE_PRIMARY];
plane->is_primary = 1;
plane->index = IGT_PLANE_PRIMARY;
- display->has_universal_planes = 1;
break;
case DRM_PLANE_TYPE_CURSOR:
/*
@@ -1420,7 +1419,7 @@ void igt_display_init(igt_display_t *display, int drm_fd)
plane = &pipe->planes[IGT_PLANE_CURSOR];
plane->is_cursor = 1;
plane->index = IGT_PLANE_CURSOR;
- display->has_universal_planes = 1;
+ display->has_cursor_plane = true;
break;
default:
plane = &pipe->planes[p];
@@ -1445,35 +1444,27 @@ void igt_display_init(igt_display_t *display, int drm_fd)
plane->rotation = (igt_rotation_t)prop_value;
}
- if (display->has_universal_planes) {
- /*
- * If we have universal planes, we should have both
- * primary and cursor planes setup now.
- */
- igt_assert(pipe->planes[IGT_PLANE_PRIMARY].drm_plane &&
- pipe->planes[IGT_PLANE_CURSOR].drm_plane);
+ /*
+ * At the bare minimum, we should expect to have a primary
+ * plane
+ */
+ igt_assert(pipe->planes[IGT_PLANE_PRIMARY].drm_plane);
+ if (display->has_cursor_plane) {
/*
* Cursor was put in the last slot. If we have 0 or
* only 1 sprite, that's the wrong slot and we need to
* move it down.
*/
if (p != IGT_PLANE_CURSOR) {
- pipe->planes[p] = pipe->planes[IGT_PLANE_CURSOR];
+ pipe->planes[p] =
+ pipe->planes[IGT_PLANE_CURSOR];
pipe->planes[p].index = p;
memset(&pipe->planes[IGT_PLANE_CURSOR], 0,
sizeof *plane);
}
} else {
- /*
- * No universal plane support. Add drm_plane-less
- * primary and cursor planes.
- */
- plane = &pipe->planes[IGT_PLANE_PRIMARY];
- plane->pipe = pipe;
- plane->index = IGT_PLANE_PRIMARY;
- plane->is_primary = true;
-
+ /* Add drm_plane-less cursor */
plane = &pipe->planes[p];
plane->pipe = pipe;
plane->index = p;
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 6422adc0..0dcb325c 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -311,7 +311,7 @@ struct igt_display {
unsigned long pipes_in_use;
igt_output_t *outputs;
igt_pipe_t pipes[I915_MAX_PIPES];
- bool has_universal_planes;
+ bool has_cursor_plane;
bool is_atomic;
};
diff --git a/tests/kms_crtc_background_color.c b/tests/kms_crtc_background_color.c
index b97c1142..537d4ce6 100644
--- a/tests/kms_crtc_background_color.c
+++ b/tests/kms_crtc_background_color.c
@@ -131,8 +131,6 @@ static void test_crtc_background(data_t *data)
enum pipe pipe;
int valid_tests = 0;
- igt_require(data->display.has_universal_planes);
-
for_each_pipe_with_valid_output(display, pipe, output) {
igt_plane_t *plane;
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 4546ce54..368da09f 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -183,7 +183,6 @@ static void test_plane_scaling(data_t *d)
int valid_tests = 0;
int primary_plane_scaling = 0; /* For now */
- igt_require(d->display.has_universal_planes);
igt_require(d->num_scalers);
for_each_pipe_with_valid_output(display, pipe, output) {
diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 6cc15337..796b4486 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -106,10 +106,8 @@ static void commit_crtc(data_t *data, igt_output_t *output, igt_plane_t *plane)
if (!plane->is_cursor)
igt_plane_set_position(plane, data->pos_x, data->pos_y);
- if (plane->is_primary || plane->is_cursor) {
- igt_require(data->display.has_universal_planes);
+ if (plane->is_primary || plane->is_cursor)
commit = COMMIT_UNIVERSAL;
- }
if (data->display.is_atomic)
commit = COMMIT_ATOMIC;
@@ -248,10 +246,11 @@ static void test_plane_rotation(data_t *data, enum igt_plane plane_type)
unsigned int flip_count;
int ret;
- if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR) {
- igt_require(data->display.has_universal_planes);
+ if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR)
commit = COMMIT_UNIVERSAL;
- }
+
+ if (plane_type == IGT_PLANE_CURSOR)
+ igt_require(display->has_cursor_plane);
if (data->display.is_atomic)
commit = COMMIT_ATOMIC;
@@ -341,10 +340,11 @@ static void test_plane_rotation_ytiled_obj(data_t *data, enum igt_plane plane_ty
plane = igt_output_get_plane(output, plane_type);
igt_require(igt_plane_supports_rotation(plane));
- if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR) {
- igt_require(data->display.has_universal_planes);
+ if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR)
commit = COMMIT_UNIVERSAL;
- }
+
+ if (plane_type == IGT_PLANE_CURSOR)
+ igt_require(display->has_cursor_plane);
if (data->display.is_atomic)
commit = COMMIT_ATOMIC;
@@ -408,10 +408,11 @@ static void test_plane_rotation_exhaust_fences(data_t *data, enum igt_plane plan
plane = igt_output_get_plane(output, plane_type);
igt_require(igt_plane_supports_rotation(plane));
- if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR) {
- igt_require(data->display.has_universal_planes);
+ if (plane_type == IGT_PLANE_PRIMARY || plane_type == IGT_PLANE_CURSOR)
commit = COMMIT_UNIVERSAL;
- }
+
+ if (plane_type == IGT_PLANE_CURSOR)
+ igt_require(display->has_cursor_plane);
if (data->display.is_atomic)
commit = COMMIT_ATOMIC;
diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
index b06b51e6..b9e0651b 100644
--- a/tests/kms_universal_plane.c
+++ b/tests/kms_universal_plane.c
@@ -134,7 +134,6 @@ functional_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
int num_primary = 0, num_cursor = 0;
int i;
- igt_assert(data->display.has_universal_planes);
igt_skip_on(pipe >= display->n_pipes);
igt_info("Testing connector %s using pipe %s\n", igt_output_name(output),
@@ -573,8 +572,8 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
int r, g, b;
int count1, count2;
- igt_assert(data->display.has_universal_planes);
igt_skip_on(pipe >= display->n_pipes);
+ igt_require(display->has_cursor_plane);
igt_output_set_pipe(output, pipe);
mode = igt_output_get_mode(output);
@@ -783,8 +782,6 @@ igt_main
igt_require_pipe_crc();
igt_display_init(&data.display, data.drm_fd);
-
- igt_require(data.display.has_universal_planes);
}
for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)