[igt-dev] [PATCH i-g-t] tests/kms_dp_tiled_display: Request a mode on resolution that matches tile size
Karthik B S
karthik.b.s at intel.com
Mon Dec 9 03:51:18 UTC 2019
Loop through the connector's modes for both the tiled connectors and
find a mode that matches the tile h size and tile v size.
Request a modeset on this mode for both tiled connectors.
Signed-off-by: Karthik B S <karthik.b.s at intel.com>
---
tests/kms_dp_tiled_display.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/tests/kms_dp_tiled_display.c b/tests/kms_dp_tiled_display.c
index 175ff12f..c86a055e 100644
--- a/tests/kms_dp_tiled_display.c
+++ b/tests/kms_dp_tiled_display.c
@@ -207,9 +207,10 @@ static void test_cleanup(data_t *data)
static void setup_mode(data_t *data)
{
- int count = 0, prev = 0;
- bool pipe_in_use = false;
+ int count = 0, prev = 0, i = 0;
+ bool pipe_in_use = false, found = false;
enum pipe pipe;
+ drmModeModeInfo *mode;
igt_output_t *output;
data_connector_t *conns = data->conns;
@@ -226,6 +227,8 @@ static void setup_mode(data_t *data)
for_each_pipe(data->display, pipe) {
pipe_in_use = false;
+ found = false;
+
if (count > 0) {
for (prev = count - 1; prev >= 0; prev--) {
if (pipe == conns[prev].pipe) {
@@ -247,6 +250,17 @@ static void setup_mode(data_t *data)
}
}
igt_require(conns[count].pipe != PIPE_NONE);
+
+ for (i = 0; i < conns[count].connector->count_modes; i++) {
+ mode = &conns[count].connector->modes[i];
+ if (mode->vdisplay == conns[count].tile.tile_v_size &&
+ mode->hdisplay == conns[count].tile.tile_h_size) {
+ found = true;
+ break;
+ }
+ }
+ igt_require(found);
+ igt_output_override_mode(output, mode);
}
igt_display_commit_atomic(data->display, DRM_MODE_ATOMIC_ALLOW_MODESET,
NULL);
--
2.22.0
More information about the igt-dev
mailing list