• Paulo Zanoni's avatar
    drm/i915/fbc: disable FBC on FIFO underruns · 61a585d6
    Paulo Zanoni authored
    Ever since I started working on FBC I was already aware that FBC can
    really amplify the FIFO underrun symptoms. On systems where FIFO
    underruns were harmless error messages, enabling FBC would cause the
    underruns to give black screens.
    
    We recently tried to enable FBC on Haswell and got reports of a system
    that would hang after some hours of uptime, and the first bad commit
    was the one that enabled FBC. We also observed that this system had
    FIFO underrun error messages on its dmesg. Although we don't have any
    evidence that fixing the underruns would solve the bug and make FBC
    work properly on this machine, IMHO it's better if we minimize the
    amount of possible problems by just giving up FBC whenever we detect
    an underrun.
    
    v2: New version, different implementation and commit message.
    v3: Clarify the fact that we run from an IRQ handler (Chris).
    v4: Also add the underrun_detected check at can_choose() to avoid
        misleading dmesg messages (DK).
    v5: Fix Engrish, use READ_ONCE on the unlocked read (Chris).
    
    Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
    Cc: Lyude <cpaul@redhat.com>
    Cc: stevenhoneyman@gmail.com <stevenhoneyman@gmail.com>
    Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1473773937-19758-1-git-send-email-paulo.r.zanoni@intel.com
    61a585d6
i915_drv.h 119 KB