• Matt Roper's avatar
    drm/i915/xelpd: Enhanced pipe underrun reporting · 8bcc0840
    Matt Roper authored
    XE_LPD brings enhanced underrun recovery:  the hardware can somewhat
    mitigate underruns by using an interpolated replacement pixel (soft
    underrun) or the previous pixel (hard underrun).  Furthermore, underruns
    can now be caused downstream by the port, even if the pipe itself is
    operating properly.  The interrupt register and PIPE_STATUS register
    give us extra bits to recognize hard/soft underruns and determine
    whether the underrun was caused by the port, so we'll use that
    information to print some more descriptive errors when underruns occur.
    
    v2:
     - Keep ICL's PIPE_STATUS defined separately from the old GMCH pipe
       status register.  (Ville)
     - Only read/clear the PIPE_STATUS register on platforms with
       display ver >= 11. (Lucas)
    v3:
     - Actually enable+unmask all the new underrun interrupts, clear stale
       bits out from PIPE_STATUS before enabling the interrupts, report all
       FIFO underruns errors at once, rename a bunch of stuff to unconfuse
       vs. PIPESTAT. (Ville)
    
    Bspec: 50335
    Bspec: 50366
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210526000656.3060314-2-matthew.d.roper@intel.com
    8bcc0840
i915_reg.h 505 KB