| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Add kms_vblank test build target. kms_vblank tests the vsync event
signals for correctness and timing accurracy.
Test: builds and runs (with some failures) on a Pixel 4.
Fixes: 149217819
Change-Id: I0152d332a980347ce4e40173dc3b3c48f207df3b
|
|
|
|
|
|
|
|
|
|
| |
Currently igt-gpu-tools uses 0xffff as its maximum alpha value, which
may not always be correct. If the platform returns a range for the
"alpha" property, respect that instead.
Bug: 143118270
Test: kms_flip
Change-Id: I531dfd3c0ac717a01bb9361b9484c3c9e058d715
|
|
|
|
|
|
|
|
|
|
| |
kms_flip tests the legacy buffer flipping path, whereas kms_atomic
validates the modern atomic path. Build that, while extracting a
few unresolved Cairo dependencies.
Test: builds and runs (but fails) on a Pixel 4.
Bug: 145776589
Change-Id: I78c7bd9c661ef47b7633e1e2d905ec0b107e49d9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test is meant to validate interoperability between ion buffers and
DRM. It currently checks three things:
- that an ion fd can be allocated and transformed into a DRM fb
- that an ion fd can be allocated, converted to a GEM buffer, and then
re-extracted to an ion fd
- that an ion fd can be allocated and mapped, and that converting it to
a GEM buffer results in the same data
Bug: 142890405
Test: Run on a device with adb root
Change-Id: I730ae40c8367937a931e3206255b6a0a5e8540b3
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The kms_flip tests validate the core buffer flipping path. Ensure
that they build and #ifdef out dependencies that are not resolved
on Android.
Notably this disables cairo and pixman support for now, which
means hand-conversion of buffer formats and drawing sample images
won't work.
Bug: 145243412
Test: m kms_flip
Change-Id: Ib9e74ea7efa637d647ac453700bbbfab95067b76
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
We would like to use the name "libunwind" for something other than the
almost-unused GNU libunwind. This is the only user of the GNU libunwind
shared library in the tree, aside from GNU libunwind's own unit tests (which
I will fix separately). However, the code that uses GNU libunwind was put
behind an #ifndef ANDROID in commit 57eb94f1. The only remaining use was
the reference in the header #include. Put that behind the #ifndef as well,
so that we can remove the reference to libunwind.
Bug: 144430859
Change-Id: Ic5049762d9e3fa11beff946927baa771f7152ff5
|
|
|
|
|
| |
Bug: 110963635
Change-Id: Iba53536c21e13d19bee2bfbe3a9b74c906b2c2ad
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Getting network back after waking up from suspend takes some time.
If it's not quick enough, it may cause any following chamelium_rpc
to fail.
This includes the chamelium port reset in exit handler:
igt_chamelium-CRITICAL: Test assertion failure function chamelium_rpc,
file ../lib/igt_chamelium.c:349:
igt_chamelium-CRITICAL: Failed assertion: !chamelium->env.fault_occurred
igt_chamelium-CRITICAL: Last errno: 113, No route to host
igt_chamelium-CRITICAL: Chamelium RPC call failed: libcurl failed to execute
the HTTP POST transaction, explaining:
Failed to connect to 192.168.1.224 port 9992: No route to host
Stack trace:
#0 ../lib/igt_core.c:1674 __igt_fail_assert()
#1 [chamelium_rpc+0x1ea]
#2 ../lib/igt_chamelium.c:2274 chamelium_reset()
#3 ../lib/igt_chamelium.c:2361 chamelium_deinit()
#4 ../lib/igt_core.c:2124 call_exit_handlers()
So let's wait for Chamelium to be reachable after each suspend_autoresume.
v2: Bump the network timeout to 20s,
the slowest observed bring-up was 17s. (Petri)
Do not DECREF if we get NULL from __chmelium_rpc(). (Simon & CI)
Cc: Simon Ser <simon.ser@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109380
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Simon Ser <simon.ser@intel.com>
|
|
|
|
|
|
|
| |
Make it public.
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
Reviewed-by: Simon Ser <simon.ser@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds partial support for AVI InfoFrames. Only bytes 1 and 2 of the
InfoFrame payload are parsed.
These bytes contain (among other things) information about the aspect ratio of
the frames.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
| |
GCC doesn't seem smart enough to figure out that everything is fine. Let's just
initialize the variable to silence the warning.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
| |
This patch simply adds link-status to our list of properties.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new function triggers a link failure on the provided port. Another
function called chamelium_supports_trigger_link_failure has been added to
check whether the Chamelium board supports the new method.
Support for TriggerLinkFailure in Chamelium has been added in [1].
[1]: https://chromium.googlesource.com/chromiumos/platform/chameleon/+/44866c7bc2af44da1f7bac4e782d0ed6d7c1400a
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
| |
Callers no longer need to call edid_ext_update_cea_checksum on each extension
block. This makes it less error-prone to miss one block by mistake.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This array is filled manually, some bytes might have the MSB set.
This fixes the following warning:
../lib/igt_kms.c:357:18: warning: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Wconstant-conversion]
hdmi->data[0] = HDMI_VSDB_VIDEO_3D_PRESENT; /* HDMI video flags */
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EDID_LENGTH is misleading because EDIDs are a variable size (they contain one
or more 128-byte EDID blocks). This commit renames it to EDID_BLOCK_SIZE which
makes it clear users need to call edid_get_size to get the total size.
The declaration has also been moved to igt_edid.
("Size" has been chosen over "length" because it's clearer that it's a number
of bytes, not a number of elements)
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has several advantages:
* No more need to convert back and forth between these two (everybody should
use struct edid, the exception being lib/tests/igt_edid which performs sanity
checks)
* Makes it clearer that users can call edid_get_size on a returned EDID blob
* Improves type safety (it's more obvious is a random blob is used as an EDID)
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
| |
This new call retrieves the last InfoFrame received by the Chamelium board.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces a new igt_infoframe library, used to parse InfoFrames.
For now only audio InfoFrames are supported. Support for AVI and other types of
InfoFrames is planned (and will come with the matching tests).
Unlike igt_edid, InfoFrames are parsed into a higher-level user-friendly
struct.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the start of every test, reset HDCP state to UNDESIRED on all
connectors, so that we will not have any hdcp related noises in
the subsequent tests.
v2:
igt_output_set_prop_enum is used.
Documentation of display_reset is updated.
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111390
Reviewed-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
|
|
|
|
|
|
|
| |
To query the fence status, and only the fence status, you only need to
pass .num_fences = 0.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Be a little more conservative in our ring measurement and exclude one
batch to leave room in case our user needs to wrap (where a request will
be expanded to cover the unused space at the end of the ring).
References: https://bugs.freedesktop.org/show_bug.cgi?id=111374
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a connector property called "CP_Content_Type"
Content Type takes two values which classifies the content stream:
Type 0: Stream that can be transmitted on HDCP1.4/HDCP2.2
Type 1: Stream that needs HDCP2.2 encryption only.
So when Type 1 is set KMD is forced to enable HDCP2.2 only.
For Type 0 request, Kernel chooses the highest capable HDCP version
(v2.2) first. If that fails, then it fall back to the next available
version(v1.4) before abondoning HDCP authentication attempts.
Please note content_type is allowed to be updated when "Content
Protection" is in UNDESIRED state.
v2:
s/cp_content_type/content_protection_type [danvet]
v3:
s/content_protection_type/HDCP Content Type [Pekka]
v4:
Rebased
v5:
Typos in the commit msg is fixed [Uma]
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Link: https://patchwork.freedesktop.org/patch/315467/?series=57756&rev=10
|
|
|
|
|
|
|
|
| |
i915 module parameters "enable_guc_submission" and "enable_execlists"
have been discontinued since 2017 so remove them from IGT too.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
|
|
|
|
|
|
| |
Cometlake is yet another Skylake refresh and used the same MOCS
registers.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111137
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
|
|
|
|
| |
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
| |
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Javier Villavicencio <javier.villavicencio@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Straight copy from the kernel file, aligned with drm-intel-next-queued
commit cb823ed9915b ("drm/i915/gt: Use intel_gt as the primary object
for handling resets")
By Stuart: Add the mobile vs non-mobile pineview platforms to device
info to match what is in the kernel.
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Stuart Summers <stuart.summers@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
| |
This check could probably be more precise, but at least it checks we haven't
written past the EDID block end.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the need for configuring Chamelium ports in .igtrc, making it both
easier and less error-prone to setup Chamelium boards.
A new function chamelium_autodiscover sets a different EDID on each Chamelium
port and plugs them. We then walk the list of DRM connectors, read back the
EDID and infer the mapping.
The EDID serial number is used to tell each port apart. In case a mapping is
already configured in the .igtrc file, we check that it's consistent.
MST is not handled yet (requires refactoring existing tests since connector IDs
aren't stable).
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This function queries the video port IDs supported by the Chamelium device.
It'll be used to know on which ports we can perform auto-detection.
An alternative would be to hardcode a list of port IDs. However port IDs are
specific to each Chamelium board, and will change for a different
implementation. Also it would be nice to have simulators implement the
Chamelium API…
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
| |
Set a different EDID serial string for each Chamelium port, so that we can
easily tell which DRM connector maps to a Chamelium port.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
| |
Instead of uploading the EDID in chamelium_new_edid, do it in
chamelium_port_set_edid so that we can customize the EDID depending on the
port.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We will always be able to find an upper bound for the number of connectors
supported by a Chamelium board. Instead of using dynamic arrays, simplify the
code by using static ones.
More code will need to have arrays of ports in the future.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Split the part that uploads an EDID to the Chamelium board into a new
chamelium_upload_edid function. The function will be called in
chamelium_set_edid instead of chamelium_new_edid when automatic Chamelium port
mapping is implemented.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the infrastructure necessary to change EDIDs provided to
chamelium_new_edid, without actually doing it yet. This commit just updates the
API to make it possible, documents expectations and updates callers
accordingly. Mutating EDIDs is necessary to add an identifier to them (e.g. by
adding a serial number) and to be able to map Chamelium ports to DRM
connectors.
A new function chamelium_edid_get_raw allows callers to retrieve the exact EDID
used for a particular port.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were two issues:
1. The documentation was wrong, the EDID ID 0 doesn't disable EDIDs, it just
resets the EDID to Chamelium's default one.
2. My previous patch updating these docs missed the second line of the argument
description. The result was that only reading the first line was fine, but
reading both lines felt weird.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Fixes: 1f67ee0d09d6 ("lib/igt_chamelium: replace EDID IDs with opaque structs")
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
| |
This allows to skip video params tests on Chamelium boards which aren't recent
enough.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new XML-RPC call allows to retrieve mode information from the Chamelium.
We can use it to check the mode we've chosen has been applied correctly.
The method has been added to the Chameleon API in commit [1].
[1]: https://chromium.googlesource.com/chromiumos/platform/chameleon/+/1df012d6ac9429a58a5e0f9362a1ff98f1bff8a7
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
KMS is meant to be a (at least somewhat) generic userspace API. We do
not want nor need to add a special match function for every driver
ever written, that doesn't make sense, defeats the point of having
generic tests for a generic testsuite, and really doesn't scale.
Also add a comment so people don't try to add ever more of these.
Also, this means no autoloading for you, but really igt should
reinvent udev, and mostly this was needed for 2 reasons:
- CI configuration falling to pieces because tests unloaded a driver,
and then died before cleaning up.
- vgem, which is fake, and needs to be requested explictily.
We might want to throw that all out again, except for vgem.
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Deepak Rawat <drawat@vmware.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: "Ser, Simon" <simon.ser@intel.com>
Cc: Oleg Vasilev <oleg.vasilev@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Simon Ser <simon.ser@intel.com>
Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
|
|
|
|
|
| |
Add a description of the library, and add misisng function docs.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
| |
I missed it when removing the old EDID generation code.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
| |
Make sure we don't miss an extension by verifying the EDID field.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
This replaces kmstest_edid_add_3d. The previous code for generating CEA
extensions can be removed.
The old and new generated EDIDs are byte-to-byte equal.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
| |
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Legacy execbuf abi tests are prefixed with legacy. New test are added to
run on physical engines accessed through engine discovery.
So legacy tests run on the unconfigured (with engine map) context and
use a new helper gem_eb_flags_to_engine to look up the engine from the
intel_execution_engines2 static list. This is only to enable the
core test code to be shared.
Places where new contexts are created had to be updated to either
equally configure the contexts or not.
v2:
helper called gem_engine_is_equal is added [tvrtko]
rebased to adopt the changte in eb_flag to engine [tvrtko]
v3:
returned the result of the expression itself [tvrtko]
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pass the color encoding/range to igt_create_fb_with_bo_size()
so that tests are able to generate fbs with various encodings/ranges.
v2: Drop the _full() variants of th fb create funcs (Nicholas)
Cc: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> #v1
Reviewed-by: Uma Shankar <uma.shankar@intel.com> #v1
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds igt_description() which attaches a description to the
following igt_subtest or igt_subtest_group block.
Descriptions are accessible via './test --describe[=pattern]'
Subtest description is its own igt_describe as well as igt_describes
of all the parenting igt_subtest_groups, starting from the outermost
scope.
Examples of code and produced outputs are included in
lib/test/igt_describe.c and as a documentation comment on igt_describe()
macro.
v2: address Simon's review
Cc: Simon Ser <simon.ser@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Simon Ser <simon.ser@intel.com>
|
|
|
|
|
|
|
| |
The new EDID has been byte-by-byte checked to be exactly the same as before.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|