The integer comparison macros give us better error output by including
the actual values that failed the comparison.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
We fail to detect some VGA monitors using our I2C method, leading to
bug reports from QA. If you look at the dmesg of these cases, you'll
see the Kernel complaining about EDID reading mostly FFs and then
disabling bit-mangling. Since we don't want to reimplement everything
the Kernel does, let's just accept the fact that some VGA outputs
won't be properly detected.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84273
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Remove options from argv that have been handled by getopt to allow
additional non-option parameters to be processed in the test application.
This fixes issues when using options such as --debug with tests that accept
additional non-option parameters.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Also move forcewake and stop_rings code from igt_debugfs to igt_gt
since it fits better. And move the hang injection fork helpers from
igt_aux to igt_gt, too.
Also push the intel_gen call into igt_hang_ring while at it.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
This triggers a device suspended WARN in the kernel in
gen6_ggtt_insert_entries() while calling the GEM pwrite ioctl.
The sequence is suggested by Daniel.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
We were having a problem where the system-suspend test was passing,
but then the next test - gem-execbuf-stress - was failing because of
bugs caused by the suspend subtest. So add a single test that emulates
the same problem, and another test that just sets a mode after resume.
This way, we should be reproducing the problem even if you don't run
the tests in the order they are defined.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
If we don't enable audio runtime PM, the audio driver won't release
its reference, the refcount won't ever become zero, so we will never
actually runtime suspend. So move this code from pm_rpm.c to
igt_aux.c, so kms_flip - and any other IGT test case using RPM - can
benefit from it.
Previously, if you ran pm_rpm before running the other tests - or if
you just didn't have snd_hda_intel loaded - you wouldn't notice this
bug.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78893
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
A few weeks ago we were hitting this assertion, and the _eq macro is
more useful when you're debugging.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
warning: ignoring return value of ‘write’, declared with attribute
warn_unused_result [-Wunused-result]
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
With the current Kernel, it takes more than 10 minutes to run
modeset-stress-extra-wait on BYT with eDP, and we don't really want
IGT subtests that take more than 10 minutes to run: QA reports them as
bugs.
Since, as far as I remember, any of these RPM race condition bugs we
had could always be triggered with just 4-5 rounds of testing, let's
tune down the number of rounds we test:
Before:
rounds = (--quick option used) ? 10 : 50;
After:
rounds = (--quick option used) ? 10 : 40;
rounds = (wait_flags & WAIT_EXTRA) ? rounds / 2 : rounds;
This should make all subtests be way above the 10m limit.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84897
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Refactor the code so the params for the modesets are always stored and
don't have to be recomputed every time. With this, we can get rid of
our FB caching structures, and we now also allow the subtests that do
special modesets to reuse the parameters used on the default modesets,
just changing whatever they want.
The biggest win here is that the test case subfunctions get smaller
and simpler to read and write.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
And its and_wait() version. The goal is to extract common code
patterns into functions/macros, so the code for the test cases gets
easier to read and write.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Daniel thought fences were not surviving runtime PM on DPMS, so we
wrote this test to check. The good news is that the test passed, so
there's no need for a Kernel patch, at least on the Kernel I tested.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Both pm_rpm.c and pm_lpsp.c call it "disable_all_screens", but let's
give it a name that better describes what the implementation does.
v2: Rename to kmstest_unset_all_crtcs (Daniel).
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
These tests should trigger WARNs on Kernels that don't have the most
recent fixes.
v2: - Merge both the cursor and planes patches into one so it's easier
to update them.
- Extend the tests a little bit to exercise fences.
- Fix bug found by Matt to enable the test to run on older Kernels
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Thomas missed the add-hoc parameter parsing in here, which did break
things for Paulo since the core now fails for unknown options.
Convert them over to the new infrastructure, which has the nice upside
that we can remove the comments and put them into the usage available
with --help.
Cc: Thomas Wood <thomas.wood@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
These tests currently trigger WARNs on our Kernel. Let's make sure we
fix the bug and it never comes back.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Plus naming convention for runtime pm tests to have "rpm" somewhere in
their tests. Note that all the pc8-specific tests (for e.g. residency
or similar) already have pc8 in their subtest names, so we don't lose
any information here.
Cc: "Yang, Guang A" <guang.a.yang@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>