06 Jul, 2018

1 commit


17 Oct, 2016

1 commit

  • Adds files and directories to debugfs for controlling and reading frame
    CRCs, per CRTC:

    dri/0/crtc-0/crc
    dri/0/crtc-0/crc/control
    dri/0/crtc-0/crc/data

    Drivers can implement the set_crc_source callback() in drm_crtc_funcs to
    start and stop generating frame CRCs and can add entries to the output
    by calling drm_crtc_add_crc_entry.

    v2:
    - Lots of good fixes suggested by Thierry.
    - Added documentation.
    - Changed the debugfs layout.
    - Moved to allocate the entries circular queue once when frame
    generation gets enabled for the first time.
    v3:
    - Use the control file just to select the source, and start and stop
    capture when the data file is opened and closed, respectively.
    - Make variable the number of CRC values per entry, per source.
    - Allocate entries queue each time we start capturing as now there
    isn't a fixed number of CRC values per entry.
    - Store the frame counter in the data file as a 8-digit hex number.
    - For sources that cannot provide useful frame numbers, place
    XXXXXXXX in the frame field.

    v4:
    - Build only if CONFIG_DEBUG_FS is enabled.
    - Use memdup_user_nul.
    - Consolidate calculation of the size of an entry in a helper.
    - Add 0x prefix to hex numbers in the data file.
    - Remove unnecessary snprintf and strlen usage in read callback.

    v5:
    - Made the crcs array in drm_crtc_crc_entry fixed-size
    - Lots of other smaller improvements suggested by Emil Velikov

    v7:
    - Move definition of drm_debugfs_crtc_crc_add to drm_internal.h

    v8:
    - Call debugfs_remove_recursive when we fail to create the minor
    device

    v9:
    - Register the debugfs directory for a crtc from
    drm_crtc_register_all()

    v10:
    - Don't let debugfs failures interrupt CRTC registration (Emil
    Velikov)

    v11:
    - Remove extra brace that broke compilation. Sorry!

    Signed-off-by: Tomeu Vizoso
    Reviewed-by: Emil Velikov
    Acked-by: Benjamin Gaignard
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/1475767268-14379-3-git-send-email-tomeu.vizoso@collabora.com

    Tomeu Vizoso