]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/display/psr: Use continuos full frame to handle frontbuffer invalidations
authorJosé Roberto de Souza <jose.souza@intel.com>
Tue, 5 Apr 2022 15:53:44 +0000 (08:53 -0700)
committerJosé Roberto de Souza <jose.souza@intel.com>
Wed, 6 Apr 2022 15:42:59 +0000 (08:42 -0700)
commit2f0af3beda0d5503418974bff2c1ccb779cf6d98
tree4dd05181e26b2b0a58d662e76a86c7f7c0a1d35d
parent56b50c95a23e913c9b713a728a815ec319ec09c6
drm/i915/display/psr: Use continuos full frame to handle frontbuffer invalidations

Instead of exit PSR when a frontbuffer invalidation happens, we can
enable the PSR2 selective fetch continuous full frame, that will keep
the panel updated like PSR was disabled but without keeping PSR active.

So as soon as the frontbuffer flush happens we can disable the
continuous full frame and start to do selective fetches much quicker
than the path that would enable PSR, that will wait a few frames
to actually activate PSR.

Also this approach has proven to fix some glitches found in Alderlake-P
when there are a lot of invalidations happening together with page
flips.

Some may ask why it is writing to CURSURFLIVE(), it is because
that is the way that hardware team provided us to poke display to
handle PSR updates, and it is being used since display 9.

v2:
- handling possible race conditions between frontbuffer rendering and
page flips

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Cc: Khaled Almahallawy <khaled.almahallawy@intel.com>
Cc: Shawn C Lee <shawn.c.lee@intel.com>
Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220405155344.47219-3-jose.souza@intel.com
drivers/gpu/drm/i915/display/intel_display_types.h
drivers/gpu/drm/i915/display/intel_psr.c