diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2016-01-14 14:03:53 -0800 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2016-01-26 09:32:43 -0800 |
commit | e28acefc5c22b41e3f141ca959c8f96cd16feb47 (patch) | |
tree | b59a00df139b759101239464f20b6ed1271bc976 /tests/testdisplay.c | |
parent | e2c9a023f2f76db04b94dae64e14ad37e0210b46 (diff) |
lib/igt_kms, tests/testdisplay: allow probing of new connector modes
Fixup some fallout from the connector probing changes so testdisplay -m
will pick up newly hotplugged displays correctly.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org.
Diffstat (limited to 'tests/testdisplay.c')
-rw-r--r-- | tests/testdisplay.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/tests/testdisplay.c b/tests/testdisplay.c index ff49e23a..00b47bd0 100644 --- a/tests/testdisplay.c +++ b/tests/testdisplay.c @@ -191,12 +191,19 @@ static void dump_info(void) static void connector_find_preferred_mode(uint32_t connector_id, unsigned long crtc_idx_mask, - int mode_num, struct connector *c) + int mode_num, struct connector *c, + bool probe) { struct kmstest_connector_config config; + bool ret; - if (!kmstest_get_connector_config(drm_fd, connector_id, crtc_idx_mask, - &config)) { + if (probe) + ret = kmstest_probe_connector_config(drm_fd, connector_id, + crtc_idx_mask, &config); + else + ret = kmstest_get_connector_config(drm_fd, connector_id, + crtc_idx_mask, &config); + if (!ret) { c->mode_valid = 0; return; } @@ -456,7 +463,7 @@ set_stereo_mode(struct connector *c) * Each connector has a corresponding encoder, except in the SDVO case * where an encoder may have multiple connectors. */ -int update_display(void) +int update_display(bool probe) { struct connector *connectors; int c; @@ -488,7 +495,7 @@ int update_display(void) connector_find_preferred_mode(connector->id, crtc_idx_mask, specified_mode_num, - connector); + connector, probe); if (!connector->mode_valid) continue; @@ -513,7 +520,7 @@ int update_display(void) connector_find_preferred_mode(connector->id, -1UL, specified_mode_num, - connector); + connector, probe); if (!connector->mode_valid) continue; @@ -765,7 +772,7 @@ int main(int argc, char **argv) ret = 0; - if (!update_display()) { + if (!update_display(false)) { ret = 1; goto out_stdio; } |