[Intel-xe] [PATCH] drm/xe: do not register to PM if GuC is disabled

Niranjana Vishwanathapura niranjana.vishwanathapura at intel.com
Thu Sep 28 22:35:46 UTC 2023


On Thu, Sep 28, 2023 at 04:56:21PM +0300, Ohad Sharabi wrote:
>When working without GuC (i.e. working with execlists), the flow
>attempts to perform suspend operation which is failing due to a
>lack of support without GuC.
>
>If PM ops are not supported without GuC we may as well avoid PM
>registration rather than returning errors from various PM flows.
>
>Signed-off-by: Ohad Sharabi <osharabi at habana.ai>
>---
> drivers/gpu/drm/xe/xe_gt.c | 4 ----
> drivers/gpu/drm/xe/xe_pm.c | 4 ++++
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
>index 1aa44d4f9ac1..68cd9a7ee087 100644
>--- a/drivers/gpu/drm/xe/xe_gt.c
>+++ b/drivers/gpu/drm/xe/xe_gt.c
>@@ -641,10 +641,6 @@ int xe_gt_suspend(struct xe_gt *gt)
> {
> 	int err;
>
>-	/* For now suspend/resume is only allowed with GuC */
>-	if (!xe_device_uc_enabled(gt_to_xe(gt)))
>-		return -ENODEV;
>-

Hmm...I am not sure bailing out early in xe_pm_init() will
make this function not to get called as it is registered with
pci subsystem.
May be we need call device_set_pm_not_required() like we are
doing in xe_pm_assert_unbounded_bridge()?

Niranjana

> 	xe_gt_sanitize(gt);
>
> 	xe_device_mem_access_get(gt_to_xe(gt));
>diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
>index ad3c08c4ff22..e31a91cf311c 100644
>--- a/drivers/gpu/drm/xe/xe_pm.c
>+++ b/drivers/gpu/drm/xe/xe_pm.c
>@@ -167,6 +167,10 @@ void xe_pm_init(struct xe_device *xe)
> {
> 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>
>+	/* For now suspend/resume is only allowed with GuC */
>+	if (!xe_device_uc_enabled(xe))
>+		return;
>+
> 	drmm_mutex_init(&xe->drm, &xe->d3cold.lock);
>
> 	xe->d3cold.capable = xe_pm_pci_d3cold_capable(pdev);
>-- 
>2.34.1
>


More information about the Intel-xe mailing list