]> git.itanic.dy.fi Git - linux-stable/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)
commit805f04d42a6b5f4187935b43c9c39ae03ccfa761
tree4dd05181e26b2b0a58d662e76a86c7f7c0a1d35d
parent3b6f409547fbeeae9381a1dd3473a2c9ea9e988a
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