• Rodrigo Vivi's avatar
    drm/i915/psr: Display WA 0884 applied broadly for more HW tracking. · caa1fd66
    Rodrigo Vivi authored
    WA 0884:bxt:all,cnl:*:A - "When FBC is enabled with eDP PSR,
    the CPU host modify writes may not get updated on the Display
    as expected.
    WA: Write 0x00000000 to CUR_SURFLIVE_A with every CPU
    host modify write to trigger PSR exit."
    
    We can also find on spec other cases where they describe
    bogus writes to cursor registers to force PSR exit with
    HW tracking. And it was confirmed by HW engineers that
    this Wa can be safely applied for any frontbuffer activity.
    
    So let's use this more and more here instead of forcibly
    disable and re-enable PSR everytime that we have a simple
    reliable flush case.
    
    Other commits improve the fbcon/fbdev use a lot, but this
    approach is the only when where we can get a fully reliable
    console with no slowness or missed frames and PSR still
    enabled and active.
    
    v2: - Rebase on drm-tip
        - (DK) Add a comment to explain that WA
        tells about writing 0 to CUR_SURFLIVE_A but we write to
        CUR_SURFLIVE(pipe).
    v3: Wa doesn't work on PSR2.
    
    Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: default avatarDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180309005218.26772-1-rodrigo.vivi@intel.com
    caa1fd66
intel_psr.c 34.1 KB