Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend
@ 2024-11-29 15:17 Gustavo Sousa
  2024-11-29 15:17 ` [PATCH 1/3] drm/i915/dmc_wl: Extract intel_dmc_wl_flush_release_work() Gustavo Sousa
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Gustavo Sousa @ 2024-11-29 15:17 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: Luca Coelho, Rodrigo Vivi

We currently are not calling display runtime suspend functions when
D3cold is not allowed. That end up causing DMC wakelock to be enabled
because of dynamic DC states. Because of that, we need to make sure we
flush the release worker at the end of display runtime suspend.

Gustavo Sousa (3):
  drm/i915/dmc_wl: Extract intel_dmc_wl_flush_release_work()
  drm/xe/display: Extract xe_display_pm_runtime_suspend_late()
  drm/xe/display: Flush DMC wakelock release work on runtime suspend

 drivers/gpu/drm/i915/display/intel_dmc_wl.c | 12 +++++++++++-
 drivers/gpu/drm/i915/display/intel_dmc_wl.h |  1 +
 drivers/gpu/drm/xe/display/xe_display.c     | 19 +++++++++++++++++++
 drivers/gpu/drm/xe/display/xe_display.h     |  1 +
 drivers/gpu/drm/xe/xe_pm.c                  |  4 ++--
 5 files changed, 34 insertions(+), 3 deletions(-)

-- 
2.47.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] drm/i915/dmc_wl: Extract intel_dmc_wl_flush_release_work()
  2024-11-29 15:17 [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend Gustavo Sousa
@ 2024-11-29 15:17 ` Gustavo Sousa
  2024-11-29 15:17 ` [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late() Gustavo Sousa
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Gustavo Sousa @ 2024-11-29 15:17 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: Luca Coelho, Rodrigo Vivi

We will need to flush the release work from outside in an upcoming
change. Let's put that into a public interface and call it
intel_dmc_wl_flush_release_work().

Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dmc_wl.c | 12 +++++++++++-
 drivers/gpu/drm/i915/display/intel_dmc_wl.h |  1 +
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dmc_wl.c b/drivers/gpu/drm/i915/display/intel_dmc_wl.c
index 853d75610489..09075830c12f 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc_wl.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc_wl.c
@@ -349,7 +349,7 @@ void intel_dmc_wl_disable(struct intel_display *display)
 	if (!__intel_dmc_wl_supported(display))
 		return;
 
-	flush_delayed_work(&wl->work);
+	intel_dmc_wl_flush_release_work(display);
 
 	spin_lock_irqsave(&wl->lock, flags);
 
@@ -377,6 +377,16 @@ void intel_dmc_wl_disable(struct intel_display *display)
 	spin_unlock_irqrestore(&wl->lock, flags);
 }
 
+void intel_dmc_wl_flush_release_work(struct intel_display *display)
+{
+	struct intel_dmc_wl *wl = &display->wl;
+
+	if (!__intel_dmc_wl_supported(display))
+		return;
+
+	flush_delayed_work(&wl->work);
+}
+
 void intel_dmc_wl_get(struct intel_display *display, i915_reg_t reg)
 {
 	struct intel_dmc_wl *wl = &display->wl;
diff --git a/drivers/gpu/drm/i915/display/intel_dmc_wl.h b/drivers/gpu/drm/i915/display/intel_dmc_wl.h
index 147eeb4d8432..5488fbdf29b8 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc_wl.h
+++ b/drivers/gpu/drm/i915/display/intel_dmc_wl.h
@@ -32,6 +32,7 @@ struct intel_dmc_wl {
 void intel_dmc_wl_init(struct intel_display *display);
 void intel_dmc_wl_enable(struct intel_display *display, u32 dc_state);
 void intel_dmc_wl_disable(struct intel_display *display);
+void intel_dmc_wl_flush_release_work(struct intel_display *display);
 void intel_dmc_wl_get(struct intel_display *display, i915_reg_t reg);
 void intel_dmc_wl_put(struct intel_display *display, i915_reg_t reg);
 void intel_dmc_wl_get_noreg(struct intel_display *display);
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late()
  2024-11-29 15:17 [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend Gustavo Sousa
  2024-11-29 15:17 ` [PATCH 1/3] drm/i915/dmc_wl: Extract intel_dmc_wl_flush_release_work() Gustavo Sousa
