Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
@ 2025-09-22 10:27 Jouni Högander
  2025-09-22 11:44 ` ✗ Fi.CI.DOCS: warning for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Jouni Högander @ 2025-09-22 10:27 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: Jouni Högander, Lemen, Koos Vriezen

Using intel_psr_exit in frontbuffer flush on older platforms seems to be
causing problems.

Sending single full frame update using intel_psr_force_update is anyways
more optimal compared to psr deactivate/activate -> move back to this
approach on PSR1, PSR HW tracking and Panel Replay full frame update and
use deactivate/activate only on LunarLake and only when selective fetch is
enabled.

Tested-by: Lemen <lemen@lemen.xyz>
Tested-by: Koos Vriezen <koos.vriezen@gmail.com>
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14946
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 01bf304c705f..10eb93a34cf2 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -3402,6 +3402,7 @@ static void _psr_flush_handle(struct intel_dp *intel_dp)
 	struct intel_display *display = to_intel_display(intel_dp);
 
 	if (DISPLAY_VER(display) < 20 && intel_dp->psr.psr2_sel_fetch_enabled) {
+		/* Selective fetch prior LNL */
 		if (intel_dp->psr.psr2_sel_fetch_cff_enabled) {
 			/* can we turn CFF off? */
 			if (intel_dp->psr.busy_frontbuffer_bits == 0)
@@ -3420,12 +3421,19 @@ static void _psr_flush_handle(struct intel_dp *intel_dp)
 		intel_psr_configure_full_frame_update(intel_dp);
 
 		intel_psr_force_update(intel_dp);
+	} else if (!intel_dp->psr.psr2_sel_fetch_enabled) {
+		/*
+		 * PSR1 on all platforms
+		 * PSR2 HW tracking
+		 * Panel Replay Full frame update
+		 */
+		intel_psr_force_update(intel_dp);
 	} else {
+		/* Selective update LNL onwards */
 		intel_psr_exit(intel_dp);
 	}
 
-	if ((!intel_dp->psr.psr2_sel_fetch_enabled || DISPLAY_VER(display) >= 20) &&
-	    !intel_dp->psr.busy_frontbuffer_bits)
+	if (!intel_dp->psr.active && !intel_dp->psr.busy_frontbuffer_bits)
 		queue_work(display->wq.unordered, &intel_dp->psr.work);
 }
 
-- 
2.43.0


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

* ✗ Fi.CI.DOCS: warning for drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
  2025-09-22 10:27 [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled Jouni Högander
@ 2025-09-22 11:44 ` Patchwork
  2025-09-22 12:04 ` ✓ i915.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2025-09-22 11:44 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
URL   : https://patchwork.freedesktop.org/series/154835/
State : warning

== Summary ==

Error: patch https://patchwork.freedesktop.org/api/1.0/series/154835/revisions/1/mbox/ not found



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

* ✓ i915.CI.BAT: success for drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
  2025-09-22 10:27 [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled Jouni Högander
  2025-09-22 11:44 ` ✗ Fi.CI.DOCS: warning for " Patchwork
@ 2025-09-22 12:04 ` Patchwork
  2025-09-22 13:55 ` ✓ i915.CI.Full: " Patchwork
  2025-09-22 14:27 ` [PATCH] " Kahola, Mika
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2025-09-22 12:04 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 1882 bytes --]

== Series Details ==

Series: drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
URL   : https://patchwork.freedesktop.org/series/154835/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_17252 -> Patchwork_154835v1
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with Patchwork_154835v1 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_154835v1, 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_154835v1/index.html

Participating hosts (39 -> 39)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Warnings ####

  * igt@i915_module_load@load:
    - fi-ivb-3770:        [ABORT][1] ([i915#15020]) -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17252/fi-ivb-3770/igt@i915_module_load@load.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/fi-ivb-3770/igt@i915_module_load@load.html

  
  [i915#15020]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15020


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

  * Linux: CI_DRM_17252 -> Patchwork_154835v1

  CI-20190529: 20190529
  CI_DRM_17252: 07f928e6921093fc1341f7024f0bf72bcebc8842 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8546: 8546
  Patchwork_154835v1: 07f928e6921093fc1341f7024f0bf72bcebc8842 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

[-- Attachment #2: Type: text/html, Size: 2480 bytes --]

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

* ✓ i915.CI.Full: success for drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
  2025-09-22 10:27 [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled Jouni Högander
  2025-09-22 11:44 ` ✗ Fi.CI.DOCS: warning for " Patchwork
  2025-09-22 12:04 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-09-22 13:55 ` Patchwork
  2025-09-22 14:27 ` [PATCH] " Kahola, Mika
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2025-09-22 13:55 UTC (permalink / raw)
  To: Jouni Högander; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 11868 bytes --]

