summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2017-01-13tests/kms_plane_lowres: Plane visibility after atomic modesetsMika Kahola
Testcase for plane visibility after atomic modesets. The idea of the test is the following: - draw a blue screen with high resolution - enable a yellow plane, visible, in lower-left corner - set a new lower resolution mode (1024x768) that makes plane invisible - check from debugfs 'i915_display_info' that the plane is invisible - switch back to higher resolution mode - check from debugfs 'i915_display_info' that the plane is visible again - repeat number of iterations, default 64 v2: allow test to be run on non-Intel drivers (Daniel) moved test for plane visibility to as helper function (Daniel) moved get_vblank() function to be part of helper functions (Daniel) rename 'tiling' parameter as 'modifier' (Daniel) select a mode from a list so that the plane should be invisible. use default 1024x768 mode only as a fallback if decent mode has not been found (Daniel) add tiling MODE_NONE (Daniel) v3: draw as many overlay planes as the platform supports + cursor plane on top of each other on lower-left corner skip the test if i915_display_info file is not available test plane visibility with igt_assert_plane_visibility() function drop option for multiple test iterations (Daniel Vetter) v4: switch 'for_each_connected_output()' to 'for_each_valid_output_on_pipe()' skip Y and Yf tiling for generations older than 9 (Maarten) Cc: Daniel Stone <daniel@fooishbar.org> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-10lib/igt_kms: Remove output->valid againMaarten Lankhorst
This time add an explicit variable force_reprobe, which is set to true on initial probe and might be set again (in a future patch) after a hpd event. Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-07Revert "lib/igt_kms: Remove output->valid"Chris Wilson
This reverts commit 20258f2353a266f8fe19e7392eb282e58dd87f6a. This completely breaks igt running on bare hardware where it is required that igt probes the connectors before use. Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-06lib: Always unbind the fbcon around igtChris Wilson
The fbcon imposes unpredictable latencies on tests - each drmIoctl has been observed to trigger two 650us calls to console_unlock() as it flushes printk buffer for the DRM_DEBUG around the ioctl. This makes tests such as gem_wait fail as they expect the ioctl to be spent on the operation under test not clogged up by the console. References: https://bugs.freedesktop.org/show_bug.cgi?id=99130 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-05lib/igt_kms: Remove output->validMaarten Lankhorst
None of the tests depend on it any longer, so it's time to kill. :) Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05tests: Add gem_exec_reuseChris Wilson
Exploratory test into behaviour when reusing bo between batches. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-04tests/kms_ccs: Add test for render compressionTomeu Vizoso
Add a few subtests that check that lossless compressed render targets are properly displayed. Also test a few error conditions. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Ben Widawsky <ben@bwidawsk.net>
2017-01-04igt/gem_exec_fence: Check sync_file->status after the fence is signaledChris Wilson
After the fence is signaled, the status feed reports whether or not the request completed successfully. We set this to -EIO if a hang was detected. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-03igt_core: add igt_constructorLyude
This is a simple macro for executing a block of code at the beginning of intel-gpu-tools, before any tests have been ran. Useful for initialization of global resources used in IGT libraries. Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Changes since v1: - Add the line number into the name of the constructor function so that multiple constructors may be used per-file.
2017-01-03lib/intel_chipset: Add geminilake platform definitionAnder Conselvan de Oliveira
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-01-03lib/i915_pciids.h: Update to latest version wich includes GLK idsAnder Conselvan de Oliveira
Copy the include/drm/i915_pciids.h file from following kernel commit, which includes Geminilake PCI IDs. commit 8363e3c3947d0e22955f94a6a87e4f17ce5087b4 Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Date: Thu Nov 10 17:23:08 2016 +0200 drm/i915/glk: Add Geminilake PCI IDs Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-01-02lib: Wrap conversion from u64 to pointersChris Wilson
The opposite direction of to_user_pointer() is from_user_pointer(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-02lib: Mass conversion to to_user_pointer()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-02lib/ioctl_wrappers.h: Fix to_user_pointer() helperRobert Foss
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-02lib/ioctl_wrappers.h: Add to_user_pointer() helperRobert Foss
Add to_user_pointer() helper function which helps cast pointers properly when being used with ioctls. Signed-off-by: Robert Foss <robert.foss@collabora.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-23stubs/intel_bufmgr: Suppress GCC compilation warningsChris Wilson
GCC likes to complain that every function here dies in an assert and doesn't return, which is very true but not one we wish to optimise for. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-22lib: Kick all fbconChris Wilson
i915 may not be the only, nor the first, vtcon framebuffer device - we need to check them all! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-22lib/selftest: Query module parameter for error code.Chris Wilson
"Live" selftesting of i915.ko happens during device probing which eats the error code and does not propagate it back to module loading. Workaround this by writing the error code back to the module parameter and probing it after a "successful" install. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-19lib/debugfs: Check if debufs is already mounted before attempting to mount itVille Syrjälä
mount("/sys/kernel/debug") will return an error if something is already mounted there. So let's check for that before calling mount(). This allows many of the tools (eg. intel_reg) to work even when no drm drivers are loaded since the earlier "/sys/kernel/debug/dri" & co. path checks will fail in that case and we will fall back to attempting to mount debugfs ourselves. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2016-12-17lib/sw_sync: Use timeline/fence instead of generic fdChris Wilson
whilst we may be passing around file descriptions, using fence or timeline as appropriate is more descriptive. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17lib/sw_sync: Rename sync_fence_create()Chris Wilson
It takes a sw_sync_timeline and returns a fence (it is a factory), so call it sw_sync_timeline_create_fence() for better self-documentation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17lib/sw_sync: Indicate that sync_merge() operates and create a sync_fenceChris Wilson
Improvements to self-documentating API that matches the rest of sw_sync. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17lib/sw_sync: Bring sync_wait() API into lineChris Wilson
igt likes to return kernel-esque negative errno where we can, and indicate that we expect to operate on a sync_fence, otherwise it is merely a grandiose poll(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17lib/sw_sync: Provide compatiblity stubs for old headersChris Wilson
Common practice for igt when providing tests for new features in unreleased kernels is to include a complete set of uABI stubs. Lack of such compatability breaks compilation on current distributions' kernel headers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-17igt_kms: Use const parameters for igt_assert_crc_equalLyude
Since we're not modifying these anywhere, let's make them const so as to not break code doing comparisons against compile-time CRCs. Signed-off-by: Lyude <lyude@redhat.com> Tested-by: Robert Foss <robert.foss@collabora.com>
2016-12-17lib/igt_kmod: kmod already supplies a cooked error codeChris Wilson
kmod already does the err = -errno for us. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-16stubs/drm: Add drm_intel_gem_context_get_id stubRobert Bragg
The plan is to use this api in i915-perf tests so this adds the corresponding stub in case libdrm was built with libdrm_intel disabled. Signed-off-by: Robert Bragg <robert@sixbynine.org> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2016-12-14lib/debugfs: Support new generic ABI for CRC captureTomeu Vizoso
The kernel has now a new debugfs ABI that can also allow capturing frame CRCs for drivers other than i915. Add alternative codepaths so the new ABI is used if the kernel is recent enough, and fall back to the legacy ABI if not. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Robert Foss <robert.foss@collabora.com>
2016-12-14lib/sw_sync: Add igt_require_sw_sync to enable skipping on no sw_sync supportRobert Foss
Add igt_require_sw_sync to provide tests to skip if sw_sync support isn't available on the host machine. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-14lib/sw_sync: Add helper functions for managing synchronization primitivesRobert Foss
Base functions to help testing the Sync File Framework (explicit fencing mechanism ported from Android). These functions allow you to create, use and destroy timelines and fences. Signed-off-by: Robert Foss <robert.foss@collabora.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-13igt_kms: Dynamically allocate igt_display->pipesLyude
Many GPUs have more then 3 pipes available, so hard limiting this to I915_MAX_PIPES prevents us from using anything that relies on igt_display_init() on non-intel systems (since we end up writing out of bounds and seg faulting). Fix this by dynamically allocating igt_display->pipes using the number of pipes we've detected on the GPU. Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
2016-12-13lib/kselftest: Apply the filter to the test nameChris Wilson
The filter needs to skip the embedded test number as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-13lib/kselftest: Parse embedded test number from parameterChris Wilson
Order the tests by an embedded test number from the parameter string. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-13lib: Allow permutation of the first two elements in the arayChris Wilson
Spotted-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-08igt_kms: Remove support for drivers with <1 drm_planeLyude
We've had support for universal planes since kernel version 3.15, so there's not really a good reason to try supporting drivers that lack plane support now. As well, the current has_universal_planes logic is broken anyway as it makes the assumption that having display planes always means we have both a primary plane and a cursor plane (this isn't true on radeon/amdgpu and nouveau). So, remove this, and just check for whether or not we have a cursor plane. Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-12-07Revert "lib/kselftests: Eliminate ENOTTY hack"Chris Wilson
This reverts commit 721866d83907c8ade5d20121418261d715b145ed. Still required for late tests as ->probe() is not allowed to return 1, but must return a negative error code.
2016-12-07lib/kselftests: Eliminate ENOTTY hackChris Wilson
Returning a positive value from module loading does not get interpretted as an error, so we can forgo passing a proxy value of -ENOTTY. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-07lib: Use igt_assert_eq in CHECK_RETURNTomeu Vizoso
So that debug logs contain the unexpected value. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
2016-12-07igt/drv_selftest: Adapt to mock/late splitChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-07igt_kms: Don't require intel hardware for kmstest_force_connectorLyude
Due to the unconditional call to intel_get_drm_devid() in kmstest_force_connector(), trying to use this function on anything that isn't intel hardware results in the current fixture being skipped. So, don't try to get the devid in kmstest_force_connector() unless we're on an Intel chipset. Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2016-12-02lib/igt_kmod: Update the prefix match string lengthChris Wilson
Not only do you need to change the prefix string, but you also need to update its length. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-02lib/igt_kmod: s/subtest__/igt__/ for kernel parametersChris Wilson
Use igt__ to detect kernel parameters indicating subtests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-02lib/igt_kmod: Squelch the igt assert for a module with no subtestsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-01igt: Add kselftest runner for i915Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-01lib/igt_kmod: Adopt igt_kselftests()Chris Wilson
Extract the automagic kselftest runner from tests/drm_mm.c to the new lib/igt_kmod.c Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-01lib/igt_gvt: Make use of libkmod helpers and fix reading gvt parameter.Marius Vlad
v2: - use igt_sysfs_get_boolean() to get gvt status (Chris Wilson) - do not hard-fail when i915 module could not be loaded/unloaded (Chris Wilson) Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
2016-12-01lib/igt_kmod: New library to support driver loading/unloading and additional ↵Marius Vlad
helpers. lib/igt_aux: Added igt_pkill and igt_lsof helper. lib/igt_kmod: Added load/unload kmod helpers. v7: - document the case where leaving stray fd from drm_open_driver() might fail reloading the driver. - list also current opened files from /dev/dri in case we could not unload the driver. - convert igt_info to igt_warn (Chris Wilson) - added KMOD_|PROCPS CFLAGS (Chris Wilson) v6: - include latest modifications from tests/drv_module_reload: display all loaded modules and list information about opened files by processes (Petri Latvala) v5: - added igt_i915_driver_{load/unload}. - added kick_snd_hda_intel() to match current tests/drv_module_reload_basic and integrated into igt_i915_driver_load/unload. - added gtk-doc section for lib/igt_kmod v4: - decided to split libkmod helpers into their own file as there's another user lib/igt_gvt or tests/gvt_basic. - fixed some gtk-doc documentation. v3: - return -errno (igt_pkill()) in case of failure (Cris Wilson) - return bool for igt_kmod_is_loaded(), replaced strncasecmp with strncmp (Chris Wilson) v2: - Renamed libkmod helpers (Chris Wilson) - Removed SIGTERM/SIGKILL case where we repeatedly tried to terminate the process: just call kill(2) once (Chris Wilson) - Removed redundant check in igt_kmod_unload(), igt_module_in_use() (Chris Wilson) - Pass flags to igt_kmod_unload() from the caller (Chris Wilson) - Removed useless function igt_kill() which acts just as kill(2) (Chris Wilson) Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
2016-12-01lib/igt_dummyload: Don't clear a signal if we haven't installed the timeoutChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-01lib/dummyload: Don't clear the same signal twiceChris Wilson
Now that the signal is disable on spin_batch_end, we don't need to do the same from the signal handler if we have a match. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-12-01Revert "igt_dummyload: Don't clear handler for invalid signal"Chris Wilson
This reverts commit 32d38ea2f6c3e07d38bc65f8cf2df1e0c0fe1c6b.