[Intel-gfx] [PATCH igt] igt/pm_rpm: Wait for PCI D3

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 7 14:19:10 UTC 2016


The transition to PCI device state D3 is not instantaneous and only
started when runtime suspended. Allow the driver/hardware a little bit
of time to complete the transition before declaring a test failure.

References: https://bugs.freedesktop.org/show_bug.cgi?id=93123
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/pm_rpm.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c
index e84a9d3..03ef2eb 100644
--- a/tests/pm_rpm.c
+++ b/tests/pm_rpm.c
@@ -1337,15 +1337,13 @@ static void reg_read_ioctl_subtest(void)
 
 static bool device_in_pci_d3(void)
 {
-	struct pci_device *pci_dev;
-	int rc;
 	uint16_t val;
+	int rc;
 
-	pci_dev = intel_get_pci_device();
-
-	rc = pci_device_cfg_read_u16(pci_dev, &val, 0xd4);
+	rc = pci_device_cfg_read_u16(intel_get_pci_device(), &val, 0xd4);
 	igt_assert_eq(rc, 0);
 
+	igt_debug("%s: PCI D3 state=%d\n", __func__, val & 0x3);
 	return (val & 0x3) == 0x3;
 }
 
@@ -1354,11 +1352,9 @@ static void pci_d3_state_subtest(void)
 	igt_require(has_runtime_pm);
 
 	disable_all_screens_and_wait(&ms_data);
-
-	igt_assert(device_in_pci_d3());
+	igt_assert(igt_wait(device_in_pci_d3(), 2000, 100));
 
 	enable_one_screen_and_wait(&ms_data);
-
 	igt_assert(!device_in_pci_d3());
 }
 
-- 
2.7.0



More information about the Intel-gfx mailing list