testdisplay: Untangle dump_info() from the main testing loop

-i is just supposed to show some information about the DRM resources.
Right now it works in a quite convoluted way. Untangle this to call
dump_info() when -i is given, exit the program and be done with it.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
diff --git a/tests/testdisplay.c b/tests/testdisplay.c
index f94e5c4..3a9eab7 100644
--- a/tests/testdisplay.c
+++ b/tests/testdisplay.c
@@ -53,6 +53,7 @@
 #include <errno.h>
 #include <math.h>
 #include <stdint.h>
+#include <stdbool.h>
 #include <unistd.h>
 #include <sys/poll.h>
 #include <sys/time.h>
@@ -67,8 +68,8 @@
 
 drmModeRes *resources;
 int drm_fd, modes;
-int dump_info = 0, test_all_modes =0, test_preferred_mode = 0, force_mode = 0,
-	test_plane, enable_tiling;
+int test_all_modes = 0, test_preferred_mode = 0, force_mode = 0, test_plane,
+    enable_tiling;
 int sleep_between_modes = 5;
 uint32_t depth = 24, stride, bpp;
 int qr_code = 0;
@@ -181,6 +182,12 @@
 	drmModeFreeResources(mode_resources);
 }
 
+static void dump_info(void)
+{
+	dump_connectors_fd(drm_fd);
+	dump_crtcs_fd(drm_fd);
+}
+
 static void connector_find_preferred_mode(uint32_t connector_id,
 					  unsigned long crtc_idx_mask,
 					  int mode_num, struct connector *c)
@@ -423,11 +430,6 @@
 	if (!connectors)
 		return 0;
 
-	if (dump_info) {
-		dump_connectors_fd(drm_fd);
-		dump_crtcs_fd(drm_fd);
-	}
-
 	if (test_preferred_mode || test_all_modes || force_mode || specified_disp_id != -1) {
 		unsigned long crtc_idx_mask = -1UL;
 
@@ -523,6 +525,7 @@
 	GIOChannel *stdinchannel;
 	GMainLoop *mainloop;
 	float force_clock;
+	bool opt_dump_info = false;
 
 	igt_skip_on_simulation();
 
@@ -532,7 +535,7 @@
 	while ((c = getopt(argc, argv, optstr)) != -1) {
 		switch (c) {
 		case 'i':
-			dump_info = 1;
+			opt_dump_info = true;
 			break;
 		case 'a':
 			test_all_modes = 1;
@@ -588,12 +591,17 @@
 	else if (depth <= 32)
 		bpp = 32;
 
-	if (!test_all_modes && !force_mode && !dump_info &&
-	    !test_preferred_mode && specified_mode_num == -1)
+	if (!test_all_modes && !force_mode && !test_preferred_mode &&
+	    specified_mode_num == -1)
 		test_all_modes = 1;
 
 	drm_fd = drm_open_any();
 
+	if (opt_dump_info) {
+		dump_info();
+		goto out_close;
+	}
+
 	do_or_die(igt_set_vt_graphics_mode());
 
 	mainloop = g_main_loop_new(NULL, FALSE);
@@ -628,7 +636,7 @@
 		goto out_stdio;
 	}
 
-	if (dump_info || test_all_modes)
+	if (test_all_modes)
 		goto out_stdio;
 
 	g_main_loop_run(mainloop);