• Home
  • Raw
  • Download

Lines Matching refs:o

209 static void emit_fence_stress(struct test_output *o)  in emit_fence_stress()  argument
212 struct igt_fb *fb_info = &o->fb_info[o->current_fb_id]; in emit_fence_stress()
253 static void dpms_off_other_outputs(struct test_output *o) in dpms_off_other_outputs() argument
262 for (n = 0; n < o->count; n++) { in dpms_off_other_outputs()
263 if (connector_id == o->kconnector[n]->connector_id) in dpms_off_other_outputs()
278 static void set_dpms(struct test_output *o, int mode) in set_dpms() argument
280 for (int n = 0; n < o->count; n++) in set_dpms()
281 kmstest_set_connector_dpms(drm_fd, o->kconnector[n], mode); in set_dpms()
296 static int do_page_flip(struct test_output *o, uint32_t fb_id, bool event) in do_page_flip() argument
300 o->flip_count = 0; in do_page_flip()
302 for (n = 0; ret == 0 && n < o->count; n++) in do_page_flip()
303 ret = drmModePageFlip(drm_fd, o->_crtc[n], fb_id, in do_page_flip()
305 event ? (void *)((unsigned long)o | (n==0)) : NULL); in do_page_flip()
308 set_flag(&o->pending_events, EVENT_FLIP); in do_page_flip()
353 static int do_wait_for_vblank(struct test_output *o, int pipe_id, in do_wait_for_vblank() argument
357 unsigned flags = o->flags; in do_wait_for_vblank()
360 if (!(o->vblank_state.count > 0)) in do_wait_for_vblank()
363 ret = __wait_for_vblank(flags, pipe_id, target_seq, (unsigned long)o, in do_wait_for_vblank()
365 if (ret == 0 && !(o->flags & TEST_VBLANK_BLOCK)) in do_wait_for_vblank()
366 set_flag(&o->pending_events, EVENT_VBLANK); in do_wait_for_vblank()
372 analog_tv_connector(const struct test_output *o) in analog_tv_connector() argument
374 uint32_t connector_type = o->kconnector[0]->connector_type; in analog_tv_connector()
407 struct test_output *o = (void *)((unsigned long)data & ~ 1); in page_flip_handler() local
409 if (++o->flip_count == o->count) in page_flip_handler()
410 clear_flag(&o->pending_events, EVENT_FLIP); in page_flip_handler()
412 event_handler(&o->flip_state, frame, sec, usec); in page_flip_handler()
415 static double mode_frame_time(const struct test_output *o) in mode_frame_time() argument
417 return 1000.0 * o->kmode[0].htotal * o->kmode[0].vtotal / o->kmode[0].clock; in mode_frame_time()
420 static double actual_frame_time(const struct test_output *o) in actual_frame_time() argument
422 igt_assert(o->flags & TEST_CHECK_TS); in actual_frame_time()
423 return o->vblank_interval; in actual_frame_time()
428 struct test_output *o = data; in vblank_wait_thread_func() local
434 __wait_for_vblank(TEST_VBLANK_BLOCK, o->pipe, 20, (unsigned long)o, &reply); in vblank_wait_thread_func()
435 if (gettime_us() - start > 2 * mode_frame_time(o)) in vblank_wait_thread_func()
442 static void spawn_vblank_wait_thread(struct test_output *o) in spawn_vblank_wait_thread() argument
445 vblank_wait_thread_func, o) == 0); in spawn_vblank_wait_thread()
453 static void fixup_premature_vblank_ts(struct test_output *o, in fixup_premature_vblank_ts() argument
465 if (!(o->flags & (TEST_DPMS | TEST_MODESET))) in fixup_premature_vblank_ts()
468 if (o->vblank_state.current_ts.tv_sec != 0 || in fixup_premature_vblank_ts()
469 o->vblank_state.current_ts.tv_usec != 0) in fixup_premature_vblank_ts()
480 struct test_output *o = data; in vblank_handler() local
482 clear_flag(&o->pending_events, EVENT_VBLANK); in vblank_handler()
483 event_handler(&o->vblank_state, frame, sec, usec); in vblank_handler()
484 fixup_premature_vblank_ts(o, &o->vblank_state); in vblank_handler()
487 static void check_state(const struct test_output *o, const struct event_state *es) in check_state() argument
494 if (!analog_tv_connector(o)) { in check_state()
512 if (!(o->flags & (TEST_DPMS | TEST_MODESET | TEST_NO_VBLANK))) in check_state()
513 igt_assert_f(es->current_seq - (es->last_seq + o->seq_step) <= 1UL << 23, in check_state()
515 es->name, es->current_seq, es->last_seq + o->seq_step); in check_state()
517 if (o->flags & TEST_CHECK_TS) { in check_state()
522 expected = (es->current_seq - es->last_seq) * actual_frame_time(o); in check_state()
536 igt_assert_f(es->current_seq == es->last_seq + o->seq_step, in check_state()
539 es->last_seq + o->seq_step); in check_state()
543 static void check_state_correlation(struct test_output *o, in check_state_correlation() argument
559 ftime = mode_frame_time(o); in check_state_correlation()
567 static void check_all_state(struct test_output *o, in check_all_state() argument
576 check_state(o, &o->flip_state); in check_all_state()
578 check_state(o, &o->vblank_state); in check_all_state()
582 check_state_correlation(o, &o->flip_state, &o->vblank_state); in check_all_state()
585 static void recreate_fb(struct test_output *o) in recreate_fb() argument
588 struct igt_fb *fb_info = &o->fb_info[o->current_fb_id]; in recreate_fb()
595 do_or_die(drmModeAddFB(drm_fd, o->fb_width, o->fb_height, o->depth, in recreate_fb()
596 o->bpp, fb_info->strides[0], in recreate_fb()
603 o->fb_ids[o->current_fb_id] = new_fb_id; in recreate_fb()
604 o->fb_info[o->current_fb_id].fb_id = new_fb_id; in recreate_fb()
632 static int set_mode(struct test_output *o, uint32_t fb, int x, int y) in set_mode() argument
636 for (n = o->count - 1; n >= 0; n--) { in set_mode()
638 uint32_t *conn = &o->_connector[n]; in set_mode()
640 drmModeModeInfoPtr mode = &o->kmode[n]; in set_mode()
647 ret = drmModeSetCrtc(drm_fd, o->_crtc[n], in set_mode()
658 static unsigned int run_test_step(struct test_output *o) in run_test_step() argument
662 int expected_einval = o->flags & TEST_MODESET ? -EBUSY : -EINVAL; in run_test_step()
670 target_seq = o->vblank_state.seq_step; in run_test_step()
672 if (o->flags & TEST_VBLANK_ABSOLUTE && o->vblank_state.count > 0) in run_test_step()
673 target_seq += o->vblank_state.last_seq; in run_test_step()
680 do_flip = (o->flags & TEST_FLIP) && !(o->pending_events & EVENT_FLIP); in run_test_step()
681 do_vblank = (o->flags & TEST_VBLANK) && in run_test_step()
682 !(o->pending_events & EVENT_VBLANK); in run_test_step()
684 if (o->flags & TEST_DPMS_OFF_OTHERS) in run_test_step()
685 dpms_off_other_outputs(o); in run_test_step()
687 if (!(o->flags & TEST_SINGLE_BUFFER)) in run_test_step()
688 o->current_fb_id = !o->current_fb_id; in run_test_step()
690 if (o->flags & TEST_FB_RECREATE) in run_test_step()
691 recreate_fb(o); in run_test_step()
692 new_fb_id = o->fb_ids[o->current_fb_id]; in run_test_step()
694 if ((o->flags & TEST_VBLANK_EXPIRED_SEQ) && in run_test_step()
695 !(o->pending_events & EVENT_VBLANK) && o->flip_state.count > 0) { in run_test_step()
700 exp_seq = o->flip_state.current_seq; in run_test_step()
703 TEST_VBLANK_BLOCK, o->pipe, exp_seq, in run_test_step()
709 igt_assert(timercmp(&reply.ts, &o->flip_state.last_ts, ==)); in run_test_step()
712 if (o->flags & TEST_ENOENT) { in run_test_step()
714 igt_assert_eq(do_page_flip(o, 0xfffffff0, false), -ENOENT); in run_test_step()
715 igt_assert_eq(set_mode(o, 0xfffffff0, 0, 0), -ENOENT); in run_test_step()
718 if (do_flip && (o->flags & TEST_EINVAL) && o->flip_state.count > 0) in run_test_step()
719 igt_assert_eq(do_page_flip(o, new_fb_id, false), expected_einval); in run_test_step()
721 if (do_vblank && (o->flags & TEST_EINVAL) && o->vblank_state.count > 0) in run_test_step()
722 igt_assert_eq(do_wait_for_vblank(o, o->pipe, target_seq, &vbl_reply), -EINVAL); in run_test_step()
724 if (o->flags & TEST_VBLANK_RACE) { in run_test_step()
725 spawn_vblank_wait_thread(o); in run_test_step()
727 if (o->flags & TEST_MODESET) in run_test_step()
728 igt_assert_f(set_mode(o, 0 /* no fb */, 0, 0) == 0, in run_test_step()
733 if (o->flags & TEST_DPMS_OFF) in run_test_step()
734 set_dpms(o, DRM_MODE_DPMS_OFF); in run_test_step()
736 if (o->flags & TEST_MODESET) in run_test_step()
737 igt_assert(set_mode(o, o->fb_ids[o->current_fb_id], 0, 0) == 0); in run_test_step()
739 if (o->flags & TEST_DPMS) in run_test_step()
740 set_dpms(o, DRM_MODE_DPMS_ON); in run_test_step()
742 if (o->flags & TEST_VBLANK_RACE) { in run_test_step()
748 igt_assert(__wait_for_vblank(TEST_VBLANK_BLOCK, o->pipe, 2, 0, &reply) == 0); in run_test_step()
754 igt_assert_f(end - start > 0.9 * mode_frame_time(o) && in run_test_step()
755 end - start < 2.1 * mode_frame_time(o), in run_test_step()
757 end - start, mode_frame_time(o)); in run_test_step()
764 if (do_flip && (o->flags & TEST_HANG)) in run_test_step()
768 if (do_flip && (o->flags & TEST_EBUSY)) { in run_test_step()
770 igt_assert(__wait_for_vblank(TEST_VBLANK_BLOCK, o->pipe, 1, 0, &reply) == 0); in run_test_step()
774 do_or_die(do_page_flip(o, new_fb_id, !(o->flags & TEST_NOEVENT))); in run_test_step()
776 if (o->flags & TEST_FENCE_STRESS) in run_test_step()
777 emit_fence_stress(o); in run_test_step()
780 do_or_die(do_wait_for_vblank(o, o->pipe, target_seq, in run_test_step()
782 if (o->flags & TEST_VBLANK_BLOCK) { in run_test_step()
783 event_handler(&o->vblank_state, vbl_reply.sequence, in run_test_step()
790 if (do_flip && (o->flags & TEST_EBUSY)) in run_test_step()
791 igt_assert_eq(do_page_flip(o, new_fb_id, false), -EBUSY); in run_test_step()
793 if (do_flip && (o->flags & TEST_RMFB)) in run_test_step()
794 recreate_fb(o); in run_test_step()
797 if (o->flags & TEST_PAN) { in run_test_step()
799 o->flip_state.count : o->vblank_state.count; in run_test_step()
800 int width = o->fb_width - o->kmode[0].hdisplay; in run_test_step()
806 if (o->flags & TEST_HANG) in run_test_step()
807 o->current_fb_id = !o->current_fb_id; in run_test_step()
809 igt_assert_f(set_mode(o, o->fb_ids[o->current_fb_id], x_ofs, 0) == 0, in run_test_step()
811 o->kmode[0].hdisplay, o->kmode[0].vdisplay, o->kmode[0].vrefresh, in run_test_step()
815 if (o->flags & TEST_DPMS) in run_test_step()
816 set_dpms(o, DRM_MODE_DPMS_OFF); in run_test_step()
818 if (o->flags & TEST_MODESET && !(o->flags & TEST_RMFB) && !(o->flags & TEST_VBLANK_RACE)) in run_test_step()
819 igt_assert_f(set_mode(o, 0 /* no fb */, 0, 0) == 0, in run_test_step()
823 if (o->flags & TEST_SUSPEND) in run_test_step()
827 if (do_vblank && (o->flags & TEST_EINVAL) && o->vblank_state.count > 0) in run_test_step()
828 igt_assert(do_wait_for_vblank(o, o->pipe, target_seq, &vbl_reply) in run_test_step()
831 if (do_flip && (o->flags & TEST_EINVAL)) in run_test_step()
832 igt_assert(do_page_flip(o, new_fb_id, false) == expected_einval); in run_test_step()
847 static void update_all_state(struct test_output *o, in update_all_state() argument
851 update_state(&o->flip_state); in update_all_state()
854 update_state(&o->vblank_state); in update_all_state()
858 struct test_output *o) in connector_find_preferred_mode() argument
864 o->mode_valid = 0; in connector_find_preferred_mode()
868 o->pipe = config.pipe; in connector_find_preferred_mode()
869 o->kconnector[0] = config.connector; in connector_find_preferred_mode()
870 o->kencoder[0] = config.encoder; in connector_find_preferred_mode()
871 o->_crtc[0] = config.crtc->crtc_id; in connector_find_preferred_mode()
872 o->_pipe[0] = config.pipe; in connector_find_preferred_mode()
873 o->kmode[0] = config.default_mode; in connector_find_preferred_mode()
874 o->mode_valid = 1; in connector_find_preferred_mode()
876 o->fb_width = o->kmode[0].hdisplay; in connector_find_preferred_mode()
877 o->fb_height = o->kmode[0].vdisplay; in connector_find_preferred_mode()
900 struct test_output *o) in connector_find_compatible_mode() argument
906 if (!kmstest_get_connector_config(drm_fd, o->_connector[0], in connector_find_compatible_mode()
910 if (!kmstest_get_connector_config(drm_fd, o->_connector[1], in connector_find_compatible_mode()
933 o->pipe = config[0].pipe; in connector_find_compatible_mode()
934 o->fb_width = mode[0]->hdisplay; in connector_find_compatible_mode()
935 o->fb_height = mode[0]->vdisplay; in connector_find_compatible_mode()
936 o->mode_valid = 1; in connector_find_compatible_mode()
938 o->kconnector[0] = config[0].connector; in connector_find_compatible_mode()
939 o->kencoder[0] = config[0].encoder; in connector_find_compatible_mode()
940 o->_crtc[0] = config[0].crtc->crtc_id; in connector_find_compatible_mode()
941 o->_pipe[0] = config[0].pipe; in connector_find_compatible_mode()
942 o->kmode[0] = *mode[0]; in connector_find_compatible_mode()
944 o->kconnector[1] = config[1].connector; in connector_find_compatible_mode()
945 o->kencoder[1] = config[1].encoder; in connector_find_compatible_mode()
946 o->_crtc[1] = config[1].crtc->crtc_id; in connector_find_compatible_mode()
947 o->_pipe[1] = config[1].pipe; in connector_find_compatible_mode()
948 o->kmode[1] = *mode[1]; in connector_find_compatible_mode()
976 static bool fb_is_bound(struct test_output *o, int fb) in fb_is_bound() argument
980 for (n = 0; n < o->count; n++) { in fb_is_bound()
982 .crtc_id = o->_crtc[n] in fb_is_bound()
995 static void check_final_state(const struct test_output *o, in check_final_state() argument
1004 if (o->flags & TEST_CHECK_TS) { in check_final_state()
1005 int count = es->count * o->seq_step; in check_final_state()
1006 unsigned int min = actual_frame_time(o) * (count - 1); in check_final_state()
1007 unsigned int max = actual_frame_time(o) * (count + 1); in check_final_state()
1010 (int)(elapsed / actual_frame_time(o)), count, in check_final_state()
1011 o->kencoder[0]->encoder_type); in check_final_state()
1014 (int)(elapsed / actual_frame_time(o)), count, in check_final_state()
1015 o->kencoder[0]->encoder_type); in check_final_state()
1023 static unsigned int wait_for_events(struct test_output *o) in wait_for_events() argument
1031 event_mask = o->pending_events; in wait_for_events()
1054 } while (o->pending_events); in wait_for_events()
1056 event_mask ^= o->pending_events; in wait_for_events()
1063 static unsigned event_loop(struct test_output *o, unsigned duration_ms) in event_loop() argument
1073 completed_events = run_test_step(o); in event_loop()
1074 if (o->pending_events) in event_loop()
1075 completed_events |= wait_for_events(o); in event_loop()
1076 check_all_state(o, completed_events); in event_loop()
1077 update_all_state(o, completed_events); in event_loop()
1088 if (o->pending_events) in event_loop()
1089 wait_for_events(o); in event_loop()
1094 static void free_test_output(struct test_output *o) in free_test_output() argument
1098 for (i = 0; i < o->count; i++) { in free_test_output()
1099 drmModeFreeEncoder(o->kencoder[i]); in free_test_output()
1100 drmModeFreeConnector(o->kconnector[i]); in free_test_output()
1104 static void calibrate_ts(struct test_output *o, int crtc_idx) in calibrate_ts() argument
1177 expected = mode_frame_time(o); in calibrate_ts()
1195 o->vblank_interval = mean; in calibrate_ts()
1198 static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs, in run_test_on_crtc_set() argument
1210 connector_find_preferred_mode(o->_connector[0], crtc_idxs[0], o); in run_test_on_crtc_set()
1211 if (!o->mode_valid) in run_test_on_crtc_set()
1216 kmstest_pipe_name(o->_pipe[0]), in run_test_on_crtc_set()
1217 kmstest_connector_type_str(o->kconnector[0]->connector_type), in run_test_on_crtc_set()
1218 o->kconnector[0]->connector_type_id); in run_test_on_crtc_set()
1221 connector_find_compatible_mode(crtc_idxs[0], crtc_idxs[1], o); in run_test_on_crtc_set()
1222 if (!o->mode_valid) in run_test_on_crtc_set()
1227 kmstest_pipe_name(o->_pipe[0]), in run_test_on_crtc_set()
1228 kmstest_pipe_name(o->_pipe[1]), in run_test_on_crtc_set()
1229 kmstest_connector_type_str(o->kconnector[0]->connector_type), in run_test_on_crtc_set()
1230 o->kconnector[0]->connector_type_id, in run_test_on_crtc_set()
1231 kmstest_connector_type_str(o->kconnector[1]->connector_type), in run_test_on_crtc_set()
1232 o->kconnector[1]->connector_type_id); in run_test_on_crtc_set()
1238 igt_assert_eq(o->count, crtc_count); in run_test_on_crtc_set()
1240 last_connector = o->kconnector[0]; in run_test_on_crtc_set()
1244 if (o->flags & TEST_PAN) in run_test_on_crtc_set()
1245 o->fb_width *= 2; in run_test_on_crtc_set()
1248 if (o->flags & TEST_FENCE_STRESS) in run_test_on_crtc_set()
1253 if (o->flags & TEST_BO_TOOBIG) { in run_test_on_crtc_set()
1258 o->fb_ids[0] = igt_create_fb(drm_fd, o->fb_width, o->fb_height, in run_test_on_crtc_set()
1259 igt_bpp_depth_to_drm_format(o->bpp, o->depth), in run_test_on_crtc_set()
1260 tiling, &o->fb_info[0]); in run_test_on_crtc_set()
1261 o->fb_ids[1] = igt_create_fb_with_bo_size(drm_fd, o->fb_width, o->fb_height, in run_test_on_crtc_set()
1262 igt_bpp_depth_to_drm_format(o->bpp, o->depth), in run_test_on_crtc_set()
1265 &o->fb_info[1], bo_size, 0); in run_test_on_crtc_set()
1267 igt_assert(o->fb_ids[0]); in run_test_on_crtc_set()
1268 igt_assert(o->fb_ids[1]); in run_test_on_crtc_set()
1270 paint_flip_mode(&o->fb_info[0], false); in run_test_on_crtc_set()
1271 if (!(o->flags & TEST_BO_TOOBIG)) in run_test_on_crtc_set()
1272 paint_flip_mode(&o->fb_info[1], true); in run_test_on_crtc_set()
1273 if (o->fb_ids[2]) in run_test_on_crtc_set()
1274 paint_flip_mode(&o->fb_info[2], true); in run_test_on_crtc_set()
1276 for (i = 0; i < o->count; i++) in run_test_on_crtc_set()
1277 kmstest_dump_mode(&o->kmode[i]); in run_test_on_crtc_set()
1281 if (set_mode(o, o->fb_ids[0], 0, 0)) { in run_test_on_crtc_set()
1290 igt_assert(fb_is_bound(o, o->fb_ids[0])); in run_test_on_crtc_set()
1294 if (vblank_dependence(o->flags)) in run_test_on_crtc_set()
1297 o->flags |= TEST_NO_VBLANK; in run_test_on_crtc_set()
1301 if (o->flags & TEST_CHECK_TS) in run_test_on_crtc_set()
1302 calibrate_ts(o, crtc_idxs[0]); in run_test_on_crtc_set()
1304 if (o->flags & TEST_BO_TOOBIG) { in run_test_on_crtc_set()
1305 int err = do_page_flip(o, o->fb_ids[1], true); in run_test_on_crtc_set()
1310 igt_assert_eq(do_page_flip(o, o->fb_ids[1], true), 0); in run_test_on_crtc_set()
1312 wait_for_events(o); in run_test_on_crtc_set()
1314 o->current_fb_id = 1; in run_test_on_crtc_set()
1316 if (o->flags & TEST_FLIP) in run_test_on_crtc_set()
1317 o->flip_state.seq_step = 1; in run_test_on_crtc_set()
1319 o->flip_state.seq_step = 0; in run_test_on_crtc_set()
1320 if (o->flags & TEST_VBLANK) in run_test_on_crtc_set()
1321 o->vblank_state.seq_step = 10; in run_test_on_crtc_set()
1323 o->vblank_state.seq_step = 0; in run_test_on_crtc_set()
1326 o->seq_step = max(o->vblank_state.seq_step, o->flip_state.seq_step); in run_test_on_crtc_set()
1328 elapsed = event_loop(o, duration_ms); in run_test_on_crtc_set()
1330 if (o->flags & TEST_FLIP && !(o->flags & TEST_NOEVENT)) in run_test_on_crtc_set()
1331 check_final_state(o, &o->flip_state, elapsed); in run_test_on_crtc_set()
1332 if (o->flags & TEST_VBLANK) in run_test_on_crtc_set()
1333 check_final_state(o, &o->vblank_state, elapsed); in run_test_on_crtc_set()
1338 igt_remove_fb(drm_fd, &o->fb_info[2]); in run_test_on_crtc_set()
1339 igt_remove_fb(drm_fd, &o->fb_info[1]); in run_test_on_crtc_set()
1340 igt_remove_fb(drm_fd, &o->fb_info[0]); in run_test_on_crtc_set()
1344 free_test_output(o); in run_test_on_crtc_set()
1349 struct test_output o; in run_test() local
1360 memset(&o, 0, sizeof(o)); in run_test()
1361 o.count = 1; in run_test()
1362 o._connector[0] = resources->connectors[i]; in run_test()
1363 o.flags = flags; in run_test()
1364 o.flip_state.name = "flip"; in run_test()
1365 o.vblank_state.name = "vblank"; in run_test()
1366 o.bpp = 32; in run_test()
1367 o.depth = 24; in run_test()
1369 connector_find_preferred_mode(o._connector[0], n, &o); in run_test()
1370 if (o.mode_valid) in run_test()
1373 free_test_output(&o); in run_test()
1386 memset(&o, 0, sizeof(o)); in run_test()
1387 o.count = 1; in run_test()
1388 o._connector[0] = resources->connectors[i]; in run_test()
1389 o.flags = flags; in run_test()
1390 o.flip_state.name = "flip"; in run_test()
1391 o.vblank_state.name = "vblank"; in run_test()
1392 o.bpp = 32; in run_test()
1393 o.depth = 24; in run_test()
1396 run_test_on_crtc_set(&o, &crtc_idx, RUN_TEST, duration); in run_test()
1406 struct test_output o; in run_pair() local
1419 memset(&o, 0, sizeof(o)); in run_pair()
1420 o.count = 2; in run_pair()
1421 o._connector[0] = resources->connectors[i]; in run_pair()
1422 o._connector[1] = resources->connectors[j]; in run_pair()
1423 o.flags = flags; in run_pair()
1424 o.flip_state.name = "flip"; in run_pair()
1425 o.vblank_state.name = "vblank"; in run_pair()
1426 o.bpp = 32; in run_pair()
1427 o.depth = 24; in run_pair()
1429 connector_find_compatible_mode(n, m, &o); in run_pair()
1430 if (o.mode_valid) in run_pair()
1433 free_test_output(&o); in run_pair()
1452 memset(&o, 0, sizeof(o)); in run_pair()
1453 o.count = 2; in run_pair()
1454 o._connector[0] = resources->connectors[i]; in run_pair()
1455 o._connector[1] = resources->connectors[j]; in run_pair()
1456 o.flags = flags; in run_pair()
1457 o.flip_state.name = "flip"; in run_pair()
1458 o.vblank_state.name = "vblank"; in run_pair()
1459 o.bpp = 32; in run_pair()
1460 o.depth = 24; in run_pair()
1465 run_test_on_crtc_set(&o, crtc_idxs, in run_pair()