drm/v3d: Document cache flushing ABI.
authorEric Anholt <eric@anholt.net>
Mon, 3 Dec 2018 22:24:33 +0000 (14:24 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 7 Dec 2018 18:55:48 +0000 (10:55 -0800)
Right now, userspace doesn't do any L2T writes, but we should lay out
our expectations for how it works.

v2: Explicitly mention the VCD cache flushing requirements and that
    we'll flush the other caches before each of the CLs.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20181203222438.25417-1-eric@anholt.net
Reviewed-by: Dave Emett <david.emett@broadcom.com>
include/uapi/drm/v3d_drm.h

index 35c7d813c66e297d3814710d7bfddbf05b2c346c..ea70669d2138389776fbaf653674c02d14a1a3fd 100644 (file)
@@ -52,6 +52,14 @@ extern "C" {
  *
  * This asks the kernel to have the GPU execute an optional binner
  * command list, and a render command list.
+ *
+ * The L1T, slice, L2C, L2T, and GCA caches will be flushed before
+ * each CL executes.  The VCD cache should be flushed (if necessary)
+ * by the submitted CLs.  The TLB writes are guaranteed to have been
+ * flushed by the time the render done IRQ happens, which is the
+ * trigger for out_sync.  Any dirtying of cachelines by the job (only
+ * possible using TMU writes) must be flushed by the caller using the
+ * CL's cache flush commands.
  */
 struct drm_v3d_submit_cl {
        /* Pointer to the binner command list.