diff mbox series

[v3] drm/i915/psr: Set "SF Partial Frame Enable" also on full update

Message ID 20220225070228.855138-1-jouni.hogander@intel.com (mailing list archive)
State New, archived
Headers show
Series [v3] drm/i915/psr: Set "SF Partial Frame Enable" also on full update | expand

Commit Message

Hogander, Jouni Feb. 25, 2022, 7:02 a.m. UTC
Currently we are observing occasional screen flickering when
PSR2 selective fetch is enabled. More specifically glitch seems
to happen on full frame update when cursor moves to coords
x = -1 or y = -1.

According to Bspec SF Single full frame should not be set if
SF Partial Frame Enable is not set. This happened to be true for
ADLP as PSR2_MAN_TRK_CTL_ENABLE is always set and for ADL_P it's
actually "SF Partial Frame Enable" (Bit 31).

Setting "SF Partial Frame Enable" bit also on full update seems to
fix screen flickering.

Also make code more clear by setting PSR2_MAN_TRK_CTL_ENABLE
only if not on ADL_P. Bit 31 has different meaning in ADL_P.

Bspec: 49274

v2: Fix Mihai Harpau email address
v3: Modify commit message and remove unnecessary comment

Fixes: 7f6002e58025 ("drm/i915/display: Enable PSR2 selective fetch by default")
Reported-by: Lyude Paul <lyude@redhat.com>
Cc: Mihai Harpau <mharpau@gmail.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Bugzilla: https://gitlab.freedesktop.org/drm/intel/-/issues/5077
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 16 ++++++++++++++--
 drivers/gpu/drm/i915/i915_reg.h          |  1 +
 2 files changed, 15 insertions(+), 2 deletions(-)

Comments

Souza, Jose March 3, 2022, 1:32 p.m. UTC | #1
On Sun, 2022-02-27 at 05:27 +0000, Patchwork wrote:
Patch Details
Series: drm/i915/psr: Set "SF Partial Frame Enable" also on full update (rev5)
URL:    https://patchwork.freedesktop.org/series/100633/
State:  success
Details:        https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/index.html
CI Bug Log - changes from CI_DRM_11291_full -> Patchwork_22427_full
Summary

SUCCESS

No regressions found.

Participating hosts (11 -> 11)

No changes in participating hosts

Pushed to drm-intel-next, thanks for the patch.

Known issues

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

