summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2016-06-30intel_chipset: Replace lookup of GT size with computationChris Wilson
Instead of a large if-chain for matching devid to GT, we can just compute it directly from the encoded devid. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-06-30intel_chipset: Convert IS_PINEVIEW to device infoChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-06-30lib: Start weaning off defunct intel_chipset.hChris Wilson
Several years ago we made the plan of only having one canonical source for i915_pciids.h, the kernel and everyone importing their definitions from that. For consistency, we style the intel_device_info after the kernel, most notably using a generation mask and a per-codename bitfield. This first step converts looking up the generation for a devid tree from a massive if(devid)-chain to a (cached) table lookup. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-13tools/intel_bios_reader: print errors to stderr, return EXIT_FAILUREJani Nikula
Be consistent with exit status and printing errors to stderr. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-13tools/intel_bios_reader: clean up VBT/BDB header dumpingJani Nikula
Make the output nicer. Do not print the header if a specific block is requested. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-13tools/intel_bios_reader: abstract header information dumpingJani Nikula
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: add helpMarius Vlad
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: free the block returned by find_sectionJani Nikula
Since we no longer store pointers to previous blocks, we can free them. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: add --all-panels option to dump all panelsJani Nikula
Only dump the one matching panel_type by default. Cleans up the output, and allows the users to get more verbose output if he so chooses. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: add support for dumping only specific sectionJani Nikula
Now that the parsers for blocks don't depend on the dump ordering, we can also choose to dump specific sections only. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: add --hexdump option to dump hex, disable by defaultJani Nikula
The hex dump is useful, just not by default. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: dump the blocks in numerical orderJani Nikula
All parsers fetch the information they need without ordering constraints, so dump all in numerical order. This also makes it unnecessary to track already dumped blocks. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: let the user specify panel type on the command lineJani Nikula
On some systems the VBT panel type may be overridden in the opregion, and we can't necessarily get at that. Let the user specify it on the command line. As a byproduct, the section parsing order no longer matters. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: drop dependencies on lvds block parsingJani Nikula
Don't mandate a specific ordering on the parsing of the blocks. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: move devid to context tooJani Nikula
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: move more globals to struct contextJani Nikula
It's just good hygiene. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: pass around a context pointer instead of bdb_headerJani Nikula
Allow putting stuff in there instead of a global. A bit like passing dev_priv in the kernel. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: drop silly tv_present variable and printoutJani Nikula
There's no point in dumping a fixed value. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: drop unused lvds_support variableJani Nikula
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: add --devid parameterJani Nikula
Not sure it's a great idea to do platform specific parsing of the BIOS, but at least make it possible to pass in the devid on the command line and not just the environment. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: add command line option parsing and --file parameterJani Nikula
Keep positional parameter support for entering filename for backwards compatibility. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-12tools/intel_bios_reader: make VBIOS non-globalJani Nikula
No need for it to be global. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-11benchmarks/, overlay/, demos/, tools/, tests/: Add optional Werror.marius vlad
v2: Initially added Werror by default. Make it optional so it doesn't break android build and (potential) distros maintaing the package (Hinted by Damien Lespiau). --enable-werror will enable -Werror compiler flag. Signed-off-by: Marius Vlad <marius.c.vlad@intel.com> Acked-by: Damien Lespiau <damien.lespiau@intel.com>
2016-05-11tools/intel_bios_reader: drop unused macrosJani Nikula
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-03tools/intel_reg_decode: drop confusing use of IS_965()Jani Nikula
Unlike in the kernel driver coding style, IS_965() matches the platform and all subsequent ones. Replace IS_965() with suitable but less confusing alternatives. Most occurences are on code paths that only get called for gens 2, 3 and 4, so replace those with IS_GEN4(). In the one other call site just flip the condition to check for gens 2 and 3 instead. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-05-02tools: Add missing Kabylake codename strings.Rodrigo Vivi
No functional change and no change in the current format. Just introducing the missing Kabylake name strings. v2: Duh! forgot the ")"... Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2016-05-02tools/intel_watermark: Dump linetime watermarks on hsw/bdwVille Syrjälä
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2016-04-05tools/intel_reg: Add extra pipe B registers for CHVVille Syrjälä
CHV pipe B has some extra features (programmable sprite CSC, primary plane windowing, primary plane scaler, fancier blending). Add all the relevant registers to the "quickdump" register list. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2016-04-05tools/intel_reg: Fix builtin register spec for gen4Ville Syrjälä
Actually use the builtin register spec on gen4. Makes intel_reg dump actually do something on gen4. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2016-03-24lib: Add a GPU error detectorChris Wilson
If we listen to the uevents from the kernel, we can detect when the GPU hangs. This requires us to fork a helper process to do so and send a signal back to the parent. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-19lib/igt_aux: Divert ioctls for signal injectionChris Wilson
To simplify and speed up running interruptible tests, use a custom ioctl() function that control the signaling and detect when we need no more iterations to trigger an interruption. We use a realtime timer to inject the signal after a certain delay, increasing the delay on every loop to try and exercise different code paths within the function. The first delay is very short such that we hopefully enter the kernel with a pending signal. Clients should use struct igt_sigiter iter = {}; while (igt_sigiter_repeat(&iter, enable_interrupts=true)) do_test() to automatically repeat the test until we can inject no more signals into the ioctls. This is condensed into a macro igt_interruptible(enable_interrupts=true) do_test(); for convenience. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-03tests: fix CRTC assignment for a few testsPaulo Zanoni
All the tests I wrote always assumed that every connector supported CRTC 0. This is not the case for BSW and possibly others, so fix the tests before the CI reports more failures. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-02-13aubdump: Add a get_bo() lookup functionKristian Høgsberg Kristensen
We'll use this instead of accessing the bo array directly and add a few sanity checks.
2016-02-13aubdump: Don't use .so constructors for initializingKristian Høgsberg Kristensen
This doesn't seem to work when mixed with constructors in other shared objects or other creative uses of the linker. Let's stick with a simpler mechanism, where we look up the libc functions when our hooks are called for the first time.
2016-02-13aubdump: Raise SIGTRAP on failureKristian Høgsberg Kristensen
2016-01-29tools/intel_residency: use setitimer instead of {,u}alarmPaulo Zanoni
It seems that Android doesn't have ualarm(). Let's use setitimer() instead. The tool still won't compile on Android due to igt_fb requiring Cairo, but we're supposed to solve this in another patch since our igt_fb calls don't actually require Cairo. Reported-by: Derek Morton <derek.j.morton@intel.com> Tested-by: Derek Morton <derek.j.morton@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-26tests/Android.mk: Make intel_residency CAIRO dependantDerek Morton
intel_residency has a cairo dependency through igt_fb.c. Remove it if ANDROID_HAS_CAIRO is not defined. Signed-off-by: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-25tools: add intel_residencyPaulo Zanoni
After the recent discussions regarding the effects of the vblank disabling policies on PC state residencies, I started running some experiments to reevaluate some non-intuitive conclusions I had reached. In order to help me do this, I decided to write this tool. The idea is very simple: the tool puts the system on an screen-on idle state, checks which PC state residency is the deepest we can reach, measures its residency, then does some not-so-idle tests and measures the residencies. You can use the tool to compare different Kernel trees and you can also use the tool to compare enabled vs disabled features. It's obvious that these cases do not represent real-world use cases of our driver, but they are already enough to highlight differences between the many patches I wrote. I was even able to catch a bug in one of my patches by spotting an unexpected regression in the residencies. I've been using this tool for FBC, but I expect it to also be useful for PSR, DRRS and similar features. I've been measuring the effects of different optimizations I wrote, and I've also been measuring the FBC vs no-FBC cases. It is also important to highlight that if your system is not properly configured for efficient power savings the tool may not be able to show differences between the results. On my Broadwell machine, for example, if I don't run "powertop --auto-tune" before running the tool, I get PC2 as the deepest state, and 90%+ residency for every workload. After properly configuring the machine, I get PC7 as the deepest state, which is the expected. So far I only tested this tool on BDW and SKL, and it may hit some unexpected assertions for older platforms. I only implemented the cases that are immediately useful for me, but we may also expand the tool in the future. We can add more important workloads. We can add support for screen-off cases, so we can compare the effects of runtime PM and other screen-off features. There's a lot we can do, but none of this is on my current priority list. And remember: /usr/bin/paste is your friend when comparing results. v2: - Be more idle at setup_idle(). - Improve printing for /usr/bin/paste usage. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-15tools/Android.mk: Add zlib supportDerek Morton
IGT does not build for Android due to a zlib dependency being added to intel_error_decode.c in a recent patch. This patch fixes the error by updating the Android makefile to add the path to the zlib library and using any LDFLAGS specified in Makefile.sources. Signed-off-by: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2016-01-15tools/intel_bios_reader: Fix typo on dump infoMika Kahola
Fix typo on intel_bios_reader.c Signed-off-by: Mika Kahola <mika.kahola@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-14intel_bios_reader: dump MIPI sequence block v3Jani Nikula
Similar to what's done in kernel. It's a bit artificial that the parsing and dumping are two separate steps in the userspace tool, but it's easier to follow and debug the code when both the kernel and userspace are similar. v2: don't segfault so much on dumping null pointers Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-14intel_bios_reader: port the sequence block parsing from kernelJani Nikula
Reuse the same code as kernel. Also parses v3, although does not actually dump that stuff yet. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-14intel_bios_reader: port find_panel_sequence_block from kernelJani Nikula
No need to reinvent wheels, reuse the code from kernel. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-14intel_bios_reader: make the VBT pointers more constJani Nikula
In const we trust. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-14intel_bios_reader: fix size handling for 32-bit block sizeJani Nikula
The MIPI DSI sequence block v3+ has a separate block size field. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-14intel_bios_reader: pass bdb pointer around instead of having as globalJani Nikula
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-01-08Fix a bunch of printf typesVille Syrjälä
igt_kms.c: In function ‘igt_crtc_set_background’: igt_kms.c:1940:2: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘uint64_t’ [-Wformat=] LOG(display, "%s.%d: crtc_set_background(%lu)\n", ^ intel_firmware_decode.c: In function ‘csr_open’: intel_firmware_decode.c:169:2: warning: format ‘%zd’ expects argument of type ‘signed size_t’, but argument 3 has type ‘__off_t’ [-Wformat=] printf("Firmware: %s (%zd bytes)\n", filename, st.st_size); ^ intel_gpu_top.c: In function ‘main’: intel_gpu_top.c:683:10: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint64_t’ [-Wformat=] stats[i] - last_stats[i]); ^ hsw_compute_wrpll.c: In function ‘main’: hsw_compute_wrpll.c:644:3: warning: format ‘%li’ expects argument of type ‘long int’, but argument 7 has type ‘long long int’ [-Wformat=] igt_fail_on_f(ref->r2 != r2 || ref->n2 != n2 || ref->p != p, ^ gem_gtt_hog.c: In function ‘__real_main155’: gem_gtt_hog.c:177:2: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat=] igt_info("Time to execute %lu children: %7.3fms\n", ^ kms_flip.c: In function ‘run_test_step’: kms_flip.c:985:3: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 10 has type ‘__time_t’ [-Wformat=] igt_assert_f(end - start > 0.9 * frame_time(o) && ^ kms_flip.c:985:3: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 11 has type ‘__suseconds_t’ [-Wformat=] kms_frontbuffer_tracking.c: In function ‘setup_sink_crc’: kms_frontbuffer_tracking.c:1364:3: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘ssize_t’ [-Wformat=] igt_info("Unexpected sink CRC error, rc=:%ld errno:%d %s\n", ^ Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-12-31intel_error_decode: Update address parsing for 64bit offsetsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-12-31intel_error_decode: Fix decode headers for HW contextChris Wilson
As we didn't recognise the different buffer type, we confused it with whatever we last decoded (i.e. the render ring buffer). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-12-31intel_error_decode: Inflate compressed error stateChris Wilson
Recent kernels compress the active objects using zlib + ascii85 encoding. This adapts the tool to decompress those inplace. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>