drm/i915/psr: Do not trigger Frame Change events from frontbuffer flush
authorJouni Högander <jouni.hogander@intel.com>
Fri, 1 Aug 2025 06:29:05 +0000 (09:29 +0300)
committerTvrtko Ursulin <tursulin@ursulin.net>
Tue, 12 Aug 2025 08:05:11 +0000 (09:05 +0100)
commit184889dfe0568528fd6d14bba864dd57ed45bbf2
tree733035da124ebc99ef0f4fe5cc792b8b9dcf8a56
parentfd56b9c9507f32b16159f9a922e1af5628254567
drm/i915/psr: Do not trigger Frame Change events from frontbuffer flush

We want to get rid of triggering "Frame Change" events from
frontbuffer flush calls. We are about to move using TRANS_PUSH
register for this on LunarLake and onwards. Touching TRANS_PUSH
register from fronbuffer flush would be problematic as it's written by
DSB as well.

Fix this by using intel_psr_exit when flush or invalidate is done on
LunarLake and onwards. This is not possible on AlderLake and
MeteorLake due to HW bug in PSR2 disable.

This patch is also fixing problems with cursor plane where cursor is
disappearing or duplicate cursor is seen on the screen.

v2: Commit message updated

Bspec: 68927, 68934, 66624
Reported-by: Janna Martl <janna.martl109@gmail.com>
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/5522
Fixes: 411ad63877bb ("drm/i915/psr: Use SFF_CTL on invalidate/flush for LunarLake onwards")
Tested-by: Janna Martl <janna.martl109@gmail.com>
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://lore.kernel.org/r/20250801062905.564453-1-jouni.hogander@intel.com
(cherry picked from commit 46fb38cb20c0d185a6391ab524b23e0e0219c41f)
Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
drivers/gpu/drm/i915/display/intel_psr.c