diff mbox series

[29/31] drm/xe/display: Kill crtc commit flush

Message ID 20240924204222.246862-30-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
This flush was needed in regular suspend cases in the past.
After the clean-up and reconciliation with the i915 it was
not needed anymore and removed. However this remained here
in the runtime suspend path.

However, the runtime pm flow ensures that there won't be any
flying or pending crtc commit when the runtime_suspend is
called. So this is not needed here. Clean it up.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/display/xe_display.c | 23 -----------------------
 1 file changed, 23 deletions(-)

Comments

Cavitt, Jonathan Oct. 8, 2024, 2:50 p.m. UTC | #1
-----Original Message-----
From: Intel-gfx <intel-gfx-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 29/31] drm/xe/display: Kill crtc commit flush
> 
> This flush was needed in regular suspend cases in the past.
> After the clean-up and reconciliation with the i915 it was
> not needed anymore and removed. However this remained here
> in the runtime suspend path.
> 
> However, the runtime pm flow ensures that there won't be any
> flying or pending crtc commit when the runtime_suspend is
> called. So this is not needed here. Clean it up.
> 

LGTM, though maybe the commit message could use some
refactoring.  Something like:

"""
xe_display_flush_cleanup_work was originally needed for
regular suspend cases.  After the clean-up and reconciliation
with the i915, however, it was no longer needed and removed.
Despite this, the function remained as a part of the runtime
suspend path.

Since the runtime pm flow ensures that there won't be any
flying or pending crtc commits when the runtime_suspend
is called, calling xe_display_flush_cleanup_work here is no
longer necessary.  With no other use cases, this function
can safely be removed.
"""

Just a suggestion.  Not blocking.

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

> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  drivers/gpu/drm/xe/display/xe_display.c | 23 -----------------------
>  1 file changed, 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> index 780c8d7f392d..23bdd8904c44 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -283,27 +283,6 @@ static bool suspend_to_idle(void)
>  	return false;
>  }
>  
> -static void xe_display_flush_cleanup_work(struct xe_device *xe)
> -{
> -	struct intel_crtc *crtc;
> -
> -	for_each_intel_crtc(&xe->drm, crtc) {
> -		struct drm_crtc_commit *commit;
> -
> -		spin_lock(&crtc->base.commit_lock);
> -		commit = list_first_entry_or_null(&crtc->base.commit_list,
> -						  struct drm_crtc_commit, commit_entry);
> -		if (commit)
> -			drm_crtc_commit_get(commit);
> -		spin_unlock(&crtc->base.commit_lock);
> -
> -		if (commit) {
> -			wait_for_completion(&commit->cleanup_done);
> -			drm_crtc_commit_put(commit);
> -		}
> -	}
> -}
> -
>  static void xe_display_to_d3cold(struct xe_device *xe)
>  {
>  	struct intel_display *display = &xe->display;
> @@ -311,8 +290,6 @@ static void xe_display_to_d3cold(struct xe_device *xe)
>  	/* We do a lot of poking in a lot of registers, make sure they work properly. */
>  	intel_power_domains_disable(xe);
>  
> -	xe_display_flush_cleanup_work(xe);
> -
>  	intel_hpd_cancel_work(xe);
>  
>  	intel_opregion_suspend(display, PCI_D3cold);
> -- 
> 2.46.0
> 
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 780c8d7f392d..23bdd8904c44 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -283,27 +283,6 @@  static bool suspend_to_idle(void)
 	return false;
 }
 
-static void xe_display_flush_cleanup_work(struct xe_device *xe)
-{
-	struct intel_crtc *crtc;
-
-	for_each_intel_crtc(&xe->drm, crtc) {
-		struct drm_crtc_commit *commit;
-
-		spin_lock(&crtc->base.commit_lock);
-		commit = list_first_entry_or_null(&crtc->base.commit_list,
-						  struct drm_crtc_commit, commit_entry);
-		if (commit)
-			drm_crtc_commit_get(commit);
-		spin_unlock(&crtc->base.commit_lock);
-
-		if (commit) {
-			wait_for_completion(&commit->cleanup_done);
-			drm_crtc_commit_put(commit);
-		}
-	}
-}
-
 static void xe_display_to_d3cold(struct xe_device *xe)
 {
 	struct intel_display *display = &xe->display;
@@ -311,8 +290,6 @@  static void xe_display_to_d3cold(struct xe_device *xe)
 	/* We do a lot of poking in a lot of registers, make sure they work properly. */
 	intel_power_domains_disable(xe);
 
-	xe_display_flush_cleanup_work(xe);
-
 	intel_hpd_cancel_work(xe);
 
 	intel_opregion_suspend(display, PCI_D3cold);