[Intel-gfx] [PATCH i-g-t 2/4] tests/kms_flip: Disable all pipes before each test
Paulo Zanoni
przanoni at gmail.com
Wed Nov 11 09:41:16 PST 2015
2015-11-11 15:32 GMT-02:00 <ville.syrjala at linux.intel.com>:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Currently kms_flip leaks the state of the pipes from one subtest to the
> next. Meaning a single pipe test can actually have two or more pipes
> actually up and running, and similarly a two pipe test can have three
> pipes running.
>
> This is particularly nasty on IVB since one of the pipes still running
> but not actually part of the test maybe have reserved the shared FDI
> lanes, thus preventing one of the pipes taking part in the test from
> being enabled.
>
> To avoid such problems explicitly disable all pipes before each
> subtests.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> tests/kms_flip.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index 649678c..632f264 100644
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -849,6 +849,22 @@ static bool is_hung(int fd)
> return errno == EIO;
> }
>
> +static void disable_crtcs(void)
> +{
> + int n;
> +
> + for (n = 0; n < resources->count_crtcs; n++) {
> + drmModeCrtc *crtc = drmModeGetCrtc(drm_fd, resources->crtcs[n]);
> +
> + int ret = drmModeSetCrtc(drm_fd, crtc->crtc_id,
You could have used resources->crtcs[n] do avoid the GetCrtc() call.
Anyway, you can avoid this new function and just call
kmstest_unset_all_crtcs(drm_fd, resources) from igt_kms.h.
> + 0, 0, 0,
> + 0, 0, 0);
> + igt_assert(ret == 0);
> +
> + drmModeFreeCrtc(crtc);
> + }
> +}
> +
> static int set_mode(struct test_output *o, uint32_t fb, int x, int y)
> {
> int n;
> @@ -1425,6 +1441,8 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
> for (i = 0; i < o->count; i++)
> kmstest_dump_mode(&o->kmode[i]);
>
> + disable_crtcs();
> +
> if (set_mode(o, o->fb_ids[0], 0, 0)) {
> /* We may fail to apply the mode if there are hidden
> * constraints, such as bandwidth on the third pipe.
> --
> 2.4.10
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Paulo Zanoni
More information about the Intel-gfx
mailing list