diff mbox series

[28/31] drm/xe/display: Move display runtime suspend to a later point

Message ID 20240924204222.246862-29-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show
Series Reconcile i915's and xe's display power mgt sequences | expand

Commit Message

Rodrigo Vivi Sept. 24, 2024, 8:35 p.m. UTC
On runtime suspend (regardless of d3cold), there's no need
to perform the display power sequences before we disable the GT
and IRQ.

In a matter of fact, the i915 runtime suspend needs to
disable power, which asserts that IRQs are disabled.
So, before the runtime_pm sequences can be reconciled, it is needed to
ensure that the Xe's IRQ are disabled before the display.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_pm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Cavitt, Jonathan Oct. 8, 2024, 2:37 p.m. UTC | #1
-----Original Message-----
From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Rodrigo Vivi
Sent: Tuesday, September 24, 2024 1:36 PM
To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
Cc: Deak, Imre <imre.deak@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>
Subject: [PATCH 28/31] drm/xe/display: Move display runtime suspend to a later point
> 
> On runtime suspend (regardless of d3cold), there's no need
> to perform the display power sequences before we disable the GT
> and IRQ.
> 
> In a matter of fact, the i915 runtime suspend needs to
> disable power, which asserts that IRQs are disabled.
> So, before the runtime_pm sequences can be reconciled, it is needed to
> ensure that the Xe's IRQ are disabled before the display.
> 
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

LGTM.

Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
-Jonathan Cavitt

> ---
>  drivers/gpu/drm/xe/xe_pm.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
> index 4cacf4b33d83..16854215bea6 100644
> --- a/drivers/gpu/drm/xe/xe_pm.c
> +++ b/drivers/gpu/drm/xe/xe_pm.c
> @@ -402,8 +402,6 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
>  		xe_bo_runtime_pm_release_mmap_offset(bo);
>  	mutex_unlock(&xe->mem_access.vram_userfault.lock);
>  
> -	xe_display_pm_runtime_suspend(xe);
> -
>  	if (xe->d3cold.allowed) {
>  		err = xe_bo_evict_all(xe);
>  		if (err)
> @@ -418,6 +416,7 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
>  
>  	xe_irq_suspend(xe);
>  
> +	xe_display_pm_runtime_suspend(xe);
>  	xe_display_pm_runtime_suspend_late(xe);
>  out:
>  	if (err)
> -- 
> 2.46.0
> 
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 4cacf4b33d83..16854215bea6 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -402,8 +402,6 @@  int xe_pm_runtime_suspend(struct xe_device *xe)
 		xe_bo_runtime_pm_release_mmap_offset(bo);
 	mutex_unlock(&xe->mem_access.vram_userfault.lock);
 
-	xe_display_pm_runtime_suspend(xe);
-
 	if (xe->d3cold.allowed) {
 		err = xe_bo_evict_all(xe);
 		if (err)
@@ -418,6 +416,7 @@  int xe_pm_runtime_suspend(struct xe_device *xe)
 
 	xe_irq_suspend(xe);
 
+	xe_display_pm_runtime_suspend(xe);
 	xe_display_pm_runtime_suspend_late(xe);
 out:
 	if (err)