]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/pm: Assert on runtime suspend if VFs are enabled
authorRaag Jadav <raag.jadav@intel.com>
Thu, 30 Oct 2025 12:23:56 +0000 (17:53 +0530)
committerAshutosh Dixit <ashutosh.dixit@intel.com>
Thu, 27 Nov 2025 17:05:24 +0000 (09:05 -0800)
We hold an additional reference to the runtime PM to keep PF in D0
during VFs lifetime, as our VFs do not implement the PM capability.
This means we should never be runtime suspending as long as VFs are
enabled.

v8: Add !IS_SRIOV_VF() assert (Matthew Brost)

Suggested-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Link: https://patch.msgid.link/20251030122357.128825-4-raag.jadav@intel.com
drivers/gpu/drm/xe/xe_pci.c

index 94abefa3d9ca47da436012366169654952309c59..763f588521d0168bc56fca03a1dbd2b579068468 100644 (file)
@@ -1160,6 +1160,15 @@ static int xe_pci_runtime_suspend(struct device *dev)
        struct xe_device *xe = pdev_to_xe_device(pdev);
        int err;
 
+       /*
+        * We hold an additional reference to the runtime PM to keep PF in D0
+        * during VFs lifetime, as our VFs do not implement the PM capability.
+        * This means we should never be runtime suspending as long as VFs are
+        * enabled.
+        */
+       xe_assert(xe, !IS_SRIOV_VF(xe));
+       xe_assert(xe, !pci_num_vf(pdev));
+
        err = xe_pm_runtime_suspend(xe);
        if (err)
                return err;