• Tomeu Vizoso's avatar
    drm/i915: Use new CRC debugfs API · 8c6b709d
    Tomeu Vizoso authored
    The core provides now an ABI to userspace for generation of frame CRCs,
    so implement the ->set_crc_source() callback and reuse as much code as
    possible with the previous ABI implementation.
    
    When handling the pageflip interrupt, we skip 1 or 2 frames depending on
    the HW because they contain wrong values. For the legacy ABI for
    generating frame CRCs, this was done in userspace but now that we have a
    generic ABI it's better if it's not exposed by the kernel.
    
    v2:
        - Leave the legacy implementation in place as the ABI implementation
          in the core is incompatible with it.
    v3:
        - Use the "cooked" vblank counter so we have a whole 32 bits.
        - Make sure we don't mess with the state of the legacy CRC capture
          ABI implementation.
    v4:
        - Keep use of get_vblank_counter as in the legacy code, will be
          changed in a followup commit.
    
    v5:
        - Skip first frame or two as it's known that they contain wrong
          data.
        - A few fixes suggested by Emil Velikov.
    
    v6:
        - Rework programming of the HW registers to preserve previous
          behavior.
    
    v7:
        - Address whitespace issue.
        - Added a comment on why in the implementation of the new ABI we
          skip the 1st or 2nd frames.
    
    v9:
        - Add stub for intel_crtc_set_crc_source.
    
    v12:
        - Rebased.
        - Remove stub for intel_crtc_set_crc_source and instead set the
          callback to NULL (Jani Nikula).
    
    v15:
        - Rebased.
    Signed-off-by: default avatarTomeu Vizoso <tomeu.vizoso@collabora.com>
    Reviewed-by: default avatarEmil Velikov <emil.velikov@collabora.com>
    Reviewed-by: default avatarRobert Foss <robert.foss@collabora.com>
    
    irq
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170110134305.26326-2-tomeu.vizoso@collabora.com
    8c6b709d
i915_irq.c 121 KB