== Series Details ==

Series: drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
URL   : https://patchwork.freedesktop.org/series/154835/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_17252_full -> Patchwork_154835v1_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (12 -> 12)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@info:
    - shard-rkl:          NOTRUN -> [SKIP][1] ([i915#14544] / [i915#1849] / [i915#2582])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@fbdev@info.html
    - shard-glk10:        NOTRUN -> [SKIP][2] ([i915#1849])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-glk10/igt@fbdev@info.html

  * igt@gem_exec_capture@capture-invisible:
    - shard-glk10:        NOTRUN -> [SKIP][3] ([i915#6334]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-glk10/igt@gem_exec_capture@capture-invisible.html

  * igt@gem_exec_reloc@basic-write-read-active:
    - shard-rkl:          NOTRUN -> [SKIP][4] ([i915#14544] / [i915#3281]) +3 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@gem_exec_reloc@basic-write-read-active.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][5] ([i915#14544] / [i915#4613])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-rkl:          NOTRUN -> [SKIP][6] ([i915#14544] / [i915#4270])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@i915_module_load@load:
    - shard-dg2-9:        NOTRUN -> [ABORT][7] ([i915#15020])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-dg2-9/igt@i915_module_load@load.html

  * igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode:
    - shard-rkl:          NOTRUN -> [SKIP][8] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode.html

  * igt@kms_color@ctm-0-75:
    - shard-rkl:          NOTRUN -> [SKIP][9] ([i915#12655] / [i915#14544])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_color@ctm-0-75.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-rkl:          NOTRUN -> [SKIP][10] ([i915#14544]) +26 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_feature_discovery@display-4x:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#14544] / [i915#1839])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_feature_discovery@display-4x.html

  * igt@kms_flip@2x-plain-flip:
    - shard-rkl:          NOTRUN -> [SKIP][12] ([i915#14544] / [i915#9934])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_flip@2x-plain-flip.html

  * igt@kms_flip@absolute-wf_vblank-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][13] ([i915#14544] / [i915#3637]) +2 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_flip@absolute-wf_vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][14] ([i915#14544] / [i915#3555]) +2 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][15] ([i915#14544] / [i915#1849] / [i915#5354]) +15 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_invalid_mode@bad-vsync-start:
    - shard-rkl:          NOTRUN -> [SKIP][16] ([i915#14544] / [i915#3555] / [i915#8826])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_invalid_mode@bad-vsync-start.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence:
    - shard-glk10:        NOTRUN -> [SKIP][17] ([i915#11190]) +2 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-glk10/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
    - shard-rkl:          NOTRUN -> [SKIP][18] ([i915#11190] / [i915#14544])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html

  * igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant:
    - shard-rkl:          NOTRUN -> [SKIP][19] ([i915#14544] / [i915#7294])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-glk10:        NOTRUN -> [SKIP][20] +224 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-glk10/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format:
    - shard-rkl:          NOTRUN -> [SKIP][21] ([i915#14544] / [i915#8152])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-a:
    - shard-rkl:          NOTRUN -> [SKIP][22] ([i915#12247] / [i915#14544]) +1 other test skip
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format@pipe-a.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75:
    - shard-rkl:          NOTRUN -> [SKIP][23] ([i915#14544] / [i915#3555] / [i915#6953] / [i915#8152])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b:
    - shard-rkl:          NOTRUN -> [SKIP][24] ([i915#12247] / [i915#14544] / [i915#8152]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-rkl:          NOTRUN -> [SKIP][25] ([i915#14544] / [i915#9685])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][26] ([i915#14544] / [i915#6524])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_properties@crtc-properties-atomic:
    - shard-rkl:          NOTRUN -> [SKIP][27] ([i915#11521] / [i915#14544])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_properties@crtc-properties-atomic.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
    - shard-glk10:        NOTRUN -> [SKIP][28] ([i915#11520]) +5 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-glk10/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][29] ([i915#11520] / [i915#14544]) +1 other test skip
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][30] ([i915#1072] / [i915#14544] / [i915#9732]) +5 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@kms_psr@psr-sprite-plane-onoff.html

  
#### Possible fixes ####

  * igt@gem_exec_fence@invalid-fence-array:
    - shard-rkl:          [DMESG-WARN][31] ([i915#12964]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17252/shard-rkl-6/igt@gem_exec_fence@invalid-fence-array.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_154835v1/shard-rkl-6/igt@gem_exec_fence@invalid-fence-array.html

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

  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11190
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11521]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11521
  [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
  [i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
  [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#15020]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15020
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
  [i915#2582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2582
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7294]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7294
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#8152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8152
  [i915#8826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8826
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * Linux: CI_DRM_17252 -> Patchwork_154835v1

  CI-20190529: 20190529
  CI_DRM_17252: 07f928e6921093fc1341f7024f0bf72bcebc8842 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8546: 8546
  Patchwork_154835v1: 07f928e6921093fc1341f7024f0bf72bcebc8842 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

[-- Attachment #2: Type: text/html, Size: 15573 bytes --]

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

* RE: [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
  2025-09-22 10:27 [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled Jouni Högander
                   ` (2 preceding siblings ...)
  2025-09-22 13:55 ` ✓ i915.CI.Full: " Patchwork
@ 2025-09-22 14:27 ` Kahola, Mika
  2025-09-26  6:00   ` Hogander, Jouni
  3 siblings, 1 reply; 6+ messages in thread
From: Kahola, Mika @ 2025-09-22 14:27 UTC (permalink / raw)
  To: Hogander, Jouni, intel-xe@lists.freedesktop.org,
	intel-gfx@lists.freedesktop.org
  Cc: Hogander, Jouni, Lemen, Koos Vriezen

> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Jouni Högander
> Sent: Monday, 22 September 2025 13.27
> To: intel-xe@lists.freedesktop.org; intel-gfx@lists.freedesktop.org
> Cc: Hogander, Jouni <jouni.hogander@intel.com>; Lemen <lemen@lemen.xyz>; Koos Vriezen <koos.vriezen@gmail.com>
> Subject: [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
> 
> Using intel_psr_exit in frontbuffer flush on older platforms seems to be causing problems.
> 
> Sending single full frame update using intel_psr_force_update is anyways more optimal compared to psr deactivate/activate ->
> move back to this approach on PSR1, PSR HW tracking and Panel Replay full frame update and use deactivate/activate only on
> LunarLake and only when selective fetch is enabled.
> 
> Tested-by: Lemen <lemen@lemen.xyz>
> Tested-by: Koos Vriezen <koos.vriezen@gmail.com>
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14946

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 01bf304c705f..10eb93a34cf2 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -3402,6 +3402,7 @@ static void _psr_flush_handle(struct intel_dp *intel_dp)
>  	struct intel_display *display = to_intel_display(intel_dp);
> 
>  	if (DISPLAY_VER(display) < 20 && intel_dp->psr.psr2_sel_fetch_enabled) {
> +		/* Selective fetch prior LNL */
>  		if (intel_dp->psr.psr2_sel_fetch_cff_enabled) {
>  			/* can we turn CFF off? */
>  			if (intel_dp->psr.busy_frontbuffer_bits == 0) @@ -3420,12 +3421,19 @@ static void
> _psr_flush_handle(struct intel_dp *intel_dp)
>  		intel_psr_configure_full_frame_update(intel_dp);
> 
>  		intel_psr_force_update(intel_dp);
> +	} else if (!intel_dp->psr.psr2_sel_fetch_enabled) {
> +		/*
> +		 * PSR1 on all platforms
> +		 * PSR2 HW tracking
> +		 * Panel Replay Full frame update
> +		 */
> +		intel_psr_force_update(intel_dp);
>  	} else {
> +		/* Selective update LNL onwards */
>  		intel_psr_exit(intel_dp);
>  	}
> 
> -	if ((!intel_dp->psr.psr2_sel_fetch_enabled || DISPLAY_VER(display) >= 20) &&
> -	    !intel_dp->psr.busy_frontbuffer_bits)
> +	if (!intel_dp->psr.active && !intel_dp->psr.busy_frontbuffer_bits)
>  		queue_work(display->wq.unordered, &intel_dp->psr.work);  }
> 
> --
> 2.43.0


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

* Re: [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled
  2025-09-22 14:27 ` [PATCH] " Kahola, Mika
@ 2025-09-26  6:00   ` Hogander, Jouni
  0 siblings, 0 replies; 6+ messages in thread
From: Hogander, Jouni @ 2025-09-26  6:00 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Kahola, Mika,
	intel-gfx@lists.freedesktop.org
  Cc: lemen@lemen.xyz, koos.vriezen@gmail.com

On Mon, 2025-09-22 at 14:27 +0000, Kahola, Mika wrote:
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf
> > Of Jouni Högander
> > Sent: Monday, 22 September 2025 13.27
> > To: intel-xe@lists.freedesktop.org; intel-gfx@lists.freedesktop.org
> > Cc: Hogander, Jouni <jouni.hogander@intel.com>; Lemen
> > <lemen@lemen.xyz>; Koos Vriezen <koos.vriezen@gmail.com>
> > Subject: [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when
> > selective fetch enabled
> > 
> > Using intel_psr_exit in frontbuffer flush on older platforms seems
> > to be causing problems.
> > 
> > Sending single full frame update using intel_psr_force_update is
> > anyways more optimal compared to psr deactivate/activate ->
> > move back to this approach on PSR1, PSR HW tracking and Panel
> > Replay full frame update and use deactivate/activate only on
> > LunarLake and only when selective fetch is enabled.
> > 
> > Tested-by: Lemen <lemen@lemen.xyz>
> > Tested-by: Koos Vriezen <koos.vriezen@gmail.com>
> > Closes:
> > https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14946
> 
> Reviewed-by: Mika Kahola <mika.kahola@intel.com>

Thank you Mika for checking my patch. This is now pushed to drm-intel-
next.

BR,

Jouni Högander

> 
> > Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_psr.c | 12 ++++++++++--
> >  1 file changed, 10 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 01bf304c705f..10eb93a34cf2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -3402,6 +3402,7 @@ static void _psr_flush_handle(struct intel_dp
> > *intel_dp)
> >  	struct intel_display *display =
> > to_intel_display(intel_dp);
> > 
> >  	if (DISPLAY_VER(display) < 20 && intel_dp-
> > >psr.psr2_sel_fetch_enabled) {
> > +		/* Selective fetch prior LNL */
> >  		if (intel_dp->psr.psr2_sel_fetch_cff_enabled) {
> >  			/* can we turn CFF off? */
> >  			if (intel_dp->psr.busy_frontbuffer_bits ==
> > 0) @@ -3420,12 +3421,19 @@ static void
> > _psr_flush_handle(struct intel_dp *intel_dp)
> >  		intel_psr_configure_full_frame_update(intel_dp);
> > 
> >  		intel_psr_force_update(intel_dp);
> > +	} else if (!intel_dp->psr.psr2_sel_fetch_enabled) {
> > +		/*
> > +		 * PSR1 on all platforms
> > +		 * PSR2 HW tracking
> > +		 * Panel Replay Full frame update
> > +		 */
> > +		intel_psr_force_update(intel_dp);
> >  	} else {
> > +		/* Selective update LNL onwards */
> >  		intel_psr_exit(intel_dp);
> >  	}
> > 
> > -	if ((!intel_dp->psr.psr2_sel_fetch_enabled ||
> > DISPLAY_VER(display) >= 20) &&
> > -	    !intel_dp->psr.busy_frontbuffer_bits)
> > +	if (!intel_dp->psr.active && !intel_dp-
> > >psr.busy_frontbuffer_bits)
> >  		queue_work(display->wq.unordered, &intel_dp-
> > >psr.work);  }
> > 
> > --
> > 2.43.0
> 


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

end of thread, other threads:[~2025-09-26  6:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-22 10:27 [PATCH] drm/i915/psr: Deactivate PSR only on LNL and when selective fetch enabled Jouni Högander
2025-09-22 11:44 ` ✗ Fi.CI.DOCS: warning for " Patchwork
2025-09-22 12:04 ` ✓ i915.CI.BAT: success " Patchwork
2025-09-22 13:55 ` ✓ i915.CI.Full: " Patchwork
2025-09-22 14:27 ` [PATCH] " Kahola, Mika
2025-09-26  6:00   ` Hogander, Jouni

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