public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v11 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR
  2019-04-23 11:15 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
@ 2019-04-23 11:15 ` Anshuman Gupta
  0 siblings, 0 replies; 7+ messages in thread
From: Anshuman Gupta @ 2019-04-23 11:15 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

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>
---
 tests/i915/i915_pm_dc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 94890e2..f261ecb 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -202,6 +202,14 @@ int main(int argc, char *argv[])
 		test_dc_state_psr(&data, CHECK_DC5);
 	}
 
+	igt_subtest("dc6-psr") {
+		data.op_psr_mode = PSR_MODE_1;
+		psr_enable(data.debugfs_fd, data.op_psr_mode);
+		igt_require_f(edp_psr_sink_support(&data),
+			      "Sink does not support PSR\n");
+		test_dc_state_psr(&data, CHECK_DC6);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11.
@ 2019-05-06 16:06 Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Anshuman Gupta @ 2019-05-06 16:06 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

(This is just a resubmit as last submission was failed due to some
 issue with drm-tip)

This patch series adds new tests to validate Display C states.
DC states like DC5 and DC6 are validated during PSR entry/exit and during DPMS on/off cycle.

Sending new revision of patch series after addressing review comments.

Below is the list of major chnages since first revision.

1. Changing the name of test from "pm_dc" to "i915_pm_dc" alinged to other PM tests.
2. Changing the DC5/6 counter check timeout from 1 sec to 3 sec,
   as in case of PSR on some platfrom like KBL it requires more than 2 second to 
   disable 'DC off' power well after vblank event.
3. Changed the test name from tests/pm_dc to tests tests/i915/i915_pm_dc in
   name of individual patch.
4. Addressed the review comment by saving POWER_DIR values in igt_disable_runtime_pm().
5. CI fixures for dc5-dpms failure.
   Checking DC5 counter value after DPMS off, broke the dpms_on_off
   function to dpms_on and dpms_off.
6. Used igt_pm_enable_sata_link_power_management() function in order to use
   min_power policy for SATA.
7. igt_pm_enable_sata_link_power_management() function to restore the 
   original SATA link power policy using an exit handler. 

Jyoti Yadav (5):
  lib/igt_pm: igt lib helper routines to support DC5/6 tests
  tests/i915/i915_pm_dc: Added new test to verify Display C States
  tests/i915/i915_pm_dc: Added test for DC6 during PSR
  tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  tests/i915/i915_pm_dc: Added test for DC6 during DPMS

 lib/igt_pm.c             | 201 ++++++++++++++++++++++++++-------
 lib/igt_pm.h             |   2 +
 tests/Makefile.sources   |   3 +
 tests/i915/i915_pm_dc.c  | 286 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/i915/i915_pm_rpm.c |  17 +--
 tests/meson.build        |   1 +
 6 files changed, 454 insertions(+), 56 deletions(-)
 create mode 100644 tests/i915/i915_pm_dc.c

-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t v11 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-05-06 16:06 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
@ 2019-05-06 16:06 ` Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Anshuman Gupta @ 2019-05-06 16:06 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

dmc_loaded() will be used by new test i915_pm_dc.c which will validate
Display C States. So moving the same to igt_pm library.
Introduced igt_disable_runtime_pm() in order to disable runtime suspend
for the function which support dc9.

v2: Simplify the comment section.
v3: Remove . from the subject line.
v4: Rebased, resolve conflicts in pm_rpm.c
    Included patch set version change log.
v5: Listing actual change in patch set changelog to make review easier.
v6: igt's lib added support for disabling runtime suspend,
    change in commit log. rebased due to test name pm_rpm changed
    to i915_pm_rpm.
v7: Addressed review comment by saving POWER_DIR values in
    igt_disable_runtime_pm(). [Imre]
v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
    function to restore the original SATA link power policy if things fail
    by using an exit handler. [Imre]

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 lib/igt_pm.c             | 201 +++++++++++++++++++++++++++++++++++++----------
 lib/igt_pm.h             |   2 +
 tests/i915/i915_pm_rpm.c |  17 +---
 3 files changed, 164 insertions(+), 56 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index fd22273..5d49bca 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -38,6 +38,7 @@
 #include "drmtest.h"
 #include "igt_pm.h"
 #include "igt_aux.h"
+#include "igt_sysfs.h"
 
 /**
  * SECTION:igt_pm
@@ -63,11 +64,15 @@ enum {
 #define MIN_POWER_STR		"min_power\n"
 /* Remember to fix this if adding longer strings */
 #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
+int8_t *__sata_link_pm_policies;
 
 static char __igt_pm_audio_runtime_power_save[64];
 static char * __igt_pm_audio_runtime_control_path;
 static char __igt_pm_audio_runtime_control[64];
 
+void __igt_pm_sata_link_pm_exit_handler(int sig);
+static void __igt_pm_restore_sata_link_power_management(void);
+
 static int __igt_pm_audio_restore_runtime_pm(void)
 {
 	int fd;
@@ -280,28 +285,12 @@ void igt_pm_enable_audio_runtime_pm(void)
 		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
 }
 
-/**
- * igt_pm_enable_sata_link_power_management:
- *
- * Enable the min_power policy for SATA link power management.
- * Without this we cannot reach deep runtime power states.
- *
- * We don't have any assertions on open since the system might not have
- * a SATA host.
- *
- * Returns:
- * An opaque pointer to the data needed to restore the default values
- * after the test has terminated, or NULL if SATA link power management
- * is not supported. This pointer should be freed when no longer used
- * (typically after having called restore_sata_link_power_management()).
- */
-int8_t *igt_pm_enable_sata_link_power_management(void)
+static void __igt_pm_enable_sata_link_power_management(void)
 {
 	int fd, i;
 	ssize_t len;
 	char *buf;
 	char *file_name;
-	int8_t *link_pm_policies = NULL;
 
 	file_name = malloc(PATH_MAX);
 	buf = malloc(MAX_POLICY_STRLEN + 1);
@@ -333,11 +322,13 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 			policy = POLICY_UNKNOWN;
 
 		if (!(i % 256))
-			link_pm_policies = realloc(link_pm_policies,
-						   (i / 256 + 1) * 256 + 1);
+			__sata_link_pm_policies =
+			realloc(__sata_link_pm_policies,
+				(i / 256 + 1) * 256 + 1);
 
-		link_pm_policies[i] = policy;
-		link_pm_policies[i + 1] = 0;
+		__sata_link_pm_policies[i] = policy;
+		__sata_link_pm_policies[i + 1] = 0;
+		igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);
 
 		/* If the policy is something we don't know about,
 		 * don't touch it, since we might potentially break things.
@@ -355,39 +346,27 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 	}
 	free(buf);
 	free(file_name);
-
-	return link_pm_policies;
 }
 
-/**
- * igt_pm_restore_sata_link_power_management:
- * @pm_data: An opaque pointer with saved link PM policies;
- *           If NULL is passed we force enable the "max_performance" policy.
- *
- * Restore the link power management policies to the values
- * prior to enabling min_power.
- *
- * Caveat: If the system supports hotplugging and hotplugging takes
- *         place during our testing so that the hosts change numbers
- *         we might restore the settings to the wrong hosts.
- */
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
-
+static void __igt_pm_restore_sata_link_power_management(void)
 {
 	int fd, i;
 	char *file_name;
 
+	if (!__sata_link_pm_policies)
+		return;
+
 	/* Disk runtime PM policies. */
 	file_name = malloc(PATH_MAX);
 	for (i = 0; ; i++) {
 		int8_t policy;
 
-		if (!pm_data)
+		if (!__sata_link_pm_policies)
 			policy = POLICY_MAX_PERFORMANCE;
-		else if (pm_data[i] == POLICY_UNKNOWN)
+		else if (__sata_link_pm_policies[i] == POLICY_UNKNOWN)
 			continue;
 		else
-			policy = pm_data[i];
+			policy = __sata_link_pm_policies[i];
 
 		snprintf(file_name, PATH_MAX,
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
@@ -422,6 +401,66 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
 	}
 	free(file_name);
 }
+
+/**
+ * igt_pm_enable_sata_link_power_management:
+ *
+ * Enable the min_power policy for SATA link power management.
+ * Without this we cannot reach deep runtime power states.
+ *
+ * We don't have any assertions on open since the system might not have
+ * a SATA host.
+ *
+ * Returns:
+ * An opaque pointer to the data needed to restore the default values
+ * after the test has terminated, or NULL if SATA link power management
+ * is not supported. This pointer should be freed when no longer used
+ * (typically after having called restore_sata_link_power_management()).
+ */
+int8_t *igt_pm_enable_sata_link_power_management(void)
+{
+	int err;
+
+	/* Check if has been already saved. */
+	if (__sata_link_pm_policies)
+		return;
+
+	 __igt_pm_enable_sata_link_power_management();
+
+	 /*  Fixme:
+	  *  Need to obey the function prototype as returning a int8_t *,
+	  *  it is getting used at multiple places.
+	  */
+	return __sata_link_pm_policies;
+}
+
+/**
+ * igt_pm_restore_sata_link_power_management:
+ * @pm_data: An opaque pointer with saved link PM policies;
+ *
+ * Restore the link power management policies to the values
+ * prior to enabling min_power.
+ *
+ * Caveat: If the system supports hotplugging and hotplugging takes
+ *         place during our testing so that the hosts change numbers
+ *         we might restore the settings to the wrong hosts.
+ */
+void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
+
+{
+	int err;
+
+	if (!__sata_link_pm_policies)
+		return;
+
+	 __igt_pm_restore_sata_link_power_management();
+}
+
+void __igt_pm_sata_link_pm_exit_handler(int sig)
+{
+	__igt_pm_restore_sata_link_power_management();
+}
+
 #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
 /* We just leak this on exit ... */
 int pm_status_fd = -1;
@@ -585,6 +624,61 @@ bool igt_setup_runtime_pm(void)
 	return true;
 }
 