CI changes
Issues hit

  *   boot:
     *   shard-apl: (PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl4/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl4/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl4/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl4/boot.html>) -> (PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/boot.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl4/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl4/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl4/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl7/boot.html>) ([i915#4386])

Possible fixes

  *   boot:
     *   shard-glk: (PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk9/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk9/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk9/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk5/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk5/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk5/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk1/boot.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk1/boot.html>) ([i915#4392]) -> (PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk9/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk8/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk7/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk6/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk3/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk2/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk1/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk9/boot.html>, PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk9/boot.html>)

IGT changes
Issues hit

  *   igt@feature_discovery@display-3x:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@feature_discovery@display-3x.html> ([i915#1839]) +1 similar issue
  *   igt@gem_create@create-massive:

     *   shard-iclb: NOTRUN -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@gem_create@create-massive.html> ([i915#4991])

     *   shard-skl: NOTRUN -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl6/igt@gem_create@create-massive.html> ([i915#4991])

  *   igt@gem_exec_balancer@parallel-bb-first:

     *   shard-kbl: NOTRUN -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-kbl7/igt@gem_exec_balancer@parallel-bb-first.html> ([i915#5076])
  *   igt@gem_exec_fair@basic-none-solo@rcs0:

     *   shard-iclb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@gem_exec_fair@basic-none-solo@rcs0.html> ([i915#2842])
  *   igt@gem_exec_fair@basic-none@vecs0:

     *   shard-kbl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-kbl3/igt@gem_exec_fair@basic-none@vecs0.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-kbl4/igt@gem_exec_fair@basic-none@vecs0.html> ([i915#2842]) +1 similar issue

     *   shard-glk: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk7/igt@gem_exec_fair@basic-none@vecs0.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk6/igt@gem_exec_fair@basic-none@vecs0.html> ([i915#2842])

  *   igt@gem_exec_params@rsvd2-dirt:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@gem_exec_params@rsvd2-dirt.html> ([fdo#109283])
  *   igt@gem_lmem_swapping@heavy-verify-multi:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb3/igt@gem_lmem_swapping@heavy-verify-multi.html> ([i915#4613])
  *   igt@gem_lmem_swapping@random:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl8/igt@gem_lmem_swapping@random.html> ([fdo#109271] / [i915#4613])
  *   igt@gem_pwrite@basic-exhaustion:

     *   shard-tglb: NOTRUN -> WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-tglb5/igt@gem_pwrite@basic-exhaustion.html> ([i915#2658])
  *   igt@gem_pxp@create-protected-buffer:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@gem_pxp@create-protected-buffer.html> ([i915#4270]) +3 similar issues
  *   igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs.html> ([i915#768]) +2 similar issues
  *   igt@gem_userptr_blits@vma-merge:

     *   shard-iclb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@gem_userptr_blits@vma-merge.html> ([i915#3318])
  *   igt@gen9_exec_parse@allowed-single:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-skl10/igt@gen9_exec_parse@allowed-single.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl8/igt@gen9_exec_parse@allowed-single.html> ([i915#1436] / [i915#716])
  *   igt@gen9_exec_parse@batch-zero-length:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@gen9_exec_parse@batch-zero-length.html> ([i915#2856]) +3 similar issues
  *   igt@i915_pm_rc6_residency@rc6-idle:

     *   shard-iclb: NOTRUN -> WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@i915_pm_rc6_residency@rc6-idle.html> ([i915#1804] / [i915#2684])
  *   igt@i915_pm_rpm@gem-execbuf-stress-pc8:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html> ([fdo#109293] / [fdo#109506])
  *   igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html> ([fdo#109271] / [i915#3777]) +3 similar issues
  *   igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html> ([fdo#109271] / [i915#3777]) +1 similar issue
  *   igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-kbl1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html> ([fdo#109271] / [i915#3777])
  *   igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html> ([i915#3743])
  *   igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html> ([fdo#109271] / [i915#3886]) +3 similar issues
  *   igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html> ([fdo#109278] / [i915#3886]) +8 similar issues

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl6/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html> ([fdo#109271] / [i915#3886]) +9 similar issues

  *   igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html> ([fdo#109271] / [i915#3886]) +2 similar issues
  *   igt@kms_chamelium@dp-hpd:

     *   shard-snb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-snb6/igt@kms_chamelium@dp-hpd.html> ([fdo#109271] / [fdo#111827]) +1 similar issue
  *   igt@kms_chamelium@dp-hpd-storm:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@kms_chamelium@dp-hpd-storm.html> ([fdo#109284] / [fdo#111827]) +8 similar issues
  *   igt@kms_chamelium@hdmi-edid-change-during-suspend:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/igt@kms_chamelium@hdmi-edid-change-during-suspend.html> ([fdo#109271] / [fdo#111827]) +4 similar issues
  *   igt@kms_chamelium@hdmi-hpd-storm-disable:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl10/igt@kms_chamelium@hdmi-hpd-storm-disable.html> ([fdo#109271] / [fdo#111827]) +16 similar issues
  *   igt@kms_color@pipe-d-ctm-blue-to-red:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-kbl7/igt@kms_color@pipe-d-ctm-blue-to-red.html> ([fdo#109271]) +19 similar issues
  *   igt@kms_color_chamelium@pipe-b-ctm-0-75:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-tglb5/igt@kms_color_chamelium@pipe-b-ctm-0-75.html> ([fdo#109284] / [fdo#111827])
  *   igt@kms_color_chamelium@pipe-b-degamma:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-kbl7/igt@kms_color_chamelium@pipe-b-degamma.html> ([fdo#109271] / [fdo#111827]) +2 similar issues
  *   igt@kms_color_chamelium@pipe-d-ctm-0-25:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/igt@kms_color_chamelium@pipe-d-ctm-0-25.html> ([fdo#109271] / [fdo#111827]) +2 similar issues

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_color_chamelium@pipe-d-ctm-0-25.html> ([fdo#109278] / [fdo#109284] / [fdo#111827])

  *   igt@kms_content_protection@dp-mst-type-0:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_content_protection@dp-mst-type-0.html> ([i915#3116])
  *   igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl7/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html> ([fdo#109271]) +217 similar issues
  *   igt@kms_cursor_crc@pipe-b-cursor-512x512-onscreen:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb3/igt@kms_cursor_crc@pipe-b-cursor-512x512-onscreen.html> ([fdo#109278] / [fdo#109279]) +5 similar issues
  *   igt@kms_cursor_crc@pipe-d-cursor-256x256-random:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/igt@kms_cursor_crc@pipe-d-cursor-256x256-random.html> ([fdo#109271]) +31 similar issues
  *   igt@kms_cursor_crc@pipe-d-cursor-512x512-offscreen:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-tglb5/igt@kms_cursor_crc@pipe-d-cursor-512x512-offscreen.html> ([fdo#109279] / [i915#3359])
  *   igt@kms_cursor_edge_walk@pipe-d-256x256-left-edge:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_cursor_edge_walk@pipe-d-256x256-left-edge.html> ([fdo#109278]) +42 similar issues
  *   igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html> ([fdo#109274] / [fdo#109278]) +2 similar issues
  *   igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html> ([i915#2346] / [i915#533])
  *   igt@kms_cursor_legacy@flip-vs-cursor-varying-size:

     *   shard-iclb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html> ([i915#2346])
  *   igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html> ([fdo#109274]) +6 similar issues
  *   igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1:

     *   shard-glk: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-glk2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html> ([i915#79])
  *   igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:

     *   shard-apl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html> ([i915#180]) +2 similar issues
  *   igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl6/igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1.html> ([i915#2122])
  *   igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html> ([i915#2587])
  *   igt@kms_force_connector_basic@force-load-detect:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_force_connector_basic@force-load-detect.html> ([fdo#109285])
  *   igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move.html> ([fdo#109280]) +23 similar issues
  *   igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:

     *   shard-snb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-snb6/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html> ([fdo#109271]) +15 similar issues
  *   igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-tglb5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html> ([fdo#109280] / [fdo#111825])
  *   igt@kms_hdr@static-toggle:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@kms_hdr@static-toggle.html> ([i915#1187])
  *   igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d.html> ([fdo#109271] / [i915#533])
  *   igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl2/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html> ([fdo#109271] / [i915#533])

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl8/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html> ([fdo#109271] / [i915#533])

  *   igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes:

     *   shard-kbl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html> ([i915#180]) +5 similar issues
  *   igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html> ([fdo#108145] / [i915#265]) +1 similar issue
  *   igt@kms_plane_alpha_blend@pipe-c-alpha-basic:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html> ([fdo#108145] / [i915#265])
  *   igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:

     *   shard-glk: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-glk5/igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb.html> ([fdo#108145] / [i915#265])
  *   igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html> ([i915#265])
  *   igt@kms_plane_lowres@pipe-a-tiling-none:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-none.html> ([i915#3536]) +1 similar issue
  *   igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl6/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html> ([fdo#109271] / [i915#2733])
  *   igt@kms_psr2_sf@cursor-plane-update-sf:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@kms_psr2_sf@cursor-plane-update-sf.html> ([fdo#111068] / [i915#658])
  *   igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl9/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html> ([fdo#109271] / [i915#658]) +1 similar issue
  *   igt@kms_psr2_su@page_flip-nv12:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb7/igt@kms_psr2_su@page_flip-nv12.html> ([fdo#109642] / [fdo#111068] / [i915#658])
  *   igt@kms_psr@psr2_cursor_plane_onoff:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb1/igt@kms_psr@psr2_cursor_plane_onoff.html> ([fdo#109441])
  *   igt@kms_psr@psr2_cursor_render:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-iclb6/igt@kms_psr@psr2_cursor_render.html> ([fdo#109441]) +1 similar issue
  *   igt@kms_psr@psr2_sprite_plane_move:

     *   shard-tglb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-tglb5/igt@kms_psr@psr2_sprite_plane_move.html> ([i915#132] / [i915#3467])
  *   igt@kms_rotation_crc@multiplane-rotation:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard-skl6/igt@kms_rotation_crc@multiplane-rotation.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22427/shard-skl8/igt@kms_rotation_crc@multiplane-rotation.html> ([i915#1982])
  *   igt@kms_setmode@basic:

     *   shard-glk: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11291/shard> -> [FAIL][182] ([i915#31])
Jani Nikula March 4, 2022, 10:20 a.m. UTC | #2
On Fri, 25 Feb 2022, Jouni Högander <jouni.hogander@intel.com> wrote:
> Currently we are observing occasional screen flickering when
> PSR2 selective fetch is enabled. More specifically glitch seems
> to happen on full frame update when cursor moves to coords
> x = -1 or y = -1.
>
> According to Bspec SF Single full frame should not be set if
> SF Partial Frame Enable is not set. This happened to be true for
> ADLP as PSR2_MAN_TRK_CTL_ENABLE is always set and for ADL_P it's
> actually "SF Partial Frame Enable" (Bit 31).
>
> Setting "SF Partial Frame Enable" bit also on full update seems to
> fix screen flickering.
>
> Also make code more clear by setting PSR2_MAN_TRK_CTL_ENABLE
> only if not on ADL_P. Bit 31 has different meaning in ADL_P.
>
> Bspec: 49274
>
> v2: Fix Mihai Harpau email address
> v3: Modify commit message and remove unnecessary comment
>
> Fixes: 7f6002e58025 ("drm/i915/display: Enable PSR2 selective fetch by default")
> Reported-by: Lyude Paul <lyude@redhat.com>
> Cc: Mihai Harpau <mharpau@gmail.com>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Bugzilla: https://gitlab.freedesktop.org/drm/intel/-/issues/5077
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 16 ++++++++++++++--
>  drivers/gpu/drm/i915/i915_reg.h          |  1 +
>  2 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 2e0b092f4b6b..b6b7bb5be5ae 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1439,6 +1439,13 @@ static inline u32 man_trk_ctl_single_full_frame_bit_get(struct drm_i915_private
>  	       PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME;
>  }
>  
> +static inline u32 man_trk_ctl_partial_frame_bit_get(struct drm_i915_private *dev_priv)

Generally, please don't use inline in .c files, just let the compiler do
its thing. We won't get warnings if inlines become unused.

Please name struct drm_i915_private * pointers i915 instead of dev_priv
in new code where possible. (We've still got some implicit assumptions
on dev_priv in some register macros unfortunately.)

> +{
> +	return IS_ALDERLAKE_P(dev_priv) ?
> +	       ADLP_PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE :
> +	       PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE;
> +}
> +
>  static void psr_force_hw_tracking_exit(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> @@ -1543,7 +1550,13 @@ static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> -	u32 val = PSR2_MAN_TRK_CTL_ENABLE;
> +	u32 val = 0;
> +
> +	if (!IS_ALDERLAKE_P(dev_priv))
> +		val = PSR2_MAN_TRK_CTL_ENABLE;
> +
> +	/* SF partial frame enable has to be set even on full update */
> +	val |= man_trk_ctl_partial_frame_bit_get(dev_priv);

Not sure if the separate function for this is warranted if you're anyway
including an if (!IS_ALDERLAKE_P(dev_priv)) condition here.

BR,
Jani.

>  
>  	if (full_update) {
>  		/*
> @@ -1563,7 +1576,6 @@ static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,
>  	} else {
>  		drm_WARN_ON(crtc_state->uapi.crtc->dev, clip->y1 % 4 || clip->y2 % 4);
>  
> -		val |= PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE;
>  		val |= PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(clip->y1 / 4 + 1);
>  		val |= PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR(clip->y2 / 4 + 1);
>  	}
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index a2f36ef91cec..b347a8921178 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2316,6 +2316,7 @@
>  #define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(val)	REG_FIELD_PREP(ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK, val)
>  #define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK		REG_GENMASK(12, 0)
>  #define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR(val)		REG_FIELD_PREP(ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK, val)
> +#define  ADLP_PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE		REG_BIT(31)
>  #define  ADLP_PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME		REG_BIT(14)
>  #define  ADLP_PSR2_MAN_TRK_CTL_SF_CONTINUOS_FULL_FRAME		REG_BIT(13)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 2e0b092f4b6b..b6b7bb5be5ae 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1439,6 +1439,13 @@  static inline u32 man_trk_ctl_single_full_frame_bit_get(struct drm_i915_private
 	       PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME;
 }
 
+static inline u32 man_trk_ctl_partial_frame_bit_get(struct drm_i915_private *dev_priv)
+{
+	return IS_ALDERLAKE_P(dev_priv) ?
+	       ADLP_PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE :
+	       PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE;
+}
+
 static void psr_force_hw_tracking_exit(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
@@ -1543,7 +1550,13 @@  static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-	u32 val = PSR2_MAN_TRK_CTL_ENABLE;
+	u32 val = 0;
+
+	if (!IS_ALDERLAKE_P(dev_priv))
+		val = PSR2_MAN_TRK_CTL_ENABLE;
+
+	/* SF partial frame enable has to be set even on full update */
+	val |= man_trk_ctl_partial_frame_bit_get(dev_priv);
 
 	if (full_update) {
 		/*
@@ -1563,7 +1576,6 @@  static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,
 	} else {
 		drm_WARN_ON(crtc_state->uapi.crtc->dev, clip->y1 % 4 || clip->y2 % 4);
 
-		val |= PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE;
 		val |= PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(clip->y1 / 4 + 1);
 		val |= PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR(clip->y2 / 4 + 1);
 	}
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index a2f36ef91cec..b347a8921178 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2316,6 +2316,7 @@ 
 #define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR(val)	REG_FIELD_PREP(ADLP_PSR2_MAN_TRK_CTL_SU_REGION_START_ADDR_MASK, val)
 #define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK		REG_GENMASK(12, 0)
 #define  ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR(val)		REG_FIELD_PREP(ADLP_PSR2_MAN_TRK_CTL_SU_REGION_END_ADDR_MASK, val)
+#define  ADLP_PSR2_MAN_TRK_CTL_SF_PARTIAL_FRAME_UPDATE		REG_BIT(31)
 #define  ADLP_PSR2_MAN_TRK_CTL_SF_SINGLE_FULL_FRAME		REG_BIT(14)
 #define  ADLP_PSR2_MAN_TRK_CTL_SF_CONTINUOS_FULL_FRAME		REG_BIT(13)