@ 2024-11-29 15:17 ` Gustavo Sousa
  2024-11-29 16:07   ` Gustavo Sousa
  2024-11-29 15:17 ` [PATCH 3/3] drm/xe/display: Flush DMC wakelock release work on runtime suspend Gustavo Sousa
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Gustavo Sousa @ 2024-11-29 15:17 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: Luca Coelho, Rodrigo Vivi

The current behavior for the runtime suspend case is that
xe_display_pm_suspend_late() is only called when D3cold is allowed.
Let's incorportate that behavior into a function specific to runtime PM
and call it xe_display_pm_runtime_suspend_late().

With that, we keep stuff a bit more self-contained and allow having a
place for adding more "late display runtime suspend"-related logic that
isn't dependent on the "D3cold allowed" state.

Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
 drivers/gpu/drm/xe/display/xe_display.c | 9 +++++++++
 drivers/gpu/drm/xe/display/xe_display.h | 1 +
 drivers/gpu/drm/xe/xe_pm.c              | 4 ++--
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 69c828f38cb6..2e189abf8d6f 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -407,6 +407,15 @@ void xe_display_pm_suspend_late(struct xe_device *xe)
 	intel_display_power_suspend_late(xe, s2idle);
 }
 
+void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
+{
+	if (!xe->info.probe_display)
+		return;
+
+	if (xe->d3cold.allowed)
+		xe_display_pm_runtime_suspend_late(xe);
+}
+
 void xe_display_pm_shutdown_late(struct xe_device *xe)
 {
 	if (!xe->info.probe_display)
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index 17afa537aee5..954c5a268ef4 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -41,6 +41,7 @@ void xe_display_pm_shutdown_late(struct xe_device *xe);
 void xe_display_pm_resume_early(struct xe_device *xe);
 void xe_display_pm_resume(struct xe_device *xe);
 void xe_display_pm_runtime_suspend(struct xe_device *xe);
+void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
 void xe_display_pm_runtime_resume(struct xe_device *xe);
 
 #else
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 80699dbeb2e9..a6761cb769b2 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -414,8 +414,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
 
 	xe_irq_suspend(xe);
 
-	if (xe->d3cold.allowed)
-		xe_display_pm_suspend_late(xe);
+	xe_display_pm_runtime_suspend_late(xe);
+
 out:
 	if (err)
 		xe_display_pm_runtime_resume(xe);
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] drm/xe/display: Flush DMC wakelock release work on runtime suspend
  2024-11-29 15:17 [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend Gustavo Sousa
  2024-11-29 15:17 ` [PATCH 1/3] drm/i915/dmc_wl: Extract intel_dmc_wl_flush_release_work() Gustavo Sousa
  2024-11-29 15:17 ` [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late() Gustavo Sousa
@ 2024-11-29 15:17 ` Gustavo Sousa
  2024-11-29 16:02 ` ✗ Fi.CI.SPARSE: warning for Flush DMC wakelock release work at the end of " Patchwork
  2024-11-29 16:19 ` ✗ i915.CI.BAT: failure " Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Gustavo Sousa @ 2024-11-29 15:17 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: Luca Coelho, Rodrigo Vivi

We currently are not calling display runtime suspend functions when
D3cold is not allowed. Because of that, we endup not disabling dynamic
DC states (and do not go to DC9). With dynamic DC states enabled, we
will also have DMC wakelock enabled. Since we use a delayed work to
release the DMC wakelock, the work might get executed a little too late
(after the PCI device has been put to D3hot) and we get a timeout
warning ("DMC wakelock release timed out") because the MMIO for
releasing the wakelock will be invalid after that point.