+bool igt_disable_runtime_pm(void)
+{
+	int fd;
+	ssize_t size;
+	char buf[6];
+
+	if (pm_status_fd < 0) {
+		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
+		if (fd < 0)
+			return false;
+
+		size = read(fd, __igt_pm_runtime_autosuspend,
+			    sizeof(__igt_pm_runtime_autosuspend));
+
+		if (size <= 0) {
+			close(fd);
+			return false;
+		}
+
+		strchomp(__igt_pm_runtime_autosuspend);
+		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
+		close(fd);
+	}
+
+	/* We know we support runtime PM, let's try to disable it now. */
+	fd = open(POWER_DIR "/control", O_RDWR);
+	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
+
+	if (pm_status_fd < 0) {
+		igt_assert(read(fd, __igt_pm_runtime_control,
+				sizeof(__igt_pm_runtime_control)) > 0);
+		strchomp(__igt_pm_runtime_control);
+
+		igt_debug("Saved runtime power management as '%s' and '%s'\n",
+			  __igt_pm_runtime_autosuspend,
+			  __igt_pm_runtime_control);
+	}
+
+	size = write(fd, "on\n", 3);
+	igt_assert(size == 3);
+	lseek(fd, 0, SEEK_SET);
+	size = read(fd, buf, ARRAY_SIZE(buf));
+	igt_assert(size == 3);
+	igt_assert(strncmp(buf, "on\n", 3) == 0);
+	close(fd);
+
+	if (pm_status_fd < 0) {
+		pm_status_fd = open(POWER_DIR "/runtime_status", O_RDONLY);
+		igt_assert_f(pm_status_fd >= 0,
+			     "Can't open " POWER_DIR "/runtime_status\n");
+	}
+
+	return true;
+}
+
 /**
  * igt_get_runtime_pm_status:
  *
@@ -628,3 +722,30 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
 {
 	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
 }
+
+/**
+ * dmc_loaded:
+ * @debugfs: fd to the debugfs dir.
+
+ * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
+ * states like DC5 and DC6. FW does the Context Save and Restore during Display
+ * C States entry and exit.
+ *
+ * Returns:
+ * True if DMC FW is loaded otherwise false.
+ */
+bool igt_pm_dmc_loaded(int debugfs)
+{
+	igt_require(debugfs != -1);
+	char buf[15];
+	int len;
+
+	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
+	if (len < 0)
+		return true; /* no CSR support, no DMC requirement */
+
+	buf[len] = '\0';
+
+	igt_info("DMC: %s\n", buf);
+	return strstr(buf, "fw loaded: yes");
+}
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index 10cc679..6c4617a 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
 };
 
 bool igt_setup_runtime_pm(void);
+bool igt_disable_runtime_pm(void);
 void igt_restore_runtime_pm(void);
 enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
 bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
+bool igt_pm_dmc_loaded(int debugfs);
 
 #endif /* IGT_PM_H */
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index a2c9d0e..0c3b4e5 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -710,21 +710,6 @@ static void setup_pc8(void)
 	has_pc8 = true;
 }
 
-static bool dmc_loaded(void)
-{
-	char buf[15];
-	int len;
-
-	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
-	if (len < 0)
-	    return true; /* no CSR support, no DMC requirement */
-
-	buf[len] = '\0';
-
-	igt_info("DMC: %s\n", buf);
-	return strstr(buf, "fw loaded: yes");
-}
-
 static void dump_file(int dir, const char *filename)
 {
 	char *contents;
@@ -759,7 +744,7 @@ static bool setup_environment(void)
 	igt_info("Runtime PM support: %d\n", has_runtime_pm);
 	igt_info("PC8 residency support: %d\n", has_pc8);
 	igt_require(has_runtime_pm);
-	igt_require(dmc_loaded());
+	igt_require(igt_pm_dmc_loaded(debugfs));
 
 out:
 	disable_all_screens(&ms_data);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t v11 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR
  2019-05-06 16:06 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
@ 2019-05-06 16:06 ` Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 4/5] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Anshuman Gupta @ 2019-05-06 16:06 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

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>
---
 tests/i915/i915_pm_dc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 94890e2..f261ecb 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -202,6 +202,14 @@ int main(int argc, char *argv[])
 		test_dc_state_psr(&data, CHECK_DC5);
 	}
 
+	igt_subtest("dc6-psr") {
+		data.op_psr_mode = PSR_MODE_1;
+		psr_enable(data.debugfs_fd, data.op_psr_mode);
+		igt_require_f(edp_psr_sink_support(&data),
+			      "Sink does not support PSR\n");
+		test_dc_state_psr(&data, CHECK_DC6);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t v11 4/5] tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  2019-05-06 16:06 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta
@ 2019-05-06 16:06 ` Anshuman Gupta
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 5/5] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta
  2019-05-06 17:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series v11. (rev2) Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Anshuman Gupta @ 2019-05-06 16:06 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

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]

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/i915_pm_dc.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index f261ecb..0f78b6b 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -46,6 +46,7 @@ typedef struct {
 	enum psr_mode op_psr_mode;
 	drmModeModeInfo *mode;
 	igt_output_t *output;
+	bool runtime_suspend_disabled;
 } data_t;
 
 bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
@@ -173,6 +174,62 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
 	cleanup(data);
 }
 
+static void setup_dc_dpms(data_t *data)
+{
+	if (IS_BROXTON(data->devid) || IS_GEMINILAKE(data->devid) ||
+		IS_ICELAKE(data->devid)) {
+		data->runtime_suspend_disabled = igt_disable_runtime_pm();
+		igt_require_f(data->runtime_suspend_disabled,
+			      "unable to disable runtime pm for i915\n");
+	} else {
+		data->runtime_suspend_disabled = false;
+	}
+}
+
+static void dpms_off(data_t *data)
+{
+	for (int i = 0; i < data->display.n_outputs; i++) {
+		kmstest_set_connector_dpms(data->drm_fd,
+					   data->display.outputs[i].config.connector,
+					   DRM_MODE_DPMS_OFF);
+	}
+
+	if (!data->runtime_suspend_disabled)
+		igt_assert(igt_wait_for_pm_status
+			   (IGT_RUNTIME_PM_STATUS_SUSPENDED));
+}
+
+static void dpms_on(data_t *data)
+{
+	for (int i = 0; i < data->display.n_outputs; i++) {
+		kmstest_set_connector_dpms(data->drm_fd,
+					   data->display.outputs[i].config.connector,
+					   DRM_MODE_DPMS_ON);
+	}
+
+	if (!data->runtime_suspend_disabled)
+		igt_assert(igt_wait_for_pm_status
+			   (IGT_RUNTIME_PM_STATUS_ACTIVE));
+}
+
+static void test_dc_state_dpms(data_t *data, int dc_flag)
+{
+	uint32_t dc_counter;
+
+	dc_counter = read_dc_counter(data->drm_fd, dc_flag);
+	dpms_off(data);
+	check_dc_counter(data->drm_fd, dc_flag, dc_counter);
+	dpms_on(data);
+
+	/* if runtime PM is disabled for i915 restore it,
+	 * so any other sub-test can use runtime-PM.
+	 */
+	if (data->runtime_suspend_disabled) {
+		igt_restore_runtime_pm();
+		igt_setup_runtime_pm();
+	}
+}
+
 int main(int argc, char *argv[])
 {
 	bool has_runtime_pm;
@@ -210,6 +267,11 @@ int main(int argc, char *argv[])
 		test_dc_state_psr(&data, CHECK_DC6);
 	}
 
