[igt-dev] [PATCH i-g-t v2 2/2] test/i915_pm_rpm: Verify bridge binds with pcieport driver
Anshuman Gupta
anshuman.gupta at intel.com
Sun Nov 6 13:44:38 UTC 2022
It has been observed that on some Intel x86 host,
PCI core does not bind the Intel dgfx pci card's pci bridge
devices(virtual switch ports) to the pcieport driver.
This leaves pci bridge devices to D0 state and burns power on
dgfx card. It will block the card d3cold as well.
Therefore skip the basic-pci-d3-state subtest in case of
bridge pci devices do not bind with pcieport driver.
v2:
- Commit log modification. [Rodrigo]
- Kept a separate patch for unrelated changes. [Rodrigo]
Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
---
tests/i915/i915_pm_rpm.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index 7a05eccd2..719724f2b 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -1559,15 +1559,20 @@ static bool device_in_pci_d3(struct pci_device *pci_dev)
static void pci_d3_state_subtest(void)
{
- struct pci_device *pci_dev;
+ struct pci_device *pci_dev, *bridge_pci_dev;
igt_require(has_runtime_pm);
pci_dev = igt_device_get_pci_device(drm_fd);
+ bridge_pci_dev = pci_device_get_parent_bridge(pci_dev);
disable_all_screens_and_wait(&ms_data);
igt_assert(igt_wait(device_in_pci_d3(pci_dev), 2000, 100));
+ if (gem_has_lmem(drm_fd))
+ igt_require_f(pci_device_has_kernel_driver(bridge_pci_dev),
+ "pci bridge device does not bind with pcieport driver\n");
+
enable_one_screen_or_forcewake_get_and_wait(&ms_data);
igt_assert(!device_in_pci_d3(pci_dev));
forcewake_put(&ms_data);
--
2.25.1
More information about the igt-dev
mailing list