From e6d2fe31a76d4960b0005e8fcb5eb66d00ed2e14 Mon Sep 17 00:00:00 2001 From: Raag Jadav Date: Thu, 30 Oct 2025 17:53:56 +0530 Subject: [PATCH] drm/xe/pm: Assert on runtime suspend if VFs are enabled 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 Signed-off-by: Raag Jadav Reviewed-by: Matthew Brost Signed-off-by: Ashutosh Dixit Link: https://patch.msgid.link/20251030122357.128825-4-raag.jadav@intel.com --- drivers/gpu/drm/xe/xe_pci.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c index 94abefa3d9ca..763f588521d0 100644 --- a/drivers/gpu/drm/xe/xe_pci.c +++ b/drivers/gpu/drm/xe/xe_pci.c @@ -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; -- 2.47.3