• Paulo Zanoni's avatar
    drm/i915: report Gen5+ CPU and PCH FIFO underruns · 8664281b
    Paulo Zanoni authored
    In this commit we enable both CPU and PCH FIFO underrun reporting and
    start reporting them. We follow a few rules:
      - after we receive one of these errors, we mask the interrupt, so
        we won't get an "interrupt storm" and we also won't flood dmesg;
      - at each mode set we enable the interrupts again, so we'll see each
        message at most once per mode set;
      - in the specific places where we need to ignore the errors, we
        completely mask the interrupts.
    
    The downside of this patch is that since we're completely disabling
    (masking) the interrupts instead of just not printing error messages,
    we will mask more than just what we want on IVB/HSW CPU interrupts
    (due to GEN7_ERR_INT) and on CPT/PPT/LPT PCHs (due to SERR_INT). So
    when we decide to mask PCH FIFO underruns for pipe A on CPT, we'll
    also be masking PCH FIFO underruns for pipe B, because both are
    reported by SERR_INT, which has to be either completely enabled or
    completely disabled (in othe words, there's no way to disable/enable
    specific bits of GEN7_ERR_INT and SERR_INT).
    
    V2: Rename some functions and variables, downgrade messages to
    DRM_DEBUG_DRIVER and rebase.
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    8664281b
i915_irq.c 97.2 KB