tests/kms_flip: Make flip-vs-panning-vs-hang change DSPSURF

Make sure DSPSURF will change during the panning operation
in flip-vs-panning-vs-hang.

This will now test agains bugs between the kernel's mmio vs.
CS flip race handling and GPU resets. If the kernel is buggy
if will fail to notice that the panning operation changed the
base address before the GPU reset had a chance to deal with the
pending page flips, and so the flip would never complete due to
DSPSURFLIVE not matching the expected value.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Ville Syrjälä 2014-05-27 21:33:10 +03:00 committed by Daniel Vetter
parent 3805288f1a
commit e4ba3b75e6

View File

@ -923,6 +923,10 @@ static unsigned int run_test_step(struct test_output *o)
o->flip_state.count : o->vblank_state.count;
int x_ofs = count * 10 > o->fb_width - o->kmode[0].hdisplay ? o->fb_width - o->kmode[0].hdisplay : count * 10;
/* Make sure DSPSURF changes value */
if (o->flags & TEST_HANG)
o->current_fb_id = !o->current_fb_id;
igt_assert_f(set_mode(o, o->fb_ids[o->current_fb_id], x_ofs, 0) == 0,
"failed to pan (%dx%d@%dHz)+%d: %s\n",
o->kmode[0].hdisplay, o->kmode[0].vdisplay, o->kmode[0].vrefresh,