summaryrefslogtreecommitdiff
path: root/tests/i915/i915_pm_dc.c
AgeCommit message (Collapse)Author
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>
2021-12-02tests/i915/i915_pm_dc: Moved prev DC counter reading logicMastan Katragadda
Reading of prev_dc counter in dc9-dpms subtest as 0, after reset comparison with 0 test gets failed. taken prev_dc counter after enterd into shallow DC state.fixes dc9-dpms subtest failures. changes since V1: - Removed new lines and warnings from checkpatch.pl - Updated Subject Signed-off-by: Mastan Katragadda <mastanx.katragadda@intel.com> Reviewed-by: Jigar Bhatt <jigar.bhatt@intel.com>
2021-10-14tests/i915/i915_pm_dc: Fix condition in dc9-testJigar Bhatt
1.Inside dc9_wait_entry, we do not have DC9 counter, so we rely on dc5/dc6 counter reset to check if display engine was in DC9. Test is passed if live counter is less than the previous counter. Correcting condition igt_wait(read_dc_counter(debugfs_fd, dc_target) < prev_dc, seconds, 100); 2.Moving prev_dc = read_dc_counter(data->debugfs_fd, dc_target); before setup_dc9_dpms avoid 0 reading. 3.Add sleep(1) after dpms_off waiting for reset counters. Fixes: 2f4e6430a97f04284d1cafb1479e7c1b0b2d596a ("tests/i915/i915_pm_dc: Fix DC9 test") Signed-off-by: Jigar Bhatt <jigar.bhatt@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Nischal Varide<nischal.varide@intel.com>
2021-10-11tests/i915/i915_pm_dc: Nuke pointless snprintf()Ville Syrjälä
Printing a single thing with snprintf() and then passing that via %s to another printf() is pointless. Just pass the original string in directly. Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2021-10-11igt: s/DRM_FORMAT_MOD_NONE/DRM_FORMAT_MOD_LINEAR/Ville Syrjälä
DRM_FORMAT_MOD_LINEAR is the more sensible name for DRM_FORMAT_MOD_NONE. Use the better name. Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2021-10-01tests/i915/i915_pm_dc: Changing sysfs open attribute to O_RDONLYJigar Bhatt
Opening /sys/module/drm_kms_helper/parameters/ in read only mode to avoid permission issue in dc9-dpms test. Signed-off-by: Jigar Bhatt <jigar.bhatt@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2021-09-28tests/i915/i915_pm_dc: Fix DC9 testJigar Bhatt
Fixing DC9 test with reading prev_dc counter(DC5/DC6), comparing to actual counter values. Dumping i915_pm_runtime_status debugfs incase of failure. While executing test, it require to disable the kms connector polling to avoid runtime resume. This would require to save and restore the kms connector poll state. V1: Reading previous DC counter prev_dc = read_dc_counter(dc_target) before the dpms_off(). V2: Bit cleaner code.[Imre] dump the i915_pm_runtime_status debugfs file in case of test failure.[Anshuman] V3: Disabling the polling during DC9 test “echo 0 > /sys/module/drm_kms_helper/parameters/poll”.[Anshuman] V4: Passing right fd to igt_sysfs_get_boolean() function, moving save and get part of polling to setup_dc9_dpms(). V5: Use macro for "/sys/module/drm_kms_helper/parameters/poll". Add igt_require when opening sysfs. Add igt_install_exit_handler(reset_kms_poll) so it will restore actual sysfs kms polling status.[Anshuman] V6: Using if() condition instead of igt_require((sysfs_fd = open(KMS_POLL_PATH, O_WRONLY)) >= 0) [Petri] V7: KMS_HELPER "/sys/module/drm_kms_helper/parameters/ " for opening the sys_fd and then use it in igt_sysfs_get_boolean() along with "poll", attribute as per the API doc.[Anshuman] Signed-off-by: Jigar Bhatt <jigar.bhatt@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
2021-09-28tests/i915/i915_pm_dc: Refactoring pwr_dmn_info to debugfs_dumpJigar Bhatt
Refactoring pwr_dmn_info to debugfs_dump so other test can use it for dumping debugfs file.[Anshuman] Signed-off-by: Jigar Bhatt <jigar.bhatt@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
2021-07-23tests/i915_pm_dc: Fix platform version checkAnshuman Gupta
setup_dc_dpms() disables i915 runtime suspend to execute dc{5,6}-dpms for the platforms has DC9 states to avoid counter reset issue. With recent changes now AT_LEAST_GEN() macro checks for grphics_ver, fix it with display_ver. Reviewed-by: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
2021-07-15Nuke local versions of DRM_FORMAT and DRM_MODELucas De Marchi
Use the definition from kernel headers. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-07-15Remove local copies of I915 macrosLucas De Marchi
Just use the one from the kernel headers. Updated with: git grep -l LOCAL_I915 | \ xargs sed -i -e '/^#define LOCAL_I915/d' -e 's/LOCAL_\(I915[[:alnum:]_]*\)/\1/g' Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-03-24tests/i915/i915_pm_dc: Fix misc warningsJigar Bhatt
Fix the mixed declarations compile warning. Fix comment indentation in check_dc9(). Fix checkpatch.pl warnings. Fixes: 529e182e3011 ("tests/i915/i915_pm_dc: Add DC9 igt test") Signed-off-by: Jigar Bhatt <jigar.bhatt@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-03-23tests/i915/i915_pm_dc: Add DC9 igt testJigar Bhatt
DC9 igt test validation depends on DC{5,6} counters reset. When Display Engine enters to DC9, it resets DMC f/w and DC5/DC6 counter. We don't have a DC9 counter unlike DC{5,6}, therefore this tests uses DC{5,6} counter reset method to validate DC9. v11 : - Changing title. v10: [Anshuman] - Revert the function name with check_dc9() only. v9: [Anshuman] - Change function name check_dc9() to dc9_failed(). v8: [Anshuman] - Add support_dc6() to check whether a platform supports dc6. v7: [Anshuman] - Skip if no support of DC6. v6: [Anshuman] - assert for DC6 counter in setup_dc9_dpms. - Move dpms_off() to test_dc9_dpms(). Signed-off-by: Jigar Bhatt <jigar.bhatt@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
2021-01-01i915_pm_dc: Avoid falling through an empty 'else'Chris Wilson
../tests/i915/i915_pm_dc.c:195:13: warning: variable 'str' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] } else if (dc_flag & CHECK_DC3CO) { ^~~~~~~~~~~~~~~~~~~~~ ../tests/i915/i915_pm_dc.c:200:24: note: uninitialized use occurs here return get_dc_counter(str); ^~~ ../tests/i915/i915_pm_dc.c:195:9: note: remove the 'if' if its condition is always true } else if (dc_flag & CHECK_DC3CO) { Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-07lib/igt_fb: remove extra parameters from igt_put_cairo_ctxMelissa Wen
The function igt_put_cairo_ctx currently requires three parameters, but only one of them is used in it. This patch removes the useless parameters, making the code more readable and cohesive. It also applies the change to all occurrences of the function in the code. Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-05-20Always pass device to igt_params_setChris Wilson
Don't second guess, require the user to provide the device that wish to set the module parameter for. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
2020-03-03tests/i915_pm_dc: psr required only for dc*-psr testsAnshuman Gupta
DPMS igt tests were skipping for non-psr panels due to psr_sink_support sink check added to igt_fixture() at commit <6cbe6af372a01be63121056679d540436ffd0b64>. DPMS dc state igt test don't require psr_sink_support, as it validates DC states with all display being DPMS off. Removing the psr sink check from igt_fixture and adding it only for dc*- psr tests. v2: - Adding psr sink check to dc3co and moving ahead it in dc5/6 psr tests. [Jose] Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
2020-03-03tests/i915_pm_dc: Dump power_domain_info on DC test failuresAnshuman Gupta
Dump i915_power_domain_info debugfs attribute on DC state test failures, it will help to identify culprit, which causes non zero refcount for "DC off" power well. v2: - Fix the mem leak. [Jose] v3: - Removed pwr_dmn_info global. [Jose] Cc: Animesh Manna <animesh.manna@intel.com> Cc: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
2020-01-31lib: Find the associated runtime-pm sysfs for the deviceChris Wilson
Remove the hardcoded path to the igfx (00:00:02.00) and instead pass in the fd of the DRM device we wish to control, and look up the associated device/power/ under sysfs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Imre Deak <imre.deak@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-12-11tests/i915_pm_dc: Wait for PSR2 entryJosé Roberto de Souza
After enable PSR2 we can not check right away if PSR2 is enabled, we need let some time to PSR2 to be enabled. For that we have psr_wait_entry(), that is why the previous patch was reverted as psr_enabled() is not much useful. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112411 Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-12-11Revert "lib/igt_psr: Move "is enabled" implementation to lib"José Roberto de Souza
This reverts commit 4bb46f08f7cb6485642c4351cecdad93072d27a0. The next patch have more information about why this patch was reverted. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-12-03tests/i915: remove igt_skip_on_simulation()Swati Sharma
Removing igt_skip_on_simulation() from all i915 specific tests since this feature is not supported anymore. v2: Rebase Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Karthik B S <karthik.b.s@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2019-11-18lib/igt_psr: Move "is enabled" implementation to libJosé Roberto de Souza
i915_pm_dc have implemented a function to check if PSR2 is enabled, that may be util to future tests so move it to PSR lib. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
2019-11-18tests/i915_pm_dc: Simplify runtime pm handlingJosé Roberto de Souza
has_runtime_pm was not used outside of igt_fixture also no need to print this info, if not supported IGT skip log will contain the line that was not meet. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
2019-11-18tests/i915_pm_dc: Use psr_sink_support instead of reimplement it againJosé Roberto de Souza
Also moving the sink check to igt_fixture as it do not change overtime. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
2019-11-08tests/i915_pm_dc: Reuse the debugfs fd instead of opening and closing one ↵José Roberto de Souza
each time Each call to igt_debugfs_read() opens a file descriptor to debugfs, calls igt_debugfs_simple_read() and then closes it. So lets stop this waste of time and reuse the debugfs file descriptor that we already have. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-11-08tests/i915_pm_dc: Fix the requirement checkJosé Roberto de Souza
igt_debugfs_simple_read() requires the debugfs file descriptor not the drm device file descriptor, so the requirement check was complete broken. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-11-05Add a new IGT test to validate DC3CO stateJeevan B
Add a subtest for DC3CO video playback case to generate selective frame update and validate that system stays in DC3CO state during execution. v2: Changed PSR2 idle check to sleep check and addressed cosmetic changes. v3: Renamed a function and restructured code. v4: Cosmetic changes. v5: Removed DC5 check, Platform check and a function parameter. Renamed a function name as per Arek and Imre's Comments. v6: Added a new function require_dc_counter as per Arek's Comments. The test is now running based on time instead of the number of frames increased frame delay from 1 to 1.5 as per Imre's Comments. v7: Removed psr2_active_sleep_check and corrected the switch indentation. v8: Changed skip to assert in read_dc_counter function and changed IGT description Signed-off-by: Jeevan B <jeevan.b@intel.com> Signed-off-by: Ramalingam C <ramalingam.c@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Link: https://patchwork.freedesktop.org/patch/338131/?series=66648&rev=8
2019-11-05DC3CO PSR2 helpersAnshuman Gupta
Add DC3CO IGT validation prerequisites stuff so we can enable DC3CO IGT test. v2: Removed psr2_idle_wait_entry and get_psr2_status function. v3: Changed macro definition and removed extra line. v4: Simplified edp_psr2_enabled function as per Arek's comments. v5: Simplified read_dc_counter function as per Arek's comments. Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Signed-off-by: Jeevan B <jeevan.b@intel.com> Signed-off-by: Ramalingam C <ramalingam.c@intel.com> Reviewed-by: Animesh Manna <animesh.manna@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Link: https://patchwork.freedesktop.org/patch/338130/?series=66648&rev=8
2019-09-20tests/i915/i915_pm_dc:Skip the DC6 test if BIOS has disabled PC8+Anshuman Gupta
As DC6 requires platform to enter PC8 package C state. It make sense to skip the DC6 igt-test, if BIOS configuration has disabled PC8+ package C states. Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-09-20tests/i915/i915_pm_dc: Added test for DC6 during DPMSJyoti Yadav
Added new subtest for DC6 entry during DPMS on/off cycle. During DPMS on/off cycle DC6 counter is incremented. v2: Renamed the subtest name. v3: Rebased. v4: Addressed review comment by replacing igt_display_init() to igt_display_require(), changes got done in patch set 2. v5: Addressed the review comment by removing redundant read_dc_counter() suggested by Imre. Listing actual change in patch set changelog to make review easier. v6: Rebased due to test name pm_dc changed to i915_pm_dc, aligning to other PM tests. v7: Introduced setup_dc_dpms() in order to disable i915 runtime PM for the platform supports DC9. Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-09-20tests/i915/i915_pm_dc: Added test for DC5 during DPMSJyoti Yadav
Added new subtest for DC5 entry during DPMS on/off cycle. During DPMS on/off cycle DC5 counter is incremented. v2: Rename the subtest with meaningful name. v3: Rebased. v4: Addressed review comments by removing leftover code cleanup(). v5: Addressed the review comment by removing redundant read_dc_counter() suggested by Imre. Listing actual change in patch set changelog to make review easier. v6: Three way patch applied, no functional change. v7: Disabling runtime suspend for the platform which support, DC9. rebased due to test name pm_dc changed to i915_pm_dc, aligning to other PM tests. v8: Introduced setup_dc_dpms() in order to disable runtime pm, restoring POWER_DIR values to its original and enabling runtime pm for other followed sub-tests. v9: Check DC5 counter value after DPMS off, broke the dpms_on_off function to dpms_on and dpms_off. [Imre] v10:Added AT_LEAST_Gen11 condition instead of IS_ICELAKE in order to disable runtime suspend. [Imre] v11:Added a cleanup_dc_dpms() function. [Imre] Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-09-20tests/i915/i915_pm_dc: Added test for DC6 during PSRJyoti Yadav
This patch add subtest to check DC6 entry on PSR for the supported platforms. v2: Rename the subtest with more meaningful name. v3: Rebased. v4: Rebased, to fix compilation error in psr_enable(). Addressed review comment by fixing typo in comment description of DC6 PSR subtest. v5: Addressed the review comment by removing redundant read_dc_counter(), clubbed cleanup() function in test_dc_state_psr() suggested by Imre. Listing actual change in patch set changelog to make review easier. v6: Rebased due to test name pm_dc changed to i915_pm_dc, aligning to other PM tests. Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-09-20tests/i915/i915_pm_dc: Added new test to verify Display C StatesJyoti Yadav
Currently this test validates DC5 upon PSR entry for supported platforms. Added new file for compilation inside Makefile and Meson. v2: Used the debugfs entry for DC counters instead of Registers. Used shorter names for variables. Introduced timeout to read DC counters. v3: one second timeout is introduced to read DC counters. Skip the subtest if counters are not available for that platform. v4: Rebased, to fix compilation error in psr_enable(), psr_wait_entry() and replaced igt_display_init() by igt_display_require() in pm_rpm.c. Addressed the review comment by removing unused function display_init, removing redundant igt commit suggested by Imre. Fixed typo in read_dc_counter(). v5: Addressed the review comment by removing redundant read_dc_counter(), clubbed cleanup() function in test_dc_state_psr() suggested by Imre. Rearranged preprocessor directives at one place. Fixed compilation warning by adding function prototype for dc_state_wait_entry() and check_dc_counter(). Listing actual change in patch set changelog to make review easier. v6: Fixed "i915_edp_psr_status" string to "Sink support: yes". v7: Rebased since test name changed from "pm_dc" to "i915_pm_dc", this will align with other PM tests. also changed the DC5/6 counter check timeout to 3 second. v8: On few platform SATA i/p is blocking deeper package C states. used igt_pm_enable_sata_link_power_management() function in order to use min_power policy. v9: Removed redundant igt_pm_remove_sata_link_power_management() as sata link policy values will be restored by exit handler. v10: changed cleanup() to cleanup_dc_psr() symmetric to cleanup_dc_dpms(). v11: Removed unwanted headers. [Imre] Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>