drm: document driver interface for CRC capturing
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 22 Mar 2017 08:36:04 +0000 (09:36 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 24 Mar 2017 08:36:06 +0000 (09:36 +0100)
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: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170322083617.13361-4-daniel.vetter@ffwll.ch
Documentation/gpu/drm-uapi.rst
drivers/gpu/drm/drm_debugfs_crc.c
include/drm/drm_crtc.h

index 352652810dab7c4cd8be7ca7f3eec23046a8b156..369e8ca12b8e2658ae6accfdc7cfde3069b25db4 100644 (file)
@@ -207,6 +207,9 @@ Display CRC Support
 .. kernel-doc:: drivers/gpu/drm/drm_debugfs_crc.c
    :doc: CRC ABI
 
+.. kernel-doc:: drivers/gpu/drm/drm_debugfs_crc.c
+   :export:
+
 VBlank event handling
 =====================
 
index 96891c4a6e23b200874afc6b92930d587219ea9f..1722d8f214499794d5304dc7e9597bfcd0dadd6b 100644 (file)
@@ -36,7 +36,7 @@
  * DOC: CRC ABI
  *
  * 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
  * file dri/0/crtc-N/crc/control in debugfs, with N being the index of the CRTC.
  * 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
  * 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)
@@ -280,16 +285,6 @@ static const struct file_operations drm_crtc_crc_data_fops = {
        .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)
 {
        struct dentry *crc_ent, *ent;
index 6ef59da3fd8ef3842bd864218261cdf3d7aa966e..24dcb121bad4694db31b85bceab71fdf50536f93 100644 (file)
@@ -590,9 +590,12 @@ struct drm_crtc_funcs {
         * When CRC generation is enabled, the driver should call
         * drm_crtc_add_crc_entry() at each frame, providing any information
         * 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.
         *
+        * 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
         * generation functionality.
         *