summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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>
2022-06-22tools/intel_vbt_decode: Decode the LFP power blockVille Syrjälä
Decode the contents of the LFP power conservation block (44). 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 block sizeVille Syrjälä
Knowing the size of each block can help in figuring out what should be in there. Let's dump that. 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: Unify panel type handlingVille Syrjälä
Print the panel type(s) the same way in dump_lvds_data() as elsewhere. 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 DP max link rateVille Syrjälä
Decode the child device DP max link rate stuff. 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: Clean up SSC freq decodingVille Syrjälä
Use the same logic as we use in the kernel to decode the SSC frequency. 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 mode HDMI data ratesVille Syrjälä
Decode new HDMI data rates. 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 more DVO portsVille Syrjälä
Decode the DP/HDMI DVO ports up to 'I'. 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: update vbt defs from kernelVille Syrjälä
Sync up the the VBT definitions from kernel commit 24b8b74eb2eb ("drm/i915: Parse max link rate from the eDP BDB block") and adjust the actual code to match. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2022-06-22tests/kms_dither: Skip if current & requested BPC doesn't matchBhanuprakash Modem
The "max bpc" property only ensures that the bpc will not go beyond the value set through this property. It does not guarantee that the same bpc will be used for the given mode. If clock/bandwidth constraints permit, the max bpc will be used to show the mode, otherwise the bpc will be reduced. So, if we really want a particular bpc set, we can try reducing the resolution, till we get the bpc that we set in max bpc property. This patch will skip the test, if there is no valid resolution to get the same bpc as set by max_bpc property. Cc: Swati Sharma <swati2.sharma@intel.com> CC: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
2022-06-22tests/intel-ci: Rename kms_pipe_crc_basic subtests in BATBhanuprakash Modem
As we converted the subtests to dynamic, we must rename the same subtests in BAT. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
2022-06-22tests/kms_pipe_crc_basic: Test CleanupBhanuprakash Modem
Clear the system state before exiting the subtest. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>