To fix that, make sure we flush the release work at the end of
xe_display_pm_runtime_suspend_late(). We can do that unconditionally
because, if there is no pending work, that turns into a no-op.

Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
 drivers/gpu/drm/xe/display/xe_display.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 2e189abf8d6f..9ae397a09f7b 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -22,6 +22,7 @@
 #include "intel_display_irq.h"
 #include "intel_display_types.h"
 #include "intel_dmc.h"
+#include "intel_dmc_wl.h"
 #include "intel_dp.h"
 #include "intel_encoder.h"
 #include "intel_fbdev.h"
@@ -409,11 +410,20 @@ void xe_display_pm_suspend_late(struct xe_device *xe)
 
 void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
 {
+	struct intel_display *display = &xe->display;
+
 	if (!xe->info.probe_display)
 		return;
 
 	if (xe->d3cold.allowed)
 		xe_display_pm_runtime_suspend_late(xe);
+
+	/*
+	 * If xe_display_pm_suspend_late() is not called, it is likely
+	 * that we will be on dynamic DC states with DMC wakelock enabled. We
+	 * need to flush the release work in that case.
+	 */
+	intel_dmc_wl_flush_release_work(display);
 }
 
 void xe_display_pm_shutdown_late(struct xe_device *xe)
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* ✗ Fi.CI.SPARSE: warning for Flush DMC wakelock release work at the end of runtime suspend
  2024-11-29 15:17 [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend Gustavo Sousa
                   ` (2 preceding siblings ...)
  2024-11-29 15:17 ` [PATCH 3/3] drm/xe/display: Flush DMC wakelock release work on runtime suspend Gustavo Sousa
@ 2024-11-29 16:02 ` Patchwork
  2024-11-29 16:19 ` ✗ i915.CI.BAT: failure " Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2024-11-29 16:02 UTC (permalink / raw)
  To: Gustavo Sousa; +Cc: intel-gfx

== Series Details ==

Series: Flush DMC wakelock release work at the end of runtime suspend
URL   : https://patchwork.freedesktop.org/series/141932/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late()
  2024-11-29 15:17 ` [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late() Gustavo Sousa
@ 2024-11-29 16:07   ` Gustavo Sousa
  2024-11-29 16:43     ` Rodrigo Vivi
  0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Sousa @ 2024-11-29 16:07 UTC (permalink / raw)
  To: intel-gfx, intel-xe; +Cc: Luca Coelho, Rodrigo Vivi

Quoting Gustavo Sousa (2024-11-29 12:17:45-03:00)
>The current behavior for the runtime suspend case is that
>xe_display_pm_suspend_late() is only called when D3cold is allowed.
>Let's incorportate that behavior into a function specific to runtime PM
>and call it xe_display_pm_runtime_suspend_late().
>
>With that, we keep stuff a bit more self-contained and allow having a
>place for adding more "late display runtime suspend"-related logic that
>isn't dependent on the "D3cold allowed" state.
>
>Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
>---
> drivers/gpu/drm/xe/display/xe_display.c | 9 +++++++++
> drivers/gpu/drm/xe/display/xe_display.h | 1 +
> drivers/gpu/drm/xe/xe_pm.c              | 4 ++--
> 3 files changed, 12 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
>index 69c828f38cb6..2e189abf8d6f 100644
>--- a/drivers/gpu/drm/xe/display/xe_display.c
>+++ b/drivers/gpu/drm/xe/display/xe_display.c
>@@ -407,6 +407,15 @@ void xe_display_pm_suspend_late(struct xe_device *xe)
>         intel_display_power_suspend_late(xe, s2idle);
> }
> 
>+void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
>+{
>+        if (!xe->info.probe_display)
>+                return;
>+
>+        if (xe->d3cold.allowed)
>+                xe_display_pm_runtime_suspend_late(xe);

Whoops... There is a typo here. It should have been
xe_display_pm_suspend_late(). I'll send a new version.

--
Gustavo Sousa

>+}
>+
> void xe_display_pm_shutdown_late(struct xe_device *xe)
> {
>         if (!xe->info.probe_display)
>diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
>index 17afa537aee5..954c5a268ef4 100644
>--- a/drivers/gpu/drm/xe/display/xe_display.h
>+++ b/drivers/gpu/drm/xe/display/xe_display.h
>@@ -41,6 +41,7 @@ void xe_display_pm_shutdown_late(struct xe_device *xe);
> void xe_display_pm_resume_early(struct xe_device *xe);
> void xe_display_pm_resume(struct xe_device *xe);
> void xe_display_pm_runtime_suspend(struct xe_device *xe);
>+void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
> void xe_display_pm_runtime_resume(struct xe_device *xe);
> 
> #else
>diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
>index 80699dbeb2e9..a6761cb769b2 100644
>--- a/drivers/gpu/drm/xe/xe_pm.c
>+++ b/drivers/gpu/drm/xe/xe_pm.c
>@@ -414,8 +414,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
> 
>         xe_irq_suspend(xe);
> 
>-        if (xe->d3cold.allowed)
>-                xe_display_pm_suspend_late(xe);
>+        xe_display_pm_runtime_suspend_late(xe);
>+
> out:
>         if (err)
>                 xe_display_pm_runtime_resume(xe);
>-- 
>2.47.0
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* ✗ i915.CI.BAT: failure for Flush DMC wakelock release work at the end of runtime suspend
  2024-11-29 15:17 [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend Gustavo Sousa
                   ` (3 preceding siblings ...)
  2024-11-29 16:02 ` ✗ Fi.CI.SPARSE: warning for Flush DMC wakelock release work at the end of " Patchwork
@ 2024-11-29 16:19 ` Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2024-11-29 16:19 UTC (permalink / raw)
  To: Gustavo Sousa; +Cc: intel-gfx

== Series Details ==

Series: Flush DMC wakelock release work at the end of runtime suspend
URL   : https://patchwork.freedesktop.org/series/141932/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_15763 -> Patchwork_141932v1
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_141932v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_141932v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/index.html

Participating hosts (46 -> 44)
------------------------------

  Missing    (2): fi-glk-j4005 fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_141932v1:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-mtlp-8/igt@i915_selftest@live.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-mtlp-8/igt@i915_selftest@live.html

  
Known issues
------------

  Here are the changes found in Patchwork_141932v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@basic-hwmon:
    - bat-twl-2:          NOTRUN -> [SKIP][3] ([i915#9318])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@debugfs_test@basic-hwmon.html

  * igt@gem_lmem_swapping@basic:
    - bat-twl-2:          NOTRUN -> [SKIP][4] ([i915#10213] / [i915#11671]) +3 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@gem_lmem_swapping@basic.html

  * igt@gem_tiled_blits@basic:
    - fi-pnv-d510:        [PASS][5] -> [SKIP][6] +2 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/fi-pnv-d510/igt@gem_tiled_blits@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/fi-pnv-d510/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-twl-2:          NOTRUN -> [SKIP][7] ([i915#11031])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rpm@module-reload:
    - bat-arls-5:         [PASS][8] -> [DMESG-WARN][9] ([i915#4423])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-arls-5/igt@i915_pm_rpm@module-reload.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-arls-5/igt@i915_pm_rpm@module-reload.html

  * igt@i915_pm_rps@basic-api:
    - bat-twl-2:          NOTRUN -> [SKIP][10] ([i915#10209] / [i915#11681])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live:
    - bat-arls-5:         NOTRUN -> [ABORT][11] ([i915#12061])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-arls-5/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-arlh-3:         [PASS][12] -> [ABORT][13] ([i915#12061]) +1 other test abort
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-arlh-3/igt@i915_selftest@live@workarounds.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-arlh-3/igt@i915_selftest@live@workarounds.html
    - bat-arls-5:         [PASS][14] -> [ABORT][15] ([i915#12061])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-arls-5/igt@i915_selftest@live@workarounds.html
    - bat-mtlp-6:         [PASS][16] -> [ABORT][17] ([i915#12061]) +1 other test abort
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
    - bat-mtlp-8:         [PASS][18] -> [ABORT][19] ([i915#12061])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-mtlp-8/igt@i915_selftest@live@workarounds.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-mtlp-8/igt@i915_selftest@live@workarounds.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - bat-twl-2:          NOTRUN -> [SKIP][20] ([i915#11030] / [i915#11731]) +1 other test skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_dsc@dsc-basic:
    - bat-twl-2:          NOTRUN -> [SKIP][21] ([i915#9886])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-twl-2:          NOTRUN -> [SKIP][22] ([i915#11032])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-twl-2:          NOTRUN -> [SKIP][23] ([i915#8809])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-read:
    - bat-twl-2:          NOTRUN -> [SKIP][24] ([i915#10212] / [i915#3708])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-read:
    - bat-twl-2:          NOTRUN -> [SKIP][25] ([i915#10214] / [i915#3708])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@basic-write:
    - bat-twl-2:          NOTRUN -> [SKIP][26] ([i915#10216] / [i915#3708])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-2/igt@prime_vgem@basic-write.html

  
#### Possible fixes ####

  * igt@dmabuf@all-tests:
    - bat-apl-1:          [INCOMPLETE][27] ([i915#12904]) -> [PASS][28] +1 other test pass
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-apl-1/igt@dmabuf@all-tests.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-apl-1/igt@dmabuf@all-tests.html

  * igt@i915_selftest@live:
    - bat-twl-1:          [ABORT][29] ([i915#12919]) -> [PASS][30] +1 other test pass
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/bat-twl-1/igt@i915_selftest@live.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/bat-twl-1/igt@i915_selftest@live.html

  * igt@kms_busy@basic@flip:
    - fi-cfl-8109u:       [DMESG-WARN][31] -> [PASS][32] +2 other tests pass
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15763/fi-cfl-8109u/igt@kms_busy@basic@flip.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/fi-cfl-8109u/igt@kms_busy@basic@flip.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209
  [i915#10212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10212
  [i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
  [i915#10214]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10214
  [i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
  [i915#11030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11030
  [i915#11031]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11031
  [i915#11032]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11032
  [i915#11671]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11671
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#11731]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11731
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
  [i915#12919]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12919
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
  [i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
  [i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886


Build changes
-------------

  * Linux: CI_DRM_15763 -> Patchwork_141932v1

  CI-20190529: 20190529
  CI_DRM_15763: 108f610005f88de624c1a8c4f85d5cab9f530ddb @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8131: f846ef8f7ddf051c88504c607136a9b5392bdef7 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_141932v1: 108f610005f88de624c1a8c4f85d5cab9f530ddb @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141932v1/index.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late()
  2024-11-29 16:07   ` Gustavo Sousa
@ 2024-11-29 16:43     ` Rodrigo Vivi
  2024-11-29 17:29       ` Gustavo Sousa
  0 siblings, 1 reply; 9+ messages in thread
From: Rodrigo Vivi @ 2024-11-29 16:43 UTC (permalink / raw)
  To: Gustavo Sousa; +Cc: intel-gfx, intel-xe, Luca Coelho

On Fri, Nov 29, 2024 at 01:07:32PM -0300, Gustavo Sousa wrote:
> Quoting Gustavo Sousa (2024-11-29 12:17:45-03:00)
> >The current behavior for the runtime suspend case is that
> >xe_display_pm_suspend_late() is only called when D3cold is allowed.
> >Let's incorportate that behavior into a function specific to runtime PM
> >and call it xe_display_pm_runtime_suspend_late().
> >
> >With that, we keep stuff a bit more self-contained and allow having a
> >place for adding more "late display runtime suspend"-related logic that
> >isn't dependent on the "D3cold allowed" state.
> >
> >Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
> >---
> > drivers/gpu/drm/xe/display/xe_display.c | 9 +++++++++
> > drivers/gpu/drm/xe/display/xe_display.h | 1 +
> > drivers/gpu/drm/xe/xe_pm.c              | 4 ++--
> > 3 files changed, 12 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> >index 69c828f38cb6..2e189abf8d6f 100644
> >--- a/drivers/gpu/drm/xe/display/xe_display.c
> >+++ b/drivers/gpu/drm/xe/display/xe_display.c
> >@@ -407,6 +407,15 @@ void xe_display_pm_suspend_late(struct xe_device *xe)
> >         intel_display_power_suspend_late(xe, s2idle);
> > }
> > 
> >+void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
> >+{
> >+        if (!xe->info.probe_display)
> >+                return;
> >+
> >+        if (xe->d3cold.allowed)
> >+                xe_display_pm_runtime_suspend_late(xe);
> 
> Whoops... There is a typo here. It should have been
> xe_display_pm_suspend_late(). I'll send a new version.

I'm glad you found first, I confess I was going to miss it.

Please go ahead with the changes and I will incorporate that
later whenever I get back to that display-pm-reconcile series
I have

For the series (with this chunk fixed):

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> 
> --
> Gustavo Sousa
> 
> >+}
> >+
> > void xe_display_pm_shutdown_late(struct xe_device *xe)
> > {
> >         if (!xe->info.probe_display)
> >diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
> >index 17afa537aee5..954c5a268ef4 100644
> >--- a/drivers/gpu/drm/xe/display/xe_display.h
> >+++ b/drivers/gpu/drm/xe/display/xe_display.h
> >@@ -41,6 +41,7 @@ void xe_display_pm_shutdown_late(struct xe_device *xe);
> > void xe_display_pm_resume_early(struct xe_device *xe);
> > void xe_display_pm_resume(struct xe_device *xe);
> > void xe_display_pm_runtime_suspend(struct xe_device *xe);
> >+void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
> > void xe_display_pm_runtime_resume(struct xe_device *xe);
> > 
> > #else
> >diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
> >index 80699dbeb2e9..a6761cb769b2 100644
> >--- a/drivers/gpu/drm/xe/xe_pm.c
> >+++ b/drivers/gpu/drm/xe/xe_pm.c
> >@@ -414,8 +414,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
> > 
> >         xe_irq_suspend(xe);
> > 
> >-        if (xe->d3cold.allowed)
> >-                xe_display_pm_suspend_late(xe);
> >+        xe_display_pm_runtime_suspend_late(xe);
> >+
> > out:
> >         if (err)
> >                 xe_display_pm_runtime_resume(xe);
> >-- 
> >2.47.0
> >

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late()
  2024-11-29 16:43     ` Rodrigo Vivi
@ 2024-11-29 17:29       ` Gustavo Sousa
  0 siblings, 0 replies; 9+ messages in thread
From: Gustavo Sousa @ 2024-11-29 17:29 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: intel-gfx, intel-xe, Luca Coelho

Quoting Rodrigo Vivi (2024-11-29 13:43:28-03:00)
>On Fri, Nov 29, 2024 at 01:07:32PM -0300, Gustavo Sousa wrote:
>> Quoting Gustavo Sousa (2024-11-29 12:17:45-03:00)
>> >The current behavior for the runtime suspend case is that
>> >xe_display_pm_suspend_late() is only called when D3cold is allowed.
>> >Let's incorportate that behavior into a function specific to runtime PM
>> >and call it xe_display_pm_runtime_suspend_late().
>> >
>> >With that, we keep stuff a bit more self-contained and allow having a
>> >place for adding more "late display runtime suspend"-related logic that
>> >isn't dependent on the "D3cold allowed" state.
>> >
>> >Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
>> >---
>> > drivers/gpu/drm/xe/display/xe_display.c | 9 +++++++++
>> > drivers/gpu/drm/xe/display/xe_display.h | 1 +
>> > drivers/gpu/drm/xe/xe_pm.c              | 4 ++--
>> > 3 files changed, 12 insertions(+), 2 deletions(-)
>> >
>> >diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
>> >index 69c828f38cb6..2e189abf8d6f 100644
>> >--- a/drivers/gpu/drm/xe/display/xe_display.c
>> >+++ b/drivers/gpu/drm/xe/display/xe_display.c
>> >@@ -407,6 +407,15 @@ void xe_display_pm_suspend_late(struct xe_device *xe)
>> >         intel_display_power_suspend_late(xe, s2idle);
>> > }
>> > 
>> >+void xe_display_pm_runtime_suspend_late(struct xe_device *xe)
>> >+{
>> >+        if (!xe->info.probe_display)
>> >+                return;
>> >+
>> >+        if (xe->d3cold.allowed)
>> >+                xe_display_pm_runtime_suspend_late(xe);
>> 
>> Whoops... There is a typo here. It should have been
>> xe_display_pm_suspend_late(). I'll send a new version.
>
>I'm glad you found first,

Me too, to attenuate my embarrassment :-)

>I confess I was going to miss it.
>
>Please go ahead with the changes and I will incorporate that
>later whenever I get back to that display-pm-reconcile series
>I have
>
>For the series (with this chunk fixed):
>
>Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

Thanks!

--
Gustavo Sousa

>
>> 
>> --
>> Gustavo Sousa
>> 
>> >+}
>> >+
>> > void xe_display_pm_shutdown_late(struct xe_device *xe)
>> > {
>> >         if (!xe->info.probe_display)
>> >diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
>> >index 17afa537aee5..954c5a268ef4 100644
>> >--- a/drivers/gpu/drm/xe/display/xe_display.h
>> >+++ b/drivers/gpu/drm/xe/display/xe_display.h
>> >@@ -41,6 +41,7 @@ void xe_display_pm_shutdown_late(struct xe_device *xe);
>> > void xe_display_pm_resume_early(struct xe_device *xe);
>> > void xe_display_pm_resume(struct xe_device *xe);
>> > void xe_display_pm_runtime_suspend(struct xe_device *xe);
>> >+void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
>> > void xe_display_pm_runtime_resume(struct xe_device *xe);
>> > 
>> > #else
>> >diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
>> >index 80699dbeb2e9..a6761cb769b2 100644
>> >--- a/drivers/gpu/drm/xe/xe_pm.c
>> >+++ b/drivers/gpu/drm/xe/xe_pm.c
>> >@@ -414,8 +414,8 @@ int xe_pm_runtime_suspend(struct xe_device *xe)
>> > 
>> >         xe_irq_suspend(xe);
>> > 
>> >-        if (xe->d3cold.allowed)
>> >-                xe_display_pm_suspend_late(xe);
>> >+        xe_display_pm_runtime_suspend_late(xe);
>> >+
>> > out:
>> >         if (err)
>> >                 xe_display_pm_runtime_resume(xe);
>> >-- 
>> >2.47.0
>> >

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-11-29 17:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-29 15:17 [PATCH 0/3] Flush DMC wakelock release work at the end of runtime suspend Gustavo Sousa
2024-11-29 15:17 ` [PATCH 1/3] drm/i915/dmc_wl: Extract intel_dmc_wl_flush_release_work() Gustavo Sousa
2024-11-29 15:17 ` [PATCH 2/3] drm/xe/display: Extract xe_display_pm_runtime_suspend_late() Gustavo Sousa
2024-11-29 16:07   ` Gustavo Sousa
2024-11-29 16:43     ` Rodrigo Vivi
2024-11-29 17:29       ` Gustavo Sousa
2024-11-29 15:17 ` [PATCH 3/3] drm/xe/display: Flush DMC wakelock release work on runtime suspend Gustavo Sousa
2024-11-29 16:02 ` ✗ Fi.CI.SPARSE: warning for Flush DMC wakelock release work at the end of " Patchwork
2024-11-29 16:19 ` ✗ i915.CI.BAT: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox