• José Roberto de Souza's avatar
    drm/i915/display/psr: Use continuos full frame to handle frontbuffer invalidations · 805f04d4
    José Roberto de Souza authored
    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: default avatarJouni 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: default avatarJosé Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220405155344.47219-3-jose.souza@intel.com
    805f04d4
intel_psr.c 74.5 KB