Age | Commit message (Collapse) | Author |
|
The Atoms do not have the PCH split, exclude them from HAS_PCH_SPLIT().
At the time, I was planning to add the feature flag and make
intel_pch_type() useful, but for now take the simple option of expanding
th predicate.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
structure
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
|
|
|
|
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
Be consistent with exit status and printing errors to stderr.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Make the output nicer. Do not print the header if a specific block is
requested.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Since we no longer store pointers to previous blocks, we can free them.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
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>
|
|
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>
|
|
The hex dump is useful, just not by default.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
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>
|
|
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>
|
|
Don't mandate a specific ordering on the parsing of the blocks.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
It's just good hygiene.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
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>
|
|
There's no point in dumping a fixed value.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
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>
|
|
Keep positional parameter support for entering filename for backwards
compatibility.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
No need for it to be global.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
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>
|
|
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
We'll use this instead of accessing the bo array directly and add a few
sanity checks.
|
|
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.
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
No need to reinvent wheels, reuse the code from kernel.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
In const we trust.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|