summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-01lib/igt_kms: Add scaling filter propertySwati Sharma
Added "scaling filter" as pipe and plane property. v2: -Moved lib changes from 4/4 to 3/4 -Renaming filter enum v3: -fix indentation(juha) Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2022-07-01tests/i915/kms_flip_scaled_crc: Add new tests covering modifiers and ↵Swati Sharma
pixel-formats New test cases are added covering various modifiers and pixel-formats. v2: fixed typo Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2022-07-01tests/i915/kms_flip_scaled_crc: Convert tests to dynamicSwati Sharma
Convert the existing subtests to dynamic subtests at pipe/output level. v2: Refactored code in such a manner that once test has been run successfully on chosen pipe that pipe will not be tested again as this test is testing pipe feature. No need to run separately for each connector using all pipes. v3: Changed seq to avoid modetoset as a dangling ptr v4: On eDP 1080p with 144Hz vrefresh, test fails with cdclk lim, however it passes with 90Hz vrefresh. Added the check to handle this scenario. v5: Minor fixes Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
2022-06-30lib/i915: request CPU_ACCESS for fb objectsMatthew Auld
kms_frontbuffer_tracking@basic falls over if the fb needs to be migrated from non-mappable device memory, to the mappable part, due to being temporarily pinned for scanout, when hitting the CPU fault handler, which just gives us SIGBUS. If the device has a small BAR let's attempt to use the mappable portion, if possible. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30tests/i915/capture: handle uapi changesMatthew Auld
We should mark the objects that need to be captured with NEEDS_CPU_ACCESS to ensure we can capture them if they are allocated in lmem. We also need to consider that capture only properly works on non-recoverable context, for discrete platforms. We can now also expect CPU invisible objects to be skipped, for now at least. v2: try to make it backwards compat Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30lib/i915/intel_memory_region: plumb through the cpu_sizeMatthew Auld
Will be useful later. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30tests/i915/query: sanity check the unallocated trackingMatthew Auld
Sanity both the unallocated_size & unallocated_cpu_visible_size tracking. v2(Petri): always use from_user_pointer() v3: Make it play nice on older kernels Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30tests/i915/query: sanity check the probed_cpu_visible_sizeMatthew Auld
Add some basic sanity checks for this, like checking if this falls within the probed_size. On older kernels the value reported here should be zero. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30lib/i915: add gem_create_with_cpu_access_in_memory_regionsMatthew Auld
Most users shouldn't care about such an interface, but where required, this should be useful to aid in setting NEEDS_CPU_ACCESS for a given BO. Underneath we try to smooth over needing to provide an explicit SMEM region, or if this is SMEM-only, we don't want the kernel to throw an error. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30tests/i915/gem_create: exercise NEEDS_CPU_ACCESSMatthew Auld
Add some basic tests for this new flag. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30lib/i915: wire up optional flags for gem_create_extMatthew Auld
For now limit to direct callers. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30lib/i915_drm_local: Add I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESSMatthew Auld
For now dump into i915_drm_local.h. Once the uapi on the kernel side is merged, and is part of drm-next, we can sync the kernel headers and remove this. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-30tests/kms_pipe_crc_basic: Avoid skips in dynamic subtetsBhanuprakash Modem
Instead of Skipping the dynamic subtest, just don't trigger the test. Cc: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
2022-06-29tests/i915/gem_exec_fence : Add subtests descriptionJanga Rahul Kumar
Add test description for below subtests: basic-busy-all, basic-wait-all, busy-hang-all, wait-hang-all, basic-busy, basic-wait, basic-await, nb-await. v2 : Modified subtests description. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-29i915/gem_softpin: Added test description for test case.Sai Gowtham Ch
Added test description for test and to all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28tests/i915: adapt __copy_ccs for discreteMatthew Auld
We can't explicitly control the mmap caching type for discrete, but using mmap_device_coherent should be good enough here on such devices. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4842 Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
2022-06-28tests/i915/kms_mmap_write_crc: handle missing gem_get_caching()Matthew Auld
The kernel is meant to force the caching level for the object to CACHE_NONE or CACHE_WT when first scanning out the object, since the display engine is not coherent (assuming userspace hasn't already done this). On discrete we no longer support set/get_caching, but we can only do the scanout from lmem, which can only be mapped as WC and so should always be coherent for scanout. Adjust the test and ensure it still passes as expected. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5303 Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
2022-06-28tests/i915/gem_eio: fix uafMatthew Auld
../tests/i915/gem_eio.c:277:20: warning: pointer ‘ctx’ used after ‘free’ [-Wuse-after-free] 277 | igt_assert(igt_sysfs_printf(ctx->debugfs, "i915_drop_caches", ../lib/igt_core.h:667:20: note: in definition of macro ‘igt_assert’ 667 | do { if (!(expr)) \ | ^~~~ ../tests/i915/gem_eio.c:274:9: note: call to ‘free’ here 274 | free(ctx); Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
2022-06-28tests/kms_writeback: Use a garbage X value to create fill our test bufferMaxime Ripard
Since we use buffers in XRGB8888, whatever value we have in X should be ignored by the drivers and the hardware. However, since we always use 0xff in our test, whether that is the case or not cannot be determined. Let's use a garbage value (but consistent across test runs) to make sure it doesn't have any impact on the writeback output. Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2022-06-28lib/igt_fb: Ignore the X component when computing CRCMaxime Ripard
The igt_fb_get_fnv1a_crc() function will compute a FNV-1a hash over the content of the framebuffer. The sole user of this function is the writeback test suite, which will use it to compare an XRGB8888 buffer used in input to an XRGB8888 buffer filled by the writeback connector. However, that function uses each bytes of each buffers to compute the hash, and therefore the writeback code assumes that the hardware will preserve the content of the X component through the writeback pipeline, which isn't true for all hardware. VC4 doesn't for example. Since that function is only ever used for XRGB8888 buffers, let's just set the most significant to 0 (which is the X padding) for each pixel when computing the hash, and thus ignore whatever the hardware will return here. Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2022-06-28tests/kms_writeback: Use endianness accessor to fill pixelsMaxime Ripard
The fill_fb() function in the kms_writeback test suite will fill an XRGB8888 buffer using a pattern passed an an argument. However, the pattern is native endian, while XRGB8888 is little-endian. Add an accessor and use it to fill the framebuffer with our pattern. Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2022-06-28tests/i915/gem_sync: Added test description for test case.Sai Gowtham Ch
Added test description for test and to all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28tests/prime_vgem : Add subtests descriptionJanga Rahul Kumar
Add test description to all the available subtests and corrected a little old descriptions. v2 : Add description to all subtests. v3 : Modified subtest description. v4 : Minor corrections. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28i915/gem_mmap_gtt: added description for test casePriyanka Dandamudi
Added global description and subtest descriptions. v2:Minor corrections. v3: Added descriptions to copy subtests. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28tests/kms_cursor_edge_walk: Fix test requirement to avoid SKIPsBhanuprakash Modem
As (54ff3199) introduced dynamic subtets, tests are getting Skipped on all pipes except pipe-A. This patch will fix the test requirement condition to avoid such skips. Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6250 Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
2022-06-28i915/gem_exec_create: Added test description for test case.Sai Gowtham Ch
Added test description for all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28tests/i915/gem_exec_parallel : Add subtests descriptionJanga Rahul Kumar
Add test description to all the available subtests. v2 : Modified test description. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28tests/i915/gem_ringfill : Added test descriptionPriyanka Dandamudi
Added global description and description to all the available subtests. v2: Minor corrections. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-28tests/kms_flip: Skip test only for invalid combinationJeevan B
currently the entire test is skipping. adding this fix to skip test only for invalid cases and run on other valid display combination. v2: add RUN_PAIR check to avoid crash on single display. v3: add flag to check for valid display combination.(Karthik) v4: if no valid mode is found then flow should go to 'out'.(Karthik) v5: rebase. Signed-off-by: Jeevan B <jeevan.b@intel.com> Reviewed-by: Karthik B S <karthik.b.s@intel.com>
2022-06-27tests/i915/pm_rc6_residency: Extend rc6-idle test on remaining enginesRiana Tauro
Run rc6_idle on a single instance of every engine v2: add dynamic subtest (Anshuman) Signed-off-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
2022-06-27tests/i915/pm_rc6_residency: Refactoring intel_ctx_t to igt_fixtureRiana Tauro
Refactor code to move intel_ctx_create_all_physical() and intel_ctx_destroy() to igt_fixture to be used by rc6_fence and other tests. No functional changes v2 : refactor code (Anshuman) Signed-off-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
2022-06-24tests/i915/gem_busy : Added subtests descriptionSinjan Kumar
Added subtest description to gem_busy tests Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sinjan Kumar <sinjan.kumar@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-24tests/i915/gem_exec_suspend : Added subtests descriptionJanga Rahul Kumar
Added test description to all the available subtests. v2 : Modified subtest description and added description to all the subtests. v3 : Modified description based on suggestions. v4 : Modified test description. v5 : Aligned description strings. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
2022-06-22tests/kms_panel_fitting: Convert test to dynamicSwati Sharma
Convert the existing subtests to dynamic subtests at pipe/output level. v2: -Fixed if-else block -Removed redundant check Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
2022-06-22tests/i915/i915_pm_dc: Check dc3co count to skip the testMohammed Thasleem
If dc3co is not enabled in driver, counter will always be zero and we can simply skip the test. Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/4364 Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
2022-06-22tools/intel_vbt_decode: Warn if we lack the full definiton of the BDB blockVille Syrjälä
Warn in case out BDB block definition is smaller than what the VBT has. That is an indication that we are potentially forgetting to decode some useful new data. We exclude blocks 2,11,22 from this since we don't have a sensible min size for them. We also limit this to modernish VBTs (155+) since some old stuff doesn't really conform (eg. my cst with version 134 has a 9 byte block 1 even though our min size for it is 7 bytes, and all the other oldish machines have block 1 only made up of of 4 or 5 bytes). Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Generate LVDS data table pointes if not providedVille Syrjälä
Modern VBTs (at least observed on TGL machines) no longer provide the LVDS data table pointers block. Thus we can't currently decode the contents of the LVDS data table block. I see two options how to handle this: 1) Just hardocode the offsets/sizes (+ some checks to make sure the hardcoded values makes sense) 2) Deduce the offsets/sizes from the actual LVDS data table block contents I've chosen option 2 here. The fp_timing table 0xffff terminator is what allows us to do this. We just look up the first two of those from the LVDS data block and calculate the offsets/sizes from there. Only the fp_timing entries should have a variable size, and the dvo_timings and panel_pnp_id have fixed size (in fact IIRC they are 1:1 match for the equivalent EDID stuff). This is the same thing we do in the kernel parser as well since commit a87d0a847607 ("drm/i915/bios: Generate LFP data table pointers if the VBT lacks them") Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Validate LVDS data table pointersVille Syrjälä
Do a reasonably exhaustive check to make sure the LVDS data table pointers are sane. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Dump the LVDS data ptrsVille Syrjälä
Decoede the LVDS data pointers. The offsets are specificed from the start of the whole VBT, but we've fixed them up to be relative to the start of the block already. For human parsing printing them as relative from the start of the block seems more useful anywya. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Decode the end of the LFP dataVille Syrjälä
Decode the tail end of the LFP data, if available. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Dump the panel PNP IDVille Syrjälä
Decode the panel PNP ID from the LVDS data block. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Simplify LVDS data block parsingVille Syrjälä
Get rid of the mess in the LVDS data block parsing and juse use the offsets straight from the LVDS data table pointers block. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Convert LFP data pointers to be relative to the data ↵Ville Syrjälä
block For some crazy reason the LFP data pointer offsets are specified as relative to the BDB header. That won't work with out private BDB block copies, so let's convert them to be relative to the start of the LFP data block. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Specify a minimum size for the BDB block copyVille Syrjälä
Guarantee that we have enough memory allocated for the structure we use to decode the BDB blocks. We no longer have to worry about going out of bounds in case of malformed VBT or incorrect version checks. The BDB_SDVO_PANEL_DTDS and BDB_GENERIC_DTD code looks a bit bit suspicious so those probably need a full review. Also BDB_LVDS_LFP_DATA and BDB_LVDS_LFP_DATA_PTRS will need further work due to the variable size nature of the data. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Make copies of the BDB blocksVille Syrjälä
Make a copy of the BDB blocks. For the moment we just do a 1:1 copy but later on we can specify a minimum size for the copy and stop worrying about going out of bounds during parsing in case the version checks are wrong of the VBT is malformed. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Include BDB block header in hex dumpVille Syrjälä
Include the block header in the hex dump as well. Might as well have the full data available in case we need to diagnose some decoding failures. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Parse the new eDP max link rateVille Syrjälä
VBT version 244 onwards have a new eDP max link rate field. Parse it. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Parse the old fast link training rate correctlyVille Syrjälä
We're failing to parse the 5.4 Gbps value of the old fast link training rate. Remedy it. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Decode new fast link training rateVille Syrjälä
Decode the fast link training link rate. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tools/intel_vbt_decode: Dump the LVDS panel optionsVille Syrjälä
Decode per-panel stuff from the LVDS options block. Not at all sure which version have which fields since the spec only goes back to v155. But earlier VBTs do have some of this stuff already so going by block size instead for the older stuff. Here's a quick list from my VBT stash: mgm version 108 -> 4 bytes alv version 120 -> 4 bytes cst version 134 -> 14 bytes pnv version 144 -> 14 bytes cl version 142 -> 16 bytes ctg version 155 -> 24 bytes The pnv VBT is particularly interesting since it has a higher version number that the cl VBT and yet has a smaller LVDS options block. I guess the "Atom==let's not follow any rules" rule started already back then. All the more modern VBTs I have are 24 bytes (or more). Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>