+	igt_subtest("dc5-dpms") {
+		setup_dc_dpms(&data);
+		test_dc_state_dpms(&data, CHECK_DC5);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] [PATCH i-g-t v11 5/5] tests/i915/i915_pm_dc: Added test for DC6 during DPMS
  2019-05-06 16:06 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
                   ` (2 preceding siblings ...)
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 4/5] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
@ 2019-05-06 16:06 ` Anshuman Gupta
  2019-05-06 17:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series v11. (rev2) Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Anshuman Gupta @ 2019-05-06 16:06 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

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() inorder 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>
---
 tests/i915/i915_pm_dc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 0f78b6b..ba891d8 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -272,6 +272,11 @@ int main(int argc, char *argv[])
 		test_dc_state_dpms(&data, CHECK_DC5);
 	}
 
+	igt_subtest("dc6-dpms") {
+		setup_dc_dpms(&data);
+		test_dc_state_dpms(&data, CHECK_DC6);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series v11. (rev2)
  2019-05-06 16:06 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
                   ` (3 preceding siblings ...)
  2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 5/5] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta
@ 2019-05-06 17:23 ` Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-05-06 17:23 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series v11. (rev2)
URL   : https://patchwork.freedesktop.org/series/59820/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6051 -> IGTPW_2945
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2945 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2945, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/59820/revisions/2/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_2945:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@module-reload:
    - fi-cfl-8700k:       [PASS][1] -> [CRASH][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
    - fi-whl-u:           [PASS][3] -> [CRASH][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-whl-u/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-whl-u/igt@i915_pm_rpm@module-reload.html
    - fi-byt-n2820:       [PASS][5] -> [CRASH][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-byt-n2820/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-byt-n2820/igt@i915_pm_rpm@module-reload.html
    - fi-bdw-5557u:       [PASS][7] -> [CRASH][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-bdw-5557u/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-bdw-5557u/igt@i915_pm_rpm@module-reload.html
    - fi-apl-guc:         [PASS][9] -> [CRASH][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-apl-guc/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-apl-guc/igt@i915_pm_rpm@module-reload.html
    - fi-skl-lmem:        [PASS][11] -> [CRASH][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-lmem/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-lmem/igt@i915_pm_rpm@module-reload.html
    - fi-skl-6600u:       [PASS][13] -> [CRASH][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html
    - fi-bsw-n3050:       [PASS][15] -> [INCOMPLETE][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-bsw-n3050/igt@i915_pm_rpm@module-reload.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-bsw-n3050/igt@i915_pm_rpm@module-reload.html
    - fi-byt-j1900:       [PASS][17] -> [CRASH][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-byt-j1900/igt@i915_pm_rpm@module-reload.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-byt-j1900/igt@i915_pm_rpm@module-reload.html
    - fi-bxt-dsi:         [PASS][19] -> [CRASH][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-bxt-dsi/igt@i915_pm_rpm@module-reload.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-bxt-dsi/igt@i915_pm_rpm@module-reload.html
    - fi-icl-u3:          [PASS][21] -> [CRASH][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-icl-u3/igt@i915_pm_rpm@module-reload.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-icl-u3/igt@i915_pm_rpm@module-reload.html
    - fi-hsw-4770:        [PASS][23] -> [CRASH][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html
    - fi-glk-dsi:         [PASS][25] -> [CRASH][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_pm_rpm@module-reload:
    - {fi-cml-u}:         [PASS][27] -> [INCOMPLETE][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-cml-u/igt@i915_pm_rpm@module-reload.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-cml-u/igt@i915_pm_rpm@module-reload.html
    - {fi-cml-u2}:        [PASS][29] -> [CRASH][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-cml-u2/igt@i915_pm_rpm@module-reload.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-cml-u2/igt@i915_pm_rpm@module-reload.html

  
Known issues
------------

  Here are the changes found in IGTPW_2945 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_switch@basic-default:
    - fi-icl-y:           [PASS][31] -> [INCOMPLETE][32] ([fdo#107713] / [fdo#108569])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-icl-y/igt@gem_ctx_switch@basic-default.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-icl-y/igt@gem_ctx_switch@basic-default.html

  * igt@i915_pm_rpm@module-reload:
    - fi-kbl-x1275:       [PASS][33] -> [CRASH][34] ([fdo#109963])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
    - fi-skl-guc:         [PASS][35] -> [INCOMPLETE][36] ([fdo#107807])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-guc/igt@i915_pm_rpm@module-reload.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-guc/igt@i915_pm_rpm@module-reload.html
    - fi-kbl-7567u:       [PASS][37] -> [INCOMPLETE][38] ([fdo#107807])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html
    - fi-cfl-guc:         [PASS][39] -> [INCOMPLETE][40] ([fdo#107802])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-cfl-guc/igt@i915_pm_rpm@module-reload.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-cfl-guc/igt@i915_pm_rpm@module-reload.html
    - fi-skl-iommu:       [PASS][41] -> [INCOMPLETE][42] ([fdo#107807])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-iommu/igt@i915_pm_rpm@module-reload.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-iommu/igt@i915_pm_rpm@module-reload.html
    - fi-skl-6260u:       [PASS][43] -> [INCOMPLETE][44] ([fdo#107807])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-6260u/igt@i915_pm_rpm@module-reload.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-6260u/igt@i915_pm_rpm@module-reload.html
    - fi-skl-6770hq:      [PASS][45] -> [INCOMPLETE][46] ([fdo#107807])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
    - fi-kbl-r:           [PASS][47] -> [CRASH][48] ([fdo#109963])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-kbl-r/igt@i915_pm_rpm@module-reload.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-kbl-r/igt@i915_pm_rpm@module-reload.html
    - fi-hsw-peppy:       [PASS][49] -> [INCOMPLETE][50] ([fdo#107807])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-hsw-peppy/igt@i915_pm_rpm@module-reload.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-hsw-peppy/igt@i915_pm_rpm@module-reload.html
    - fi-skl-6700k2:      [PASS][51] -> [INCOMPLETE][52] ([fdo#107807])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-skl-6700k2/igt@i915_pm_rpm@module-reload.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-skl-6700k2/igt@i915_pm_rpm@module-reload.html
    - fi-kbl-7500u:       [PASS][53] -> [CRASH][54] ([fdo#109963])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6051/fi-kbl-7500u/igt@i915_pm_rpm@module-reload.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/fi-kbl-7500u/igt@i915_pm_rpm@module-reload.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107802]: https://bugs.freedesktop.org/show_bug.cgi?id=107802
  [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109963]: https://bugs.freedesktop.org/show_bug.cgi?id=109963


Participating hosts (53 -> 45)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-ivb-3770 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * IGT: IGT_4972 -> IGTPW_2945

  CI_DRM_6051: fac89f79a454771f6595bcd11d9a119d5acc42d0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2945: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/
  IGT_4972: f052e49a43cc9704ea5f240df15dd9d3dfed68ab @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_pm_dc@dc5-dpms
+igt@i915_pm_dc@dc5-psr
+igt@i915_pm_dc@dc6-dpms
+igt@i915_pm_dc@dc6-psr

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2945/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-05-06 17:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-06 16:06 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta
2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 4/5] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
2019-05-06 16:06 ` [igt-dev] [PATCH i-g-t v11 5/5] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta
2019-05-06 17:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series v11. (rev2) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2019-04-23 11:15 [igt-dev] [PATCH i-g-t v11 0/5] DC states igt tests patch series v11 Anshuman Gupta
2019-04-23 11:15 ` [igt-dev] [PATCH i-g-t v11 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox