Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 760f71e7 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm: document driver interface for CRC capturing



This was missed in Tomeu's patch. Also remove the kerneldoc for the
internal function, we don't document that in general.

While at it word-smith the docs slightly for more clarity.

Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: default avatarTomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170322083617.13361-4-daniel.vetter@ffwll.ch
parent 4834442d
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -207,6 +207,9 @@ Display CRC Support
.. kernel-doc:: drivers/gpu/drm/drm_debugfs_crc.c
.. kernel-doc:: drivers/gpu/drm/drm_debugfs_crc.c
   :doc: CRC ABI
   :doc: CRC ABI


.. kernel-doc:: drivers/gpu/drm/drm_debugfs_crc.c
   :export:

VBlank event handling
VBlank event handling
=====================
=====================


+6 −11
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@
 * DOC: CRC ABI
 * DOC: CRC ABI
 *
 *
 * DRM device drivers can provide to userspace CRC information of each frame as
 * DRM device drivers can provide to userspace CRC information of each frame as
 * it reached a given hardware component (a "source").
 * it reached a given hardware component (a CRC sampling "source").
 *
 *
 * Userspace can control generation of CRCs in a given CRTC by writing to the
 * Userspace can control generation of CRCs in a given CRTC by writing to the
 * file dri/0/crtc-N/crc/control in debugfs, with N being the index of the CRTC.
 * file dri/0/crtc-N/crc/control in debugfs, with N being the index of the CRTC.
@@ -57,6 +57,11 @@
 * rely on being able to generate matching CRC values for the frame contents that
 * rely on being able to generate matching CRC values for the frame contents that
 * it submits. In this general case, the maximum userspace can do is to compare
 * it submits. In this general case, the maximum userspace can do is to compare
 * the reported CRCs of frames that should have the same contents.
 * the reported CRCs of frames that should have the same contents.
 *
 * On the driver side the implementation effort is minimal, drivers only need to
 * implement &drm_crtc_funcs.set_crc_source. The debugfs files are automatically
 * set up if that vfunc is set. CRC samples need to be captured in the driver by
 * calling drm_crtc_add_crc_entry().
 */
 */


static int crc_control_show(struct seq_file *m, void *data)
static int crc_control_show(struct seq_file *m, void *data)
@@ -280,16 +285,6 @@ static const struct file_operations drm_crtc_crc_data_fops = {
	.release = crtc_crc_release,
	.release = crtc_crc_release,
};
};


/**
 * drm_debugfs_crtc_crc_add - Add files to debugfs for capture of frame CRCs
 * @crtc: CRTC to whom the frames will belong
 *
 * Adds files to debugfs directory that allows userspace to control the
 * generation of frame CRCs and to read them.
 *
 * Returns:
 * Zero on success, error code on failure.
 */
int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc)
int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc)
{
{
	struct dentry *crc_ent, *ent;
	struct dentry *crc_ent, *ent;
+4 −1
Original line number Original line Diff line number Diff line
@@ -590,9 +590,12 @@ struct drm_crtc_funcs {
	 * When CRC generation is enabled, the driver should call
	 * When CRC generation is enabled, the driver should call
	 * drm_crtc_add_crc_entry() at each frame, providing any information
	 * drm_crtc_add_crc_entry() at each frame, providing any information
	 * that characterizes the frame contents in the crcN arguments, as
	 * that characterizes the frame contents in the crcN arguments, as
	 * provided from the configured source. Drivers must accept a "auto"
	 * provided from the configured source. Drivers must accept an "auto"
	 * source name that will select a default source for this CRTC.
	 * source name that will select a default source for this CRTC.
	 *
	 *
	 * Note that "auto" can depend upon the current modeset configuration,
	 * e.g. it could pick an encoder or output specific CRC sampling point.
	 *
	 * This callback is optional if the driver does not support any CRC
	 * This callback is optional if the driver does not support any CRC
	 * generation functionality.
	 * generation functionality.
	 *
	 *